@charset "UTF-8";
/*
// ----------------------------------------------
// Usage example:
// For IE set $mq-support to false.
// Set the fixed value.
// Then use mixins to test whether styles should be applied.
// ----------------------------------------------

$mq-support: false;
$mq-fixed-value: 1024;

// Renders at fixed value
@include bp (min-width, 300px) { 
    div { color:#000; }
}

// Doesn't render without MQ support
@include bp (min-width, 1200px) { 
    div { color:#FFF; }
}

// Doesn't render without MQ support
@include bp (max-width, 300px) { 
    div { color:#444; }
}

// Renders at fixed value
@include bp (max-width, 1200px) { 
    div { color:#888; }
}

// ----------------------------------------------
*/
@font-face {
  font-family: 'UbuntuTitling-Bold';
  src: url("../fonts/UbuntuTitling-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/UbuntuTitling-Bold.woff") format("woff"), url("../fonts/UbuntuTitling-Bold.ttf") format("truetype"), url("../fonts/UbuntuTitling-Bold.svg#UbuntuTitling-Bold") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'UbuntuTitling-Bold';
  src: url("../fonts/UbuntuTitling-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/UbuntuTitling-Bold.woff") format("woff"), url("../fonts/UbuntuTitling-Bold.ttf") format("truetype"), url("../fonts/UbuntuTitling-Bold.svg#UbuntuTitling-Bold") format("svg");
  font-weight: bold;
  font-style: normal; }

/*! normalize.css v2.0.1 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/*
 * Corrects `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
  display: block; }

/*
 * Corrects `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block; }

/*
 * Prevents modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/*
 * Addresses styling for `hidden` attribute not present in IE 8/9.
 */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/*
 * 1. Sets default font family to sans-serif.
 * 2. Prevents iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */ }

/*
 * Removes default margin.
 */
body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/*
 * Addresses `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/*
 * Improves readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
/*
 * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
 * Safari 5, and Chrome.
 */
h1 {
  font-size: 2em; }

/*
 * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/*
 * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/*
 * Addresses styling not present in Safari 5 and Chrome.
 */
dfn {
  font-style: italic; }

/*
 * Addresses styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/*
 * Corrects font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/*
 * Improves readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

/*
 * Sets consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

/*
 * Addresses inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* ==========================================================================
   Embedded content
   ========================================================================== */
/*
 * Removes border when inside `a` element in IE 8/9.
 */
img {
  border: 0; }

/*
 * Corrects overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/*
 * Addresses margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/*
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/*
 * 1. Corrects color not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Corrects font family not being inherited in all browsers.
 * 2. Corrects font size not being inherited in all browsers.
 * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
 */
button,
input,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 2 */
  margin: 0;
  /* 3 */ }

/*
 * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
  line-height: normal; }

/*
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Corrects inability to style clickable `input` types in iOS.
 * 3. Improves usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/*
 * Re-set default cursor for disabled elements.
 */
button[disabled],
input[disabled] {
  cursor: default; }

/*
 * 1. Addresses box sizing set to `content-box` in IE 8/9.
 * 2. Removes excess padding in IE 8/9.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

/*
 * Removes inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Removes inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/*
 * 1. Removes default vertical scrollbar in IE 8/9.
 * 2. Improves readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* ==========================================================================
   Tables
   ========================================================================== */
/*
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* ============================================ *
 * Reset
 * ============================================ */
*,
*:before,
*:after {
  margin: 0;
  padding: 0; }

html {
  -webkit-tap-highlight-color: transparent;
  /* Prevent tap highlight on iOS/Android */
  -webkit-text-size-adjust: 100%;
  /* Prevent automatic scaling on iOS */ }

body {
  background: #FFFFFF;
  color: #000000;
  line-height: 1; }

html,
body,
img,
fieldset,
abbr,
acronym {
  border: 0; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal; }

th,
code,
cite,
caption {
  font-weight: normal;
  font-style: normal;
  text-align: left; }

address {
  font-style: normal; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

img {
  display: block; }

ol,
ul {
  list-style: none; }

q:before,
q:after {
  content: ''; }

input:focus,
input[type="search"]:focus {
  outline-offset: -2px; }

input[type="search"] {
  -webkit-appearance: none;
  /* 1 */
  /* 2 */
  box-sizing: border-box; }

iframe, img {
  max-width: 100%; }

/* ============================================ *
 * Base Styles
 * ============================================ */
@-ms-viewport {
  width: device-width; }

@-o-viewport {
  width: device-width; }

@viewport {
  width: device-width; }

a, button {
  -ms-touch-action: manipulation;
  touch-action: manipulation; }

body,
button,
input,
select,
table,
textarea {
  font-family: Arial, sans-serif;
  color: #003b5f;
  font-size: 14px;
  line-height: 1.5; }

body {
  background: #fdfdfd;
  background-image: url(../images/bg.jpg);
  background-repeat: repeat-x;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }

a {
  color: #1f86bd;
  text-decoration: none; }

a:hover {
  text-decoration: underline; }

a:focus {
  outline-color: #1d7eb2;
  color: #09293a; }

ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0; }

strong {
  font-weight: normal; }

/* ============================================ *
 * Typography
 * ============================================ */
h1, .h1 {
  margin: 0;
  margin-bottom: 0.7em;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 28px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.2; }

h2, .h2 {
  margin: 0;
  margin-bottom: 0.5em;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.2; }

h3, .h3 {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.1; }

h4, .h4 {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

h5, .h5 {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

h6, .h6 {
  margin: 0;
  margin-bottom: 5px;
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

p {
  margin-bottom: 8px; }

/* ============================================ *
 * Shared Classes
 * ============================================ */
.address-list address {
  margin-bottom: 1em; }

.availability {
  margin-bottom: 0;
  font-size: 13px;
  text-transform: uppercase; }

.availability .label {
  display: none; }

.availability.in-stock {
  color: #11B400; }

.availability.available-soon,
.availability.out-of-stock {
  color: #DF280A; }

.availability-only {
  color: #DF280A;
  margin-bottom: 10px; }

.g-recaptcha {
  float: right; }

/* -------------------------------------------- *
 * Page Titles
 */
.page-title h1,
.page-title .h1,
.page-title h2,
.page-title .h2,
.product-name h1,
.product-name .h1 {
  font-size: 24px;
  font-weight: normal;
  color: #003b5f;
  padding-bottom: 3px;
  margin-bottom: 15px; }

/* -------------------------------------------- *
 * Block Module
 */
.block,
.col-left-first {
  margin-bottom: 20px; }

.col-left-first .block:last-of-type {
  margin-bottom: 0; }

.block-title {
  position: relative;
  padding: 10px 0 0;
  margin-bottom: 5px; }
  .block-title h2,
  .block-title h3,
  .block-title strong {
    margin: 0;
    margin-bottom: 10px;
    color: #003b5f;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    line-height: 1.4;
    color: #003b5f;
    margin-bottom: 0;
    text-transform: uppercase;
    font-weight: 600; }
  .block-title small {
    font-size: 100%;
    font-weight: normal;
    color: #5b5b5a; }

img.image-icon {
  display: inline-block;
  vertical-align: middle;
  margin-right: 5px; }

body:not(.customer-account) .block:first-child .block-title {
  border-top: none;
  padding-top: 0; }

.block-subtitle {
  font-weight: bold;
  margin-bottom: 7px; }

.block-content {
  margin-top: 5px; }

.block-content.unpad {
  padding: 0; }

.block-content li.item {
  margin: 0 0 10px 9px; }

.block-content li.item:last-child {
  margin-bottom: 0; }

.block .actions {
  margin: 10px 0 0; }
  .block .actions:after {
    content: '';
    display: table;
    clear: both; }
  .block .actions a {
    float: left; }
  .block .actions .button {
    float: right; }

.col-left .block .actions .button ~ a,
.col-right .block .actions .button ~ a {
  line-height: 33px;
  margin-right: 5px; }

@media only screen and (max-width: 770px) {
  .sidebar .block:not(.block-layered-nav) {
    margin-bottom: 0; }
    .sidebar .block:not(.block-layered-nav) .block-title > strong {
      margin: 0;
      margin-bottom: 10px;
      color: #003b5f;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      line-height: 1.4;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-user-select: none;
      -o-user-select: none;
      user-select: none;
      font-weight: normal;
      margin-bottom: 0px;
      padding: 7px 10px 7px 24px;
      border-width: 1px;
      border-style: solid;
      border-color: #CCCCCC;
      position: relative;
      background-color: #F4F4F4;
      display: block;
      width: 100%;
      cursor: pointer;
      border-bottom: 0; }
      .sidebar .block:not(.block-layered-nav) .block-title > strong:after {
        content: '';
        position: absolute;
        width: 0;
        height: 0;
        display: block;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        border-left: 4px solid #1f86bd;
        border-right: none;
        left: 10px;
        top: 50%;
        margin-top: -3px; }
      .sidebar .block:not(.block-layered-nav) .block-title > strong:hover {
        background-color: shade(#F4F4F4, 3%); }
    .sidebar .block:not(.block-layered-nav) .block-title.active > strong {
      margin: 0;
      margin-bottom: 10px;
      color: #003b5f;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      line-height: 1.4;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-user-select: none;
      -o-user-select: none;
      user-select: none;
      font-weight: normal;
      margin-bottom: 0px;
      padding: 7px 10px 7px 24px;
      border-width: 1px;
      border-style: solid;
      border-color: #CCCCCC;
      position: relative;
      background-color: #F4F4F4; }
      .sidebar .block:not(.block-layered-nav) .block-title.active > strong:after {
        content: '';
        position: absolute;
        width: 0;
        height: 0;
        display: block;
        border-right: 4px solid transparent;
        border-left: 4px solid transparent;
        border-top: 4px solid #1f86bd;
        border-bottom: none;
        left: 10px;
        top: 50%;
        margin-top: -3px; }
      .sidebar .block:not(.block-layered-nav) .block-title.active > strong:hover {
        background-color: shade(#F4F4F4, 3%); } }

/* -------------------------------------------- *
 * Secondary Navigation
 */
.block-account .block-title,
.block-cms-menu .block-title {
  padding-top: 0;
  border-top: none; }
  .block-account .block-title strong,
  .block-cms-menu .block-title strong {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    text-transform: uppercase;
    font-size: 20px;
    color: #003b5f; }

.block-account li,
.block-cms-menu li {
  margin: 7px 0; }
  .block-account li strong,
  .block-cms-menu li strong {
    font-weight: 400;
    color: #1f86bd; }
  .block-account li a,
  .block-cms-menu li a {
    color: #003b5f; }
    .block-account li a:hover,
    .block-cms-menu li a:hover {
      color: #1f86bd; }

/* ============================================ *
 * Buttons
 * ============================================ */
/* Secondary Buttons */
.cart .buttons-set .button,
.cart-table .button,
.sidebar .actions .button,
.button.button-secondary {
  background: #DDDDDD;
  color: #003b5f;
  padding: 7px 15px; }
  .cart .buttons-set .button:hover,
  .cart-table .button:hover,
  .sidebar .actions .button:hover,
  .button.button-secondary:hover {
    background: #d0d0d0;
    cursor: pointer; }
  .cart .buttons-set .button:active,
  .cart-table .button:active,
  .sidebar .actions .button:active,
  .button.button-secondary:active {
    background: #c4c4c4;
    color: #003b5f; }
  .cart .buttons-set .button:focus,
  .cart-table .button:focus,
  .sidebar .actions .button:focus,
  .button.button-secondary:focus {
    color: #003b5f;
    background: #c4c4c4;
    outline: none; }

.sidebar .actions button.button {
  white-space: normal; }

/* Primary Buttons */
.button,
button,
[type=submit],
.cart-table .product-cart-actions .button,
#co-shipping-method-form .buttons-set .button,
.footer .button {
  background: #1f86bd;
  display: inline-block;
  text-decoration: none;
  padding: 9px 24px 8px 24px;
  border-radius: 8px;
  border: 0;
  color: #FFFFFF;
  font-size: 18px;
  font-weight: normal;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  box-sizing: border-box;
  min-width: 200px; }
  @media only screen and (min-width: 600px) {
    .button,
    button,
    [type=submit],
    .cart-table .product-cart-actions .button,
    #co-shipping-method-form .buttons-set .button,
    .footer .button {
      padding: 8px 24px 6px 24px; } }
  .button:hover,
  button:hover,
  [type=submit]:hover,
  .cart-table .product-cart-actions .button:hover,
  #co-shipping-method-form .buttons-set .button:hover,
  .footer .button:hover {
    background: #003b5f;
    cursor: pointer; }
  .button:active,
  button:active,
  [type=submit]:active,
  .cart-table .product-cart-actions .button:active,
  #co-shipping-method-form .buttons-set .button:active,
  .footer .button:active {
    background: #186791;
    color: #FFFFFF; }
  .button:focus,
  button:focus,
  [type=submit]:focus,
  .cart-table .product-cart-actions .button:focus,
  #co-shipping-method-form .buttons-set .button:focus,
  .footer .button:focus {
    background-color: #186791;
    outline: none;
    color: #FFFFFF; }
  .button.open-lightbox,
  button.open-lightbox,
  [type=submit].open-lightbox,
  .cart-table .product-cart-actions .button.open-lightbox,
  #co-shipping-method-form .buttons-set .button.open-lightbox,
  .footer .button.open-lightbox {
    background: #9d9d9d !important; }
    .button.open-lightbox:hover ,
    button.open-lightbox:hover ,
    [type=submit].open-lightbox:hover ,
    .cart-table .product-cart-actions .button.open-lightbox:hover ,
    #co-shipping-method-form .buttons-set .button.open-lightbox:hover ,
    .footer .button.open-lightbox:hover  {
      background: #909090; }
  .button.secondary, .button.outline,
  button.secondary,
  button.outline,
  [type=submit].secondary,
  [type=submit].outline,
  .cart-table .product-cart-actions .button.secondary,
  .cart-table .product-cart-actions .button.outline,
  #co-shipping-method-form .buttons-set .button.secondary,
  #co-shipping-method-form .buttons-set .button.outline,
  .footer .button.secondary,
  .footer .button.outline {
    background: none;
    border: 2px solid #003b5f;
    color: #003b5f;
    text-decoration: none;
    padding: 6px 24px 5px 24px; }
    @media only screen and (min-width: 600px) {
      .button.secondary, .button.outline,
      button.secondary,
      button.outline,
      [type=submit].secondary,
      [type=submit].outline,
      .cart-table .product-cart-actions .button.secondary,
      .cart-table .product-cart-actions .button.outline,
      #co-shipping-method-form .buttons-set .button.secondary,
      #co-shipping-method-form .buttons-set .button.outline,
      .footer .button.secondary,
      .footer .button.outline {
        padding: 6px 24px 4px 24px; } }
    .button.secondary:hover, .button.outline:hover,
    button.secondary:hover,
    button.outline:hover,
    [type=submit].secondary:hover,
    [type=submit].outline:hover,
    .cart-table .product-cart-actions .button.secondary:hover,
    .cart-table .product-cart-actions .button.outline:hover,
    #co-shipping-method-form .buttons-set .button.secondary:hover,
    #co-shipping-method-form .buttons-set .button.outline:hover,
    .footer .button.secondary:hover,
    .footer .button.outline:hover {
      color: #003b5f; }
  .button.search-button,
  button.search-button,
  [type=submit].search-button,
  .cart-table .product-cart-actions .button.search-button,
  #co-shipping-method-form .buttons-set .button.search-button,
  .footer .button.search-button {
    min-width: auto; }

a.button {
  text-decoration: none; }

a.button:hover {
  color: #FFFFFF; }

/* Disabled - class for anchor, state for form elements */
.button.disabled,
.button:disabled {
  background: #C8C8C8;
  opacity: 0.6;
  cursor: not-allowed; }

.button img, a.button img {
  width: 18px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 8px;
  margin-top: -2px; }

.button2 {
  border: 0;
  padding: 0 5px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  vertical-align: middle; }

.button2:focus {
  outline: none; }

.button2 span,
.button2 span span {
  line-height: 30px;
  height: 30px;
  text-decoration: underline;
  text-transform: uppercase;
  display: inline-block;
  color: #1f86bd;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .button2 span:hover,
  .button2 span span:hover {
    text-decoration: none;
    color: #14577b; }

@media only screen and (max-width: 599px) {
  .col2-set .buttons-set .button,
  .col2-set .buttons-set .button2 {
    float: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box; }
  .col2-set .buttons-set .back-link {
    display: none; }
  .col2-set .buttons-set .required {
    display: none; } }

@media only screen and (max-width: 479px) {
  .buttons-set .button {
    float: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 7px; }
  .buttons-set .back-link {
    display: none; }
  .buttons-set .required {
    display: none; } }

/* -------------------------------------------- *
 * Paypal Button
 */
.paypal-logo.paypal-after {
  float: left; }

.paypal-after .paypal-or {
  float: left; }

.paypal-or {
  line-height: 34px;
  margin: 0px 10px 5px; }

.paypal-after .paypal-button {
  float: left; }

.paypal-button {
  line-height: 0px; }

.paypal-button img {
  display: inline; }

@media only screen and (max-width: 740px) {
  .paypal-or {
    line-height: 20px; }
  .paypal-logo,
  .paypal-or,
  .paypal-button {
    text-align: center;
    width: 100%;
    display: block;
    margin-right: 0;
    margin-left: 0;
    float: none; } }

/* -------------------------------------------- *
 * Button Sets
 */
.buttons-set {
  clear: both;
  margin: 10px 0 0;
  padding-top: 10px;
  text-align: right; }
  .buttons-set p.required {
    margin: 0;
    margin-left: 10px;
    line-height: 33px;
    float: right; }
  .buttons-set .back-link {
    float: left;
    margin: 0;
    line-height: 33px; }
  .buttons-set a:not(.button) {
    line-height: 20px;
    display: inline-block;
    padding: 5px 0; }
  .buttons-set button.button {
    float: right;
    margin-left: 5px;
    min-width: 140px; }
  .buttons-set:after {
    content: '';
    display: table;
    clear: both; }

/* -------------------------------------------- *
 * Icons
 */
.icon-sprite, .btn-remove2, .sorter > .sort-by .sort-by-switcher, .sorter > .view-mode .grid,
.sorter > .view-mode .list, .skip-nav .icon, .skip-account .icon, .review-summary-table .rating-box .rating-number:after, .ratings-table .rating-box, .ratings-table .rating-box .rating {
  background-image: url(../images/icon_sprite.png);
  background-repeat: no-repeat;
  text-indent: -9999px; }

@media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) {
  .icon-sprite, .btn-remove2, .sorter > .sort-by .sort-by-switcher, .sorter > .view-mode .grid,
  .sorter > .view-mode .list, .skip-nav .icon, .skip-account .icon, .review-summary-table .rating-box .rating-number:after, .ratings-table .rating-box, .ratings-table .rating-box .rating {
    background-image: url(../images/icon_sprite@2x.png);
    background-size: 100px 1000px; } }

/* -------------------------------------------- *
 * Breadcrumbs
 */
.breadcrumbs {
  overflow: hidden;
  margin: -15px 0 15px; }

.breadcrumbs li {
  float: left;
  font-size: 12px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  text-transform: uppercase; }

.breadcrumbs a {
  float: left;
  color: #003b5f; }

.breadcrumbs a:hover {
  color: #1f86bd; }

.breadcrumbs strong {
  color: #003b5f;
  font-weight: normal; }

.breadcrumbs span {
  float: left;
  padding: 0 7px; }

@media only screen and (max-width: 770px) {
  .breadcrumbs {
    display: none; } }

/* -------------------------------------------- *
 * Button - Remove / Previous
 */
.btn-remove,
.btn-previous {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 1px solid #EDEDED;
  text-align: center;
  /* Hide text */
  font: 0/0 a;
  text-shadow: none;
  color: transparent;
  position: relative; }

.btn-remove:after {
  content: 'X';
  color: #1f86bd;
  height: 20px;
  line-height: 20px;
  width: 100%;
  font-size: 10px;
  font-family: Arial, Arial, sans-serif;
  font-weight: bold; }

.btn-remove:hover:after {
  color: #FFFFFF;
  text-decoration: none; }

.btn-remove2 {
  background: #c5c5c5;
  width: 33px;
  height: 33px;
  border-radius: 100%;
  background-image: url(../images/icon-cart-remove.svg);
  background-size: 9px;
  background-position: center center;
  background-repeat: no-repeat;
  display: inline-block;
  border: none; }

.btn-previous:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #1f86bd;
  border-left: none;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -2px;
  margin-top: -4px; }

.btn-previous:hover:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #FFFFFF;
  border-left: none; }

.block-layered-nav .currently .btn-remove,
.block-layered-nav .currently .btn-previous,
.mini-products-list .btn-remove,
.mini-products-list .btn-previous,
#compare-items .btn-remove,
#compare-items .btn-previous {
  float: right;
  margin-left: 6px; }

/* -------------------------------------------- *
 * Checkout Agreements
 */
.checkout-agreements li {
  margin-bottom: 20px; }

.checkout-agreements .agreement-content {
  overflow-y: auto;
  max-width: 670px;
  max-height: 125px;
  margin-bottom: 10px;
  padding: 10px;
  border: 1px solid #CCCCCC;
  background: #F4F4F4; }

/* -------------------------------------------- *
 * CVV Security Code
 */
.cvv-what-is-this {
  margin-left: 10px;
  font-size: 13px;
  line-height: 24px; }

/* -------------------------------------------- *
 * Container
 */
.main-container,
.support-container,
.home-slide-wrapper,
.page-header,
.home-slider-search-container,
.latest-news-container,
.products-teaser-container,
.footer-container,
.wordpress-layout-fullscreen .page .fullscreen-slider .slick-slide .content-wrapper {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  padding: 15px; }
  .main-container:after,
  .support-container:after,
  .home-slide-wrapper:after,
  .page-header:after,
  .home-slider-search-container:after,
  .latest-news-container:after,
  .products-teaser-container:after,
  .footer-container:after,
  .wordpress-layout-fullscreen .page .fullscreen-slider .slick-slide .content-wrapper:after {
    content: '';
    display: table;
    clear: both; }

.wordpress-layout-fullscreen .header-wrapper {
  width: 100%;
  position: absolute;
  top: 0;
  z-index: 10; }

.wordpress-layout-fullscreen .col-main {
  width: 100%;
  float: none; }

@media only screen and (min-width: 771px) {
  .main-container,
  .support-container,
  .page-header,
  .home-slide-wrapper,
  .home-slider-search-container,
  .latest-news-container,
  .products-teaser-container,
  .footer-container {
    padding: 35px 25px; }
  .latest-news-container {
    padding-bottom: 0; }
  .home-slide-wrapper {
    padding: 25px;
    padding-top: 15px; } }

.footer-container {
  padding-top: 0px; }

/* -------------------------------------------- *
 * Column Layouts
 */
.main:after,
.col-wrapper:after {
  content: '';
  display: table;
  clear: both; }

.col-left,
.col-right,
.col-main {
  padding: 0 15px;
  box-sizing: border-box; }

.col-left {
  float: left;
  width: 25%;
  padding-left: 0;
  /* Remove the 15px padding */
  clear: left; }
  .col-left img {
    max-width: 100%; }

.col-right {
  float: right;
  width: 30%;
  padding-right: 0;
  /* Remove the 15px padding */ }
  .col-right img {
    max-width: 100%; }

.col-main {
  float: left;
  width: 70%; }

.col1-layout .col-main {
  float: none;
  width: auto;
  padding: 0;
  /* Remove the 15px padding */ }

.col2-left-layout .col-main {
  float: right;
  padding-right: 0;
  /* Remove the 15px padding */ }

.col2-right-layout .col-main {
  padding-left: 0;
  /* Remove the 15px padding */ }

.col3-layout .col-right {
  width: 20.83333%; }

.col3-layout .col-wrapper {
  float: left;
  width: 79.16667%; }
  .col3-layout .col-wrapper .col-main {
    float: right;
    width: 73.68421%; }
  .col3-layout .col-wrapper .col-left {
    width: 26.31579%; }

@media only screen and (max-width: 1000px) {
  .col3-layout .col-right {
    float: left;
    clear: left;
    padding-left: 0;
    padding-right: 10px;
    width: 25%; }
  .col3-layout .col-wrapper {
    float: right;
    width: 100%; }
    .col3-layout .col-wrapper .col-main {
      float: right;
      width: 75%; }
    .col3-layout .col-wrapper .col-left {
      width: 25%; } }

@media only screen and (max-width: 770px) {
  .col-left,
  .col-right,
  .col-main,
  .col1-layout .col-left,
  .col1-layout .col-right,
  .col1-layout .col-main,
  .col2-left-layout .col-left,
  .col2-left-layout .col-right,
  .col2-left-layout .col-main,
  .col2-right-layout .col-left,
  .col2-right-layout .col-right,
  .col2-right-layout .col-main,
  .col3-layout .col-wrapper .col-left,
  .col3-layout .col-right,
  .col3-layout .col-wrapper .col-main {
    padding: 0;
    margin-bottom: 10px;
    float: none;
    width: auto; }
  .col3-layout .col-wrapper {
    float: none;
    width: auto; }
  .col-main {
    float: none;
    width: auto; }
  .col-main .col-left {
    padding: 0;
    /* On product listing pages, the left column gets moved inside col-main on small viewports */ } }

/* Content Columns */
.col2-set {
  width: 100%; }
  .col2-set .col-1,
  .col2-set .col-2 {
    width: 50%;
    box-sizing: border-box;
    padding: 20px; }
    @media only screen and (max-width: 770px) {
      .col2-set .col-1,
      .col2-set .col-2 {
        padding: 10px; } }
  .col2-set .col-1 {
    float: left;
    padding-left: 0; }
  .col2-set .col-2 {
    float: right;
    padding-right: 0; }
  @media only screen and (max-width: 599px) {
    .col2-set .col-1,
    .col2-set .col-2 {
      float: none;
      width: auto;
      border: 0;
      padding-right: 0;
      padding-left: 0; } }
  .col2-set .narrow {
    width: 33%; }
  .col2-set .wide {
    width: 65%; }
  .col2-set:after {
    content: '';
    display: table;
    clear: both; }

body > .wrapper {
  position: relative; }

/* -------------------------------------------- *
 * Top Container
 */
@media only screen and (min-width: 771px) {
  .top-container {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 35px; } }

/* -------------------------------------------- *
 * Global Site Notice
 */
.global-site-notice {
  background: #1f86bd;
  color: #003b5f;
  font-size: 14px; }
  .global-site-notice a {
    text-decoration: underline;
    color: #003b5f;
    cursor: pointer; }
  .global-site-notice .notice-inner {
    padding: 15px;
    padding-top: 12px;
    padding-bottom: 0;
    max-width: 1360px;
    margin-left: auto;
    margin-right: auto; }
    .global-site-notice .notice-inner img {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer; }
  .global-site-notice p {
    margin-bottom: 0; }

/* -------------------------------------------- *
 * Promotional Message Banner
 */
.promo-msg {
  color: #003b5f;
  text-align: center;
  margin: 10px;
  text-transform: uppercase;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

/* -------------------------------------------- *
 * Grid
 */
.grid:after {
  content: '';
  display: table;
  clear: both; }

/* -------------------------------------------- *
 * Messages
 */
.success {
  color: #11B400; }

.error {
  color: #DF280A;
  font-weight: bold; }

.notice {
  color: #E26703;
  font-weight: bold; }

/* -------------------------------------------- *
 * Messages
 */
.messages {
  margin-bottom: 10px; }

.messages li li {
  position: relative;
  margin-bottom: 5px;
  padding: 10px 0;
  font-size: 14px; }

.messages li li:before {
  top: 50%;
  left: 0;
  margin-top: -6px; }

.messages .error-msg li {
  color: #DF280A; }

.messages .notice-msg li {
  color: #E26703; }

.messages .success-msg li {
  color: #11B400; }

@media only screen and (min-width: 915px) {
  .order-list-grid .col-1 {
    width: 30%; }
  .order-list-grid .col-2 {
    width: 50%;
    padding-right: 20px; }
  .order-list-grid .col-3 {
    clear: none;
    width: 20%;
    padding-top: 0; } }

/* -------------------------------------------- *
 * Page Popup
 */
.page-popup {
  padding: 20px;
  background: #FFFFFF;
  height: auto; }

.page-popup h1 {
  margin: 0 0 0.5em;
  font-size: 36px; }

/* -------------------------------------------- *
 * Payment Methods
 */
.payment-methods {
  margin-bottom: 20px; }

.payment-methods dt {
  padding: 5px 0; }

.payment-methods dd {
  padding-top: 10px; }

.payment-methods .form-list {
  position: relative;
  display: inline-block;
  max-width: 100%;
  margin: 5px 15px 15px;
  padding: 15px;
  border: 1px solid #CCCCCC;
  background: #F4F4F4; }

.payment-methods .form-list:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-bottom: 10px solid #CCCCCC;
  border-top: none;
  top: -11px;
  left: 30px; }

.payment-methods .form-list:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-bottom: 10px solid #F4F4F4;
  border-top: none;
  top: -10px;
  left: 30px; }

.payment-methods .form-list li:last-child {
  margin-bottom: 0; }

/* -------------------------------------------- *
 * Please Wait (Loading Indicator)
 */
.please-wait {
  display: inline-block;
  margin-left: 10px;
  margin-top: 5px;
  line-height: 24px;
  height: 24px;
  white-space: nowrap;
  /* Prevent the linebreak in the HTML from causing layout issues */ }
  .please-wait img {
    float: left;
    margin-right: 5px;
    width: 24px; }

/* -------------------------------------------- *
 * Price Box - Standard
 */
.price-box {
  margin: 7px 0;
  font-family: Arial, sans-serif; }

.price-box p {
  margin-bottom: 0; }

.price-notice {
  color: #5b5b5a; }

.price-box .price {
  color: #003b5f;
  font-size: 20px; }

.price-box .price,
.price {
  font-family: Arial, sans-serif; }

.price-box .price-label {
  color: #5b5b5a;
  white-space: nowrap;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.price-box .minimal-price-link {
  padding-left: 1em;
  color: #003b5f;
  display: block;
  /* We want this to show on its own line, otherwise the layout looks funky */ }
  .price-box .minimal-price-link .label {
    color: #5b5b5a; }

/* -------------------------------------------- *
 * Price Box - Special
 */
.price-box .old-price,
.price-box .special-price {
  display: inline-block; }
  .price-box .old-price .price-label,
  .price-box .special-price .price-label {
    display: none; }
  .price-box .old-price .price,
  .price-box .special-price .price {
    display: inline-block; }

.price-box .old-price .price {
  color: #5b5b5a;
  text-decoration: line-through; }

.price-box .special-price {
  color: #003b5f;
  padding-left: 1em; }
  .price-box .special-price .price-label {
    color: #D84D3C; }

/* -------------------------------------------- *
 * Price Box - Taxes
 */
.price-box .price-excluding-tax,
.price-box .price-including-tax {
  display: block; }

span.weee {
  display: block; }

/* -------------------------------------------- *
 * Tier Prices
 */
.product-pricing,
.tier-prices,
.tier-prices-grouped {
  display: inline-block;
  padding: 4px 8px;
  background: #FBF4DE;
  border: 1px solid #E2D4C7;
  margin-top: 7px; }
  .product-pricing li,
  .tier-prices li,
  .tier-prices-grouped li {
    font-size: 12px; }
  .product-pricing .benefit,
  .tier-prices .benefit,
  .tier-prices-grouped .benefit {
    font-style: italic; }
  .product-pricing .price,
  .tier-prices .price,
  .tier-prices-grouped .price {
    font-weight: bold; }

/* ============================================ *
 * Item Options
 * ============================================ */
.item-options {
  font-size: 14px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .item-options:after {
    content: '';
    display: table;
    clear: both; }
  .item-options dt {
    float: left;
    clear: left;
    font-weight: 600;
    padding-right: 5px;
    font-style: italic; }
    .item-options dt:after {
      content: ': '; }
  .item-options dd {
    float: left;
    padding-left: 10px;
    margin: 0 0 6px; }

.truncated,
.truncated a.dots {
  cursor: help; }

.truncated a.details {
  cursor: help;
  height: 16px;
  line-height: 16px; }
  .truncated a.details:hover {
    text-decoration: none; }

.truncated .truncated_full_value {
  position: relative;
  z-index: 300; }

.truncated .truncated_full_value .item-options {
  display: none;
  position: absolute;
  z-index: 300;
  width: 200px;
  padding: 8px;
  border: 1px solid #1f86bd;
  background-color: #F6F6F6;
  top: 21px;
  left: -100px; }
  .truncated .truncated_full_value .item-options:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-bottom: 7px solid #1f86bd;
    border-top: none;
    left: 97px;
    top: -7px; }

.truncated .truncated_full_value .item-options > p {
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: 8px; }

.truncated .show .item-options {
  display: block; }

@media only screen and (max-width: 479px) {
  .truncated {
    cursor: inherit; }
    .truncated a.details {
      display: none; }
    .truncated .truncated_full_value .item-options {
      display: block;
      position: static;
      z-index: 1;
      width: 100%;
      border: none;
      background-color: transparent; }
      .truncated .truncated_full_value .item-options p {
        float: none; }
      .truncated .truncated_full_value .item-options:after {
        display: none; } }

/* -------------------------------------------- *
 * Printer Friendly Page
 */
.page-print {
  width: 6.5in;
  margin: 20px;
  background: #FFFFFF; }

/* -------------------------------------------- *
 * Add to links
 */
.add-to-links {
  margin: 7px 0; }
  .add-to-links a {
    display: inline-block;
    padding: 0px 3px 3px; }

.add-to-links .separator {
  display: none; }

/* -------------------------------------------- *
 * Standard Formatted Text Block
 */
.std p {
  margin: 0 0 1.5em; }

.std ol {
  list-style: decimal outside;
  margin-bottom: 1.5em; }

.std ol li {
  margin-left: 2em; }

.std ul {
  list-style: disc outside;
  margin-bottom: 1.5em; }

.std ul li {
  margin-left: 2em; }

.std .note {
  color: #5b5b5a;
  font-size: 13px; }

/* -------------------------------------------- *
 * Tabs
 */
.tabs {
  margin-bottom: 10px;
  background: #FFFFFF; }

/* -------------------------------------------- *
 * Toolbar
 */
.toolbar {
  margin-top: 10px;
  margin-bottom: 15px;
  border-bottom: 1px solid #CCCCCC;
  border-top: 1px solid #CCCCCC;
  background: #F4F4F4;
  padding: 5px 10px 0px 10px; }
  .toolbar:after {
    content: '';
    display: table;
    clear: both; }

.pager-no-toolbar {
  margin-bottom: 10px; }

.pager-no-toolbar ~ .pager-no-toolbar {
  margin-top: 10px; }

.toolbar,
.pager {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  color: #003b5f;
  line-height: 30px;
  font-size: 12px; }

.toolbar label,
.pager-no-toolbar label {
  font-weight: normal;
  text-transform: uppercase; }

.sorter {
  float: left;
  margin-bottom: 5px; }
  .sorter label {
    float: left;
    margin-right: 5px; }
    .sorter label:after {
      content: ':'; }

.sorter > .sort-by {
  float: left;
  margin-right: 5px;
  height: 30px; }
  .sorter > .sort-by .sort-by-switcher {
    width: 30px;
    height: 30px;
    display: inline-block; }
  .sorter > .sort-by .sort-by-switcher--asc {
    background-position: 4px -542px; }
    .sorter > .sort-by .sort-by-switcher--asc:hover {
      background-position: -46px -542px; }
  .sorter > .sort-by .sort-by-switcher--desc {
    background-position: 4px -567px; }
    .sorter > .sort-by .sort-by-switcher--desc:hover {
      background-position: -46px -567px; }

.sorter > .view-mode {
  float: right; }
  .sorter > .view-mode .grid,
  .sorter > .view-mode .list {
    float: left;
    width: 30px;
    height: 30px; }
  .sorter > .view-mode .grid {
    margin-right: 5px;
    background-position: 8px -492px; }
  .sorter > .view-mode strong.grid,
  .sorter > .view-mode a.grid:hover {
    background-position: -42px -492px; }
  .sorter > .view-mode .list {
    background-position: 11px -517px; }
  .sorter > .view-mode strong.list,
  .sorter > .view-mode a.list:hover {
    background-position: -39px -517px; }

.pager {
  width: 100%;
  text-align: center;
  margin-top: 20px; }
  .pager .amount {
    float: left;
    font-family: Arial, sans-serif;
    white-space: nowrap;
    margin: 0 15px 0 0; }
  .pager .limiter {
    float: left;
    height: 30px;
    line-height: 30px; }
    .pager .limiter > label {
      padding-right: 5px; }
      .pager .limiter > label:after {
        content: ':'; }
  .pager .amount,
  .pager .limiter,
  .pager .pages {
    margin-bottom: 5px; }
  .pager ol {
    display: inline-block; }

.pages {
  overflow: hidden;
  width: 100%;
  text-align: center; }
  .pages strong {
    display: none; }

.pages li {
  float: left; }

.pages a,
.pages .current {
  display: inline-block;
  border: 0;
  font-size: 14px;
  text-align: center;
  text-transform: uppercase;
  vertical-align: middle;
  white-space: nowrap;
  line-height: 30px;
  width: 20px;
  height: 30px;
  padding: 0;
  color: #003b5f;
  text-decoration: underline;
  font-family: Arial, sans-serif; }
  .pages a.next, .pages a.previous,
  .pages .current.next,
  .pages .current.previous {
    display: none; }

.pages .current {
  text-decoration: none; }
  .pages .current:hover {
    color: #1f86bd; }

.pages .next,
.pages .previous {
  font: 0/0 a;
  text-shadow: none;
  color: transparent;
  background-color: transparent;
  position: relative; }
  .pages .next:hover,
  .pages .previous:hover {
    border: 1px solid #1f86bd; }

.pages .next:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid #1f86bd;
  border-right: none;
  top: 50%;
  margin-top: -3px;
  left: 50%;
  margin-left: -2px; }

.pages .next:hover:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid #14577b;
  border-right: none; }

.pages .previous:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #1f86bd;
  border-left: none;
  top: 50%;
  margin-top: -3px;
  left: 50%;
  margin-left: -2px; }

.pages .previous:hover:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-right: 4px solid #14577b;
  border-left: none; }

@media only screen and (max-width: 479px) {
  .pager .amount--has-pages {
    display: none; }
  .pages {
    float: left; }
  .limiter label {
    display: none; } }

@media only screen and (max-width: 770px) {
  .col1-layout .sorter,
  .col1-layout .pager {
    width: 100%; }
  .col1-layout .pager {
    float: left;
    clear: both; }
    .col1-layout .pager .pages {
      float: left;
      margin-left: 0; }
    .col1-layout .pager .count-container {
      float: right; } }

@media only screen and (max-width: 979px) {
  .col2-left-layout .sorter,
  .col2-left-layout .pager,
  .col2-right-layout .sorter,
  .col2-right-layout .pager,
  .col3-layout .sorter,
  .col3-layout .pager {
    width: 100%; }
  .col2-left-layout .pager,
  .col2-right-layout .pager,
  .col3-layout .pager {
    float: left;
    clear: both; }
    .col2-left-layout .pager .pages,
    .col2-right-layout .pager .pages,
    .col3-layout .pager .pages {
      float: left;
      margin-left: 0; }
    .col2-left-layout .pager .count-container,
    .col2-right-layout .pager .count-container,
    .col3-layout .pager .count-container {
      float: right; } }

@media only screen and (max-width: 1279px) {
  .toolbar .view-mode > label {
    display: none; } }

/* ============================================ *
 * Tax - Full Tax Summary
 * ============================================ */
#checkout-review-table .summary-collapse,
#shopping-cart-totals-table .summary-collapse,
body.customer-account .data-table .summary-collapse {
  position: relative;
  cursor: pointer; }
  #checkout-review-table .summary-collapse:before,
  #shopping-cart-totals-table .summary-collapse:before,
  body.customer-account .data-table .summary-collapse:before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-top: 7px solid #1f86bd;
    border-bottom: none;
    position: static;
    display: inline-block;
    margin-right: 5px; }
  #checkout-review-table .summary-collapse:hover:before,
  #shopping-cart-totals-table .summary-collapse:hover:before,
  body.customer-account .data-table .summary-collapse:hover:before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-top: 7px solid #14577b;
    border-bottom: none;
    position: static;
    display: inline-block;
    margin-right: 5px; }

#checkout-review-table .show-details .summary-collapse:before,
#shopping-cart-totals-table .show-details .summary-collapse:before,
body.customer-account .data-table .show-details .summary-collapse:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 7px solid transparent;
  border-left: 7px solid transparent;
  border-bottom: 7px solid #1f86bd;
  border-top: none;
  position: static;
  display: inline-block;
  margin-right: 5px; }

#checkout-review-table .show-details .summary-collapse:hover:before,
#shopping-cart-totals-table .show-details .summary-collapse:hover:before,
body.customer-account .data-table .show-details .summary-collapse:hover:before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  display: block;
  border-right: 7px solid transparent;
  border-left: 7px solid transparent;
  border-bottom: 7px solid #14577b;
  border-top: none;
  position: static;
  display: inline-block;
  margin-right: 5px; }

#shopping-cart-totals-table tfoot td .summary-collapse:before, #shopping-cart-totals-table tfoot td .summary-collapse:hover:before {
  margin-bottom: 5px; }

/* ============================================ *
 * Magento Helpers
 * ============================================ */
.a-center {
  text-align: center; }

.a-right,
.align-right {
  text-align: right; }

.no-display {
  display: none !important; }

.nobr,
.nowrap {
  white-space: nowrap; }

.width-full {
  width: 100%; }

/* ============================================ *
 * Custom Helpers
 * ============================================ */
.hidden {
  display: none; }

/* ============================================ *
 * Print Styles
 * ============================================ */
.page-print .print-head {
  margin: 0 0 15px; }

.page-print .print-head .logo {
  float: none;
  max-height: 50px;
  width: auto; }

/* ============================================ *
 * Home Page
 * ============================================ */
.home-slider-container {
  margin-top: 20px; }
  .home-slider-container .home-slide-wrapper {
    text-align: right;
    background-repeat: no-repeat;
    background-position: 50px 80px; }
    .home-slider-container .home-slide-wrapper h1,
    .home-slider-container .home-slide-wrapper h1.home-slide-title,
    .home-slider-container .home-slide-wrapper h2.home-slide-title {
      text-align: left;
      position: absolute;
      left: 15px;
      top: 0;
      font-size: 24px;
      text-transform: uppercase; }
      @media only screen and (min-width: 600px) {
        .home-slider-container .home-slide-wrapper h1,
        .home-slider-container .home-slide-wrapper h1.home-slide-title,
        .home-slider-container .home-slide-wrapper h2.home-slide-title {
          top: 15px; } }
      @media only screen and (min-width: 771px) {
        .home-slider-container .home-slide-wrapper h1,
        .home-slider-container .home-slide-wrapper h1.home-slide-title,
        .home-slider-container .home-slide-wrapper h2.home-slide-title {
          left: 25px; } }
    .home-slider-container .home-slide-wrapper .home-slide-image {
      padding-top: 40px;
      padding-bottom: 20px;
      z-index: 1; }
      @media only screen and (min-width: 600px) {
        .home-slider-container .home-slide-wrapper .home-slide-image {
          padding-top: 0;
          padding-bottom: 0;
          position: absolute;
          left: 25px;
          width: 56%;
          bottom: auto;
          top: 10%; } }
      @media only screen and (min-width: 771px) {
        .home-slider-container .home-slide-wrapper .home-slide-image {
          bottom: 9%; } }
      @media only screen and (min-width: 980px) {
        .home-slider-container .home-slide-wrapper .home-slide-image {
          width: 62%;
          bottom: 0; } }
    .home-slider-container .home-slide-wrapper .home-slide-content {
      position: relative;
      z-index: 10;
      display: inline-block;
      text-align: center; }
      @media only screen and (min-width: 600px) {
        .home-slider-container .home-slide-wrapper .home-slide-content {
          width: 48%;
          margin-left: -10%;
          text-align: left; } }
      @media only screen and (min-width: 771px) {
        .home-slider-container .home-slide-wrapper .home-slide-content {
          width: 43%;
          margin-left: -5%; } }
      .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons {
        text-align: left;
        margin-bottom: 20px; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons.small {
            display: none; } }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons {
            width: 170px;
            display: table-cell;
            vertical-align: top;
            float: right;
            text-align: right;
            margin-bottom: 0; } }
        .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons a {
          text-decoration: none; }
          .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons a:hover {
            text-decoration: none; }
        .home-slider-container .home-slide-wrapper .home-slide-content .share-buttons img {
          display: inline;
          width: auto; }
      .home-slider-container .home-slide-wrapper .home-slide-content .headline {
        font-size: 100px;
        line-height: .8;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        text-transform: uppercase;
        margin-bottom: 20px;
        text-align: left;
        padding-top: 15px;
        padding-right: 10px; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            padding-top: 35px; } }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            text-align: right;
            font-size: 110px;
            padding-top: 0; } }
        @media only screen and (min-width: 771px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            font-size: 136px; } }
        @media only screen and (min-width: 980px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .headline {
            font-size: 144px; } }
      .home-slider-container .home-slide-wrapper .home-slide-content p {
        color: #5b5b5a;
        text-align: left; }
        .home-slider-container .home-slide-wrapper .home-slide-content p a {
          color: #5b5b5a;
          text-decoration: underline; }
      .home-slider-container .home-slide-wrapper .home-slide-content a {
        margin-top: 15px; }
      .home-slider-container .home-slide-wrapper .home-slide-content h2, .home-slider-container .home-slide-wrapper .home-slide-content .h2 {
        text-transform: none;
        text-align: left; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content h2, .home-slider-container .home-slide-wrapper .home-slide-content .h2 {
            vertical-align: top;
            display: table-cell;
            width: 100%;
            margin-right: 20px;
            text-align: left; }
            .home-slider-container .home-slide-wrapper .home-slide-content h2.small, .home-slider-container .home-slide-wrapper .home-slide-content .h2.small {
              display: none; } }
      .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
        text-align: left; }
        @media only screen and (min-width: 600px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
            text-align: right;
            width: 180%;
            margin-left: -80%;
            padding-right: 20px;
            margin-top: 50px;
            margin-bottom: 35px;
            display: table; } }
        @media only screen and (min-width: 771px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
            margin-bottom: 90px; } }
        @media only screen and (min-width: 879px) {
          .home-slider-container .home-slide-wrapper .home-slide-content .product-name {
            width: 125%;
            margin-left: -25%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-image {
        width: 59%;
        bottom: 0; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content {
        margin-top: 50px; } }
    @media only screen and (max-width: 599px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .headline {
        font-size: 72px; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .headline {
        width: 160%;
        margin-left: -60%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .headline {
        width: 130%;
        margin-left: -30%; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .product-name {
        width: 120%;
        margin-left: -20%; } }
    @media only screen and (min-width: 771px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .product-name {
        width: 110%;
        margin-left: -10%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide2 .home-slide-content .product-name {
        width: 90%;
        margin-left: 10%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-image {
        width: 56%;
        top: 60px;
        bottom: auto; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content {
        margin-top: 50px; } }
    @media only screen and (max-width: 599px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .headline {
        font-size: 72px; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .headline {
        width: 180%;
        margin-left: -80%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .headline {
        margin-bottom: 116px; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .product-name {
        width: 145%;
        margin-left: -45%; } }
    @media only screen and (min-width: 771px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .product-name {
        width: 120%;
        margin-left: -20%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide3 .home-slide-content .product-name {
        width: 100%;
        margin-left: 0; } }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper.slide4 .home-slide-image {
        top: 26%; }
        .home-slider-container .home-slide-wrapper.slide4 .home-slide-image:lang(en) {
          top: 35%; } }
    @media only screen and (min-width: 980px) {
      .home-slider-container .home-slide-wrapper.slide4 .home-slide-image {
        width: 56%;
        top: 160px;
        bottom: auto; }
        .home-slider-container .home-slide-wrapper.slide4 .home-slide-image:lang(en) {
          top: 320px; } }
    .home-slider-container .home-slide-wrapper .medium {
      display: none; }
    @media only screen and (min-width: 600px) {
      .home-slider-container .home-slide-wrapper .small {
        display: none; } }
    @media only screen and (min-width: 771px) {
      .home-slider-container .home-slide-wrapper .medium {
        display: block; } }

.is-blog .home-slider-container {
  margin-top: 0; }

.is-blog.wordpress-post-view .home-slide-wrapper {
  margin-top: -15px;
  max-width: 1010px;
  padding: 25px;
  margin-left: -25px;
  margin-right: -25px; }

.home-slider-search {
  display: none; }
  @media only screen and (min-width: 771px) {
    .home-slider-search {
      display: block;
      width: 100%;
      height: 0;
      padding-top: 0;
      padding-bottom: 0; } }
  .home-slider-search .home-slider-search-formwrapper {
    position: relative; }
    .home-slider-search .home-slider-search-formwrapper .search_mini_form {
      width: 43%;
      position: absolute;
      right: 0;
      top: -140px; }

.products-teaser-container ul li,
.support-container ul li,
.product-category-nav ul li,
.box-cross-sell ul li,
.shop-list ul li {
  line-height: 1.5;
  padding: 4px 0; }

.products-teaser-container a,
.support-container a,
.product-category-nav a,
.box-cross-sell a,
.shop-list a {
  color: #003b5f;
  border-bottom: 1px solid #003b5f;
  line-height: 1.2; }
  .products-teaser-container a:hover, .products-teaser-container a.active,
  .support-container a:hover,
  .support-container a.active,
  .product-category-nav a:hover,
  .product-category-nav a.active,
  .box-cross-sell a:hover,
  .box-cross-sell a.active,
  .shop-list a:hover,
  .shop-list a.active {
    text-decoration: none;
    color: #1f86bd;
    border-color: #1f86bd; }

.support-container a.active {
  text-decoration: none;
  color: #003b5f;
  border-color: #003b5f; }

.products-teaser-container a.active {
  color: #003b5f;
  border-color: #003b5f; }

.latest-news-container .support-wrapper, .latest-news-container .latest-news-wrapper, .support-container .support-wrapper, .support-container .latest-news-wrapper {
  border-top: 1px dotted #003b5f;
  width: 100%; }
  .latest-news-container .support-wrapper h3, .latest-news-container .latest-news-wrapper h3, .support-container .support-wrapper h3, .support-container .latest-news-wrapper h3 {
    color: #008bd2;
    margin-bottom: 10px;
    padding: 0; }
  .latest-news-container .support-wrapper .links, .latest-news-container .support-wrapper .about, .latest-news-container .latest-news-wrapper .links, .latest-news-container .latest-news-wrapper .about, .support-container .support-wrapper .links, .support-container .support-wrapper .about, .support-container .latest-news-wrapper .links, .support-container .latest-news-wrapper .about {
    line-height: 1.3;
    padding: 35px 0;
    padding-right: 20px;
    box-sizing: border-box; }
    @media only screen and (min-width: 600px) {
      .latest-news-container .support-wrapper .links, .latest-news-container .support-wrapper .about, .latest-news-container .latest-news-wrapper .links, .latest-news-container .latest-news-wrapper .about, .support-container .support-wrapper .links, .support-container .support-wrapper .about, .support-container .latest-news-wrapper .links, .support-container .latest-news-wrapper .about {
        width: 50%;
        float: left; } }
    @media only screen and (min-width: 771px) {
      .latest-news-container .support-wrapper .links, .latest-news-container .support-wrapper .about, .latest-news-container .latest-news-wrapper .links, .latest-news-container .latest-news-wrapper .about, .support-container .support-wrapper .links, .support-container .support-wrapper .about, .support-container .latest-news-wrapper .links, .support-container .latest-news-wrapper .about {
        width: 25%;
        float: left; } }
  .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
    padding: 35px 0;
    padding-bottom: 100px;
    margin-bottom: 35px;
    line-height: 1.3;
    background-image: url(../images/support-person.png);
    background-repeat: no-repeat;
    background-position: bottom right;
    clear: both; }
    @media only screen and (min-width: 600px) {
      .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
        width: 50%;
        float: left;
        clear: none;
        padding-bottom: 80px; } }
    @media only screen and (min-width: 771px) {
      .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
        width: 50%;
        float: left;
        clear: none;
        padding-bottom: 60px; } }
    .latest-news-container .support-wrapper .support p, .latest-news-container .latest-news-wrapper .support p, .support-container .support-wrapper .support p, .support-container .latest-news-wrapper .support p {
      width: 70%; }
      @media only screen and (min-width: 771px) {
        .latest-news-container .support-wrapper .support p, .latest-news-container .latest-news-wrapper .support p, .support-container .support-wrapper .support p, .support-container .latest-news-wrapper .support p {
          margin-top: 42px; } }
    .latest-news-container .support-wrapper .support .number, .latest-news-container .latest-news-wrapper .support .number, .support-container .support-wrapper .support .number, .support-container .latest-news-wrapper .support .number {
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 20px;
      color: #003b5f; }
  @media only screen and (max-width: 599px) {
    .latest-news-container .support-wrapper .about, .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .about, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .about, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .about, .support-container .latest-news-wrapper .support {
      padding-top: 0; } }
  @media only screen and (max-width: 599px) {
    .latest-news-container .support-wrapper .support, .latest-news-container .latest-news-wrapper .support, .support-container .support-wrapper .support, .support-container .latest-news-wrapper .support {
      margin-bottom: 15px; } }

.support-container {
  padding-bottom: 0; }

.latest-news-container {
  padding-bottom: 0; }
  .latest-news-container .latest-news-wrapper {
    padding: 35px 0;
    padding-bottom: 0; }
    .latest-news-container .latest-news-wrapper .latest-news-slider {
      margin: 20px -15px 0 -15px; }
      .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide {
        margin: 0 15px;
        text-align: center; }
        @media only screen and (min-width: 600px) {
          .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide {
            text-align: left; } }
        .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide .headline {
          text-align: left;
          font-size: 17px;
          font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
          color: #003b5f;
          margin: 23px 0 18px 0;
          line-height: 1.3; }
        .latest-news-container .latest-news-wrapper .latest-news-slider .slick-slide a {
          margin-bottom: 10px; }
      .latest-news-container .latest-news-wrapper .latest-news-slider .slick-prev, .latest-news-container .latest-news-wrapper .latest-news-slider .slick-next {
        margin-top: -7.5%; }

.products-teaser-container .products-teaser-wrapper {
  padding: 35px 0;
  padding-bottom: 0;
  border-top: 1px dotted #003b5f;
  width: 100%; }
  .products-teaser-container .products-teaser-wrapper .products-teaser-slider {
    margin: 55px -15px 0 -15px; }
    .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-slide {
      margin: 0 15px; }
      .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-slide img {
        margin: 5px auto; }
        @media only screen and (max-width: 599px) {
          .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-slide img {
            width: 80%; } }
    .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-prev, .products-teaser-container .products-teaser-wrapper .products-teaser-slider .slick-next {
      margin-top: -7.5%;
      background: #c9c9c9; }
  .products-teaser-container .products-teaser-wrapper h3 {
    height: 44px; }

.download-list li {
  margin: 10px 0; }

.download-list a {
  padding-left: 30px;
  color: #003b5f;
  position: relative;
  display: inline-block; }
  .download-list a:hover {
    color: #1f86bd;
    text-decoration: none;
    border: none; }
  .download-list a:before {
    display: block;
    content: '';
    position: absolute;
    left: 0;
    top: -1px;
    width: 19px;
    height: 22px;
    background-image: url(../images/icon-download-pdf.svg);
    background-size: 19px 22px;
    background-repeat: no-repeat; }

.lightbox-content-link.inline {
  display: inline; }

.loader {
  display: inline-block;
  vertical-align: middle;
  margin-left: 5px;
  height: 11px;
  width: 11px;
  -webkit-animation: rotate 0.8s infinite linear;
          animation: rotate 0.8s infinite linear;
  border: 2px solid #1f86bd;
  border-right-color: transparent;
  border-radius: 50%; }

@-webkit-keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

/* ============================================ *
 * FORMS - COMMON
 * ============================================ */
/* -------------------------------------------- *
 * Fieldsets
 */
.fieldset p {
  margin-bottom: 7px; }

.fieldset p.required {
  margin-bottom: 5px;
  float: right;
  font-size: 12px;
  margin-top: 0px; }

.customer-address-form p.required {
  float: none;
  width: 100%; }

.fieldset + .fieldset {
  margin-top: 5px; }

form .legend {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.1;
  margin-bottom: 15px;
  padding-bottom: 7px; }

/* -------------------------------------------- *
 * Input Box
 */
.input-box {
  padding-top: 2px; }
  .input-box:after {
    content: '';
    display: table;
    clear: both; }

li.centinel-logos div.input-box img {
  display: inline;
  vertical-align: middle; }

/* For adjacent select inputs. */
/* Example: credit card expiration month and year. */
.input-box .v-fix {
  float: left;
  margin-right: 5px;
  max-width: 100%; }

input[type="checkbox"] {
  margin-right: 5px;
  position: relative;
  top: -1px; }

/* -------------------------------------------- *
 * Labels
 */
label {
  display: inline-block;
  font-size: 14px;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }

label.required:after,
span.required:after {
  content: ' *';
  color: #DF280A;
  font-weight: normal;
  font-family: Arial, sans-serif;
  font-size: 12px; }

.catalog-product-view label.required:after,
.catalog-product-view span.required:after {
  content: '';
  color: #DF280A;
  font-weight: normal;
  font-family: Arial, sans-serif;
  font-size: 12px; }

label.required em,
span.required em {
  display: none; }

/* -------------------------------------------- *
 * Hints
 */
.input-hint {
  color: #5b5b5a;
  font-size: 12px; }

/* -------------------------------------------- *
 * Select
 */
select {
  font-size: 14px; }

select + select {
  margin-left: 5px; }

select[multiple] {
  width: 270px;
  border: 1px solid #C0C0C0;
  font-size: 17px;
  padding: 5px; }

/* -------------------------------------------- *
 * Textarea
 */
textarea {
  width: 100%;
  padding: .7em 1em;
  background: #ECECEC;
  border: none;
  box-sizing: border-box; }

/* -------------------------------------------- *
 * Inputs
 */
.input-text {
  background: #FFFFFF;
  font-size: 17px;
  border: none;
  border-radius: 8px;
  color: #5b5b5a; }
  .input-text:focus {
    outline: none; }

.input-text.validation-failed {
  border-color: #DF280A; }

.input-text.validation-failed:focus {
  outline-color: tint(#DF280A, 50%); }

input[type=search] {
  height: 40px;
  padding: 9px 20px 7px 20px;
  max-width: 100%; }

input[type=email],
input[type=number],
input[type=password],
input[type=tel],
input[type=text] {
  max-width: 100%;
  -webkit-appearance: none;
  width: 100%;
  box-sizing: border-box;
  border: none;
  padding: 0 1em;
  height: 35px;
  line-height: 14px;
  border-radius: 0;
  font-size: 14px; }
  input[type=email]::-webkit-input-placeholder,
  input[type=number]::-webkit-input-placeholder,
  input[type=password]::-webkit-input-placeholder,
  input[type=tel]::-webkit-input-placeholder,
  input[type=text]::-webkit-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  input[type=email]:-ms-input-placeholder,
  input[type=number]:-ms-input-placeholder,
  input[type=password]:-ms-input-placeholder,
  input[type=tel]:-ms-input-placeholder,
  input[type=text]:-ms-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  input[type=email]::placeholder,
  input[type=number]::placeholder,
  input[type=password]::placeholder,
  input[type=tel]::placeholder,
  input[type=text]::placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }

/* Only show on iPhones (not iPads or any other device) */
@media only screen and (max-device-width: 568px) and (-webkit-min-device-pixel-ratio: 0) {
  input[type=email],
  input[type=search],
  input[type=number],
  input[type=password],
  input[type=tel],
  input[type=text],
  select {
    font-size: 16px;
    /* Prevent from zooming on focus */ } }

.ie8 .input-text {
  max-width: none; }

/* -------------------------------------------- *
 * Inputs - Quantity
 */
input[type=number].qty,
input[type=text].qty {
  width: 3em;
  text-align: center;
  vertical-align: middle; }

/* -------------------------------------------- *
 * Placeholder
 */
::-webkit-input-placeholder {
  color: #4c4c4e; }

input:-moz-placeholder {
  color: #4c4c4e; }

/* -------------------------------------------- *
 * Checkbox And Radio
 */
.checkbox,
.radio {
  position: relative;
  top: -1px;
  display: inline-block; }

.checkbox + label,
.radio + label {
  width: auto;
  max-width: 85%;
  padding: 0 0 0 8px;
  font-size: 14px;
  font-weight: normal;
  vertical-align: top; }

/* -------------------------------------------- *
 * Validation
 */
p.required,
.validation-advice {
  margin: 5px 0 0;
  color: #DF280A;
  font-size: 13px; }

/* ============================================ *
 * Form List
 * ============================================ */
.form-list > li {
  margin-bottom: 10px; }

.form-list .input-range .input-text {
  width: 74px; }

.form-list .field,
.form-list .wide,
.form-list .control {
  margin-bottom: 10px; }

@media only screen and (min-width: 600px) {
  .form-list .fields {
    margin-bottom: 20px; }
    .form-list .fields:after {
      content: '';
      display: table;
      clear: both; }
    .form-list .fields.has-halfs {
      margin-left: -5px;
      margin-right: -5px; }
      .form-list .fields.has-halfs .field {
        box-sizing: border-box; }
        .form-list .fields.has-halfs .field.half {
          width: 50%;
          float: left; }
        .form-list .fields.has-halfs .field.quarter {
          width: 30%;
          float: left; }
        .form-list .fields.has-halfs .field.threequarters {
          width: 70%;
          float: left; }
        .form-list .fields.has-halfs .field .input-box {
          margin: 0 5px; } }

#co-shipping-method-form .buttons-set {
  text-align: left;
  padding: 0;
  margin: 0; }

#co-shipping-method-form #s_method_tablerate_bestway {
  opacity: 0; }

#co-shipping-method-form .sp-methods dd label {
  padding-left: 0 !important; }

#co-shipping-method-form button, #co-shipping-method-form [type=submit] {
  background: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
  color: #003b5f;
  font-family: Arial, sans-serif;
  text-decoration: underline; }

/* Turn the label of controls (radio/checkbox) into a button style that wraps the input */
.form-list .control,
.sp-methods dt,
#checkout-shipping-method-load .sp-methods dd,
#co-shipping-method-form .sp-methods dd,
.product-options ul.options-list {
  /* When a label is next to an input that is set to not display, we should style the label in a non-clickable state */ }
  .form-list .control div.input-box,
  .sp-methods dt div.input-box,
  #checkout-shipping-method-load .sp-methods dd div.input-box,
  #co-shipping-method-form .sp-methods dd div.input-box,
  .product-options ul.options-list div.input-box {
    display: inline;
    float: left; }
    .form-list .control div.input-box:after,
    .sp-methods dt div.input-box:after,
    #checkout-shipping-method-load .sp-methods dd div.input-box:after,
    #co-shipping-method-form .sp-methods dd div.input-box:after,
    .product-options ul.options-list div.input-box:after {
      display: none; }
  .form-list .control input.radio,
  .form-list .control input.checkbox,
  .sp-methods dt input.radio,
  .sp-methods dt input.checkbox,
  #checkout-shipping-method-load .sp-methods dd input.radio,
  #checkout-shipping-method-load .sp-methods dd input.checkbox,
  #co-shipping-method-form .sp-methods dd input.radio,
  #co-shipping-method-form .sp-methods dd input.checkbox,
  .product-options ul.options-list input.radio,
  .product-options ul.options-list input.checkbox {
    float: left;
    margin-right: -40px;
    margin-top: 10px; }
  .form-list .control label,
  .sp-methods dt label,
  #checkout-shipping-method-load .sp-methods dd label,
  #co-shipping-method-form .sp-methods dd label,
  .product-options ul.options-list label {
    color: #003b5f;
    background-color: #F4F4F4;
    padding: 5px 10px;
    background: transparent;
    display: inline-block;
    width: auto;
    width: 100%;
    float: none;
    padding: 6px 0 6px 25px;
    box-sizing: border-box; }
  .form-list .control .no-display + label,
  .sp-methods dt .no-display + label,
  #checkout-shipping-method-load .sp-methods dd .no-display + label,
  #co-shipping-method-form .sp-methods dd .no-display + label,
  .product-options ul.options-list .no-display + label {
    background-color: transparent;
    padding-left: 0; }
    .form-list .control .no-display + label:hover,
    .sp-methods dt .no-display + label:hover,
    #checkout-shipping-method-load .sp-methods dd .no-display + label:hover,
    #co-shipping-method-form .sp-methods dd .no-display + label:hover,
    .product-options ul.options-list .no-display + label:hover {
      background-color: transparent; }

.product-options ul.options-list label,
.col2-set .form-list .control label {
  min-width: inherit;
  width: 100%;
  max-width: 100%; }

.form-list .control.remember-me-box label {
  width: auto;
  max-width: none;
  min-width: inherit; }

.form-list .control {
  margin-top: 10px; }
  .form-list .control label {
    float: none; }
  .form-list .control .radio,
  .form-list .control .checkbox {
    margin-right: 6px; }
  .form-list .control .input-box {
    clear: none;
    display: inline-block;
    width: auto;
    padding: 0; }

*:focus {
  outline: none; }

/* remove standard-styles */
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 0;
  font-size: 1em;
  width: 100%; }

/* styling */
select {
  width: 100%;
  padding: 8px 10px;
  background-color: white;
  background-image: url(../images/icon-form-select-arrow-down.svg);
  background-position: right 10px top 16px;
  background-size: 10px;
  background-repeat: no-repeat; }
  @media only screen and (min-width: 600px) {
    select {
      padding: 5px 10px;
      background-position: right 10px top 14px; } }

select[disabled] {
  opacity: .6;
  color: #807e82; }

/* ============================================ *
 * Table Helpers
 * ============================================ */
.hide-th {
  text-indent: -9999px; }

/* ============================================ *
 * Data Table
 * ============================================ */
.data-table {
  width: 100%;
  border-spacing: 0; }

.data-table td,
.data-table th {
  padding: 0;
  vertical-align: top; }

.data-table.checkout-review-table {
  margin-left: -5px;
  margin-right: -5px; }
  .data-table.checkout-review-table th {
    font-weight: bold; }
  .data-table.checkout-review-table th, .data-table.checkout-review-table td {
    padding: 5px; }
  .data-table.checkout-review-table tfoot th, .data-table.checkout-review-table tfoot td {
    padding: 0; }

.data-table th {
  line-height: 1.4;
  white-space: nowrap; }

.data-table tr, tfoot {
  width: 100%; }

.data-table tr.dotted-border td div {
  border-bottom: 1px dotted #003b5f; }

.data-table tbody td,
.data-table tfoot td {
  font-family: Arial, sans-serif; }

.data-table tbody td .item-options {
  margin-left: 20px;
  margin-top: 10px; }
  .data-table tbody td .item-options dt:after {
    content: ':'; }

/* ============================================ *
 * Generic Info Table
 * ============================================ */
.info-box {
  border: 1px solid #C0C0C0;
  padding: 12px 15px;
  margin: 0 0 15px; }
  .info-box h2 {
    font-weight: bold;
    font-size: 13px; }

.info-table th,
.info-table td {
  vertical-align: top; }

.info-table th {
  font-weight: bold;
  padding: 4px 20px 4px 0; }

.info-table td {
  padding: 4px 0; }

/* ============================================ *
 * Zebra-Stripe Table
 * ============================================ */
.zebra-table tr:first-child,
.zebra-table th:first-child {
  border-top: 1px solid #C0C0C0; }

.zebra-table td,
.zebra-table th {
  border-bottom: 1px solid #C0C0C0;
  padding: 6px;
  background-color: transparent; }

.zebra-table tr {
  background-color: #EEEDED; }

.zebra-table tr:nth-child(odd) {
  background-color: #F8F7F5; }

/* ============================================ *
 * Linearize Table
 * ============================================ */
@media only screen and (max-width: 479px) {
  .linearize-table {
    /* Helpers */ }
    .linearize-table tr,
    .linearize-table th,
    .linearize-table td {
      display: block; }
    .linearize-table thead th {
      border-right: 0;
      border-left: 0; }
    .linearize-table thead th.lin-hide {
      display: none; }
    .linearize-table thead th:nth-child(1n+2) {
      display: none; }
    .linearize-table tbody tr {
      position: relative;
      border-bottom: 1px solid #CCCCCC; }
    .linearize-table tbody td {
      padding: 0 10px 4px;
      border-right: 0;
      border-bottom: 0; }
    .linearize-table tbody td.lin-hide {
      display: none; }
    .linearize-table tbody td:first-child {
      padding-top: 10px; }
    .linearize-table tbody td:first-child,
    .linearize-table tbody td:first-child h3 {
      font-weight: bold; }
    .linearize-table tbody td[data-rwd-label] {
      text-align: left;
      padding-left: 30px; }
    .linearize-table tbody td[data-rwd-label]:before {
      content: attr(data-rwd-label) ":";
      font-size: 12px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      padding-right: 5px;
      text-transform: uppercase; }
    .linearize-table tfoot tr {
      display: block;
      text-align: right; }
    .linearize-table tfoot tr:after {
      content: '';
      display: table;
      clear: both; }
    .linearize-table tfoot td {
      display: block;
      float: left; }
    .linearize-table tfoot td.lin-hide {
      display: none; }
    .linearize-table tfoot td:nth-child(odd) {
      clear: left;
      width: 60%; }
    .linearize-table tfoot td:nth-child(even) {
      text-align: left;
      width: 40%; }
    .linearize-table .linearize-hide {
      display: none; }
    .linearize-table .linearize-unpad {
      padding: 0; }
    .linearize-table .linearize-show {
      display: block; } }

@media only screen and (max-width: 599px) {
  .linearize-table-large {
    /* Helpers */ }
    .linearize-table-large tr,
    .linearize-table-large th,
    .linearize-table-large td {
      display: block; }
    .linearize-table-large thead th {
      border-right: 0;
      border-left: 0; }
    .linearize-table-large thead th.lin-hide {
      display: none; }
    .linearize-table-large thead th:nth-child(1n+2) {
      display: none; }
    .linearize-table-large tbody tr {
      position: relative;
      border-bottom: 1px solid #CCCCCC; }
    .linearize-table-large tbody td {
      padding: 0 10px 4px;
      border-right: 0;
      border-bottom: 0; }
    .linearize-table-large tbody td.lin-hide {
      display: none; }
    .linearize-table-large tbody td:first-child {
      padding-top: 10px; }
    .linearize-table-large tbody td:first-child,
    .linearize-table-large tbody td:first-child h3 {
      font-weight: bold; }
    .linearize-table-large tbody td[data-rwd-label] {
      text-align: left;
      padding-left: 30px; }
    .linearize-table-large tbody td[data-rwd-label]:before {
      content: attr(data-rwd-label) ":";
      font-size: 12px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      padding-right: 5px;
      text-transform: uppercase; }
    .linearize-table-large tfoot tr {
      display: block;
      text-align: right; }
    .linearize-table-large tfoot tr:after {
      content: '';
      display: table;
      clear: both; }
    .linearize-table-large tfoot td {
      display: block;
      float: left; }
    .linearize-table-large tfoot td.lin-hide {
      display: none; }
    .linearize-table-large tfoot td:nth-child(odd) {
      clear: left;
      width: 60%; }
    .linearize-table-large tfoot td:nth-child(even) {
      text-align: left;
      width: 40%; }
    .linearize-table-large .linearize-hide {
      display: none; }
    .linearize-table-large .linearize-unpad {
      padding: 0; }
    .linearize-table-large .linearize-show {
      display: block; } }

@media only screen and (min-width: 600px) {
  .linearize-table .linearize-collapse {
    display: none; } }

/* ============================================ *
 * Global
 * ============================================ */
html,
body {
  height: 100%; }

.wrapper {
  min-width: 320px;
  min-height: 100%;
  margin: 0 auto; }

.wrapper:after {
  content: '';
  display: table;
  clear: both; }

/* ============================================ *
 * Header
 * ============================================ */
.page-header {
  position: static; }

@media only screen and (min-width: 771px) {
  .page-header {
    position: relative; } }

.header-language-container,
.page-header {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.account-cart-wrapper {
  display: inline-block; }

/* ============================================ *
 * Language switcher + welcome message
 * ============================================ */
.form-language {
  display: none;
  position: relative; }
  @media only screen and (min-width: 600px) {
    .form-language {
      display: inline-block;
      margin-right: 15px; } }
  .form-language select::-ms-expand {
    display: none; }
  .form-language:after {
    display: block;
    content: "";
    background: url(../images/icon-lang-switch.svg);
    width: 11px;
    height: 7px;
    background-size: 11px;
    position: absolute;
    right: 11px;
    top: 18px; }

#select-language {
  display: inline-block;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  padding: 0;
  background: transparent; }

.header-language-container {
  padding: 15px;
  padding-top: 12px;
  padding-bottom: 0;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto; }
  .header-language-container:after {
    content: '';
    display: table;
    clear: both; }

.welcome-msg {
  display: none; }

/* @include bp(min-width, $bp-medium + 1) {

        .welcome-msg {
            display: block;
            float: right;
            width: 50%;
            text-align: right;
        }

    }*/
/* ============================================ *
 * Logo
 * ============================================ */
.logo-wrapper {
  display: block;
  width: 70px;
  position: absolute;
  right: 15px;
  top: 15px; }
  .logo-wrapper .logo img {
    width: 100%;
    max-width: 100%; }
    .logo-wrapper .logo img.small {
      display: inline; }
    .logo-wrapper .logo img.large {
      display: none; }

@media only screen and (min-width: 600px) {
  .logo-wrapper {
    width: 80px; } }

@media only screen and (min-width: 771px) {
  .logo-wrapper {
    text-align: right;
    width: 100%;
    position: relative;
    max-width: 1500px;
    margin: auto; }
    .logo-wrapper .logo {
      display: inline-block;
      margin-right: 10px; }
      .logo-wrapper .logo img.small {
        display: none; }
      .logo-wrapper .logo img.large {
        display: inline; } }

/* ============================================ *
 * Skip Links
 * ============================================ */
.skip-links {
  clear: both;
  overflow: hidden; }
  @media only screen and (min-width: 771px) {
    .skip-links {
      padding-left: 10px; } }

@media only screen and (min-width: 901px) {
  .skip-links {
    width: 70%;
    float: left; } }

/* -------------------------------------------- *
 * Skip - Link
 */
.skip-link, #select-language {
  position: relative;
  height: 44px;
  font-size: 17px;
  color: #4c4c4e;
  line-height: 42px;
  text-align: left; }
  @media only screen and (min-width: 600px) {
    .skip-link, #select-language {
      margin-right: 24px; } }
  .skip-link img, #select-language img {
    margin-right: 10px; }
  .skip-link:hover, .skip-link:active, .skip-link:visited, #select-language:hover, #select-language:active, #select-language:visited {
    color: #4c4c4e !important;
    outline: none; }

a.skip-link {
  text-decoration: none; }

.skip-link img.image-icon {
  margin-top: -3px; }

/* -------------------------------------------- *
 * Skip Link - Label
 */
.skip-link .label {
  display: none; }

@media only screen and (min-width: 600px) {
  .skip-link .label {
    display: inline; } }

/* ============================================ *
 * Skip Content
 * ============================================ */
.skip-content {
  display: none; }

@media only screen and (min-width: 901px) {
  #header-nav {
    display: block;
    margin-top: 35px; } }

@media only screen and (min-width: 771px) {
  #header-nav {
    margin-top: 0; } }

.skip-content.skip-active {
  display: block;
  background: #EDEDED; }

/* ============================================ *
 * Global Header Navigation
 * ============================================ */
@media only screen and (max-width: 770px) {
  .account-cart-wrapper {
    position: static; } }

/* ============================================ *
 * Nav - Skip Link
 * ============================================ */
.skip-nav:not(.skip-active):hover {
  text-decoration: none; }

.skip-nav .label {
  display: inline; }

.skip-nav .icon {
  background-position: 4px 4px; }

@media only screen and (min-width: 901px) {
  .skip-nav {
    display: none; } }

/* ============================================ *
 * Nav Primary
 * ============================================ */
@media only screen and (min-width: 901px) {
  .nav-primary {
    display: block;
    margin-top: 10px; } }

/* ============================================ *
 * General Navigation Styles
 * ============================================ */
.nav-primary a {
  text-decoration: none;
  position: relative;
  display: block;
  color: #003b5f;
  line-height: 30px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.nav-primary .menu-active > ul.level0,
.nav-primary li.level0 li.sub-menu-active > ul {
  display: block; }

.nav-primary li.level0 > a {
  text-transform: uppercase; }

.active a.level0 {
  color: #1f86bd; }

a.level0.active {
  color: #1f86bd; }

.cms-index-index a.level0.active {
  color: #003b5f; }
  .cms-index-index a.level0.active:hover {
    color: #1f86bd; }

/* ============================================ *
 * Small Viewports - Accordion Style Menu
 * ============================================ */
.mobile-only {
  display: none; }

.mobile-nav-controls {
  display: none; }

@media only screen and (max-width: 599px) {
  .skip-cart img.image-icon {
    width: 27px;
    margin-left: 5px; } }

@media only screen and (max-width: 900px) {
  body.nav-open {
    overflow: hidden; }
  .skip-active .mobile-nav-controls {
    display: block;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
    padding: 20px;
    background: white;
    box-sizing: border-box;
    width: 100%; }
    .skip-active .mobile-nav-controls .form-language {
      display: none; }
  #header-nav-container {
    width: 100%;
    height: 100%;
    background: white;
    top: 0;
    left: 0;
    position: fixed;
    z-index: 999;
    -webkit-transition: -webkit-transform .3s ease;
    transition: -webkit-transform .3s ease;
    transition: transform .3s ease;
    transition: transform .3s ease, -webkit-transform .3s ease; }
  img.image-icon.nav-control-left {
    margin-left: 15px;
    pointer-events: none;
    opacity: 0;
    -webkit-transition: opacity .15s ease;
    transition: opacity .15s ease; }
    img.image-icon.nav-control-left.is-visible {
      pointer-events: auto;
      opacity: 1; }
  nav#nav {
    height: 100%;
    overflow: scroll; }
  #header-nav ul, #header-nav ol {
    padding-top: 95px;
    padding-bottom: 35px;
    box-sizing: border-box; }
    #header-nav ul li, #header-nav ol li {
      padding: 0 20px; }
      #header-nav ul li a, #header-nav ol li a {
        padding: 7px 0 5px 0;
        font-size: 24px;
        text-transform: uppercase;
        border-bottom: 1px dotted #003b5f; }
      #header-nav ul li.view-all > a, #header-nav ol li.view-all > a {
        border-top: 1px dotted #003b5f; }
  #header-nav .nav-1 ul li.first > a {
    border-top: 1px dotted #003b5f; }
  #header-nav li.nav-1.first > a {
    border-top: 1px dotted #003b5f; }
  .nav-primary ul.level0,
  .nav-primary ul.level1,
  .nav-primary ul.level2 {
    width: 100%;
    position: absolute;
    left: 100%;
    background: white;
    top: 0;
    height: 100%;
    z-index: 999; }
  .nav-primary li.level0 ul {
    display: none; }
  li.support-block {
    display: none; } }

@media only screen and (max-width: 600px) {
  .skip-active .mobile-nav-controls .form-language {
    display: inline-block;
    float: right; }
    .skip-active .mobile-nav-controls .form-language #select-language {
      font-size: 26px;
      line-height: 1;
      height: auto;
      color: #a5a5a4; }
    .skip-active .mobile-nav-controls .form-language:after {
      display: none; } }

/* ============================================ *
 * Large Viewports - Dropdown Menu
 * ============================================ */
@media only screen and (min-width: 901px) {
  .nav-primary {
    position: relative;
    /* Default styles for 1+ drop-down menus */
    /* Level 2+ */ }
    .nav-primary li a {
      outline: 0 !important; }
    .nav-primary a.level0 {
      margin-right: 28px;
      font-size: 24px;
      padding-bottom: 10px; }
    .nav-primary .view-all {
      display: none; }
    .nav-primary .menu-active a.level0.has-children:before {
      content: "\A";
      border-style: solid;
      border-width: 0 15px 15px 15px;
      border-color: transparent transparent white transparent;
      position: absolute;
      bottom: -3px;
      left: 50%;
      margin-left: -15px; }
    .nav-primary li.level0,
    .nav-primary a.level0 {
      display: inline-block; }
    .nav-primary a:hover,
    .nav-primary li:hover > a {
      color: #1f86bd; }
    .nav-primary .menu-active {
      z-index: 200; }
    .nav-primary li.level0 ul {
      background: white;
      position: absolute;
      left: 0;
      top: 40px;
      /* Height of ".nav-primary a.level0" */
      padding: 35px 0;
      z-index: 999;
      display: none;
      /* Hide until displayed. */
      width: 80%;
      min-height: 180px;
      box-sizing: border-box; }
      .nav-primary li.level0 ul > li a {
        font-size: 17px;
        text-transform: uppercase;
        color: #5b5b5a; }
        .nav-primary li.level0 ul > li a:hover {
          color: #003b5f; }
      .nav-primary li.level0 ul li {
        padding: 3px 20px;
        margin: 8px 0 7px 0; }
        .nav-primary li.level0 ul li.support-block {
          margin: 0; }
        .nav-primary li.level0 ul li a {
          line-height: 1.3; }
        .nav-primary li.level0 ul li.productfinder-link {
          margin-top: 35px; }
          .nav-primary li.level0 ul li.productfinder-link a {
            line-height: 1.3; }
      .nav-primary li.level0 ul .support-block {
        position: absolute;
        height: 100%;
        width: 25%;
        display: block;
        right: 0;
        padding: 35px 20px;
        top: -1px;
        border-left: 1px dotted #003b5f;
        font-family: Arial, sans-serif;
        box-sizing: border-box; }
        .nav-primary li.level0 ul .support-block span.phone {
          font-size: 20px;
          margin-bottom: 5px; }
        .nav-primary li.level0 ul .support-block .left {
          width: 64%;
          position: relative;
          z-index: 999; }
        .nav-primary li.level0 ul .support-block h3, .nav-primary li.level0 ul .support-block .h3 {
          font-size: 17px;
          border: none;
          margin-bottom: 5px; }
        .nav-primary li.level0 ul .support-block img {
          position: absolute;
          width: 60%;
          right: 0;
          height: auto;
          bottom: -1px;
          z-index: 99; }
      .nav-primary li.level0 ul:before {
        display: block;
        height: 35px;
        content: "";
        top: 0;
        left: 0;
        position: absolute;
        width: 80%;
        background: white;
        z-index: 9999; }
      .nav-primary li.level0 ul:after {
        display: block;
        height: 35px;
        content: "";
        bottom: 0;
        left: 0;
        position: absolute;
        width: 80%;
        background: white;
        z-index: 9999; }
    .nav-primary li.nav-1.level0 ul,
    .nav-primary li.nav-3.level0 ul {
      width: 100%; }
    .nav-primary li.nav-1.level0 ul > li.level1 {
      width: 25%; }
    .nav-primary li.nav-4.level0 ul,
    .nav-primary li.nav-5.level0 ul {
      width: 50%; }
    .nav-primary li.nav-4.level0 > ul,
    .nav-primary li.nav-5.level0 > ul {
      left: auto; }
    .nav-primary li.level0 > li {
      width: 33.333%;
      box-sizing: border-box; }
    .nav-primary li.nav-1.level0 > li,
    .nav-primary li.nav-3.level0 > li {
      width: 25%; }
    .nav-primary li.nav-4.level0 > li,
    .nav-primary li.nav-5.level0 > li {
      width: 50%; }
    .nav-primary li.level1 ul {
      left: 33.333%;
      top: 0;
      width: 33.333%;
      height: 100%;
      border-left: 1px dotted #807e82; }
      .nav-primary li.level1 ul li {
        width: 100%;
        box-sizing: border-box; }
      .nav-primary li.level1 ul li a {
        font-family: Arial, sans-serif;
        font-size: 14px;
        text-transform: none; }
    .nav-primary .nav-1 li.level1 ul,
    .nav-primary .nav-3 li.level1 ul {
      left: 25%;
      width: 25%; }
    .nav-primary .nav-1 li.level2 ul,
    .nav-primary .nav-3 li.level2 ul {
      left: 100%;
      width: 100%; }
    .nav-primary .nav-4 li.level1 ul,
    .nav-primary .nav-5 li.level1 ul {
      left: 50%;
      width: 50%; } }

.nav-product-targets a {
  display: none;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif !important;
  font-size: 17px !important;
  color: #003b5f !important; }
  .nav-product-targets a img {
    margin-bottom: 10px; }
  .nav-product-targets a.is-visible {
    display: block; }

.nav-product-triggers a {
  margin-bottom: 11px; }

.nav-primary li.menu-active > ul {
  display: block; }

/* ============================================ *
 * Search - Skip Link
 * ============================================ */
/* ============================================ *
 * Search - Skip Content
 * ============================================ */
.skip-search .image-icon {
  margin-top: -6px; }
  @media only screen and (max-width: 599px) {
    .skip-search .image-icon {
      width: 26px;
      margin-top: -2px; } }

@media only screen and (max-width: 599px) {
  #header-search {
    position: absolute;
    top: 14px;
    padding: 0 15px;
    width: 64%;
    z-index: 999;
    box-sizing: border-box;
    display: none;
    right: 0; }
    #header-search.skip-active {
      display: block; }
  .skip-search {
    margin-left: 5px; } }

@media only screen and (max-width: 372px) {
  #header-search {
    width: 60%; } }

@media only screen and (min-width: 600px) {
  .skip-search {
    display: none;
    margin-left: 5px; }
  #header-search {
    display: inline-block;
    padding: 0; }
    #header-search input {
      background: transparent;
      padding: 8px 10px 6px 10px;
      padding-left: 40px;
      width: 120px;
      margin-right: 14px;
      -webkit-transition: background .15s ease-out, width .15s ease-out;
      transition: background .15s ease-out, width .15s ease-out;
      cursor: pointer; }
      #header-search input:focus {
        background: white;
        width: 260px; }
    #header-search .search_mini_form .search-button {
      display: none; }
    #header-search .input-box ::-webkit-input-placeholder {
      color: #4c4c4e; }
    #header-search .input-box :-moz-placeholder {
      /* Firefox 18- */
      color: #4c4c4e; }
    #header-search .input-box ::-moz-placeholder {
      /* Firefox 19+ */
      color: #4c4c4e; }
    #header-search .input-box :-ms-input-placeholder {
      color: #4c4c4e; }
    #header-search .input-box:before {
      display: block;
      content: '';
      position: absolute;
      left: 10px;
      top: 50%;
      width: 20px;
      height: 20px;
      background: url(../images/icon-search.svg);
      background-size: contain;
      margin-top: -12px; } }

/* ============================================ *
 * Search Input
 * ============================================ */
.search_mini_form .input-box {
  position: relative;
  padding-top: 0; }

.search_mini_form label {
  display: none; }

#search {
  width: 100%;
  height: 40px;
  height: auto;
  padding-right: 40px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.search_mini_form .search-button {
  text-indent: -9999px;
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  border: 0;
  background: none; }

.search_mini_form .search-button:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 29px;
  height: 29px;
  margin-top: -14px;
  margin-left: -15px;
  background: url(../images/icon-search-blue.svg);
  background-repeat: no-repeat; }

.search_mini_form .search-button:active:before {
  margin-top: -13px;
  margin-left: -13px; }

/* ============================================ *
 * Header - Account
 * ============================================ */
/* -------------------------------------------- *
 * Skip Link - Account
 */
.skip-account:not(.skip-active):hover .icon {
  background-position: -46px -44px; }

.skip-account .icon {
  background-position: 4px -44px; }

@media only screen and (min-width: 771px) {
  .skip-account {
    float: none;
    width: auto;
    vertical-align: top;
    display: inline-block;
    padding: 0 10px;
    text-transform: uppercase; }
  #header-account.skip-active {
    background: #FBFBFB;
    border: solid 1px #CCCCCC;
    display: block;
    position: absolute;
    z-index: 200;
    top: 40px;
    right: 115px;
    width: 200px; }
  #header-account a {
    display: block;
    padding: 5px 10px;
    color: #003b5f;
    line-height: 2; }
  #header-account a:hover {
    color: #1f86bd; } }

/* -------------------------------------------- *
 * Account Links
 */
#header-account {
  padding: 5px 0; }

#header-account a {
  position: relative;
  display: block;
  padding: 5px 10px;
  line-height: 23px;
  text-align: center; }

#header-account a:hover {
  color: #1f86bd; }

/* ============================================ *
 * Header - Cart
 * ============================================ */
/* -------------------------------------------- *
 * Skip Link - Cart
 */
@media only screen and (min-width: 771px) {
  .skip-cart {
    width: auto; }
  #header-cart.skip-active {
    background: #FBFBFB;
    border: solid 1px #CCCCCC;
    display: block;
    position: absolute;
    z-index: 200;
    top: 40px;
    right: 0;
    width: 320px;
    background: white; } }

/* -------------------------------------------- *
 * Skip Cart Notifier
 */
.skip-cart {
  position: relative; }

.skip-cart .count {
  display: block;
  top: -12px;
  left: 12px;
  width: 18px;
  height: 18px;
  position: absolute;
  font-size: 12px;
  color: white;
  border-radius: 100%;
  background: #1f86bd;
  line-height: 20px;
  text-align: center; }

.skip-link.skip-active .count {
  color: white; }

.skip-cart.no-count .count {
  display: none; }

@media only screen and (max-width: 599px) {
  .skip-cart .count {
    left: 20px; } }

@media only screen and (min-width: 771px) {
  .skip-cart:hover {
    text-decoration: none; }
  .skip-link.skip-active .count {
    color: #1f86bd; } }

.skip-cart .count.empty {
  display: none; }

/* -------------------------------------------- *
 * Mini Cart - Empty
 */
.cart-menu .empty {
  padding: 20px;
  text-align: center; }

/* -------------------------------------------- *
 * Mini Cart - Full
 */
/* Actions */
.cart-menu .actions {
  overflow: hidden;
  padding: 15px; }

.cart-menu .actions .button {
  float: left;
  width: 48%; }

.cart-menu .actions .button + .button {
  margin-left: 4%; }

/* Subtotal */
.cart-menu .subtotal {
  padding: 0 15px 15px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  line-height: 1.2; }

/* List */
.mini-cart-list {
  margin-bottom: 5px; }

.mini-cart-list li {
  position: relative;
  min-height: 90px;
  padding: 15px 15px 15px 90px;
  border-top: 1px solid #CCCCCC;
  font-size: 13px;
  line-height: 1.35; }

.mini-cart-list .product-name {
  display: inline-block; }

.mini-cart-list .product-image {
  position: absolute;
  left: 15px;
  top: 15px; }

.mini-cart-list .product-image img {
  width: 60px;
  height: 60px; }

.mini-cart-list .has-options {
  margin-bottom: 0;
  color: #5b5b5a;
  font-size: 12px; }

/* Too full - additional items will be shown in cart */
.cart-menu .last-added {
  padding: 10px 15px 15px;
  border-top: 1px solid #CCCCCC;
  font-size: 13px; }

/* ============================================ *
 * Footer
 * ============================================ */
/* -------------------------------------------- *
 * Footer
 */
.footer-container {
  margin-bottom: 25px; }
  @media only screen and (min-width: 600px) {
    .footer-container {
      margin-bottom: 60px; } }

.footer {
  clear: both;
  width: 100%;
  border-top: 1px dotted #003b5f;
  padding-top: 80px;
  /* -------------------------------------------- *
     * Social icons
     */ }
  @media only screen and (max-width: 479px) {
    .footer {
      padding-top: 15px; } }
  .footer .block-title {
    border-bottom: 0; }
  .footer .block-title strong {
    font-weight: normal;
    font-size: 20px;
    color: #003b5f; }
  .footer h5 {
    margin-bottom: 4px; }
  .footer .links {
    float: left;
    width: 25%;
    box-sizing: border-box;
    padding-right: 10px;
    margin-bottom: 35px; }
    .footer .links img {
      display: inline-block;
      vertical-align: middle;
      margin-left: 5px; }
    .footer .links li {
      word-break: break-all;
      line-height: 1.3;
      padding: 4px 0;
      font-size: 14px; }
    .footer .links.payment-methods li {
      line-height: 1.8; }
    .footer .links a {
      color: #003b5f;
      font-size: 14px; }
      .footer .links a:hover {
        color: #1f86bd;
        text-decoration: none;
        border: none; }
  .footer .block-subscribe {
    float: right;
    width: 320px;
    margin-bottom: 35px; }
  .footer .links,
  .footer .block-subscribe {
    font-size: 12px; }
  .footer .form-subscribe-header {
    display: none; }
  .footer .links.social-media em {
    background-image: url(../images/social_icons.png);
    background-repeat: no-repeat;
    width: 13px;
    vertical-align: middle;
    display: inline-block;
    margin-right: 7px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) {
    .footer .links.social-media em {
      background-image: url(../images/social_icons@2x.png);
      background-size: 50px 125px; } }
  .footer .links.social-media em.facebook {
    background-position: 0 -0px;
    height: 13px; }
  .footer .links.social-media a:hover em.facebook {
    background-position: -25px -0px; }
  .footer .links.social-media em.twitter {
    background-position: 0 -24px;
    height: 13px; }
  .footer .links.social-media a:hover em.twitter {
    background-position: -25px -24px; }
  .footer .links.social-media em.youtube {
    background-position: 0 -49px;
    height: 13px; }
  .footer .links.social-media a:hover em.youtube {
    background-position: -25px -49px; }
  .footer .links.social-media em.pinterest {
    background-position: 0 -74px;
    height: 15px; }
  .footer .links.social-media a:hover em.pinterest {
    background-position: -25px -74px; }
  .footer .links.social-media em.rss {
    background-position: 0 -99px;
    height: 13px; }
  .footer .links.social-media a:hover em.rss {
    background-position: -25px -99px; }
  .footer .block-subscribe .input-box {
    float: left;
    width: 65.625%;
    padding-top: 0; }
  .footer .block-subscribe .input-text {
    width: 100%;
    border-right: 0; }
  .footer .block-subscribe .block-content {
    padding-top: 7px; }
    .footer .block-subscribe .block-content:after {
      content: '';
      display: table;
      clear: both; }
  .footer .block-subscribe .actions {
    float: left;
    width: 34.375%;
    margin: 0; }
  .footer .block-subscribe .actions .button {
    height: 30px;
    line-height: 17px;
    float: left; }
  .footer .bugs,
  .footer address {
    clear: both; }
  .footer .bugs {
    display: none; }
  .footer .form-language,
  .footer .currency-switcher,
  .footer .store-switcher {
    clear: both;
    margin-bottom: 10px; }
  .footer .form-language,
  .footer .currency-switcher {
    display: none; }
  .footer address {
    font-size: 14px;
    width: 100%;
    color: #5b5b5a;
    margin-top: 35px; }
    @media only screen and (min-width: 599px) {
      .footer address {
        font-size: 13px; } }
    .footer address a {
      color: #5b5b5a; }
      .footer address a:hover {
        text-decoration: none; }
  @media only screen and (max-width: 1199px) {
    .footer .links {
      width: 22.65625%;
      padding-right: 0;
      margin-right: 3.125%; }
    .footer .links:nth-child(4) {
      margin-right: 0; }
    .footer .block-subscribe {
      clear: both;
      float: none;
      margin: 0 auto 35px auto; } }
  @media only screen and (max-width: 770px) {
    .footer .form-language,
    .footer .currency-switcher {
      display: block; } }
  @media only screen and (max-width: 599px) {
    .footer .links {
      width: 48.4375%;
      margin-right: 0; }
    .footer .links:nth-child(odd) {
      margin-right: 3.125%;
      clear: both; }
    .footer .block-subscribe {
      clear: both;
      float: left;
      width: 100%; } }

.catalog-product-view .footer {
  border: none;
  padding-top: 0; }

/* ================================================= *
 * General Product List Styles (not module-specific)
 * ================================================= */
/* -------------------------------------------- *
 * Product List General
 */
.category-title h1,
body.catalogsearch-result-index .page-title h1 {
  border-bottom: none; }

@media only screen and (min-width: 600px) {
  .catalogsearch-result-index .page-title {
    padding-bottom: 35px; } }

.catalogsearch-result-index .page-title h1 {
  text-transform: uppercase; }

@media only screen and (max-width: 599px) {
  .catalogsearch-result-index .sidebar {
    margin-top: 70px; } }

.category-image {
  margin-bottom: 1.5em; }

.products-list .action .button,
.products-grid .actions .button {
  white-space: normal; }

/* -------------------------------------------- *
 * Product Name
 */
h2.product-name,
h3.product-name,
h4.product-name,
h5.product-name,
p.product-name {
  margin: 0;
  margin-bottom: 0.5em;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.2;
  font-size: 13px;
  font-family: Arial, sans-serif;
  font-weight: normal;
  line-height: 1.4; }
  h2.product-name a,
  h3.product-name a,
  h4.product-name a,
  h5.product-name a,
  p.product-name a {
    color: #003b5f; }
    h2.product-name a:hover,
    h3.product-name a:hover,
    h4.product-name a:hover,
    h5.product-name a:hover,
    p.product-name a:hover {
      color: #1f86bd;
      text-decoration: none; }

.products-grid .product-name,
.products-list .product-name {
  text-align: left;
  padding: 15px 0;
  border-bottom: 1px dotted #003b5f;
  font-size: 14px; }
  .products-grid .product-name a,
  .products-list .product-name a {
    font-family: Arial, sans-serif;
    color: #003b5f;
    cursor: pointer; }

/* ============================================ *
 * Product Grid
 * ============================================ */
.products-grid {
  position: relative; }

.products-grid:after {
  content: '';
  display: table;
  clear: both; }

.products-grid > li {
  position: relative;
  margin-bottom: 20px;
  text-align: center; }
  .products-grid > li:after {
    content: '';
    display: table;
    clear: both; }

.badge-new, .badge-custom {
  width: 60px !important;
  height: 60px !important;
  line-height: 60px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  background: #6cb315;
  border-radius: 100%;
  color: white;
  position: absolute;
  right: 0;
  bottom: 0;
  text-align: center;
  -webkit-transform: rotate(-5deg);
          transform: rotate(-5deg); }
  @media only screen and (min-width: 600px) {
    .badge-new, .badge-custom {
      font-size: 32px;
      width: 90px !important;
      height: 90px !important;
      line-height: 90px;
      right: 2px;
      bottom: 10px; } }

.badge-custom {
  right: auto;
  bottom: auto;
  left: 0;
  top: 0; }
  @media only screen and (min-width: 600px) {
    .badge-custom {
      left: 2px;
      top: 10px; } }

.nav-primary .badge-new, .nav-primary .badge-custom {
  width: 60px !important;
  height: 60px !important;
  line-height: 60px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 20px;
  background: #6cb315;
  border-radius: 100%;
  color: white;
  position: absolute;
  right: 0;
  bottom: 0;
  text-align: center;
  -webkit-transform: rotate(-5deg);
          transform: rotate(-5deg); }
  @media only screen and (min-width: 600px) {
    .nav-primary .badge-new, .nav-primary .badge-custom {
      font-size: 20px;
      width: 60px !important;
      height: 60px !important;
      line-height: 60px;
      right: -10px;
      bottom: auto;
      top: 60px; } }

.nav-primary .badge-custom {
  border-radius: 0;
  background: none;
  -webkit-transform: none;
          transform: none;
  right: auto;
  bottom: auto;
  left: -10px;
  top: 0; }

.badge-custom {
  border-radius: 0;
  background: none;
  -webkit-transform: none;
          transform: none; }

.product-image {
  position: relative;
  height: auto;
  display: block; }
  .product-image:hover .badge-new {
    text-decoration: none; }

.catalog-category-view .product-category .product .product-image, #block-productfinder .product-image, .box-up-sell-slider .product-image, .catalogsearch-result-index .product-image {
  width: 100%;
  padding: 0 15%;
  margin: auto;
  box-sizing: border-box; }

.products-grid .product-image {
  margin-bottom: 15px; }

.products-grid .product-image img {
  width: 100%;
  height: auto; }
  .products-grid .product-image img:hidden {
    display: none; }

.widget-new-products .products-grid .product-image {
  width: 75%;
  margin-bottom: 15px;
  margin-left: 10%; }

.products-grid .product-info {
  position: relative; }

.products-grid .actions {
  padding-top: 10px;
  position: absolute;
  bottom: 0px;
  min-height: 85px;
  width: 100%; }

.products-grid .ratings .rating-box {
  margin: 0 auto; }

.products-grid .ratings .amount {
  display: none; }

.products-grid .price-box {
  color: #5b5b5a;
  font-size: 13px;
  margin: 0 0 5px; }

.products-grid .add-to-links {
  margin-bottom: 0; }

/* Config: Two columns + flexible gutter */
.products-grid > li {
  float: left;
  width: 47.72727%;
  margin-right: 4.54545%; }

.products-grid > li:nth-child(odd) {
  clear: left; }

.products-grid > li:nth-child(even) {
  margin-right: 0; }

.products-grid .product-image {
  margin-bottom: 5px; }
  .products-grid .product-image:before, .products-grid .product-image:after {
    content: '';
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    display: none; }
  .products-grid .product-image:before {
    background-color: white;
    opacity: 0.8;
    z-index: 2; }
  .products-grid .product-image:after {
    background-image: url("../images/opc-ajax-loader.gif");
    background-repeat: no-repeat;
    background-position: center;
    z-index: 3; }
  .products-grid .product-image.loading {
    position: relative; }
    .products-grid .product-image.loading:before, .products-grid .product-image.loading:after {
      display: block; }

@media only screen and (min-width: 480px) {
  /* Config: Three columns + flexible gutter */
  .products-grid {
    /* Undo two-column config */
    /* Set three-column config */ }
    .products-grid > li:nth-child(odd) {
      clear: none; }
    .products-grid > li:nth-child(even) {
      margin-right: 3.77358%; }
    .products-grid > li {
      width: 30.81761%;
      margin-right: 3.77358%; }
    .products-grid > li:nth-child(3n+1) {
      clear: left; }
    .products-grid > li:nth-child(3n) {
      margin-right: 0; } }

@media only screen and (min-width: 960px) {
  /* Config: Columns + flexible gutter */
  /* Undo three-column config */
  .products-grid--max-4-col > li:nth-child(odd) {
    clear: none; }
  .products-grid--max-4-col > li:nth-child(3n+1) {
    clear: none; }
  .products-grid--max-4-col > li:nth-child(even),
  .products-grid--max-4-col > li:nth-child(3n) {
    margin-right: 2.24719%; }
  /* Set column config */
  .products-grid--max-4-col > li {
    margin-right: 2.24719%; }
  .products-grid--max-4-col > li {
    width: 23.31461%;
    margin-right: 2.24719%; }
  .products-grid--max-4-col > li:nth-child(4n+1) {
    clear: left; }
  .products-grid--max-4-col > li:nth-child(4n) {
    margin-right: 0; }
  /* Config: Columns + flexible gutter */
  /* Undo three-column config */
  .products-grid--max-5-col > li:nth-child(odd) {
    clear: none; }
  .products-grid--max-5-col > li:nth-child(3n+1) {
    clear: none; }
  .products-grid--max-5-col > li:nth-child(even),
  .products-grid--max-5-col > li:nth-child(3n) {
    margin-right: 2.24719%; }
  /* Set column config */
  .products-grid--max-5-col > li {
    margin-right: 2.24719%; }
  .products-grid--max-5-col > li {
    width: 18.20225%;
    margin-right: 2.24719%; }
  .products-grid--max-5-col > li:nth-child(5n+1) {
    clear: left; }
  .products-grid--max-5-col > li:nth-child(5n) {
    margin-right: 0; }
  /* Config: Columns + flexible gutter */
  /* Undo three-column config */
  .products-grid--max-6-col > li:nth-child(odd) {
    clear: none; }
  .products-grid--max-6-col > li:nth-child(3n+1) {
    clear: none; }
  .products-grid--max-6-col > li:nth-child(even),
  .products-grid--max-6-col > li:nth-child(3n) {
    margin-right: 2.24719%; }
  /* Set column config */
  .products-grid--max-6-col > li {
    margin-right: 2.24719%; }
  .products-grid--max-6-col > li {
    width: 14.79401%;
    margin-right: 2.24719%; }
  .products-grid--max-6-col > li:nth-child(6n+1) {
    clear: left; }
  .products-grid--max-6-col > li:nth-child(6n) {
    margin-right: 0; } }

/* ============================================ *
 * Product List
 * ============================================ */
.products-list {
  margin-top: 20px;
  margin-bottom: 20px; }
  .products-list > li {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #EDEDED; }
    .products-list > li:after {
      content: '';
      display: table;
      clear: both; }
    .products-list > li .product-image {
      float: left;
      width: 33.33333%; }
      .products-list > li .product-image img {
        width: 100%;
        max-width: 100%; }
  .products-list > li:last-child {
    padding-bottom: 0;
    border-bottom: none; }

.products-list .product-shop {
  float: right;
  width: 66.66667%;
  padding-left: 20px; }
  .products-list .product-shop .product-name {
    margin-bottom: 0; }
  .products-list .product-shop .ratings {
    margin: 0; }
    .products-list .product-shop .ratings .rating-box,
    .products-list .product-shop .ratings .rating-links {
      float: left;
      margin-right: 7px; }
    .products-list .product-shop .ratings .rating-links {
      margin-top: 4px; }
  .products-list .product-shop .price-box {
    margin-top: 0; }
  .products-list .product-shop .price-box .price {
    font-size: 24px; }
  .products-list .product-shop .action {
    margin: 7px 0; }
  .products-list .product-shop .desc {
    margin-top: 7px; }
  .products-list .product-shop .product-primary,
  .products-list .product-shop .desc {
    float: left;
    width: 65%;
    overflow: hidden; }
  .products-list .product-shop .product-secondary {
    float: right;
    width: 35%;
    text-align: right;
    clear: right; }

@media only screen and (min-width: 480px) {
  .products-list .product-name a {
    font-size: 24px; } }

@media only screen and (max-width: 1279px) {
  .products-list .product-shop .product-primary,
  .products-list .product-shop .desc {
    float: left;
    width: 60%;
    padding-right: 20px; }
  .products-list .product-shop .product-secondary {
    float: right;
    width: 40%; } }

@media only screen and (max-width: 600px) {
  .products-list .product-shop .price-box .special-price {
    padding-left: 0; }
  .products-list .product-shop .product-primary,
  .products-list .product-shop .product-secondary,
  .products-list .product-shop .desc {
    float: none;
    width: 100%;
    padding-right: 0;
    text-align: left; } }

/* ============================================ *
 * Mini Product List
 * ============================================ */
.mini-products-list .product-image {
  float: left;
  min-width: 50px; }

.mini-products-list .product-details {
  margin-left: 60px; }

.mini-products-list .product-details .product-name {
  padding-top: 10px; }

.mini-products-list li {
  margin-bottom: 10px;
  clear: both; }
  .mini-products-list li:after {
    content: '';
    display: table;
    clear: both; }

.mini-products-images-list:after {
  content: '';
  display: table;
  clear: both; }

.mini-products-images-list li.item {
  float: left;
  width: 50%;
  margin: 0;
  padding: 0 5px 10px 0; }
  .mini-products-images-list li.item:nth-child(even) {
    padding-right: 0;
    padding-left: 5px; }
  .mini-products-images-list li.item .product-image {
    display: block; }
    .mini-products-images-list li.item .product-image img {
      width: 100%;
      max-width: 100%; }

/* ============================================ *
 * Catalog - List
 * ============================================ */
.category-image {
  border: 1px solid #CCCCCC;
  padding: 10px; }
  .category-image img {
    width: 100%;
    max-width: 100%; }
    .category-image img:hidden {
      display: none; }

/* ============================================ *
 * Layered Navigation
 * ============================================ */
.block-layered-nav .block-subtitle--filter {
  display: none;
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none;
  font-weight: normal;
  margin-bottom: 0px;
  padding: 7px 10px 7px 24px;
  border-width: 1px;
  border-style: solid;
  border-color: #CCCCCC;
  position: relative;
  background-color: #F4F4F4;
  cursor: pointer; }
  .block-layered-nav .block-subtitle--filter:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    border-top: 4px solid #1f86bd;
    border-bottom: none;
    left: 10px;
    top: 50%;
    margin-top: -3px; }
  .block-layered-nav .block-subtitle--filter:hover {
    background-color: shade(#F4F4F4, 3%); }

.block-layered-nav .block-content .toggle-tabs {
  display: none; }

.block-layered-nav .block-content > dl > dt {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none;
  font-weight: normal;
  margin-bottom: 0px;
  padding: 7px 10px 7px 24px;
  border-width: 1px;
  border-style: solid;
  border-color: #CCCCCC;
  position: relative;
  background-color: #F4F4F4;
  display: block; }
  .block-layered-nav .block-content > dl > dt:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    border-top: 4px solid #1f86bd;
    border-bottom: none;
    left: 10px;
    top: 50%;
    margin-top: -3px; }
  .block-layered-nav .block-content > dl > dt:hover {
    background-color: shade(#F4F4F4, 3%); }

.block-layered-nav .block-content > dl > dd {
  padding: 10px;
  margin: 0;
  border-width: 0 1px;
  border-style: solid;
  border-color: #CCCCCC; }

.block-layered-nav .block-content > dl > dd:last-child {
  border-width: 0 1px 1px 1px; }

.block-layered-nav dl dd {
  margin-bottom: 10px;
  margin-top: 10px; }
  .block-layered-nav dl dd ol > li > span, .block-layered-nav dl dd ol > li > a {
    padding: 5px 15px;
    display: block; }
  .block-layered-nav dl dd ol > li > a .count {
    color: #5b5b5a; }

@media only screen and (min-width: 771px) {
  .block-layered-nav .block-content > dl > dt {
    padding-left: 10px; }
    .block-layered-nav .block-content > dl > dt:after {
      display: none; } }

@media only screen and (max-width: 770px) {
  .sidebar .block.block-layered-nav {
    border-bottom: none; }
  .block-layered-nav--no-filters .block-title {
    display: none; }
  .block-layered-nav .block-content {
    padding-top: 0;
    margin-top: 15px; }
    .block-layered-nav .block-content > dl > dt {
      cursor: pointer;
      border-bottom-width: 0; }
      .block-layered-nav .block-content > dl > dt:hover {
        color: #1f86bd; }
      .block-layered-nav .block-content > dl > dt:after {
        content: '';
        position: absolute;
        width: 0;
        height: 0;
        display: block;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        border-left: 4px solid #1f86bd;
        border-right: none; }
      .block-layered-nav .block-content > dl > dt.last {
        border-bottom-width: 1px; }
    .block-layered-nav .block-content > dl > dd {
      display: none; }
    .block-layered-nav .block-content.accordion-open > dl > dt.current {
      border-bottom-width: 1px; }
    .block-layered-nav .block-content.accordion-open > dl > dt.current:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-right: 4px solid transparent;
      border-left: 4px solid transparent;
      border-top: 4px solid #1f86bd;
      border-bottom: none;
      left: 6px;
      top: 50%;
      margin-top: -3px; }
    .block-layered-nav .block-content.accordion-open > dl > dd.current {
      display: block; }
  .block-layered-nav .block-subtitle--filter {
    background-color: #1f86bd;
    border: 0;
    margin-bottom: 0;
    display: block;
    color: #FFFFFF; }
    .block-layered-nav .block-subtitle--filter:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-top: 4px solid transparent;
      border-bottom: 4px solid transparent;
      border-left: 4px solid #FFFFFF;
      border-right: none;
      right: 10px;
      top: 50%;
      margin-top: -5px; }
    .block-layered-nav .block-subtitle--filter:hover {
      background-color: #1b76a7;
      color: #FFFFFF; }
    .block-layered-nav .block-subtitle--filter.active:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-right: 4px solid transparent;
      border-left: 4px solid transparent;
      border-top: 4px solid #FFFFFF;
      border-bottom: none;
      right: 10px;
      top: 50%;
      margin-top: -3px; }
  #narrow-by-list,
  #narrow-by-list2 {
    padding: 10px;
    border: 1px solid #CCCCCC;
    border-top: 0; }
  .block-layered-nav dl ol > li > a,
  .block-layered-nav dl ol > li > span {
    padding: 7px;
    margin: 5px; }
  .block-layered-nav dl ol > li > a {
    color: #003b5f;
    background-color: #F4F4F4;
    padding: 5px 10px; }
    .block-layered-nav dl ol > li > a:hover {
      text-decoration: none;
      background: shade(#F4F4F4, 3%); } }

.block-layered-nav .currently .block-subtitle {
  display: block;
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4; }

.block-layered-nav .currently ol {
  padding-left: 10px;
  margin-bottom: 10px; }

.block-layered-nav .currently ol li {
  margin-bottom: 5px; }
  .block-layered-nav .currently ol li .label {
    font-weight: bold; }
  .block-layered-nav .currently ol li:after {
    content: '';
    display: table;
    clear: both; }

.block-layered-nav .actions {
  text-align: right;
  margin-bottom: 7px; }

.col1-layout-searchresults .col-main {
  float: none;
  max-width: 680px;
  margin: auto; }

.col1-layout-productoverview .main-container {
  padding-top: 0; }

.col1-layout-productoverview #header-nav {
  border-bottom: 1px dotted #003b5f;
  padding-bottom: 35px; }

.col1-layout-productoverview .footer {
  border-top: none; }

.col1-layout-productoverview .col-main {
  float: none;
  max-width: 680px;
  margin: auto; }

.col1-layout-productoverview .product-row {
  border-bottom: 1px dotted #003b5f;
  padding: 35px; }
  .col1-layout-productoverview .product-row h2 {
    text-transform: uppercase;
    margin-bottom: 20px; }
  .col1-layout-productoverview .product-row .product-col {
    text-align: center; }
  .col1-layout-productoverview .product-row .product-col-image {
    text-align: center; }
    .col1-layout-productoverview .product-row .product-col-image img {
      max-width: 260px;
      width: 80%;
      max-width: 260px;
      margin-bottom: 35px;
      display: inline-block; }
  @media only screen and (min-width: 600px) {
    .col1-layout-productoverview .product-row:after {
      content: '';
      display: table;
      clear: both; }
    .col1-layout-productoverview .product-row .product-col, .col1-layout-productoverview .product-row .product-col-image {
      float: right;
      width: 50%;
      padding: 0 10px;
      box-sizing: border-box; }
    .col1-layout-productoverview .product-row .product-col {
      padding-top: 90px;
      padding-bottom: 90px;
      text-align: left; }
    .col1-layout-productoverview .product-row .product-col-image {
      float: left;
      text-align: right; }
      .col1-layout-productoverview .product-row .product-col-image img {
        max-width: 260px;
        width: 100%;
        display: inline-block;
        margin-bottom: 0; }
    .col1-layout-productoverview .product-row:nth-child(even) .product-col-image {
      float: right;
      text-align: left; }
    .col1-layout-productoverview .product-row:nth-child(even) .product-col {
      float: left;
      text-align: right; } }

.col1-layout-productoverview .footer, .category-list .footer {
  border-top: none; }

.category-title {
  padding: 35px 0;
  border-top: 1px dotted #003b5f; }
  @media only screen and (max-width: 980px) {
    .category-title {
      padding-bottom: 5px; } }
  .category-title .col-main:after {
    content: '';
    display: table;
    clear: both; }
  @media only screen and (max-width: 980px) {
    .category-title .col-main {
      width: 100%; } }
  @media only screen and (max-width: 980px) {
    .category-title .col-right {
      display: none; } }
  .category-title .category-image-wrapper, .category-title .category-title-wrapper, .category-title .lightbox-content-link.desktop {
    position: relative; }
    @media only screen and (min-width: 600px) {
      .category-title .category-image-wrapper, .category-title .category-title-wrapper, .category-title .lightbox-content-link.desktop {
        height: 260px; } }
    @media only screen and (min-width: 1024px) {
      .category-title .category-image-wrapper, .category-title .category-title-wrapper, .category-title .lightbox-content-link.desktop {
        height: 340px; } }
  .category-title .category-image-wrapper h1 .subline, .category-title .category-title-wrapper h1 .subline {
    color: #1f86bd;
    text-transform: none;
    font-size: 24px;
    line-height: 28px;
    display: block; }
  @media only screen and (max-width: 599px) {
    .category-title .category-image-wrapper img, .category-title .category-title-wrapper img {
      width: 60%;
      margin: auto;
      margin-bottom: 10px; } }
  @media only screen and (min-width: 600px) {
    .category-title .category-image-wrapper, .category-title .category-title-wrapper {
      width: 50%;
      float: left; }
      .category-title .category-image-wrapper img, .category-title .category-image-wrapper .category-title-inner, .category-title .category-title-wrapper img, .category-title .category-title-wrapper .category-title-inner {
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%); } }
  @media only screen and (min-width: 600px) {
    .category-title .category-image-wrapper img {
      left: 50%;
      -webkit-transform: translate(-60%, -50%);
              transform: translate(-60%, -50%);
      margin-left: 25px;
      max-width: 300px; } }
  @media only screen and (min-width: 980px) {
    .category-title .lightbox-content-link.mobile {
      display: none; } }
  .category-title .lightbox-content-link.desktop {
    display: none; }
    .category-title .lightbox-content-link.desktop .lightbox-content-link-inner {
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%); }
  @media only screen and (min-width: 980px) {
    .category-title .lightbox-content-link.desktop {
      display: block; } }
  .category-title .lightbox-content-link a {
    margin: 5px 0; }
  .category-title h1 {
    font-size: 32px;
    text-transform: uppercase;
    padding: 0;
    margin: 0; }
    @media only screen and (max-width: 599px) {
      .category-title h1 {
        margin-bottom: 15px; } }

.product-collections {
  border-top: 1px dotted #003b5f; }
  .product-collections .sidebar {
    padding-top: 35px;
    padding-bottom: 35px; }
    .product-collections .sidebar h3, .product-collections .sidebar h4 {
      margin-top: 35px;
      font-size: 20px; }
    .product-collections .sidebar h3.support {
      border-bottom: 1px dotted #003b5f;
      padding-bottom: 10px; }
    .product-collections .sidebar p a {
      color: #003b5f;
      text-decoration: underline; }
      .product-collections .sidebar p a:hover {
        color: #1f86bd; }
    .product-collections .sidebar .phone {
      font-size: 24px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      margin-bottom: 10px; }

.product-category {
  padding: 35px 0; }
  .product-category ul {
    margin-left: -15px;
    margin-right: -15px; }
    .product-category ul:after {
      content: '';
      display: table;
      clear: both; }
    .product-category ul li.product {
      float: left;
      width: 50%;
      padding: 15px;
      box-sizing: border-box;
      display: block; }
      .product-category ul li.product img.product-image {
        max-width: none;
        width: 100%; }
      .product-category ul li.product .product-title {
        padding: 15px 0;
        border-bottom: 1px dotted #003b5f; }
        .product-category ul li.product .product-title a {
          color: #003b5f;
          cursor: pointer; }
          .product-category ul li.product .product-title a:hover {
            color: #1f86bd;
            text-decoration: none; }

@media only screen and (max-width: 599px) {
  .catalog-category-view .col-right .search_mini_form {
    display: none; } }

.product-view .category-name {
  text-transform: uppercase; }

.product-view #ajax-sku, .product-view #hidden-ajax-sku {
  display: none; }

.product-view #ajax-sku {
  margin-top: 5px; }

.product-view #image-main {
  width: 120%;
  max-width: 120%;
  margin-left: -10%; }

@media only screen and (min-width: 600px) {
  .product-view .product-col-img-box, .product-view .product-information {
    width: 50%;
    box-sizing: border-box;
    padding: 0 15px;
    float: left; } }

@media only screen and (min-width: 771px) {
  .product-view .product-information {
    float: none;
    width: auto;
    padding: 0; }
  .product-view .product-col-img-box, .product-view .product-col-description, .product-view .product-col-price {
    width: 33.33%;
    box-sizing: border-box;
    padding: 0 15px;
    float: left; } }

@media only screen and (min-width: 600px) {
  .product-view .product-col-description, .product-view .product-col-price {
    padding-top: 60px; } }

@media only screen and (max-width: 599px) {
  .product-view .short-description {
    padding-top: 20px; } }

.product-view .product-col-description .product-options label {
  padding-left: 1px; }

.product-view .sample-request {
  margin-top: 10px;
  margin-bottom: 35px; }
  @media only screen and (min-width: 771px) {
    .product-view .sample-request {
      margin-bottom: 40px; } }

.product-view .graduated-link {
  margin-top: 10px; }

.product-view .product-essential .product-name {
  color: #008bd2; }

.product-view .product-essential .product-col-img-box {
  padding-left: 0; }
  .product-view .product-essential .product-col-img-box .product-share {
    margin-top: 35px; }
    @media only screen and (max-width: 599px) {
      .product-view .product-essential .product-col-img-box .product-share img {
        width: 32px;
        height: 32px; } }
    @media only screen and (min-width: 600px) {
      .product-view .product-essential .product-col-img-box .product-share {
        margin-bottom: 35px; } }
    .product-view .product-essential .product-col-img-box .product-share a {
      display: inline-block; }

.product-view .product-essential .product-view-top {
  border-top: 1px dotted #003b5f;
  padding-top: 35px; }
  .product-view .product-essential .product-view-top:after {
    content: '';
    display: table;
    clear: both; }
  @media only screen and (min-width: 600px) {
    .product-view .product-essential .product-view-top {
      padding-bottom: 35px; } }

.product-view .product-essential .product-col-price {
  padding-right: 0; }
  @media only screen and (max-width: 599px) {
    .product-view .product-essential .product-col-price {
      padding-bottom: 20px; } }

.product-view .product-essential .product-options-bottom .price-box {
  display: none; }

.product-view .product-essential .product-options-bottom .add-to-cart .qty-wrapper {
  display: none; }

.product-view .product-essential p.required {
  display: none; }

.product-view .product-essential .product-options {
  padding-top: 20px;
  margin-top: 20px;
  border-top: 1px dotted #003b5f; }
  .product-view .product-essential .product-options dd {
    margin-bottom: 10px; }

.product-view .product-essential .price-box .price, .product-view .product-essential .price, .product-view .product-essential .configurable-price-from-label {
  font-size: 40px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  color: #003b5f; }

.product-view .product-essential .price-box {
  margin: 0;
  line-height: 1; }

.product-view .product-essential .availability.in-stock {
  display: none; }

.product-view .product-essential .price-info {
  margin-bottom: 20px;
  margin-top: 20px; }
  @media only screen and (min-width: 600px) {
    .product-view .product-essential .price-info {
      margin-bottom: 70px;
      margin-top: 0; } }

.product-view .product-view-details {
  margin: 35px 0;
  margin-top: 0;
  padding: 20px 0;
  border-top: 1px dotted #003b5f; }
  .product-view .product-view-details:after {
    content: '';
    display: table;
    clear: both; }

@media only screen and (min-width: 771px) {
  .product-view .product-category-nav, .product-view .product-details {
    float: left; } }

.product-view .product-view-details h2, .product-view .product-view-details h3, .product-view .product-view-details .h3, .product-view .product-view-details h4 {
  font-size: 20px;
  padding: 10px 0;
  margin-bottom: 0; }

.product-view .product-view-details img.image-icon {
  margin-top: -3px;
  margin-right: 7px; }

@media only screen and (min-width: 771px) {
  .product-view .product-view-details .product-details {
    width: 75%; } }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .product-details .additional-row {
    margin-right: -15px; } }

.product-view .product-view-details .product-details .additional-row:after {
  content: '';
  display: table;
  clear: both; }

.product-view .product-view-details .product-details .additional-row ul {
  padding-bottom: 15px; }

.product-view .product-view-details .product-details .additional-row .slideout h2, .product-view .product-view-details .product-details .additional-row .slideout h3 {
  cursor: pointer;
  position: relative; }
  .product-view .product-view-details .product-details .additional-row .slideout h2:before, .product-view .product-view-details .product-details .additional-row .slideout h3:before {
    display: block;
    content: '';
    position: absolute;
    right: 0;
    top: 16px;
    width: 14px;
    height: 10px;
    background-image: url(../images/icon-arrow-accordion-down.svg);
    background-size: 14px 10px;
    background-repeat: no-repeat; }
  .product-view .product-view-details .product-details .additional-row .slideout h2.open:before, .product-view .product-view-details .product-details .additional-row .slideout h3.open:before {
    background-image: url(../images/icon-arrow-accordion-up.svg); }

.product-view .product-view-details .product-details .additional-row .slideout ul {
  display: none; }
  .product-view .product-view-details .product-details .additional-row .slideout ul.open {
    display: block; }
  .product-view .product-view-details .product-details .additional-row .slideout ul li {
    text-indent: -8px;
    padding-left: 8px;
    margin: 4px 0; }
    .product-view .product-view-details .product-details .additional-row .slideout ul li:before {
      content: "- "; }
    .product-view .product-view-details .product-details .additional-row .slideout ul li.no-dash:before {
      content: "";
      display: inline-block;
      width: 9px; }

.product-view .product-view-details .product-details .additional-row .shop-list a  {
  cursor: pointer; }

.product-view .product-view-details .product-details .additional-row .download-list {
  margin-bottom: 35px; }

.product-view .product-view-details .product-details .additional-row.download-shop .additional-wrapper > div {
  border: none;
  padding: 35px 0;
  padding-bottom: 20px; }

.product-view .product-view-details .product-details .additional-row .support-block {
  padding-top: 35px; }
  .product-view .product-view-details .product-details .additional-row .support-block h3 {
    margin-bottom: 10px; }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .product-details .additional-row .input-box {
    max-width: 260px; } }

.product-view .product-view-details .product-details .additional-row .input-text {
  border: 3px solid #003b5f;
  color: #003b5f;
  background: none; }

.product-view .product-view-details .product-details .additional-row .search_mini_form .search-button:before {
  width: 27px;
  height: 29px;
  background: url(../images/icon-search-darkblue.svg);
  background-size: 24px;
  background-repeat: no-repeat; }

.product-view .product-view-details .product-details .additional-row ::-webkit-input-placeholder {
  color: #003b5f; }

.product-view .product-view-details .product-details .additional-row input:-moz-placeholder {
  color: #003b5f; }

.product-view .product-view-details .product-details .additional-wrapper > div {
  border-bottom: 1px dotted #003b5f; }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .product-details .additional-wrapper {
    width: 50%;
    box-sizing: border-box;
    padding: 0 15px;
    float: left; } }

.product-view .product-view-details .product-category-nav {
  display: none; }

@media only screen and (min-width: 771px) {
  .product-view .product-view-details .product-category-nav {
    display: block;
    box-sizing: border-box;
    width: 25%;
    padding-right: 15px; }
    .product-view .product-view-details .product-category-nav ul {
      margin-bottom: 10px; } }

.product-view .product-view-details .box-up-sell {
  border-top: 1px dotted #003b5f; }

.product-view .product-view-details .box-up-sell, .product-view .product-view-details .box-cross-sell {
  padding: 20px 0; }
  @media only screen and (min-width: 600px) {
    .product-view .product-view-details .box-up-sell, .product-view .product-view-details .box-cross-sell {
      padding: 35px 15px;
      border-bottom: 1px dotted #003b5f; } }
  .product-view .product-view-details .box-up-sell h3, .product-view .product-view-details .box-up-sell h4, .product-view .product-view-details .box-cross-sell h3, .product-view .product-view-details .box-cross-sell h4 {
    padding-top: 0; }
  .product-view .product-view-details .box-up-sell a:not(.product-image), .product-view .product-view-details .box-cross-sell a:not(.product-image) {
    color: #003b5f;
    border-bottom: 1px solid #003b5f;
    line-height: 1.1; }
    .product-view .product-view-details .box-up-sell a:not(.product-image):hover, .product-view .product-view-details .box-up-sell a:not(.product-image).active, .product-view .product-view-details .box-cross-sell a:not(.product-image):hover, .product-view .product-view-details .box-cross-sell a:not(.product-image).active {
      text-decoration: none;
      color: #1f86bd;
      border-color: #1f86bd; }

.product-view .product-view-details .box-up-sell {
  border-bottom: 1px dotted #003b5f; }
  @media only screen and (max-width: 599px) {
    .product-view .product-view-details .box-up-sell .slick-slide img {
      width: 80%;
      margin: auto; } }

@media only screen and (max-width: 599px) {
  .product-view .product-view-details .box-up-sell-slider {
    margin-left: -15px;
    margin-right: -15px; } }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .box-up-sell-slider, .product-view .product-view-details .box-cross-sell-slider {
    padding: 0 70px; } }

.product-view .product-view-details .box-up-sell-slider .slick-slide, .product-view .product-view-details .box-cross-sell-slider .slick-slide {
  margin: 0 15px; }

.product-view .product-view-details .box-up-sell-slider .slick-next, .product-view .product-view-details .box-up-sell-slider .slick-prev, .product-view .product-view-details .box-cross-sell-slider .slick-next, .product-view .product-view-details .box-cross-sell-slider .slick-prev {
  background: #c9c9c9; }

.product-view .product-view-details .box-up-sell-slider .slick-next, .product-view .product-view-details .box-cross-sell-slider .slick-next {
  left: auto;
  right: 0; }

.product-view .product-view-details .box-up-sell-slider .slick-prev, .product-view .product-view-details .box-cross-sell-slider .slick-prev {
  right: auto;
  left: 0; }

.product-view .product-view-details .box-up-sell-slider .product-name, .product-view .product-view-details .box-cross-sell-slider .product-name {
  margin-top: 5px; }

.product-view .product-view-details .box-cross-sell-slider:after {
  content: '';
  display: table;
  clear: both; }

@media only screen and (min-width: 600px) {
  .product-view .product-view-details .box-cross-sell-slider .no-slick-slide {
    width: 50%;
    float: left;
    box-sizing: border-box;
    padding: 0 15px; } }

.product-view .product-view-details .box-cross-sell-slider .no-slick-slide.slick-slide {
  padding: 0; }

/* ============================================ *
 * Catalog - MSRP MAP Popup
 * ============================================ */
.cart-msrp-totals {
  color: red;
  font-size: 12px !important;
  font-weight: bold;
  margin: 10px 10px 0;
  padding: 10px;
  text-align: right;
  text-transform: uppercase; }

.map-cart-sidebar-total {
  color: red;
  display: block;
  font-size: 10px;
  font-weight: bold;
  text-align: left;
  padding: 2px 5px; }

.map-popup {
  background: #FFFFFF;
  border: 5px solid #CCCCCC;
  margin: 12px 0 0;
  position: absolute;
  text-align: left;
  width: 450px;
  z-index: 100; }
  @media only screen and (min-width: 771px) {
    .map-popup.map-popup-right {
      left: 10px !important; }
    .map-popup.map-popup-left {
      left: auto !important;
      right: 10px !important; } }
  @media only screen and (max-width: 770px) {
    .map-popup {
      width: 100%;
      left: 0px !important; } }
  .map-popup .map-popup-heading {
    padding: 8px 10px;
    margin-right: 40px;
    width: auto; }
    .map-popup .map-popup-heading h3 {
      font-size: 14px;
      margin: 0;
      overflow: hidden;
      white-space: nowrap;
      word-wrap: break-word;
      text-align: left;
      text-overflow: ellipsis; }
      @media only screen and (max-width: 479px) {
        .map-popup .map-popup-heading h3 {
          text-align: center; } }
  .map-popup .map-popup-close {
    display: block;
    position: absolute;
    top: 0px;
    right: 0px;
    height: 36px;
    width: 36px;
    font-size: 20px;
    line-height: 32px;
    text-align: center; }
  .map-popup .map-popup-content {
    border-top: 1px solid #EDEDED;
    padding: 10px;
    margin: 0 10px;
    overflow: hidden;
    text-align: left; }
    @media only screen and (max-width: 479px) {
      .map-popup .map-popup-content {
        text-align: center; } }
  .map-popup .map-popup-checkout {
    padding: 10px 0; }
    .map-popup .map-popup-checkout form:after {
      content: '';
      display: table;
      clear: both; }
    .map-popup .map-popup-checkout span {
      display: block; }
    .map-popup .map-popup-checkout .button {
      float: left;
      margin: 0 2px;
      clear: left; }
    .map-popup .map-popup-checkout .additional-addtocart-box {
      float: left;
      min-width: 210px; }
      .map-popup .map-popup-checkout .additional-addtocart-box li {
        list-style-type: none; }
    .map-popup .map-popup-checkout .paypal-logo {
      width: auto; }
      .map-popup .map-popup-checkout .paypal-logo a {
        display: inline-block;
        float: left;
        clear: left; }
      .map-popup .map-popup-checkout .paypal-logo .paypal-or {
        float: left;
        text-align: center;
        padding: 5px 15px;
        clear: left; }
      .map-popup .map-popup-checkout .paypal-logo:after {
        content: '';
        display: table;
        clear: both; }
      .map-popup .map-popup-checkout .paypal-logo .bml_button a {
        clear: left; }
    @media only screen and (max-width: 479px) {
      .map-popup .map-popup-checkout {
        text-align: center; }
        .map-popup .map-popup-checkout .button,
        .map-popup .map-popup-checkout .additional-addtocart-box,
        .map-popup .map-popup-checkout .paypal-logo a,
        .map-popup .map-popup-checkout .paypal-logo .paypal-or {
          float: none; }
        .map-popup .map-popup-checkout .additional-addtocart-box {
          min-width: 0px; }
        .map-popup .map-popup-checkout .paypal-logo .paypal-or {
          margin: 0px;
          margin-bottom: 10px; } }
    .map-popup .map-popup-checkout:after {
      content: '';
      display: table;
      clear: both; }
  .map-popup .map-popup-price {
    padding: 10px 0; }
    @media only screen and (max-width: 479px) {
      .map-popup .map-popup-price {
        text-align: center;
        padding-top: 0px; } }
    .map-popup .map-popup-price .price-box,
    .map-popup .map-popup-price .price-box .special-price {
      display: inline-block;
      margin: 0;
      padding: 0; }
    .map-popup .map-popup-price .price-box .minimal-price-link {
      display: inline-block; }
  .map-popup .map-popup-text {
    padding: 10px 0;
    margin: 0 10px;
    word-wrap: break-word; }
  .map-popup .map-popup-text,
  .map-popup .map-popup-only-text {
    border-top: 1px solid #EDEDED; }

/* ============================================ *
 * Catalog - MSRP Product Listing
 * ============================================ */
.price-box .map-link {
  display: block;
  text-align: center; }

/* ============================================ *
 * Catalog - Compare
 * ============================================ */
.block-compare .product-name:after {
  content: '';
  display: table;
  clear: both; }

.compare-table .product-image {
  display: inline-block; }

.compare-table .product-shop-row.top td {
  padding-bottom: 0;
  border-bottom: 0; }

.compare-table .product-shop-row.bottom td {
  padding-top: 0; }

/* ============================================ *
 * Checkout - Layout
 * ============================================ */
.cart .button {
  white-space: normal; }

.cart .product-sample {
  color: #1f86bd;
  font-size: 17px; }

.cart .cart-sample-qty {
  font-family: Arial, sans-serif; }

.cart .sample-actions {
  padding: 0 !important; }

.cart-table .product-cart-actions {
  position: relative; }

.cart-table .product-cart-actions button {
  position: absolute;
  background: none;
  padding: 3px 12px !important;
  margin-left: 5px;
  color: #1f86bd;
  font-family: Arial, sans-serif; }

.cart-forms,
.crosssell {
  float: left;
  clear: left; }
  @media only screen and (min-width: 600px) {
    .cart-forms,
    .crosssell {
      max-width: 300px; } }

.cart-totals-wrapper {
  float: right; }

.cart-forms .discount {
  display: none; }

.cart-table,
.cart-totals,
.cart-forms .discount,
.cart-forms .giftcard,
.cart-forms .shipping {
  margin-bottom: 20px; }

.checkout-cart-index #postcode {
  width: 100%; }

.display-both-prices .cart-table {
  float: none;
  width: 100%; }

.display-both-prices .cart-forms {
  float: left;
  padding-right: 10px;
  padding-left: 0; }

.display-both-prices .cart-totals-wrapper,
.display-both-prices .crosssell {
  padding-left: 10px; }

.display-both-prices .cart-forms,
.display-both-prices .cart-totals-wrapper,
.display-both-prices .crosssell {
  width: 50%;
  box-sizing: border-box; }

.display-both-prices .crosssell {
  clear: right;
  float: right; }

@media only screen and (max-width: 979px) {
  .display-single-price .cart-table {
    float: none;
    width: 100%; }
  .display-single-price .cart-forms {
    float: left;
    padding-right: 10px;
    padding-left: 0; }
  .display-single-price .cart-totals-wrapper,
  .display-single-price .crosssell {
    padding-left: 10px; }
  .display-single-price .cart-forms,
  .display-single-price .cart-totals-wrapper,
  .display-single-price .crosssell {
    width: 50%;
    box-sizing: border-box; }
  .display-single-price .crosssell {
    clear: right;
    float: right; } }

@media only screen and (max-width: 599px) {
  .product-cart-sku {
    display: none; }
  .display-both-prices .cart-forms,
  .display-both-prices .cart-totals-wrapper,
  .display-both-prices .crosssell,
  .display-single-price .cart-forms,
  .display-single-price .cart-totals-wrapper,
  .display-single-price .crosssell {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
    float: none;
    width: 100%; } }

.display-single-price:after {
  content: '';
  display: table;
  clear: both; }

/* ============================================ *
 * Checkout - Cart
 * ============================================ */
.cart .page-title {
  margin-bottom: 35px; }
  .cart .page-title:after {
    content: '';
    display: table;
    clear: both; }
  .cart .page-title h1 {
    float: left;
    border-bottom: none;
    margin-bottom: 6px;
    margin-right: 10px; }

.checkout-types {
  float: right;
  text-align: right;
  max-width: 100%;
  /* We always want this shipping method to display on its own line */ }
  .checkout-types li {
    vertical-align: top;
    margin: 0 0 5px 5px; }
    .checkout-types li:after {
      content: '';
      display: table;
      clear: both; }
    .checkout-types li img {
      display: inline;
      vertical-align: top; }
  .checkout-types li:first-child {
    margin-left: 0; }
  .checkout-types .method-checkout-cart-methods-multishipping {
    display: block; }
  .checkout-types.top li {
    display: inline-block; }
  .checkout-types.top .bml_button {
    display: inline-block;
    vertical-align: top; }
    .checkout-types.top .bml_button img {
      display: block; }
  .checkout-types.top .paypal-logo .paypal-or {
    margin-top: 5px; }
  .checkout-types.bottom .paypal-logo a, .checkout-types.minicart .paypal-logo a {
    display: block; }
  .checkout-types.bottom .paypal-or, .checkout-types.minicart .paypal-or {
    margin: 0px;
    display: block;
    text-align: center; }

@media only screen and (min-width: 741px) {
  .checkout-types.bottom .paypal-or {
    text-align: right;
    padding-right: 70px; } }

.cart-totals .checkout-types .btn-checkout {
  margin-bottom: 7px; }

@media only screen and (max-width: 740px) {
  .checkout-types {
    float: none;
    text-align: center; }
    .checkout-types.bottom .paypal-or, .checkout-types.minicart .paypal-or {
      width: auto;
      float: none; }
  .checkout-types li {
    float: none;
    width: 100%;
    margin-left: 0; } }

@media only screen and (max-width: 599px) {
  .btn-checkout {
    width: 100%; } }

.cart-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .cart-table .product-cart-remove {
    width: 35px; }
  .cart-table .cart-total-head {
    max-width: 70px; }
  .cart-table th,
  .cart-table td,
  .cart-table tbody td {
    border-bottom: none;
    vertical-align: middle; }
  .cart-table h2 {
    color: #003b5f;
    font-size: 14px;
    margin-bottom: 0; }
  .cart-table thead th {
    font-size: 20px;
    text-transform: none; }
  .cart-table thead th,
  .cart-table tbody td {
    background-color: transparent;
    padding: 10px 0;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .cart-table .product-cart-info,
  .cart-table .product-cart-actions {
    padding-left: 15px;
    padding-top: 5px; }
    .cart-table .product-cart-info.sample-product,
    .cart-table .product-cart-actions.sample-product {
      padding: 0; }
      .cart-table .product-cart-info.sample-product .qty,
      .cart-table .product-cart-actions.sample-product .qty {
        display: none; }
  @media only screen and (max-width: 599px) {
    .cart-table .product-cart-info,
    .cart-table .product-cart-actions,
    .cart-table .product-cart-price {
      box-sizing: border-box; } }
  .cart-table tbody tr.dotted-border td {
    padding: 0; }
  .cart-table tfoot tr {
    background: none; }
  .cart-table tfoot tr > td:after {
    content: '';
    display: table;
    clear: both; }
  .cart-table span.or {
    font-size: 9px;
    padding: 0 5px;
    text-transform: uppercase;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .cart-table .product-cart-image .cart-links,
  .cart-table .product-cart-info .btn-remove,
  .cart-table .product-cart-actions .button {
    display: none; }
  .cart-table .product-cart-image {
    padding-left: 0;
    padding-right: 0; }
    .cart-table .product-cart-image .product-image img {
      max-width: 100%;
      width: 100%; }
    .cart-table .product-cart-image a.cart-edit {
      display: none; }
  .cart-table .product-cart-sku {
    font-family: Arial, sans-serif; }
  .cart-table .btn-empty {
    float: left; }
  .cart-table .product-cart-total,
  .cart-table .product-cart-price {
    text-align: right; }
  .cart-table .cart-tax-total {
    position: relative;
    cursor: pointer; }
    .cart-table .cart-tax-total:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
      border-right: 6px solid #003b5f;
      border-left: none;
      position: absolute;
      top: 3px;
      right: -11px; }
    .cart-table .cart-tax-total.cart-tax-total-expanded:after {
      content: '';
      position: absolute;
      width: 0;
      height: 0;
      display: block;
      border-right: 6px solid transparent;
      border-left: 6px solid transparent;
      border-top: 6px solid #003b5f;
      border-bottom: none;
      right: -15px;
      top: 6px; }
  .cart-table .cart-links > li {
    white-space: nowrap;
    line-height: 1.3;
    margin-bottom: 5px;
    min-width: 65px;
    font-size: 13px; }
    .cart-table .cart-links > li > a {
      display: block; }
    .cart-table .cart-links > li:last-child {
      margin-bottom: 0; }
  .cart-table .product-cart-actions {
    min-width: 60px;
    text-align: center; }
    .cart-table .product-cart-actions .qty {
      height: 30px;
      border-color: #C0C0C0;
      border-radius: 0;
      text-align: center;
      width: 3.2em; }
    .cart-table .product-cart-actions .button {
      margin-bottom: 5px; }
  .cart-table .item-options {
    padding-left: 15px; }

@media only screen and (max-width: 770px) {
  .cart-table th {
    font-size: 12px; }
  .cart-table th,
  .cart-table td {
    padding: 7px 6px; }
  .cart-table .product-cart-actions > li {
    white-space: inherit; } }

@media only screen and (max-width: 699px) {
  .display-both-prices .cart-table thead th.cart-total-head,
  .display-both-prices .cart-table td.product-cart-total {
    display: none; } }

@media only screen and (max-width: 599px) {
  .cart-table colgroup, .cart-table thead {
    display: none; }
  .cart-table tr {
    display: block;
    margin-bottom: 10px;
    padding-bottom: 10px;
    position: relative;
    width: 100%; }
    .cart-table tr.first {
      border-top: 1px dotted #003b5f;
      padding-top: 20px; }
    .cart-table tr:after {
      content: '';
      display: table;
      clear: both; }
    .cart-table tr:last-child {
      margin-bottom: 0; }
  .cart-table tfoot tr {
    padding-bottom: 0; }
  .cart-table td {
    border: none;
    display: block; }
    .cart-table td[data-rwd-label] {
      padding-left: 15px;
      margin-bottom: 6px; }
      .cart-table td[data-rwd-label] .price {
        font-weight: normal; }
      .cart-table td[data-rwd-label]:before {
        content: attr(data-rwd-label) ":";
        font-size: 14px;
        padding-right: 5px;
        font-family: Arial, sans-serif; }
    .cart-table td.product-cart-price {
      text-align: left; }
  .cart-table .cart-links {
    padding-top: 5px;
    padding-right: 5px; }
    .cart-table .cart-links > li {
      white-space: normal;
      text-align: center; }
      .cart-table .cart-links > li > a {
        padding: 2px 0px; }
  .cart-table .cart-tax-info {
    font-style: italic;
    padding-left: 15px;
    font-size: 13px; }
    .cart-table .cart-tax-info .price {
      font-size: 13px; }
  .cart-table .product-cart-image {
    width: 25%;
    float: left;
    padding-bottom: 0; }
    .cart-table .product-cart-image a.cart-edit {
      display: block;
      font-size: 20px;
      text-align: center;
      text-transform: uppercase; }
  .cart-table .product-cart-info,
  .cart-table td[data-rwd-label] {
    float: right;
    width: 75%; }
  .cart-table .product-cart-actions,
  .cart-table .product-cart-price {
    padding-bottom: 0;
    padding-top: 0;
    float: right; }
  .cart-table .product-cart-remove,
  .cart-table .product-cart-total,
  .cart-table .product-cart-actions .cart-links {
    display: none; }
  .cart-table .product-cart-info .btn-remove {
    display: block; }
  .cart-table .product-cart-actions .button {
    display: none; }
  .cart-table .product-cart-info .btn-remove {
    margin: -4px 0px 2px 7px;
    position: absolute;
    top: 10px;
    right: 0; }
  .cart-table .product-cart-actions {
    text-align: left; }
    .cart-table .product-cart-actions .qty {
      margin-right: 7px;
      margin-bottom: 7px; }
  .cart-table .price,
  .cart-table .product-cart-price:before {
    font-weight: 500;
    font-size: 14px;
    font-family: Arial, sans-serif; }
  .cart-table .cart-footer-actions {
    text-align: center;
    width: 100%; }
    .cart-table .cart-footer-actions #empty_cart_button {
      float: right; }
    .cart-table .cart-footer-actions .btn-continue {
      float: left; }
    .cart-table .cart-footer-actions .btn-update,
    .cart-table .cart-footer-actions span.or {
      display: none; }
  .display-both-prices .cart-table td[data-rwd-tax-label]:before {
    content: attr(data-rwd-tax-label) ":"; } }

/* ============================================ *
 * Checkout - Estimate Shipping and Tax
 * ============================================ */
.shipping h2 {
  font-size: 20px; }

.shipping p {
  margin-bottom: 20px; }

.shipping select.validation-failed {
  border-color: #DF280A; }

.shipping input[type=email],
.shipping input[type=number],
.shipping input[type=password],
.shipping input[type=tel],
.shipping input[type=text],
.shipping select {
  color: #807e82; }
  .shipping input[type=email]::-webkit-input-placeholder,
  .shipping input[type=number]::-webkit-input-placeholder,
  .shipping input[type=password]::-webkit-input-placeholder,
  .shipping input[type=tel]::-webkit-input-placeholder,
  .shipping input[type=text]::-webkit-input-placeholder,
  .shipping select::-webkit-input-placeholder {
    color: #807e82 !important; }
  .shipping input[type=email]:-ms-input-placeholder,
  .shipping input[type=number]:-ms-input-placeholder,
  .shipping input[type=password]:-ms-input-placeholder,
  .shipping input[type=tel]:-ms-input-placeholder,
  .shipping input[type=text]:-ms-input-placeholder,
  .shipping select:-ms-input-placeholder {
    color: #807e82 !important; }
  .shipping input[type=email]::placeholder,
  .shipping input[type=number]::placeholder,
  .shipping input[type=password]::placeholder,
  .shipping input[type=tel]::placeholder,
  .shipping input[type=text]::placeholder,
  .shipping select::placeholder {
    color: #807e82 !important; }

.shipping .button {
  margin-top: 10px; }

.shipping .sp-methods {
  margin-top: 20px;
  padding: 10px 0 0;
  text-align: left; }
  .shipping .sp-methods dd {
    margin-bottom: 10px; }
  .shipping .sp-methods label span {
    font-weight: bold;
    font-style: normal; }

.shipping #co-shipping-method-form .buttons-set .button {
  float: left;
  margin-left: 0; }

.shipping #co-shipping-method-form .sp-methods dd label:hover {
  background-color: shade(#F4F4F4, 10%); }

@media only screen and (max-width: 770px) {
  .shipping .shipping-form .form-list > li {
    width: 100%;
    float: none; }
    .shipping .shipping-form .form-list > li label {
      display: block; }
    .shipping .shipping-form .form-list > li input,
    .shipping .shipping-form .form-list > li select {
      width: 100%; } }

.cart .cart-totals {
  text-align: right; }
  .cart .cart-totals:after {
    content: '';
    display: table;
    clear: both; }
  .cart .cart-totals table {
    font-size: 14px;
    margin-bottom: 20px;
    width: 100%; }
    .cart .cart-totals table td {
      padding: 2px 0px; }
    .cart .cart-totals table td:first-child {
      padding-right: 10px;
      min-width: 120px; }

.discount-form:after,
#giftcard-form:after {
  content: '';
  display: table;
  clear: both; }

#discount-coupon-form,
.cart .giftcard {
  width: 100%; }
  #discount-coupon-form h2,
  .cart .giftcard h2 {
    display: none; }
  #discount-coupon-form label,
  .cart .giftcard label {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    font-weight: 400;
    text-align: left;
    text-transform: uppercase;
    min-width: 105px;
    display: inline-block;
    margin-right: 10px; }
  #discount-coupon-form .field-wrapper,
  .cart .giftcard .field-wrapper {
    display: inline-block; }
  #discount-coupon-form .validation-advice,
  .cart .giftcard .validation-advice {
    display: inline; }
  #discount-coupon-form .button-wrapper,
  .cart .giftcard .button-wrapper {
    display: inline-block;
    vertical-align: bottom; }
    #discount-coupon-form .button-wrapper > button,
    .cart .giftcard .button-wrapper > button {
      float: left; }
  #discount-coupon-form .input-text,
  .cart .giftcard .input-text {
    border-radius: 0;
    height: 30px;
    margin: 4px 10px 0 0;
    width: 190px; }

.cart .giftcard p {
  margin-bottom: 7px; }

.cart .giftcard .check-gc-status {
  float: left;
  padding: 0px; }
  .cart .giftcard .check-gc-status > span > span {
    font-size: 14px;
    text-transform: none; }

.shipping-form .input-text#region {
  display: none !important; }

.shipping-form .shipping-region {
  margin-bottom: 0; }

.shipping-form #region_id {
  margin-bottom: 10px; }

/* ============================================ *
 * Checkout - Cart Cross sell
 * ============================================ */
.crosssell h2 {
  color: #1f86bd; }

.crosssell .item a.product-image {
  width: auto;
  float: left; }

/* Change the layout to 2 columns at a breakpoint that is higher than a 3 columns layout would normally break */
@media only screen and (max-width: 979px) {
  .crosssell {
    /* Undo three-column config */ }
    .crosssell .products-grid > li:nth-child(even),
    .crosssell .products-grid > li:nth-child(3n),
    .crosssell .products-grid > li {
      width: 47.72727%;
      margin-right: 4.54545%; }
    .crosssell .products-grid > li:nth-child(odd) {
      clear: left; }
    .crosssell .products-grid > li:nth-child(even) {
      margin-right: 0; }
    .crosssell .products-grid > li:nth-child(3n+1) {
      clear: none; } }

@media only screen and (max-width: 599px) {
  .cart-table .cart-tax-total:after {
    right: -9px; }
  .cart-table .cart-tax-total.cart-tax-total-expanded:after {
    right: -13px; } }

@media only screen and (max-width: 320px) {
  .crosssell ul .item {
    padding: 0 0px 40px; }
  .crosssell ul .product-details .crosssell-actions {
    padding: 0 5px; } }

.checkout-cart-index .cart-empty a {
  color: #003b5f;
  text-decoration: underline; }

/* ============================================ *
 * Checkout - One Page
 * ============================================ */
.checkout-onepage-index .col-right,
.checkout-onepage-index .col-left {
  display: none; }

.checkout-onepage-index .col-main {
  width: auto;
  float: none; }

@media only screen and (min-width: 980px) {
  .checkout-onepage-index .col-main {
    float: left;
    width: 68.75%;
    padding-right: 20px; }
  .checkout-onepage-index .col-right,
  .checkout-onepage-index .col-left {
    width: 31.25%;
    display: block; }
  .checkout-onepage-index .col-right {
    padding-left: 0; } }

.opc select {
  width: 365px; }

/* -------------------------------------------- *
 * Section Styling - Default
 */
.opc .section .step-title {
  width: 100%;
  position: relative;
  padding: 3px 0;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }
  .opc .section .step-title:after {
    content: '';
    display: table;
    clear: both; }

.opc .section.allow:not(.active) .step-title {
  cursor: pointer; }

.opc .section.active .step-title {
  border-bottom: 1px dotted #003b5f; }

.opc .section .step-title a {
  display: none; }

.opc .section.allow:not(.active) .step-title a {
  display: block;
  float: right;
  line-height: 40px;
  height: 40px;
  padding: 0px 10px; }

.no-touch .opc .section .step-title a:hover {
  text-decoration: none; }

.opc .section .step-title .number,
.opc .section.allow.active .step-title .number,
.no-touch .opc .section.allow:hover .step-title .number {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  width: 26px;
  height: 26px;
  text-align: center;
  color: #FFFFFF;
  line-height: 28px;
  background-color: #1f86bd;
  display: block;
  position: absolute;
  border-radius: 100%;
  top: 50%;
  left: 0;
  margin-top: -13px; }

.opc .section.allow .step-title .number {
  background-color: tint(#1f86bd, 50%); }

.opc .section.allow .step-title h2 {
  color: #5b5b5a; }

.opc .section.allow .step-title:hover h2,
.opc .section.active .step-title h2 {
  color: #003b5f; }

.opc .section .step-title h2 {
  font-size: 20px;
  font-weight: 400;
  line-height: 42px;
  height: 40px;
  float: left;
  margin: 0px 4px 0px 35px; }

@media only screen and (min-width: 599px) {
  .opc .section .step {
    padding: 20px 0 35px 35px; } }

.opc .section .step:after {
  content: '';
  display: table;
  clear: both; }

@media only screen and (max-width: 979px) {
  .opc .section .step {
    padding: 10px; } }

.opc select {
  width: 100%; }

.opc h3 {
  font-weight: 500; }

.opc .buttons-set {
  text-align: left; }
  .opc .buttons-set button.button {
    float: left;
    margin-left: 0;
    margin-right: 10px;
    margin-bottom: 0; }
  .opc .buttons-set p.required {
    float: right;
    margin-left: 5px;
    margin-bottom: 0; }
  .opc .buttons-set .back-link {
    float: right;
    margin: 0; }
  .opc .buttons-set a {
    line-height: 20px;
    display: inline-block;
    padding: 5px 5px 5px 0; }

@media only screen and (max-width: 479px) {
  .opc .buttons-set .button + .buttons-set .button,
  .paypal-express-review .buttons-set .button + .buttons-set .button {
    margin-left: 0; } }

.opc #opc-login h2 {
  font-size: 24px;
  margin-top: -25px; }

.opc #opc-login .step {
  padding: 0px; }

.opc #opc-login .step-title {
  border: none; }

.opc #opc-login .buttons-set {
  border-top: 0;
  padding-top: 5px; }

.opc #opc-login #checkout-step-login {
  margin-top: 35px; }

.opc-has-progressed-from-login .opc #opc-login h2 {
  font-size: 20px;
  margin-top: 0; }

@media only screen and (max-width: 770px) {
  .opc #opc-login .description,
  .opc #opc-login p.required {
    display: none; } }

#opc-payment .note {
  padding: 10px; }

/* -------------------------------------------- *
 * This section hides everything but the "Checkout Method" step of the checkout process and fades in the content
 * once the customer progresses to the next step. The purpose of this is to simplify what the customer has to focus on.
 * It is limited to larger viewports since smaller devices are inherently going to be focused solely on the
 * "Checkout Method" step.
 */
.opc.opc-firststep-login .section:not(#opc-login) .step-title,
.opc-block-progress-step-login {
  -webkit-transition: opacity .3s;
  transition: opacity .3s; }

.opc.opc-firststep-login .section#opc-login .step-title .number {
  -webkit-transition: width .1s;
  transition: width .1s; }

.opc.opc-firststep-login .section#opc-login .step-title h2 {
  -webkit-transition: margin-left .1s;
  transition: margin-left .1s; }

/* When a user progresses from the "Checkout Method" to "Billing Information" for the first time, the              */
/* "opc-has-progressed-from-login" class gets added to the body. Also, the .opc element will only have the         */
/* "opc-firststep-login" class if the first step of the checkout is the "Checkout Method" (eg, not when logged in) */
body:not(.opc-has-progressed-from-login) .opc.opc-firststep-login .section:not(#opc-login) .step-title,
body:not(.opc-has-progressed-from-login) .opc-block-progress-step-login {
  opacity: 0; }

body:not(.opc-has-progressed-from-login) .opc.opc-firststep-login .section#opc-login .step-title .number {
  width: 0px;
  overflow: hidden; }

body:not(.opc-has-progressed-from-login) .opc.opc-firststep-login .section#opc-login .step-title h2 {
  margin-left: 0px; }

/* -------------------------------------------- *
 * Shipping and Payment methods
 */
.sp-methods {
  margin: 0 0 8px; }
  .sp-methods dt {
    margin: 13px 0 5px;
    font-weight: bold; }
    .sp-methods dt:first-child {
      margin: 0 0 5px; }
    .sp-methods dt label {
      font-weight: bold; }
  .sp-methods dd li {
    margin: 5px 0; }
  .sp-methods label img {
    float: left; }
  .sp-methods label a {
    margin-top: 6px;
    float: right;
    margin-left: 10px; }
  .sp-methods .price {
    font-weight: bold; }
  .sp-methods .form-list {
    padding-left: 25px; }
    .sp-methods .form-list li {
      margin: 0 0 8px; }
  .sp-methods select.month {
    width: 120px;
    margin-right: 10px; }
  .sp-methods select.year {
    width: 96px; }
  .sp-methods input.cvv {
    width: 4em !important; }
  .sp-methods #advice-validate-cc-exp-ccsave_expiration {
    max-width: 130px; }
  .sp-methods .checkmo-list li {
    margin: 0 0 5px;
    content: '';
    display: table;
    clear: both; }
  .sp-methods .checkmo-list label {
    display: none; }
  .sp-methods .checkmo-list address {
    float: left; }
  @media only screen and (max-width: 479px) {
    .sp-methods .checkmo-list {
      padding-left: 0; }
      .sp-methods .checkmo-list label {
        width: 135px; } }
  .sp-methods .release-amounts {
    margin: 0.5em 0; }
  .sp-methods .release-amounts button {
    float: left;
    margin: 5px 10px 0 0; }

/* One Page Checkout */
#checkout-step-billing {
  margin-top: 25px; }
  #checkout-step-billing p.required {
    margin-top: -25px; }

.block-progress {
  border: 0;
  margin: 0;
  padding-left: 20px; }
  .block-progress .block-content {
    font-size: 13px; }
  .block-progress dt {
    padding-top: 6px;
    margin: 0;
    margin-bottom: 10px;
    color: #003b5f;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    line-height: 1.4;
    margin-bottom: 6px;
    text-transform: uppercase;
    font-weight: normal;
    color: #5b5b5a; }
  .block-progress dt.complete {
    color: #003b5f; }
  .block-progress dd {
    margin-bottom: 10px;
    font-family: Arial, sans-serif; }
  .block-progress #payment-progress-opcheckout .subtitle {
    margin-bottom: 3px; }
  .block-progress .payment-info dt {
    padding: 0;
    margin: 0 0 3px 0;
    color: #003b5f;
    font-family: Arial, sans-serif;
    text-transform: none;
    font-style: italic;
    float: left;
    clear: both;
    font-size: 13px; }
    .block-progress .payment-info dt:after {
      content: ': '; }
  .block-progress .payment-info dd {
    float: left;
    margin-bottom: 3px;
    font-size: 13px; }
  .block-progress .payment-info:after {
    content: '';
    display: table;
    clear: both; }

/* review step */
#checkout-review-table .btn-remove img {
  display: none; }

#checkout-review-table-wrapper {
  clear: both; }

#review-buttons-container {
  width: 100%;
  margin-top: 15px;
  margin-bottom: 15px; }
  #review-buttons-container .btn-checkout {
    min-width: 220px; }
  #review-buttons-container .please-wait {
    float: left;
    margin-right: 10px; }
  #review-buttons-container .f-left {
    float: right; }

@media only screen and (max-width: 599px) {
  .linearize-table-large.checkout-review-table thead tr:nth-child(1n+2) {
    display: none; } }

@media only screen and (max-width: 479px) {
  .linearize-table.checkout-review-table thead tr:nth-child(1n+2) {
    display: none; } }

/* show/hide "change" link for progress step depend on complete status
 * should be placed in .css file */
.opc-block-progress dt.complete a,
.opc-block-progress dt.complete .separator {
  display: inline; }

.opc-block-progress dt a,
.opc-block-progress dt .separator {
  display: none; }

/* On small screens, the progress review content will be moved to the review step via JS. Styled via this CSS: */
#checkout-step-review .opc-block-progress {
  border-left: none;
  padding-left: 0; }
  #checkout-step-review .opc-block-progress .block-title {
    display: none; }
  #checkout-step-review .opc-block-progress .block-content {
    display: block !important;
    padding: 0; }
    #checkout-step-review .opc-block-progress .block-content > dl > div {
      float: left;
      width: 50%; }
    @media only screen and (max-width: 479px) {
      #checkout-step-review .opc-block-progress .block-content > dl > div {
        float: none;
        width: auto; } }
    #checkout-step-review .opc-block-progress .block-content .changelink {
      display: none; }

@media only screen and (max-width: 479px) {
  #checkout-review-table thead > tr > th {
    display: none; }
    #checkout-review-table thead > tr > th:first-child {
      display: block; }
  #checkout-review-table thead > tr > th:first-child {
    display: block; } }

#checkout-step-review .centinel > p {
  margin-bottom: 10px; }

#checkout-step-review .centinel iframe {
  width: 100%;
  min-height: 400px; }

/* Gift options */
.gift-messages-form .item {
  content: '';
  display: table;
  clear: both;
  margin-top: 35px; }
  .gift-messages-form .item h5 {
    font-weight: bold; }
  .gift-messages-form .item .product-img-box {
    width: auto;
    float: left;
    padding-right: 15px; }
  .gift-messages-form .item .details {
    float: left; }

.gift-message-form .inner-box > div {
  content: '';
  display: table;
  clear: both;
  width: 100%;
  margin-top: 15px;
  display: block; }
  .gift-message-form .inner-box > div.extra-options-container p {
    margin-bottom: 15px; }

.gift-message-form .gift-wrapping-form label {
  margin-right: 10px; }

.gift-message-form .gift-wrapping-form img {
  float: left; }

.gift-message-form .gift-wrapping-form .gift-wrapping-design {
  height: 75px; }
  .gift-message-form .gift-wrapping-form .gift-wrapping-design:after {
    content: '';
    display: table;
    clear: both; }
  .gift-message-form .gift-wrapping-form .gift-wrapping-design .image-box {
    margin-right: 5px; }

.gift-message-form .gift-item {
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: solid 1px #ECECEC; }
  .gift-message-form .gift-item:after {
    content: '';
    display: table;
    clear: both; }
  .gift-message-form .gift-item .product-img-box {
    width: 200px; }
    .gift-message-form .gift-item .product-img-box .product-image {
      width: 75px;
      margin-left: auto;
      margin-right: auto; }
    .gift-message-form .gift-item .product-img-box .product-name {
      display: block; }
  .gift-message-form .gift-item .fieldset {
    margin-left: 200px; }

@media only screen and (max-width: 770px) {
  .gift-message-form .giftmessage-area {
    max-width: 100%; }
  .gift-message-form .gift-item .product-img-box {
    width: 100%;
    float: none; }
  .gift-message-form .gift-item .fieldset {
    margin-left: 0px; }
    .gift-message-form .gift-item .fieldset textarea {
      width: 100%; } }

.opc-block-progress .block-title strong {
  width: 100%;
  display: block;
  color: #003b5f;
  font-size: 20px;
  border-bottom: 1px dotted #003b5f;
  text-transform: none;
  padding-bottom: 5px;
  mragin-bottom: 20px; }

#checkout-step-review #checkout-agreements {
  margin-top: 30px; }

/* ============================================ *
 * Checkout - Success
 * ============================================ */
.checkout-onepage-success .col-main {
  padding: 0;
  text-align: center; }

.checkout-onepage-success .buttons-set {
  margin: 10px 0;
  text-align: center; }
  .checkout-onepage-success .buttons-set button {
    float: none; }

/* ============================================ *
 * Configurable Swatches
 * ============================================ */
/* Clears */
.clearfix:after,
.configurable-swatch-list:after,
.product-view .product-options .swatch-attr:after {
  content: '';
  display: table;
  clear: both; }

/* General Swatch Styling */
.swatch-link,
.swatch-label {
  display: block;
  border-radius: 3px;
  font-size: 14px;
  text-align: center;
  color: #003b5f;
  text-decoration: none;
  box-sizing: content-box; }

.swatch-link {
  border: 1px solid #CCCCCC;
  margin: 0 0 3px; }
  .swatch-link img {
    border-radius: 2px; }
  .swatch-link:hover {
    cursor: pointer;
    text-decoration: none; }
  .swatch-link .x {
    display: none;
    text-indent: -999em;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: url(../images/bg_x.png) center no-repeat transparent;
    z-index: 10; }
  .swatch-link.has-image .swatch-label {
    position: relative; }
  .swatch-link.has-image img {
    position: absolute;
    top: 0;
    left: 0; }

.swatch-label {
  border: 1px solid #fff;
  margin: 0;
  white-space: nowrap;
  background: #F4F4F4; }

.configurable-swatch-list {
  margin-left: -3px;
  zoom: 1;
  clear: both;
  -webkit-transform: translateZ(0px); }
  .configurable-swatch-list li {
    float: left;
    zoom: 1;
    margin: 0 0 0 3px; }
  .products-grid .configurable-swatch-list li {
    display: inline-block;
    float: none;
    margin: 0;
    vertical-align: top; }
  .configurable-swatch-list .not-available .x {
    display: block; }
  .configurable-swatch-list .not-available .swatch-link {
    border-color: #EDEDED;
    position: relative; }
    .configurable-swatch-list .not-available .swatch-link.has-image img {
      opacity: 0.4;
      filter: alpha(opacity=40); }
  .configurable-swatch-list .not-available .swatch-label {
    color: #aaa;
    background: #fff; }
  .configurable-swatch-list .wide-swatch .swatch-label {
    padding: 0 6px; }
  .configurable-swatch-list .not-available a:focus {
    outline: 0; }

#narrow-by-list dd .configurable-swatch-list li {
  margin: 0 0 0 3px;
  width: 47%; }

#narrow-by-list dd .swatch-link {
  border: none;
  line-height: 25px;
  margin-right: 2px;
  text-align: left; }
  #narrow-by-list dd .swatch-link.has-image {
    line-height: inherit; }
  #narrow-by-list dd .swatch-link:hover .swatch-label {
    border-color: #1f86bd; }

#narrow-by-list dd .swatch-label {
  background: #F4F4F4;
  border: 1px solid #CCCCCC;
  border-radius: 3px;
  display: block;
  float: left;
  line-height: 1.5em;
  margin: 0 5px 0 0;
  padding: 1px 5px;
  white-space: nowrap; }
  #narrow-by-list dd .swatch-label img {
    border: 1px solid #fff;
    border-radius: 3px;
    box-sizing: content-box; }

#narrow-by-list dd .has-image .swatch-label {
  padding: 0; }

@media only screen and (max-width: 770px) {
  #narrow-by-list dd .configurable-swatch-list li:nth-child(odd) {
    clear: left; } }

.currently .swatch-current {
  position: relative; }
  .currently .swatch-current .btn-remove {
    margin-top: -10px;
    position: absolute;
    right: 0;
    top: 50%; }
  .currently .swatch-current span {
    display: block;
    float: left; }

.currently .swatch-link {
  display: inline-block;
  margin: 0 0 0 3px; }
  .currently .swatch-link:hover {
    border-color: #CCCCCC;
    cursor: default; }

/* Other Swatch States */
.configurable-swatch-list .hover .swatch-link,
.configurable-swatch-list .selected .swatch-link,
.swatch-link:hover {
  border-color: #1f86bd; }

.configurable-swatch-box {
  background: none !important; }
  .configurable-swatch-box select.swatch-select {
    display: none; }
  .configurable-swatch-box .validation-advice {
    margin: 0 0 5px;
    background: #DF280A;
    padding: 2px 5px !important;
    font-weight: bold;
    color: #fff !important;
    float: left;
    display: block;
    border-radius: 3px; }

/* CUSTOM */
.availability.out-of-stock span {
  color: #5b5b5a; }

.product-view .product-options .swatch-attr {
  float: none;
  display: block;
  clear: both;
  border: 0; }
  .product-view .product-options .swatch-attr label,
  .product-view .product-options .swatch-attr .select-label {
    font-size: 12px; }
  .product-view .product-options .swatch-attr label {
    display: block;
    line-height: 1.3; }
  .product-view .product-options .swatch-attr .select-label {
    display: inline;
    font-weight: normal;
    color: #003b5f;
    padding-left: 5px; }

.product-view .product-options dd .input-box {
  width: auto;
  height: auto; }

.product-view .product-options .select-label {
  display: none; }

.product-view .add-to-cart button.out-of-stock {
  background-position: -80px -362px;
  cursor: default; }

/* ============================================ *
 * Customer
 * ============================================ */
.customer-account-login .col-main a:not(.button),
.customer-account-create .col-main a:not(.button),
.customer-account-forgotpassword .col-main a:not(.button),
.checkout-onepage-index .col-main a:not(.button) {
  color: #003b5f;
  text-decoration: underline; }
  .customer-account-login .col-main a:not(.button):hover,
  .customer-account-create .col-main a:not(.button):hover,
  .customer-account-forgotpassword .col-main a:not(.button):hover,
  .checkout-onepage-index .col-main a:not(.button):hover {
    color: #1f86bd; }

@media only screen and (max-width: 770px) {
  .customer-account .block-account .block-title {
    display: none; } }

@media only screen and (max-width: 770px) {
  .customer-account .block-account {
    margin-bottom: 35px !important; } }

.customer-account-edit .fieldset p.required {
  margin-top: -25px !important; }

.customer-account-login .col-main {
  padding-bottom: 35px; }

.customer-account-login .scaffold-form label:first-child {
  width: 115px; }

.customer-account-login h2 {
  font-size: 20px; }

.customer-account-login .col2-set .buttons-set {
  text-align: left;
  border-top: 0; }

.customer-account-login .col2-set .col-1,
.customer-account-login .col2-set .col-2 {
  box-sizing: border-box; }

.customer-account-login .col2-set .col-1 ul {
  list-style: disc;
  padding-left: 20px;
  margin: 10px 0 20px 0; }

@media only screen and (min-width: 600px) {
  .customer-account-login .col2-set .col-1,
  .customer-account-login .col2-set .col-2 {
    padding-top: 0;
    margin-top: 20px; }
  .customer-account-login .col2-set .col-1 {
    padding-right: 20px; }
  .customer-account-login .col2-set .col-2 {
    padding-left: 20px; } }

@media only screen and (min-width: 770px) {
  .customer-account-login .col2-set .col-1 {
    padding-right: 0; } }

@media only screen and (max-width: 599px) {
  .customer-account-login .col2-set .col-1 {
    padding-bottom: 35px; }
  .customer-account-login .col2-set .col-2 {
    padding-top: 35px; } }

@media only screen and (max-width: 770px) {
  .customer-account-login .col2-set p.required {
    display: none; } }

.customer-account-create .scaffold-form label:first-child {
  width: 140px; }

.remember-me-box a.hide {
  display: none; }

.remember-me-box .link-tip {
  font-size: 13px;
  padding-left: 10px; }

.remember-me-popup {
  display: none;
  border: 1px solid #CCCCCC;
  padding: 10px;
  position: relative; }
  .remember-me-popup.show {
    display: block; }
  .remember-me-popup p {
    font-family: Arial, sans-serif; }
  .remember-me-popup .remember-me-popup-close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 10px;
    font-size: 12px; }
  .remember-me-popup .remember-me-popup-close-button {
    display: none; }

.customer-account-create .fieldset .hidden {
  display: none; }

.customer-account-forgotpassword .col-main,
.customer-account-create .col-main {
  max-width: 680px;
  margin: auto;
  padding-bottom: 35px; }

/* ============================================ *
 * My Account Global Styles
 * ============================================ */
body.customer-account .my-account .page-title h1 {
  border: 0;
  text-align: left; }

body.customer-account .my-account .title-buttons {
  position: relative;
  text-align: right; }
  body.customer-account .my-account .title-buttons h1 {
    text-align: left; }
  body.customer-account .my-account .title-buttons .button {
    position: absolute;
    right: 0;
    top: 0; }
  body.customer-account .my-account .title-buttons a,
  body.customer-account .my-account .title-buttons span.separator {
    position: relative;
    top: -42px; }

body.customer-account .my-account .fieldset h2,
body.customer-account .my-account .addresses-list h2,
body.customer-account .my-account .order-details h2 {
  width: 100%;
  display: inline-block; }

body.customer-account .my-account .addresses-list h3 {
  font-size: 14px;
  font-weight: 600; }

body.customer-account .my-account .fieldset {
  margin-top: 35px;
  margin-bottom: 35px; }

body.customer-account .data-table {
  margin-top: 5px; }
  body.customer-account .data-table td a {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    text-transform: uppercase;
    font-style: normal;
    font-size: 13px; }
  body.customer-account .data-table span.nobr {
    white-space: normal; }
    body.customer-account .data-table span.nobr a {
      white-space: nowrap; }
  body.customer-account .data-table td.view a {
    display: block; }
  body.customer-account .data-table .separator {
    display: none; }

body.customer-account .sidebar .block ol#compare-items li {
  margin: 10px 0; }

body.customer-account .sidebar .block .block-content p.block-subtitle {
  margin-bottom: 15px; }

body.customer-account .sidebar .block .block-content .actions {
  margin-top: 35px; }

body.customer-account .sidebar ol#cart-sidebar-reorder li {
  margin-top: 10px;
  margin-bottom: 0; }

body.customer-account .sidebar ol#cart-sidebar-reorder p.product-name {
  display: inline-block;
  margin-bottom: 0; }

body.customer-account .sidebar .block-cart .summary {
  margin-bottom: 15px; }

body.customer-account .sidebar .block-reorder ol#cart-sidebar-reorder li {
  margin-top: 10px;
  margin-bottom: 0; }
  body.customer-account .sidebar .block-reorder ol#cart-sidebar-reorder li input {
    margin-right: 10px; }

body.customer-account .sidebar .block-reorder ol#cart-sidebar-reorder p.product-name {
  display: inline;
  margin-bottom: 0; }

.form-list .customer-dob .dob-month,
.form-list .customer-dob .dob-day {
  width: 40px;
  float: left;
  margin-right: 10px; }

.form-list .customer-dob .dob-year {
  width: 80px;
  float: left; }

/* ============================================ *
 * Dashboard
 * ============================================ */
.customer-account .back-link a {
  color: #003b5f;
  text-decoration: underline; }
  .customer-account .back-link a:hover {
    color: #1f86bd; }

.dashboard .box-head {
  margin-top: 35px;
  padding-bottom: 7px; }
  .dashboard .box-head h2 {
    font-size: 20px;
    font-weight: 600;
    display: inline-block;
    margin-bottom: 0; }
  .dashboard .box-head a {
    padding: 10px; }

.dashboard .box-title a,
.dashboard .box-head a,
.dashboard .box-content a,
.dashboard .back-link a {
  color: #003b5f;
  text-decoration: underline; }
  .dashboard .box-title a:hover,
  .dashboard .box-head a:hover,
  .dashboard .box-content a:hover,
  .dashboard .back-link a:hover {
    color: #1f86bd; }

.dashboard .box-account {
  padding-bottom: 40px;
  border-bottom: 1px dotted #003b5f;
  margin-bottom: 45px; }
  .dashboard .box-account p,
  .dashboard .box-account address {
    font-family: Arial, sans-serif; }

.dashboard .col2-set .col-1,
.dashboard .col2-set .col-2 {
  padding-right: 12.09677%;
  padding-bottom: 0; }
  .dashboard .col2-set .col-1 .box-title,
  .dashboard .col2-set .col-2 .box-title {
    position: relative;
    padding-bottom: 10px; }
    .dashboard .col2-set .col-1 .box-title h2,
    .dashboard .col2-set .col-1 .box-title h3,
    .dashboard .col2-set .col-2 .box-title h2,
    .dashboard .col2-set .col-2 .box-title h3 {
      font-weight: 600;
      font-family: Arial, sans-serif;
      font-size: 14px; }
    .dashboard .col2-set .col-1 .box-title a,
    .dashboard .col2-set .col-2 .box-title a {
      line-height: 19.6px; }

.dashboard .box-reviews.box-account {
  padding-bottom: 0; }

.dashboard .box-reviews li {
  padding: 10px 0;
  border-top: 1px solid #EDEDED; }
  .dashboard .box-reviews li:first-child {
    border-top: 0; }
  .dashboard .box-reviews li .number {
    margin-right: -20px;
    float: left;
    line-height: 1.4;
    font-size: 13px; }
  .dashboard .box-reviews li .details {
    margin-left: 20px; }
    .dashboard .box-reviews li .details .ratings {
      content: '';
      display: table;
      clear: both;
      margin-bottom: 0; }
      .dashboard .box-reviews li .details .ratings strong {
        float: left;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        font-size: 13px;
        margin-right: 5px; }
      .dashboard .box-reviews li .details .ratings .rating-box {
        float: left;
        margin: 3px 0 0 0; }

/* ============================================ *
 * Address Book
 * ============================================ */
.my-account .addresses-list {
  font-family: Arial, sans-serif; }
  .my-account .addresses-list .col-1,
  .my-account .addresses-list .col-2 {
    padding-bottom: 0; }
  .my-account .addresses-list .item {
    margin: 0 0 35px 0; }
    .my-account .addresses-list .item p {
      margin-top: 10px; }
  @media only screen and (max-width: 770px) {
    .my-account .addresses-list .col-1,
    .my-account .addresses-list .col-2 {
      width: 100%;
      padding-left: 0;
      padding-right: 0; }
      .my-account .addresses-list .col-1 li.empty,
      .my-account .addresses-list .col-2 li.empty {
        width: 100%; } }
  @media only screen and (max-width: 599px) {
    .my-account .addresses-list .addresses-additional p a {
      white-space: nowrap; } }

/* ============================================ *
 * Order View
 * ============================================ */
.order-info {
  padding-bottom: 10px;
  border-bottom: 1px solid #EDEDED;
  width: 100%;
  margin-bottom: 35px; }
  .order-info dt,
  .order-info dd,
  .order-info ul,
  .order-info li {
    display: inline; }
  .order-info dt {
    margin-right: 20px; }
  .order-info li {
    margin: 0 0 0 20px; }
    .order-info li.current {
      font-weight: 600; }
    .order-info li:first-child {
      margin-left: 0; }

.order-date {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  text-transform: uppercase; }

.order-info-box {
  margin-bottom: 40px;
  margin-top: 20px; }
  .order-info-box + .order-info-box {
    padding-bottom: 40px;
    border-bottom: 1px solid #EDEDED; }
  .order-info-box .col-1 {
    padding-right: 0;
    width: 48%; }
  .order-info-box .col-2 {
    width: 52%; }
  .order-info-box .col-1,
  .order-info-box .col-2 {
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0; }
  .order-info-box .box-title {
    width: 150px;
    padding-right: 10px;
    float: left; }
    .order-info-box .box-title h2 {
      font-size: 14px;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-weight: bold;
      line-height: 1.5; }
      .order-info-box .box-title h2:after {
        content: ':'; }
  .order-info-box .box-content {
    float: left;
    font-family: Arial, sans-serif; }
    .order-info-box .box-content td,
    .order-info-box .box-content th {
      font-family: Arial, sans-serif;
      line-height: 1.3; }
    .order-info-box .box-content th {
      padding-top: 10px; }
    .order-info-box .box-content td {
      padding-left: 15px; }
    .order-info-box .box-content strong {
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-weight: normal;
      text-transform: uppercase; }

#my-orders-table .option-label {
  margin-left: 10px;
  font-weight: 600;
  font-style: italic; }

#my-orders-table .option-value {
  margin-left: 20px; }

#my-orders-table tr.bundle:not(:last-child) td {
  border-bottom: none;
  border-top: none; }

ol#cart-sidebar-reorder li {
  margin-top: 10px;
  margin-bottom: 0; }
  ol#cart-sidebar-reorder li input {
    margin-right: 10px; }

ol#cart-sidebar-reorder p.product-name {
  display: inline; }

@media only screen and (max-width: 599px) {
  #my-orders-table .option-label {
    margin-left: 20px; }
  #my-orders-table .option-value {
    margin-left: 35px; }
  #my-orders-table td[data-rwd-label=Qty] .nobr br {
    display: none; }
  #my-orders-table td[data-rwd-label=Qty] .nobr strong {
    margin-right: 10px; }
  #my-orders-table tr.bundle {
    border-color: #EDEDED; }
  #my-orders-table tr.bundle.child td[data-rwd-label] {
    padding-left: 60px; }
  #my-orders-table tbody:last-child tr:last-child td {
    padding-bottom: 10px;
    border-bottom: 0; }
    #my-orders-table tbody:last-child tr:last-child td:last-child {
      padding-bottom: 15px; }
  #my-orders-table tfoot tr.shipping {
    margin-top: 0; } }

.order-additional {
  margin: 40px 0; }

.order-gift-message dd {
  margin-top: 10px; }

@media only screen and (max-width: 1199px) {
  .dashboard .col2-set .col-1,
  .dashboard .col2-set .col-2 {
    padding-right: 35px;
    padding-bottom: 0; }
  body.customer-account .data-table td.view a {
    white-space: normal; } }

@media only screen and (max-width: 979px) {
  body.customer-account .my-account .title-buttons {
    text-align: left; }
    body.customer-account .my-account .title-buttons span.separator,
    body.customer-account .my-account .title-buttons a {
      top: -12px; } }

@media only screen and (max-width: 770px) {
  body.customer-account .data-table.orders th.ship,
  body.customer-account .data-table.orders td.ship,
  body.customer-account .data-table.orders td.status,
  body.customer-account .data-table.orders th.status {
    display: none; }
  .order-info-box .box-content {
    clear: left; }
  .addresses-list .item {
    float: left;
    width: 50%;
    padding-right: 35px; }
  .order-info dt {
    display: none; }
  .dashboard .page-title {
    margin-top: 20px; }
    .dashboard .page-title h1 {
      margin-top: 0; }
  .dashboard .welcome-msg {
    font-family: Arial, sans-serif; }
    .dashboard .welcome-msg .hello {
      font-style: italic; }
  .dashboard .box-account {
    padding-bottom: 15px;
    margin-bottom: 35px; }
  .dashboard .col2-set .col-1,
  .dashboard .col2-set .col-2 {
    width: 48%;
    padding-right: 0;
    padding-left: 0; }
  .dashboard .col2-set .col-1 {
    float: left;
    margin-right: 4%; }
  .dashboard .col2-set .col-2 {
    float: right; } }

@media only screen and (max-width: 599px) {
  body.customer-account .my-account .form-list .control {
    padding-left: 0; } }

@media only screen and (max-width: 479px) {
  body.customer-account .my-account .page-title h1 {
    text-align: center; }
  body.customer-account .my-account .title-buttons {
    text-align: center; }
    body.customer-account .my-account .title-buttons .button {
      width: 100%;
      position: static;
      margin-bottom: 15px; }
      body.customer-account .my-account .title-buttons .button + .button {
        margin-left: 0px; }
  body.customer-account .my-account .fieldset h2 {
    margin-bottom: 15px; }
  body.customer-account .my-account .order-details h2 {
    margin-bottom: 15px; }
  body.customer-account .my-account .buttons-set {
    border-top: 0; }
  body.customer-account .my-account .addresses-list .item {
    margin-bottom: 15px;
    padding-right: 0;
    float: none;
    width: auto; }
  body.customer-account .my-account .addresses-list h2 {
    margin-bottom: 15px; }
  .order-info {
    margin-top: 15px; }
  .data-table.orders .link-reorder,
  .data-table.orders .date {
    display: none; }
  .data-table.orders td.view {
    text-align: right; }
  .dashboard .col2-set .col-1,
  .dashboard .col2-set .col-2 {
    width: 100%;
    margin-top: 15px; }
  .order-info-box {
    margin: 0; }
    .order-info-box .col-1,
    .order-info-box .col-2 {
      width: 100%;
      border-bottom: 1px solid #EDEDED;
      padding: 15px 0; }
    .order-info-box + .order-info-box {
      padding-bottom: 0;
      border-bottom: 0;
      margin-bottom: 35px; }
  #my-reviews-table .nobr {
    white-space: normal; } }

/* ============================================ *
 * Newsletter Subscriptions
 * ============================================ */
body.newsletter-manage-index .my-account .fieldset {
  margin-bottom: 20px; }

body.newsletter-manage-index .my-account .fieldset h2 {
  display: none; }

body.newsletter-manage-index .my-account .form-list {
  border-top: 1px solid #EDEDED;
  padding-top: 10px; }

/* ============================================ *
 * Contacts
 * ============================================ */
.contacts-index-index .buttons-set {
  margin-left: 35px;
  max-width: 435px; }
  .contacts-index-index .buttons-set p.required {
    float: left; }
  @media only screen and (max-width: 599px) {
    .contacts-index-index .buttons-set {
      max-width: 330px;
      margin-left: 0; }
      .contacts-index-index .buttons-set button {
        float: left;
        margin-left: 0px; }
      .contacts-index-index .buttons-set p.required {
        float: right; } }

/* ============================================ *
 * PayPal
 * ============================================ */
@media only screen and (max-width: 870px) and (min-width: 771px) {
  .paypal-review-order .col2-set .col-1,
  .paypal-review-order .col2-set .col-2 {
    padding: 0px; } }

.paypal-review-order .info-set {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #EDEDED; }

.paypal-review-order .buttons-set {
  margin-top: 0px;
  padding-top: 0px;
  border: 0; }
  .paypal-review-order .buttons-set button {
    margin-bottom: 10px; }

@media only screen and (max-width: 770px) {
  .paypal-review-order .col-1 {
    padding-bottom: 0; }
  .paypal-review-order .field.inactive {
    display: none; } }

.top-container .bml-ad {
  margin-top: 7px;
  margin-bottom: 7px;
  text-align: center; }
  .top-container .bml-ad span {
    display: inline-block; }
    .top-container .bml-ad span a {
      display: block; }

.bml-ad {
  display: none;
  text-align: center;
  margin-bottom: 5px; }
  .bml-ad span {
    display: block;
    line-height: 0; }
  .bml-ad a {
    display: inline-block;
    max-width: 100%; }
  .bml-ad a:hover {
    opacity: 0.7; }
  .bml-ad img {
    height: auto !important;
    max-width: 100%; }

.cart-totals-wrapper .bml-ad.large img {
  display: block;
  margin: 0; }

@media only screen and (max-width: 770px) {
  .bml-ad.small {
    display: block; } }

@media only screen and (min-width: 771px) {
  .bml-ad.large {
    display: block; } }

div.paypal-logo {
  text-align: center;
  margin: 15px 0;
  max-width: 100%; }
  div.paypal-logo span {
    display: block;
    width: 100%; }
    div.paypal-logo span a {
      display: inline-block;
      max-width: 100%; }
      div.paypal-logo span a img {
        max-width: 100%; }
  div.paypal-logo span > img {
    display: none; }

.checkout-types div.paypal-logo {
  text-align: right; }

.bml-checkout-type {
  list-style-type: none; }

.sidebar .paypal-logo {
  text-align: center;
  line-height: 0; }
  .sidebar .paypal-logo > a {
    display: inline-block;
    max-width: 100%; }
    .sidebar .paypal-logo > a:hover {
      opacity: 0.8; }
    .sidebar .paypal-logo > a img {
      display: block; }
  .sidebar .paypal-logo .label {
    margin-top: 4px; }
    .sidebar .paypal-logo .label a {
      font-size: 12px;
      line-height: 1.5; }

/* ============================================ *
 * Review - Customer
 * ============================================ */
#customer-reviews {
  width: auto;
  float: none; }
  #customer-reviews .review-heading {
    border-top: 1px solid #CCCCCC;
    border-bottom: 1px solid #CCCCCC;
    padding: 10px 0 5px; }
    #customer-reviews .review-heading:after {
      content: '';
      display: table;
      clear: both; }
    #customer-reviews .review-heading h2 {
      float: left;
      display: block; }
    #customer-reviews .review-heading .pager {
      clear: none;
      float: right;
      width: auto; }
      #customer-reviews .review-heading .pager .count-container .limiter {
        margin-bottom: 0; }
        #customer-reviews .review-heading .pager .count-container .limiter label {
          font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
          font-size: 10px;
          text-transform: uppercase; }
      #customer-reviews .review-heading .pager .amount {
        display: none; }
  #customer-reviews h2 {
    color: #1f86bd;
    font-size: 12px;
    text-transform: uppercase; }
    #customer-reviews h2 span {
      color: #003b5f; }
  #customer-reviews h3 {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    font-weight: normal;
    text-transform: uppercase; }
    #customer-reviews h3 span {
      color: #1f86bd; }
  #customer-reviews .fieldset {
    padding-top: 25px;
    width: 470px; }
    #customer-reviews .fieldset h4 {
      border-bottom: 1px solid #CCCCCC;
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 12px;
      font-weight: normal;
      padding-bottom: 5px;
      text-transform: uppercase; }
      #customer-reviews .fieldset h4 em {
        display: none; }
    #customer-reviews .fieldset .form-list {
      font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
      font-size: 12px;
      font-weight: normal;
      margin: 10px 0;
      text-transform: uppercase;
      width: 470px; }
      #customer-reviews .fieldset .form-list .inline-label:after {
        content: '';
        display: table;
        clear: both; }
      #customer-reviews .fieldset .form-list label {
        font-size: 12px;
        font-weight: normal; }
      #customer-reviews .fieldset .form-list textarea {
        border: 1px solid #CCCCCC;
        border-radius: 0;
        min-width: 100%;
        -webkit-appearance: none; }
      #customer-reviews .fieldset .form-list input {
        border: 1px solid #CCCCCC;
        border-radius: 0; }
        #customer-reviews .fieldset .form-list input[type="text"] {
          width: 100%; }
  #customer-reviews .buttons-set {
    border: none;
    margin: 0;
    width: 470px; }
  #customer-reviews dl {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    font-weight: normal;
    margin-bottom: 10px; }
    #customer-reviews dl dt {
      margin: 10px 0;
      text-transform: uppercase; }
    #customer-reviews dl dd {
      font-family: Arial, sans-serif;
      font-size: 14px;
      margin: 10px 0; }
      #customer-reviews dl dd .ratings-table {
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        font-size: 12px;
        width: 100%; }
        #customer-reviews dl dd .ratings-table tr {
          margin-right: 15px; }
        #customer-reviews dl dd .ratings-table .review-label {
          width: 300px;
          max-width: 70%; }
      #customer-reviews dl dd table {
        margin: 15px 0; }
      #customer-reviews dl dd .review-meta {
        color: #1f86bd;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        font-size: 10px;
        font-weight: normal;
        text-transform: uppercase; }

.review-summary-table {
  border-bottom: 1px solid #CCCCCC;
  margin: 0 0 10px; }
  .review-summary-table thead {
    background: transparent; }
    .review-summary-table thead th {
      background: transparent;
      border: none;
      padding: 15px 7px 10px 8px; }
  .review-summary-table tbody th {
    background: #FFFFFF;
    font-size: 12px; }
  .review-summary-table tbody td {
    border: none;
    text-align: center;
    padding: 0; }
    .review-summary-table tbody td label {
      width: 100%;
      display: block;
      padding: 11px 0; }
  .review-summary-table .rating-box .rating-number {
    display: none; }
    .review-summary-table .rating-box .rating-number:after {
      content: "";
      display: inline-block;
      background-position: 0px -599px;
      width: 13px;
      height: 14px;
      margin-left: 5px;
      position: relative;
      top: 2px; }

/* ============================================ *
 * Ratings - Global
 * ============================================ */
.ratings-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px;
  text-transform: uppercase; }
  .ratings-table th {
    padding-right: 10px; }
  .ratings-table .rating-box {
    background-position: 0 -615px;
    background-repeat: repeat-x;
    height: 13px;
    overflow: hidden;
    text-indent: -9999px;
    width: 65px; }
    .ratings-table .rating-box .rating {
      background-position: 0 -600px;
      background-repeat: repeat-x;
      float: left;
      height: 13px;
      text-indent: -9999px; }

@media only screen and (max-width: 770px) {
  body.review-product-list .product-view .product-shop .price-info {
    padding-left: 0; }
  body.review-product-list .product-view .product-shop .extra-info {
    padding: 0;
    min-width: 84%; }
    body.review-product-list .product-view .product-shop .extra-info .ratings-table {
      margin: 10px 0;
      width: 100%; }
      body.review-product-list .product-view .product-shop .extra-info .ratings-table tr {
        margin-right: 15px; } }

@media only screen and (max-width: 535px) {
  body.review-product-list .product-view .product-shop .extra-info {
    min-width: 0; }
    body.review-product-list .product-view .product-shop .extra-info .ratings-table tr {
      float: none;
      margin-right: 0; } }

@media only screen and (max-width: 520px) {
  #customer-reviews .fieldset {
    width: 100%; }
    #customer-reviews .fieldset .form-list {
      width: 100%; }
      #customer-reviews .fieldset .form-list .inline-label label,
      #customer-reviews .fieldset .form-list .inline-label .input-box {
        float: none; }
  #customer-reviews .buttons-set {
    width: 100%; }
  #customer-reviews .review-summary-table thead th {
    padding-left: 0px;
    padding-right: 0px; }
  #customer-reviews .review-summary-table tbody th {
    padding-left: 0px;
    padding-right: 0px; }
  #customer-reviews .review-summary-table tbody td {
    width: 20%;
    padding: 0px; }
  #customer-reviews .review-summary-table .rating-box {
    text-indent: 0px;
    text-align: center;
    background: none;
    height: 19.6px;
    width: 100%; }
    #customer-reviews .review-summary-table .rating-box .rating {
      display: none; }
    #customer-reviews .review-summary-table .rating-box .rating-number {
      display: inline-block; } }

@media only screen and (max-width: 450px) {
  #customer-reviews dl dd .ratings-table tr {
    float: none; } }

/* ============================================ *
 * Review View Page
 * ============================================ */
.review-product-view .product-review .product-details h2 {
  border-bottom: none; }

.review-product-view .product-review .product-img-box {
  width: auto;
  max-width: 50%; }
  .review-product-view .product-review .product-img-box > a {
    width: 100%; }
  .review-product-view .product-review .product-img-box .product-image {
    width: 100%; }

@media only screen and (max-width: 770px) {
  .review-product-view .product-review .product-img-box {
    max-width: 100%; } }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
  opacity: 0;
  -webkit-transition: opacity .3s ease-out;
  transition: opacity .3s ease-out; }
  .slick-slider.slick-initialized {
    opacity: 1; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track, .slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  width: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block;
    width: 100%; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

.slick-prev, .slick-next {
  background: #003b5f;
  width: 34px;
  height: 34px;
  box-sizing: border-box;
  padding: 9px 0;
  border-radius: 50%;
  text-align: center;
  position: absolute;
  top: 50%;
  margin-top: -17px;
  left: -40px;
  cursor: pointer; }
  .slick-prev img, .slick-next img {
    display: inline-block;
    margin-left: -2px; }

.slick-next {
  left: auto;
  right: -40px; }
  .slick-next img {
    margin-left: auto;
    margin-right: -2px; }

.slick-dots {
  text-align: center; }
  .slick-dots button {
    display: none; }
  .slick-dots li {
    width: 16px;
    height: 16px;
    background: #b6b6b6;
    border-radius: 50%;
    cursor: pointer;
    display: inline-block;
    margin: 0 7px;
    padding: 0 !important;
    margin-top: 20px; }
    .slick-dots li.slick-active {
      background: #1f86bd; }

.slick-slide {
  outline: none; }

.wordpress-layout-fullscreen .fullscreen-slider {
  padding-top: 1px;
  width: 100%;
  height: 90vh;
  position: relative;
  margin-bottom: 20px; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-list {
    height: 100%; }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-list .slick-track {
      height: 100%; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-next {
    right: 40px;
    left: auto;
    z-index: 10; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-prev {
    left: 40px;
    right: auto;
    z-index: 10; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-dots {
    position: absolute;
    bottom: 35px;
    width: 100%; }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-dots li {
      background: white; }
      .wordpress-layout-fullscreen .fullscreen-slider .slick-dots li.slick-active {
        background: #1f86bd; }
  .wordpress-layout-fullscreen .fullscreen-slider .content-wrapper {
    height: 100%;
    padding-top: 10px; }
  .wordpress-layout-fullscreen .fullscreen-slider .slick-slide {
    background-size: cover; }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 {
      background-color: #AAC502; }
      .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-40%);
                transform: translateY(-40%);
        font-size: 40px;
        text-transform: uppercase;
        color: white;
        font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
        line-height: 1; }
        @media only screen and (min-width: 600px) {
          .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
            font-size: 68px; } }
        @media only screen and (min-width: 771px) {
          .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
            font-size: 88px; } }
        @media only screen and (min-width: 980px) {
          .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide1 .headline {
            font-size: 100px; } }
    .wordpress-layout-fullscreen .fullscreen-slider .slick-slide.slide2 {
      background-image: url(../images/about-slider/stock.jpg); }

#block-productfinder .slick-prev, #block-productfinder .slick-next {
  background: #c9c9c9;
  background-image: url(../images/arrow-left.svg);
  background-size: 12px;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 100;
  top: 30%; }

#block-productfinder .slick-prev {
  left: 15px; }

#block-productfinder .slick-next {
  background-image: url(../images/arrow-right.svg);
  right: 15px; }

/* ============================================ *
 * Slideshow
 * ============================================ */
.slideshow-container {
  position: relative;
  display: block;
  width: 100%;
  margin: 10px 0;
  border: 1px solid #EDEDED; }
  .slideshow-container .slideshow {
    width: 100%;
    padding: 0;
    position: relative;
    margin: 0;
    border: 10px solid #FFFFFF; }
    .slideshow-container .slideshow > li {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      padding: 0;
      display: block;
      margin: 0; }
      .slideshow-container .slideshow > li:first-child {
        position: static;
        z-index: 100; }
      .slideshow-container .slideshow > li img {
        max-width: 100%;
        width: 100%; }

.slideshow-pager {
  text-align: center;
  width: 100%;
  z-index: 115;
  position: absolute;
  bottom: 0px;
  top: auto;
  overflow: hidden;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }
  .slideshow-pager span {
    font-family: arial;
    width: 44px;
    height: 44px;
    display: inline-block;
    color: #DDDDDD;
    cursor: pointer; }
    .slideshow-pager span:before {
      content: '';
      display: block;
      width: 16px;
      height: 16px;
      left: 50%;
      top: 50%;
      margin-left: -8px;
      margin-top: -8px;
      border-radius: 1px;
      background-color: #FFFFFF;
      position: relative; }
    .slideshow-pager span:hover:before {
      background-color: #1b76a7; }
    .slideshow-pager span.cycle-pager-active:before {
      background-color: #186791; }
  .slideshow-pager > * {
    cursor: pointer; }

.slideshow-prev,
.slideshow-next {
  position: absolute;
  top: 0;
  width: 15%;
  max-width: 80px;
  height: 100%;
  opacity: 0.6;
  z-index: 110;
  cursor: pointer;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }
  .slideshow-prev:before,
  .slideshow-next:before {
    content: '';
    width: 0;
    height: 0;
    font-size: 0;
    position: absolute;
    border-style: solid;
    display: block;
    top: 50%;
    margin-top: -15px; }
  .slideshow-prev:hover,
  .slideshow-next:hover {
    opacity: 1; }
  .slideshow-prev.disabled,
  .slideshow-next.disabled {
    opacity: .5;
    cursor: default; }

.slideshow-prev {
  left: 8px; }
  .slideshow-prev:before {
    border-width: 15px 15px 15px 0;
    border-color: transparent #FFFFFF transparent transparent;
    top: 50%;
    left: 10px; }
  .slideshow-prev:hover:before {
    border-color: transparent #1b76a7 transparent transparent; }

.slideshow-next {
  right: 8px; }
  .slideshow-next:before {
    border-width: 15px 0 15px 15px;
    border-color: transparent transparent transparent #FFFFFF;
    top: 50%;
    right: 10px; }
  .slideshow-next:hover:before {
    border-color: transparent transparent transparent #1b76a7; }

.cycle-caption {
  position: absolute;
  color: white;
  bottom: 15px;
  right: 15px;
  z-index: 110; }

.cycle-overlay {
  font-family: tahoma, arial;
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 120;
  background: black;
  color: white;
  padding: 15px;
  opacity: .5; }

/* ============================================ *
 * Wishlist
 * ============================================ */
#wishlist-table th {
  text-align: center; }

#wishlist-table.clean-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  width: 100%; }
  #wishlist-table.clean-table th {
    border-bottom: 1px solid #C0C0C0; }
  #wishlist-table.clean-table td {
    padding: 15px;
    vertical-align: top; }
  #wishlist-table.clean-table thead th {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 12px;
    text-transform: uppercase; }

#wishlist-table .product-name {
  font-size: 20px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin-bottom: 0;
  text-transform: uppercase; }
  #wishlist-table .product-name a {
    color: #1f86bd; }

#wishlist-table .wishlist-sku {
  font-size: 11px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin: 5px 0; }

#wishlist-table textarea {
  border: 1px solid #C0C0C0;
  width: 100%;
  height: 45px;
  font-size: 11px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  #wishlist-table textarea::-webkit-input-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea:-moz-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea::-moz-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea:-ms-input-placeholder {
    text-transform: uppercase; }
  #wishlist-table textarea:focus {
    border: 1px solid #1f86bd; }

#wishlist-table .item-manage {
  text-align: right;
  max-width: 450px;
  padding-top: 5px; }
  #wishlist-table .item-manage .button {
    font-size: 11px;
    padding: 3px 5px; }

#wishlist-table .cart-cell {
  text-align: center; }

#wishlist-table td.customer-wishlist-item-image {
  width: 113px; }

#wishlist-table td.customer-wishlist-item-quantity {
  width: 3em; }

#wishlist-table td.customer-wishlist-item-price {
  width: 120px;
  text-align: center; }

#wishlist-table td.customer-wishlist-item-cart {
  width: 150px; }
  #wishlist-table td.customer-wishlist-item-cart .button {
    font-size: 12px;
    margin-bottom: 10px;
    padding: 3px 5px;
    width: 100%; }
  #wishlist-table td.customer-wishlist-item-cart .truncated {
    margin-bottom: 10px; }
  #wishlist-table td.customer-wishlist-item-cart > p {
    margin-bottom: 0; }
  #wishlist-table td.customer-wishlist-item-cart .remove-whishlist-item {
    text-align: center; }
  #wishlist-table td.customer-wishlist-item-cart .btn-remove {
    vertical-align: top; }

#wishlist-table td.customer-wishlist-item-remove {
  width: 20px; }

#wishlist-table td .button,
#wishlist-table td button {
  white-space: normal; }

#wishlist-table .price-box {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px; }
  #wishlist-table .price-box .price {
    color: #003b5f; }

#wishlist-table .giftregisty-add {
  margin-top: 5px; }
  #wishlist-table .giftregisty-add .change {
    display: none; }
  #wishlist-table .giftregisty-add li {
    cursor: pointer;
    color: #1f86bd;
    margin-bottom: 3px; }

#wishlist-table .truncated .details {
  background: none;
  color: #1f86bd; }

#wishlist-table td[data-rwd-label]:before {
  font-weight: 600; }

@media only screen and (max-width: 1199px) {
  #wishlist-table.clean-table td {
    padding-left: 10px;
    padding-right: 10px; } }

@media only screen and (max-width: 979px) {
  #wishlist-table.clean-table td {
    padding-left: 5px;
    padding-right: 5px; }
    #wishlist-table.clean-table td textarea {
      height: 100px; }
    #wishlist-table.clean-table td.customer-wishlist-item-cart {
      width: 110px; }
  #wishlist-table .product-name {
    font-size: 13px; } }

@media only screen and (max-width: 770px) {
  #wishlist-table:after {
    content: '';
    display: table;
    clear: both; }
  #wishlist-table .product-name {
    font-size: 20px; }
  #wishlist-table textarea {
    height: 68px;
    max-width: 100%; }
  #wishlist-table .item-manage {
    max-width: 100%; }
  #wishlist-table tr {
    position: relative; }
    #wishlist-table tr:after {
      content: '';
      display: table;
      clear: both; }
  #wishlist-table td.customer-wishlist-item-image {
    width: 70px; }
    #wishlist-table td.customer-wishlist-item-image img {
      width: 70px;
      height: 70px; }
  #wishlist-table td.customer-wishlist-item-cart p {
    margin-bottom: 0; }
  #wishlist-table td.customer-wishlist-item-cart .remove-whishlist-item {
    margin-right: 0;
    padding-top: 4px; }
  #wishlist-table td.customer-wishlist-item-cart {
    padding-right: 15px; } }

@media only screen and (max-width: 599px) {
  #wishlist-table td.customer-wishlist-item-quantity {
    padding-left: 0; }
  #wishlist-table td.customer-wishlist-item-image,
  #wishlist-table th.customer-wishlist-item-image {
    display: none; } }

@media only screen and (max-width: 479px) {
  #wishlist-table tr {
    position: relative; }
  #wishlist-table th.customer-wishlist-item-image {
    display: block; }
  #wishlist-table td.customer-wishlist-item-image, #wishlist-table td.customer-wishlist-item-info, #wishlist-table td.customer-wishlist-item-quantity, #wishlist-table td.customer-wishlist-item-price, #wishlist-table td.customer-wishlist-item-cart {
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    empty-cells: hide; }
  #wishlist-table td.customer-wishlist-item-image {
    display: block;
    overflow: hidden; }
    #wishlist-table td.customer-wishlist-item-image a {
      float: left; }
      #wishlist-table td.customer-wishlist-item-image a img {
        width: 113px;
        height: 113px; }
  #wishlist-table td.customer-wishlist-item-quantity, #wishlist-table td.customer-wishlist-item-price {
    text-align: left; }
    #wishlist-table td.customer-wishlist-item-quantity:before, #wishlist-table td.customer-wishlist-item-price:before {
      float: left;
      margin-right: 15px; }
    #wishlist-table td.customer-wishlist-item-quantity .cart-cell, #wishlist-table td.customer-wishlist-item-price .cart-cell {
      text-align: left; }
    #wishlist-table td.customer-wishlist-item-quantity .price-box, #wishlist-table td.customer-wishlist-item-price .price-box {
      margin-top: 0; }
  #wishlist-table td.customer-wishlist-item-cart .cart-cell {
    float: left;
    width: 48%; }
  #wishlist-table td.customer-wishlist-item-cart > p {
    float: right;
    width: 48%; }
  #wishlist-table td.customer-wishlist-item-remove {
    position: absolute;
    top: 15px;
    right: 0px;
    display: block;
    padding: 0px;
    height: 20px; }
  #wishlist-table.clean-table td.customer-wishlist-item-cart {
    width: 100%; } }

/* ============================================ *
 * Wishlist Sidebar
 * ============================================ */
.block-wishlist .mini-products-list > li:not(:last-child) {
  padding-bottom: 5px; }

.block-wishlist .product-details .product-name {
  padding-top: 0;
  margin-bottom: 5px; }

.block-wishlist .price-box {
  float: left;
  margin: 0; }

.block-wishlist .price-box,
.block-wishlist .price-box .price,
.block-wishlist .link-cart {
  font-size: 12px; }

.block-wishlist .link-cart {
  float: left;
  text-transform: uppercase;
  margin-right: 7px;
  padding-right: 7px;
  border-right: 1px solid #EDEDED; }

/* ============================================ *
 * Checkout - Mini cart
 * ============================================ */
.header-minicart {
  display: inline-block; }
  .header-minicart .minicart-message {
    display: block;
    padding: 10px; }
  .header-minicart .empty {
    padding: 10px;
    text-align: center; }
  .header-minicart .minicart-wrapper {
    clear: both;
    position: relative; }
    .header-minicart .minicart-wrapper:before, .header-minicart .minicart-wrapper:after {
      content: '';
      position: absolute;
      top: 0px;
      left: 0px;
      width: 100%;
      height: 100%;
      display: none; }
    .header-minicart .minicart-wrapper:before {
      background-color: white;
      opacity: 0.8;
      z-index: 2; }
    .header-minicart .minicart-wrapper:after {
      background-image: url("../images/opc-ajax-loader.gif");
      background-repeat: no-repeat;
      background-position: center;
      z-index: 3; }
    .header-minicart .minicart-wrapper.loading {
      position: relative; }
      .header-minicart .minicart-wrapper.loading:before, .header-minicart .minicart-wrapper.loading:after {
        display: block; }
  .header-minicart .block-cart {
    display: none; }
  .header-minicart .block-subtitle {
    color: #50A4CF;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.4;
    padding: 5px;
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 0px; }
    .header-minicart .block-subtitle .close {
      width: 40px;
      float: right;
      display: block;
      color: #003b5f;
      text-decoration: none;
      font-weight: normal;
      font-size: 30px;
      position: absolute;
      top: -8px;
      right: -3px; }
  .header-minicart .mini-products-list {
    padding: 10px;
    padding-top: 0px; }
    .header-minicart .mini-products-list li {
      padding: 8px 5px 8px 11px;
      border-bottom: 1px solid #DDDDDD;
      position: relative; }
      .header-minicart .mini-products-list li.last {
        border: none; }
      .header-minicart .mini-products-list li .product-details {
        position: relative; }
  .header-minicart .product-details .product-name {
    padding-top: 0px;
    font-weight: bold; }
    .header-minicart .product-details .product-name a {
      color: #1f86bd; }
  .header-minicart .info-wrapper {
    margin-bottom: 0.5em; }
    .header-minicart .info-wrapper th {
      text-transform: uppercase;
      padding-right: 10px; }
    .header-minicart .info-wrapper td {
      color: #003b5f;
      clear: right; }
    .header-minicart .info-wrapper .qty-wrapper td {
      height: 33px;
      line-height: 33px; }
    .header-minicart .info-wrapper .qty {
      padding-left: 4px;
      padding-right: 4px;
      margin-right: 2px;
      width: 3.2em;
      text-align: center;
      height: 30px; }
    .header-minicart .info-wrapper .quantity-button {
      opacity: 0;
      -webkit-transition: opacity 100ms;
      transition: opacity 100ms; }
      .header-minicart .info-wrapper .quantity-button[disabled] {
        cursor: default; }
      .header-minicart .info-wrapper .quantity-button.visible {
        opacity: 1; }
  .header-minicart .subtotal {
    background-color: #DDDDDD;
    text-align: center;
    line-height: 2em; }
    .header-minicart .subtotal .label {
      color: white;
      text-transform: uppercase; }
    .header-minicart .subtotal .price {
      color: #003b5f; }
  .header-minicart .minicart-actions {
    padding: 10px;
    margin-top: 0px;
    overflow: hidden;
    position: relative;
    text-align: center; }
    .header-minicart .minicart-actions .checkout-button {
      min-width: 145px; }
    .header-minicart .minicart-actions .cart-link {
      height: 33px;
      line-height: 39px;
      text-transform: uppercase;
      font-size: 13px; }
    .header-minicart .minicart-actions .paypal-logo .paypal-or {
      line-height: 1.6; }
  .header-minicart #minicart-error-message {
    text-align: center;
    color: red;
    display: none; }
  .header-minicart #minicart-success-message {
    text-align: center;
    color: green;
    display: none; }
  .header-minicart .jcarousel-control-prev,
  .header-minicart .jcarousel-control-next {
    display: none; }

.header-minicart.skip-active .block-cart,
.block-cart.skip-active {
  display: block; }

@media only screen and (min-width: 771px) {
  .checkout-types.minicart {
    float: none;
    text-align: center; } }

@media only screen and (max-width: 479px) {
  .header-minicart a.skip-cart {
    z-index: 1; } }

@media only screen and (max-width: 770px) {
  .header-minicart .subtotal .label {
    color: #003b5f; }
  .header-minicart .minicart-wrapper:before {
    background-color: #EDEDED; }
  .header-minicart .quantity-button {
    float: none; }
  .header-minicart .header-minicart .block-cart {
    padding: 15px; }
  .header-minicart .header-minicart .block-subtitle {
    padding-top: 59px; }
  .header-minicart .minicart-actions {
    padding-bottom: 33px; }
    .header-minicart .minicart-actions .cart-link {
      bottom: 0;
      right: 10px;
      position: absolute; }
    .header-minicart .minicart-actions .checkout-types.minicart li {
      display: inline-block; }
      .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo > a {
        display: inline; }
      .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .bml_button {
        display: inline-block;
        vertical-align: top; }
      .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-or {
        width: auto;
        float: none;
        display: inline;
        margin: 0 10px 5px 10px;
        line-height: 40px; } }

@media only screen and (max-width: 740px) {
  .header-minicart .minicart-actions .cart-link {
    right: auto;
    left: 0;
    text-align: center;
    width: 100%; }
  .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-or,
  .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-button {
    width: 100%;
    display: block;
    margin-left: 0; }
  .header-minicart .minicart-actions .checkout-types.minicart li .paypal-logo .paypal-or {
    line-height: 1.6; } }

@media only screen and (max-width: 599px) {
  .header-minicart .minicart-actions .checkout-button {
    width: 100%; } }

/* ============================================ *
 * Search - Auto Suggest
 * ============================================ */
.search-autocomplete {
  left: 0 !important;
  overflow: visible !important;
  position: relative !important;
  top: 15px !important;
  width: 100% !important;
  z-index: 200; }
  .search-autocomplete ul {
    background-color: #FFFFFF;
    border: 1px solid #1f86bd;
    left: 0;
    padding-left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
    .search-autocomplete ul li {
      border-bottom: 1px solid #F4F4F4;
      color: #1f86bd;
      cursor: pointer;
      font-size: 12px;
      padding: 4px 6px;
      text-align: left; }
      .search-autocomplete ul li:hover {
        color: #1b76a7; }
      .search-autocomplete ul li.selected {
        background-color: #1f86bd;
        color: white; }
      .search-autocomplete ul li .amount {
        float: right;
        font-weight: bold; }
      .search-autocomplete ul li:last-child {
        border-bottom: none; }
  .search-autocomplete:before {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-bottom: 7px solid #1f86bd;
    border-top: none;
    left: 50%;
    top: -7px; }

/* ============================================ *
 * Search - Advanced
 * ============================================ */
.advanced-search {
  background: #F4F4F4;
  border: 1px solid #EDEDED;
  padding: 35px; }
  .advanced-search select.multiselect option {
    border-bottom: 1px solid #EDEDED;
    padding: 2px 5px; }

@media only screen and (max-width: 479px) {
  .advanced-search {
    padding: 15px; } }

/* ============================================ *
 * Account - Reviews
 * ============================================ */
.product-review .product-img-box p.label {
  border-bottom: 1px solid #CCCCCC;
  font-size: 20px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin-top: 20px;
  padding-bottom: 10px;
  text-transform: uppercase; }

.product-review .product-img-box .rating-box {
  margin: 15px 0; }

.product-review .product-details h2 {
  border-bottom: 1px solid #CCCCCC;
  color: #3399CC;
  font-size: 20px;
  font-weight: 600;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  padding-bottom: 10px; }

.product-review .ratings-table {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
  .product-review .ratings-table th {
    padding-right: 10px; }
  .product-review .ratings-table tr {
    float: left;
    font-size: 12px;
    margin-right: 10px;
    text-transform: uppercase; }

.product-review .ratings-description dt {
  border-bottom: 1px solid #CCCCCC;
  font-size: 20px;
  font-weight: 400;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  margin-top: 20px;
  padding: 10px 0;
  text-transform: uppercase; }

.product-review .ratings-description dd {
  color: #737373;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 13px; }

@media only screen and (min-width: 771px) {
  .product-review .ratings-table tr {
    float: none; } }

@media only screen and (min-width: 1126px) {
  .product-review .ratings-table tr {
    float: left;
    margin-right: 15px; } }

@media only screen and (max-width: 320px) {
  .product-review .ratings-table tr {
    float: none; } }

/* ============================================ *
 * CMS Pages
 * ============================================ */
.cms-page-view .page-title h1,
.cms-page-view .page-title h3,
.cms-page-view .page-head h1,
.cms-page-view .page-head h3,
.cms-no-route .page-title h1,
.cms-no-route .page-title h3,
.cms-no-route .page-head h1,
.cms-no-route .page-head h3 {
  border: none; }

.cms-page-view .std img,
.cms-no-route .std img {
  max-width: 100%; }

.cms-page-view .std p,
.cms-no-route .std p {
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: #333333; }

.cms-page-view .std h1,
.cms-no-route .std h1 {
  color: #003b5f; }

.cms-page-view .std h2,
.cms-no-route .std h2 {
  color: #003b5f; }

.cms-page-view .std li,
.cms-no-route .std li {
  color: #003b5f;
  font-family: Arial, sans-serif;
  font-size: 14px;
  font-style: italic;
  line-height: 24px; }

.cms-page-view .col-left:after,
.cms-no-route .col-left:after {
  content: '';
  display: table;
  clear: both; }

.cms-no-route .std h2 {
  color: #003b5f;
  font-size: 48px;
  line-height: 1;
  text-transform: uppercase; }
  @media only screen and (min-width: 600px) {
    .cms-no-route .std h2 {
      font-size: 68px; } }

.cms-no-route .std div.left {
  max-width: 680px;
  float: left; }

.cms-no-route .std img {
  width: 100%; }

.cms-no-route .std .ant404 {
  max-width: 220px;
  float: right; }

.cms-page-view .std .messages,
.cms-home .std .messages,
.cms-no-route .std .messages {
  margin-bottom: 10px; }
  .cms-page-view .std .messages ul,
  .cms-home .std .messages ul,
  .cms-no-route .std .messages ul {
    margin-bottom: 0; }
  .cms-page-view .std .messages li,
  .cms-home .std .messages li,
  .cms-no-route .std .messages li {
    list-style: none;
    margin-left: 0;
    font-style: normal;
    font-family: Arial, sans-serif; }

#accordion .toggle-tabs {
  display: none; }

#accordion > dl > dt {
  margin: 0;
  margin-bottom: 10px;
  color: #003b5f;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  line-height: 1.4;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none;
  font-weight: normal;
  margin-bottom: 0px;
  padding: 7px 10px 7px 24px;
  border-width: 1px;
  border-style: solid;
  border-color: #CCCCCC;
  position: relative;
  background-color: #F4F4F4;
  display: block; }
  #accordion > dl > dt:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    display: block;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    border-top: 4px solid #1f86bd;
    border-bottom: none;
    left: 10px;
    top: 50%;
    margin-top: -3px; }
  #accordion > dl > dt:hover {
    background-color: shade(#F4F4F4, 3%); }

#accordion > dl > dd {
  padding: 10px;
  margin: 0;
  border-width: 0 1px;
  border-style: solid;
  border-color: #CCCCCC; }

#accordion > dl > dd:last-child {
  border-width: 0 1px 1px 1px; }

#accordion li {
  position: relative;
  overflow: hidden; }
  #accordion li .plusimage h2 {
    margin-right: 10px; }

.page-sitemap .links {
  display: block;
  text-align: right;
  margin: 0 20px 0 0; }
  .page-sitemap .links a {
    position: relative; }

.page-sitemap .sitemap {
  padding: 0 20px;
  margin: 15px 0;
  font-size: 12px; }
  .page-sitemap .sitemap li {
    margin: 3px 0; }

.contacts-index-index h1 {
  border: none; }

#contactForm {
  padding-left: 40px; }
  #contactForm h2 {
    display: none; }
  #contactForm:after {
    content: '';
    display: table;
    clear: both; }
  #contactForm .fieldset .legend + .required {
    margin: 0; }

@media only screen and (max-width: 770px) {
  #contactForm {
    padding-left: 0; } }

/* ============================================ *
 * Pricing Conditions
 * ============================================ */
.price-box .minimal-price-link .label {
  color: #CF5050;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 12px;
  text-transform: uppercase; }

.map-info {
  white-space: nowrap; }

.catalog-product-view .map-info {
  white-space: normal; }
  .catalog-product-view .map-info > span {
    float: right;
    margin-bottom: 5px; }
  .catalog-product-view .map-info .price-box.map-info > a {
    float: right;
    width: 100%; }

/* ============================================ *
 * Cookies
 * ============================================ */
.notice-cookie .notice-inner {
  padding-bottom: 0; }
  .notice-cookie .notice-inner:after {
    content: '';
    display: table;
    clear: both; }

.notice-cookie .notice-text {
  float: left;
  max-width: 90%;
  padding-top: 4px;
  text-align: left; }
  .notice-cookie .notice-text p {
    padding-bottom: 14.5px;
    line-height: 1.3; }

.notice-cookie .actions {
  float: left;
  text-align: right;
  padding-bottom: 14.5px; }

@media only screen and (max-width: 979px) {
  .notice-cookie .notice-text {
    max-width: 86%; } }

@media only screen and (max-width: 770px) {
  .notice-cookie {
    padding: 0 20px; }
    .notice-cookie .notice-text {
      max-width: 82%;
      padding-top: 0; } }

@media only screen and (max-width: 620px) {
  .notice-cookie {
    padding: 0 20px; }
    .notice-cookie .notice-inner {
      background-position: left 10px; }
      .notice-cookie .notice-inner:after {
        content: '';
        display: table;
        clear: both; }
    .notice-cookie .notice-text {
      float: none;
      max-width: 100%;
      padding-top: 0; }
    .notice-cookie .actions {
      text-align: left; } }

/* ============================================ *
 * Tags
 * ============================================ */
#addTagForm button {
  margin-top: 5px;
  margin-bottom: 10px; }

#addTagForm .form-add {
  margin-top: 10px; }

.product-tags {
  background-color: #F4F4F4;
  border: 1px solid #CCCCCC;
  float: left;
  margin-bottom: 10px;
  padding: 5px 1% 10px;
  width: 98%; }

.product-tags li {
  float: left;
  margin-right: 15px; }

.product-tags li.last {
  margin-right: 0px; }

.tags-list {
  float: left;
  width: 100%;
  margin-bottom: 10px; }

.tags-list > li {
  float: left;
  margin-right: 10px; }

.block-tags .actions > a {
  font-size: 12px; }

.my-tag-edit .button.btn-remove {
  padding: 0; }
  .my-tag-edit .button.btn-remove:after {
    color: white; }

@media only screen and (max-width: 770px) {
  .tags-list > li,
  .tags-list {
    float: none; } }

/* ============================================ *
 * Captcha
 * ============================================ */
.captcha-note {
  clear: left;
  padding-top: 5px; }

.captcha-image {
  float: left;
  display: inline;
  max-width: 100%;
  position: relative;
  width: 258px;
  margin-bottom: 10px; }

.captcha-image .captcha-img {
  border: 1px solid #b6b6b6;
  vertical-align: bottom;
  width: 100%; }

.registered-users .captcha-image {
  margin: 0; }

.captcha-reload {
  cursor: pointer;
  position: absolute;
  top: 2px;
  right: 2px; }

.captcha-reload.refreshing {
  animation: rotate 1.5s infinite linear;
  -webkit-animation: rotate 1.5s infinite linear;
  -moz-animation: rotate 1.5s infinite linear; }

.customer-account-create .scaffold-form .captcha-input-container label:first-child {
  width: 100%; }

.captcha-reload {
  position: absolute;
  right: 4px;
  top: 4px; }

.captcha-img {
  border: 20px solid #bbb; }

.captcha-input-container {
  margin-bottom: 10px; }

.control.newsletter-box, .captcha-input-container, .captcha-img-container {
  float: none;
  clear: both; }
  .control.newsletter-box:after, .captcha-input-container:after, .captcha-img-container:after {
    content: '';
    content: '';
    display: table;
    clear: both; }

/* ============================================ *
 * Checkout Billing Fix to place the Captcha properly
 * ============================================ */
#co-billing-form ul.form-list > .control {
  float: left;
  margin: 0 0 5px;
  width: 100%; }

/* ============================================ *
 * Account - Orders, Invoices, Credit Memos.
 * ============================================ */
@media only screen and (max-width: 479px) {
  .sales-order-invoice .sub-title,
  .sales-order-creditmemo .sub-title,
  .sales-order-shipment .sub-title {
    float: left;
    font-size: 17px;
    text-align: center;
    width: 100%; }
  .sales-order-invoice .order-links,
  .sales-order-creditmemo .order-links,
  .sales-order-shipment .order-links {
    text-align: center;
    width: 100%; } }

/* ============================================ *
 * Recurring Profiles
 * ============================================ */
#recurring_profile_list_view th {
  white-space: normal; }
  #recurring_profile_list_view th span {
    white-space: inherit; }

@media only screen and (max-width: 479px) {
  #recurring_profile_list_view {
    font-size: 12px; }
    #recurring_profile_list_view a {
      font-size: inherit; }
    #recurring_profile_list_view th,
    #recurring_profile_list_view td {
      padding: 2px; } }

.recurring-profiles-title {
  float: left; }
  .recurring-profiles-title h1 {
    margin-bottom: 7px; }

body.customer-account .my-account .title-buttons.recurring-profiles-title-buttons {
  float: right;
  text-align: right;
  margin-bottom: 35px; }
  @media only screen and (max-width: 479px) {
    body.customer-account .my-account .title-buttons.recurring-profiles-title-buttons {
      text-align: center;
      float: none; } }
  body.customer-account .my-account .title-buttons.recurring-profiles-title-buttons .button {
    position: static; }

.recurring-profiles-messages:after {
  content: '';
  display: table;
  clear: both; }

#recurring_start_date_trig {
  display: inline; }

/* ============================================ *
 * Billing Agreements
 * ============================================ */
.billing-agreements .info-box {
  margin-bottom: 35px; }
  .billing-agreements .info-box:after {
    content: '';
    display: table;
    clear: both; }
  .billing-agreements .info-box .form-list {
    max-width: 400px;
    width: 100%; }
  .billing-agreements .info-box .box-title {
    margin-top: 20px;
    margin-bottom: 7px; }
  .billing-agreements .info-box .button {
    float: right;
    margin-top: 7px; }
    @media only screen and (max-width: 479px) {
      .billing-agreements .info-box .button {
        width: 100%;
        float: none; } }

.billing-agreements #payment_method {
  width: 100%;
  margin-top: 7px;
  margin-bottom: 7px; }

.billing-agreement-view-header-wrapper .heading {
  max-width: 80%; }
  @media only screen and (max-width: 479px) {
    .billing-agreement-view-header-wrapper .heading {
      max-width: 100%; } }

.billing-agreement-details td, .billing-agreement-details th {
  padding: 3.5px; }

@media only screen and (max-width: 979px) {
  .billing-agreements .data-table .created-at,
  .billing-agreements .data-table .updated-at {
    display: none; } }

/* ============================================ *
 * Popular Search Terms Cloud
 * ============================================ */
.catalogsearch-term-popular .tags-list {
  float: left;
  width: 100%; }

.catalogsearch-term-popular .tags-list > li {
  float: left;
  height: 40px;
  margin-right: 25px; }

/* ============================================ *
 * Widgets
 * ============================================ */
/* -------------------------------------------- *
 * Add to cart by SKU
 */
.sidebar .widget-addbysku .sku-table .input-text:not(.qty) {
  width: 100%; }
  @media only screen and (min-width: 771px) {
    .sidebar .widget-addbysku .sku-table .input-text:not(.qty) {
      max-width: 100px; } }

.widget {
  clear: both; }

.widget .pager {
  float: none;
  width: 100%; }

@media only screen and (min-width: 1199px) {
  .col2-left-layout .col-main .widget,
  .col2-right-layout .col-main .widget,
  .col3-layout .col-main .widget {
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */ }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li {
      width: 23.31461%;
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1) {
      clear: left; }
    .col2-left-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n),
    .col2-right-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n),
    .col3-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n) {
      margin-right: 0; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li {
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li,
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li {
      width: 18.20225%;
      margin-right: 2.24719%; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1) {
      clear: left; }
    .col2-left-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n),
    .col2-right-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n),
    .col3-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n) {
      margin-right: 0; } }

@media only screen and (min-width: 770px) {
  .col1-layout .col-main .widget {
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */
    /* Config: Columns + flexible gutter */
    /* Undo three-column config */
    /* Set column config */ }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(odd) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(even),
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li {
      width: 23.31461%;
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n+1) {
      clear: left; }
    .col1-layout .col-main .widget .products-grid--max-4-col-widget > li:nth-child(4n) {
      margin-right: 0; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(odd) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n+1) {
      clear: none; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(even),
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(3n) {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li {
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li {
      width: 18.20225%;
      margin-right: 2.24719%; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n+1) {
      clear: left; }
    .col1-layout .col-main .widget .products-grid--max-5-col-widget > li:nth-child(5n) {
      margin-right: 0; } }

/* ============================================ *
 * Checkout - Multiple Addresses
 * ============================================ */
body[class*="checkout-multishipping-"] .checkout-progress {
  width: 100%;
  float: left;
  margin-bottom: 25px; }
  body[class*="checkout-multishipping-"] .checkout-progress > li {
    float: left;
    width: 20%;
    text-align: center;
    padding: 8px 1% 6px;
    background: #F4F4F4;
    text-transform: uppercase;
    border-bottom: 1px solid #CCCCCC;
    border-right: 1px solid #CCCCCC;
    margin-bottom: 10px;
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }
    body[class*="checkout-multishipping-"] .checkout-progress > li.active {
      background-color: #DDDDDD; }
    body[class*="checkout-multishipping-"] .checkout-progress > li.last {
      border-right: 0px; }

body[class*="checkout-multishipping-"] .page-title {
  float: left;
  width: 100%;
  margin-bottom: 15px; }
  body[class*="checkout-multishipping-"] .page-title h1 {
    border: 0 none;
    float: left;
    margin-top: 2px;
    margin-right: 2%; }
  body[class*="checkout-multishipping-"] .page-title .button {
    float: right; }

body[class*="checkout-multishipping-"] .multiple-checkout > h2 {
  text-transform: none;
  font-size: 17px;
  margin-bottom: 15px; }

body[class*="checkout-multishipping-"] .messages {
  float: left;
  width: 100%; }

body[class*="checkout-multishipping-"] .col-2.col-wide {
  width: 66%; }

body[class*="checkout-multishipping-"] .col-1.col-narrow {
  width: 30%; }

body[class*="checkout-multishipping-"] .actions {
  margin-bottom: 10px; }

body[class*="checkout-multishipping-"] .grand-total {
  text-align: right;
  font-size: 20px;
  font-weight: bold; }

body[class*="checkout-multishipping-"] #checkout-review-submit {
  float: right; }

body[class*="checkout-multishipping-"] #review-buttons-container {
  float: right;
  text-align: right; }

.checkout-multishipping-addresses .btn-remove2 {
  text-indent: -5555px;
  display: block;
  width: 22px;
  height: 22px; }

.checkout-multishipping-shipping .gift-messages {
  margin-top: 20px; }

.checkout-multishipping-shipping .gift-messages-form {
  margin-top: 15px; }
  .checkout-multishipping-shipping .gift-messages-form h4 {
    margin-top: 15px;
    margin-bottom: 5px; }
  .checkout-multishipping-shipping .gift-messages-form .form-list {
    margin-top: 10px;
    margin-bottom: 25px; }
  .checkout-multishipping-shipping .gift-messages-form .item {
    margin-top: 15px; }

.checkout-multishipping-shipping .col-1 .box-title h2, .checkout-multishipping-shipping .col-1 .box-title h3, .checkout-multishipping-shipping .col-1 .box-title h4, .checkout-multishipping-shipping .col-2 .box-title h2, .checkout-multishipping-shipping .col-2 .box-title h3, .checkout-multishipping-shipping .col-2 .box-title h4,
.checkout-multishipping-billing .col-1 .box-title h2,
.checkout-multishipping-billing .col-1 .box-title h3,
.checkout-multishipping-billing .col-1 .box-title h4,
.checkout-multishipping-billing .col-2 .box-title h2,
.checkout-multishipping-billing .col-2 .box-title h3,
.checkout-multishipping-billing .col-2 .box-title h4,
.checkout-multishipping-overview .col-1 .box-title h2,
.checkout-multishipping-overview .col-1 .box-title h3,
.checkout-multishipping-overview .col-1 .box-title h4,
.checkout-multishipping-overview .col-2 .box-title h2,
.checkout-multishipping-overview .col-2 .box-title h3,
.checkout-multishipping-overview .col-2 .box-title h4 {
  font-weight: normal;
  width: 100%;
  background: #F4F4F4;
  border-bottom: 1px solid #CCCCCC;
  padding: 10px;
  font-size: 14px; }

.checkout-multishipping-shipping .col-1 > h4, .checkout-multishipping-shipping .col-2 > h4,
.checkout-multishipping-billing .col-1 > h4,
.checkout-multishipping-billing .col-2 > h4,
.checkout-multishipping-overview .col-1 > h4,
.checkout-multishipping-overview .col-2 > h4 {
  font-weight: normal;
  width: 100%;
  background: #F4F4F4;
  border-bottom: 1px solid #CCCCCC;
  padding: 10px;
  font-size: 14px; }

.checkout-multishipping-shipping .col-1 .box-content, .checkout-multishipping-shipping .col-2 .box-content,
.checkout-multishipping-billing .col-1 .box-content,
.checkout-multishipping-billing .col-2 .box-content,
.checkout-multishipping-overview .col-1 .box-content,
.checkout-multishipping-overview .col-2 .box-content {
  margin-bottom: 25px;
  padding-left: 10px;
  margin-top: 10px; }

.checkout-multishipping-billing .sp-methods dt {
  float: left;
  width: 100%; }

#multiship-addresses-table > tbody > tr > td.a-center.last > a {
  background-image: none; }

#review-order-form > div:nth-child(3) > div.divider {
  width: 100%;
  clear: both; }

@media only screen and (max-width: 979px) {
  body[class*="checkout-multishipping-"] .checkout-progress span {
    word-spacing: 300px; }
  #review-order-form .col-1,
  #review-order-form .col-2 {
    float: none;
    width: auto;
    border: 0;
    padding-right: 0;
    padding-left: 0; } }

@media only screen and (max-width: 770px) {
  body[class*="checkout-multishipping-"] .checkout-progress span {
    width: 12px; }
  body[class*="checkout-multishipping-"] .checkout-progress li {
    width: 100%;
    margin: 0;
    text-align: left;
    padding-left: 3%;
    border-right: 0px; }
  body[class*="checkout-multishipping-"] .checkout-progress span {
    word-spacing: 1px;
    width: 12px; }
  body[class*="checkout-multishipping-"] .box-title {
    float: left;
    width: 100%; }
  body[class*="checkout-multishipping-"] .page-title .button {
    float: left;
    margin-bottom: 10px; }
  body[class*="checkout-multishipping-"] .linearize-table tfoot td {
    text-align: right; }
  body[class*="checkout-multishipping-"] .linearize-table select {
    width: 100%;
    min-width: 200px; }
  body[class*="checkout-multishipping-"] .col-1.col-narrow, body[class*="checkout-multishipping-"] .col-2.col-wide {
    width: 100%;
    padding: 0; } }

@media only screen and (max-width: 599px) {
  .checkout-multishipping-addresses .linearize-table tbody td[data-rwd-label] {
    text-align: left;
    padding-left: 10px;
    margin-top: 12px; } }

@media only screen and (max-width: 479px) {
  body[class*="checkout-multishipping-"] .buttons-set .back-link {
    display: block; } }

hr {
  margin: 2em 0;
  border: 1px dotted #003b5f;
  border-width: 1px 0 0 0; }

body.is-blog iframe:not([title="reCAPTCHA-Widget"]) {
  width: 100%;
  height: 300px; }

body.is-blog .page-layout--narrow {
  max-width: 680px;
  margin: auto; }

body.is-blog .page-layout--full {
  width: 100%; }

.test-device-block {
  margin: 1.5em 0; }

.wordpress-page-79 .block-blog-menu {
  display: none; }

#header-nav .nav-1 .view-all {
  display: none; }

.is-blog #header-nav {
  border-bottom: 1px dotted #003b5f; }

.is-blog .col-main {
  margin-bottom: 35px; }

.wordpress-layout-fullscreen #header-nav, .wordpress-index-index #header-nav, .wordpress-post-view #header-nav {
  border-bottom: none; }

.layout-landingpage #header-nav {
  border-bottom: none !important;
  padding-bottom: 0 !important; }

.layout-landingpage .footer {
  border-top: none; }

.layout-landingpage .post-entry hr:first-child {
  margin-top: 0 !important; }

.wordpress-post-view .main-container {
  margin-top: 0; }

.resellers.row:last-child, .people.row:last-child {
  margin-bottom: 70px; }

.wordpress-layout-col2-right #header-nav, .catalogsearch-result-index #header-nav {
  border-bottom: 1px dotted #003b5f;
  padding-bottom: 35px; }

body.is-blog .col2-right-layout .col-main,
body.is-blog .col2-right-layout .col-right {
  box-sizing: border-box; }

body.is-blog .col2-set .col-1,
body.is-blog .col2-set .col-2 {
  box-sizing: border-box; }

form .row:after, .form-wrapper .row:after {
  content: '';
  display: table;
  clear: both; }

@media only screen and (min-width: 600px) {
  form .row, .form-wrapper .row {
    margin-left: -10px;
    margin-right: -10px; } }

form .row .col-half,
form .row .col-full, .form-wrapper .row .col-half,
.form-wrapper .row .col-full {
  display: block;
  vertical-align: top;
  padding: 5px 0;
  width: 100%;
  box-sizing: border-box; }
  @media only screen and (min-width: 600px) {
    form .row .col-half,
    form .row .col-full, .form-wrapper .row .col-half,
    .form-wrapper .row .col-full {
      padding: 10px; } }
  @media only screen and (max-width: 599px) {
    form .row .col-half.submit,
    form .row .col-full.submit, .form-wrapper .row .col-half.submit,
    .form-wrapper .row .col-full.submit {
      float: right; } }

@media only screen and (min-width: 600px) {
  form .row .col-half, .form-wrapper .row .col-half {
    width: 50%;
    float: left; } }

form .row .col-full, .form-wrapper .row .col-full {
  width: 100%; }

.sidebar-items h3 {
  font-weight: normal;
  font-size: 20px;
  color: #003b5f;
  text-transform: none; }

.sidebar-items .block-recent-posts .block-title,
.sidebar-items .block-related-posts .block-title {
  display: none; }

.sidebar-items .block-recent-posts .posts-list-item,
.sidebar-items .block-related-posts .posts-list-item {
  margin: 0;
  padding-bottom: 1em; }
  @media only screen and (min-width: 771px) {
    .sidebar-items .block-recent-posts .posts-list-item:last-child,
    .sidebar-items .block-related-posts .posts-list-item:last-child {
      border-bottom: 1px dotted #003b5f; } }
  .sidebar-items .block-recent-posts .posts-list-item .featured-image,
  .sidebar-items .block-related-posts .posts-list-item .featured-image {
    margin-bottom: 1em; }
  .sidebar-items .block-recent-posts .posts-list-item a,
  .sidebar-items .block-related-posts .posts-list-item a {
    color: #003b5f;
    text-decoration: none !important; }

@media (min-width: 480px) and (max-width: 770px) {
  .sidebar-items .block-recent-posts .sidebar-posts-list:after,
  .sidebar-items .block-related-posts .sidebar-posts-list:after {
    content: '';
    display: table;
    clear: both; }
  .sidebar-items .block-recent-posts .posts-list-item,
  .sidebar-items .block-related-posts .posts-list-item {
    float: left;
    width: 50%;
    display: block;
    padding: 10px;
    box-sizing: border-box; }
  .sidebar-items .block-recent-posts .sidebar-posts-list,
  .sidebar-items .block-related-posts .sidebar-posts-list {
    margin-left: -10px;
    margin-right: -10px; } }

.sidebar-items .link-list {
  margin-bottom: 5em; }
  .sidebar-items .link-list .link-list-item {
    margin-bottom: .5em; }

.sidebar-items .block .block-title {
  border-bottom: 1px dotted #003b5f; }

.sidebar-items .block.block-blog-menu .block-content ul {
  margin-top: 2px; }
  .sidebar-items .block.block-blog-menu .block-content ul li.item {
    margin: 0;
    padding: 4px 0; }
    .sidebar-items .block.block-blog-menu .block-content ul li.item a {
      color: #003b5f;
      text-decoration: underline; }
      .sidebar-items .block.block-blog-menu .block-content ul li.item a:hover, .sidebar-items .block.block-blog-menu .block-content ul li.item a.active {
        color: #1f86bd !important; }

.sidebar-items form.search_mini_form {
  margin: 3em 0; }

@media only screen and (max-width: 770px) {
  .sidebar-spacer {
    display: none; } }

.support-block h3 {
  padding-bottom: 5px;
  margin-bottom: 10px;
  border-bottom: 1px dotted #003b5f; }

.support-block:after {
  display: table;
  content: '';
  clear: both; }

.support-block span.phone {
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  font-size: 24px;
  font-weight: normal;
  display: block;
  margin-bottom: 20px; }

.support-block .left, .support-block .right {
  width: 50%; }

.support-block .left {
  float: left; }

.support-block .right {
  float: right; }
  .support-block .right img {
    margin-top: -20px;
    height: auto; }

.productfinder-index-index .sidebar {
  padding-top: 8px; }

.sidebar hr {
  margin: 0; }

.sidebar p a, .sidebar-block a {
  color: #003b5f;
  text-decoration: underline; }
  .sidebar p a:hover, .sidebar-block a:hover {
    color: #1f86bd;
    text-decoration: underline; }

.sidebar-block {
  border-bottom: 1px dotted #003b5f;
  border-top: 1px dotted #003b5f;
  padding: 18px 0; }

body.wordpress-index-index .footer {
  border: none; }

body.wordpress-index-index .home-slide-wrapper {
  margin-left: -15px;
  margin-right: -15px; }
  @media only screen and (min-width: 771px) {
    body.wordpress-index-index .home-slide-wrapper {
      margin-left: -25px;
      margin-right: -25px; } }

body.wordpress-index-index .main-container {
  padding-top: 20px; }

body.wordpress-index-index .page-title {
  display: none; }

body.wordpress-index-index .featured-image {
  border: none;
  margin: 0; }

body.wordpress-index-index .post-list .home-slider-container {
  margin-bottom: 35px; }

body.wordpress-index-index .post-list ul#post-list li.item {
  margin-bottom: 0; }
  body.wordpress-index-index .post-list ul#post-list li.item:last-child {
    border-bottom: 1px dotted #003b5f; }
  body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry {
    margin-bottom: 0;
    padding-top: 20px; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry.post-entry-with-image {
      border-top: 1px dotted #003b5f; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry .featured-image img {
      width: 100%;
      max-width: none; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry h2 {
      margin-top: 20px;
      padding-top: 35px;
      border-top: 1px dotted #003b5f; }
      body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry h2 a {
        text-decoration: none;
        text-transform: none;
        letter-spacing: 0; }
    body.wordpress-index-index .post-list ul#post-list li.item .post-list-item .post-entry .post-excerpt {
      margin-bottom: 20px; }

body.wordpress-index-index .post-list .pager {
  margin-top: 2rem;
  margin-left: 0;
  float: none;
  display: block;
  width: 100%;
  text-align: center; }
  body.wordpress-index-index .post-list .pager .pages {
    display: inline-block;
    float: none;
    margin-bottom: 0;
    margin-left: 0; }
    body.wordpress-index-index .post-list .pager .pages ol li {
      display: inline-block;
      vertical-align: middle;
      float: none;
      width: 20px;
      height: 30px;
      color: #1f86bd; }
      body.wordpress-index-index .post-list .pager .pages ol li.current {
        border: 0;
        color: #003b5f; }
      body.wordpress-index-index .post-list .pager .pages ol li a.next, body.wordpress-index-index .post-list .pager .pages ol li a.previous {
        width: auto;
        height: auto;
        border: 0;
        width: 30px;
        height: 30px; }

.wordpress-post-view .post-entry {
  overflow: visible; }
  .wordpress-post-view .post-entry img {
    height: auto; }
  .wordpress-post-view .post-entry .featured-image .post-share img {
    width: 30px;
    height: 30px; }

.wordpress-post-view .home-slide-wrapper {
  padding-left: 0;
  padding-right: 0; }

.wordpress-post-view .post-teaser {
  border-bottom: 1px dotted #003b5f;
  margin-bottom: 20px; }
  @media only screen and (min-width: 771px) {
    .wordpress-post-view .post-teaser {
      width: 146.12%; } }

.wordpress-post-view .featured-image {
  border: 0;
  padding: 20px 0;
  margin-bottom: 20px;
  border-top: 1px dotted #003b5f;
  border-bottom: 1px dotted #003b5f;
  position: relative; }
  .wordpress-post-view .featured-image img {
    width: 100%; }
  .wordpress-post-view .featured-image .post-share {
    position: absolute;
    right: 0;
    bottom: 15px; }
    .wordpress-post-view .featured-image .post-share img {
      width: auto; }

.wordpress-post-view .post-share a {
  display: inline-block; }

.wordpress-post-view .post-meta {
  font-style: normal; }

.post-entry hr {
  margin: .5em 0 !important;
  border: 1px dotted #003b5f;
  border-width: 1px 0 0 0; }

.post-entry h1, .post-entry .h1,
.post-entry h2, .post-entry .h2,
.post-entry h3, .post-entry .h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  text-transform: none;
  font-size: 24px; }

.post-entry h1, .post-entry .h1 {
  margin-top: 0; }

.post-entry a:not(.button) {
  color: #003b5f;
  text-decoration: underline; }
  .post-entry a:not(.button):hover {
    color: #1f86bd; }
  .post-entry a:not(.button).back {
    margin-top: 35px;
    display: block; }

.post-entry h3, .post-entry .h3 {
  font-size: 20px; }

.post-entry h1 {
  font-size: 24px; }

.post-entry h1 a, .post-entry h2 a, .post-entry h3 a, .post-entry h4 a, .post-entry h5 a, .post-entry h6 a {
  text-decoration: none !important; }
  .post-entry h1 a:hover, .post-entry h2 a:hover, .post-entry h3 a:hover, .post-entry h4 a:hover, .post-entry h5 a:hover, .post-entry h6 a:hover {
    color: inherit !important; }

.post-entry.lightbox-content-link a:not(.back) {
  text-decoration: none; }

.post-entry .spacer {
  height: 35px; }

.post-title.has-subtitle {
  padding-bottom: 5em;
  border-bottom: 1px dotted #003b5f;
  margin-bottom: 1em; }
  .post-title.has-subtitle .page-subtitle {
    margin-bottom: 0; }
  .post-title.has-subtitle h1 {
    color: #1f86bd; }

.wordpress-post-view em {
  font-size: 24px;
  font-style: normal;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
  line-height: 1.2; }

.post-meta.details {
  margin-top: 35px; }

.post-entry ul, .lightbox ul {
  padding: 0;
  margin: 0; }
  .post-entry ul li, .lightbox ul li {
    text-indent: -8px;
    padding-left: 8px;
    margin: 4px 0;
    list-style: none; }
    .post-entry ul li:before, .lightbox ul li:before {
      content: "- "; }

.post-entry ol, .lightbox ol {
  padding: 0;
  margin: 0; }
  .post-entry ol li, .lightbox ol li {
    margin: 4px 0; }

.people.row, .resellers.row {
  margin-right: -15px;
  margin-left: -15px;
  position: relative; }
  @media only screen and (min-width: 600px) {
    .people.row, .resellers.row {
      display: table;
      width: 100%;
      height: 100%; } }
  .people.row:after, .resellers.row:after {
    content: '';
    display: table;
    clear: both; }

@media only screen and (min-width: 600px) {
  .people.first .people-item, .people.first .reseller-item, .resellers.first .people-item, .resellers.first .reseller-item {
    border-top: 1px dotted #003b5f; } }

.people .col-half, .resellers .col-half {
  margin: 0 15px; }
  @media only screen and (min-width: 600px) {
    .people .col-half, .resellers .col-half {
      width: 50%;
      height: 100%;
      display: table-cell;
      padding: 0 15px;
      margin: 0; } }
  .people .col-half .people-item, .people .col-half .reseller-item, .resellers .col-half .people-item, .resellers .col-half .reseller-item {
    height: 100%;
    box-sizing: border-box;
    border-bottom: 1px dotted #003b5f; }
    .people .col-half .people-item img, .people .col-half .reseller-item img, .resellers .col-half .people-item img, .resellers .col-half .reseller-item img {
      width: 100%; }
      @media only screen and (min-width: 599px) {
        .people .col-half .people-item img, .people .col-half .reseller-item img, .resellers .col-half .people-item img, .resellers .col-half .reseller-item img {
          margin-top: 20px; } }
    @media only screen and (min-width: 600px) {
      .people .col-half .people-item, .people .col-half .reseller-item, .resellers .col-half .people-item, .resellers .col-half .reseller-item {
        padding-top: 20px; } }
  .people .col-half p, .resellers .col-half p {
    margin-top: 20px; }

.people.first .col-half:first-child .people-item, .people.first .col-half:first-child .reseller-item, .resellers.first .col-half:first-child .people-item, .resellers.first .col-half:first-child .reseller-item {
  border-top: 1px dotted #003b5f; }

@media only screen and (max-width: 599px) {
  .people:last-child .col-half .people-item, .people:last-child .col-half .reseller-item, .resellers:last-child .col-half .people-item, .resellers:last-child .col-half .reseller-item {
    border-bottom: 0; } }

.resellers.row:last-child,
.people.row:last-child {
  margin-bottom: 70px; }

.resellers .col-half .reseller-item h2 {
  margin-top: 0; }
  @media only screen and (max-width: 599px) {
    .resellers .col-half .reseller-item h2 {
      margin-top: 20px; } }
  .resellers .col-half .reseller-item h2 img, .resellers .col-half .reseller-item h2 span {
    display: inline-block;
    vertical-align: middle; }
  .resellers .col-half .reseller-item h2 img {
    height: 1.2em;
    margin-right: .3em;
    width: 30px;
    display: inline-block;
    vertical-align: middle;
    margin-top: -3px; }

form.wpcf7-form ::-webkit-input-placeholder {
  /* WebKit, Blink, Edge */
  color: #003b5f; }

form.wpcf7-form :-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #003b5f;
  opacity: 1; }

form.wpcf7-form ::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #003b5f;
  opacity: 1; }

form.wpcf7-form :-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: #003b5f; }

form.wpcf7-form ::-ms-input-placeholder {
  /* Microsoft Edge */
  color: #003b5f; }

form.wpcf7-form div.wpcf7-response-output {
  display: none;
  margin: 1em 0;
  border: none;
  background-color: #CF5050;
  color: white; }

form.wpcf7-form .text-right {
  text-align: right; }

form.wpcf7-form .ajax-loader {
  float: left; }

form.wpcf7-form .ajax-loader {
  display: none !important; }

form.wpcf7-form .inputs span.wpcf7-form-control-wrap input:not([type="checkbox"]),
form.wpcf7-form .inputs span.wpcf7-form-control-wrap select {
  -webkit-appearance: none;
  width: 100%;
  box-sizing: border-box;
  background-color: #ECECEC;
  border: none;
  padding: 0 1em;
  height: 35px;
  line-height: 35px;
  font-size: 14px; }
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap input:not([type="checkbox"])::-webkit-input-placeholder,
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap select::-webkit-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap input:not([type="checkbox"]):-ms-input-placeholder,
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap select:-ms-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap input:not([type="checkbox"])::placeholder,
  form.wpcf7-form .inputs span.wpcf7-form-control-wrap select::placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }

form.wpcf7-form .inputs span.wpcf7-not-valid-tip {
  color: #CF5050; }

form.wpcf7-form .success {
  color: inherit;
  display: none; }
  form.wpcf7-form .success .button {
    margin-top: 1em; }

form.wpcf7-form.sent .inputs, form.wpcf7-form.sent .wpcf7-mail-sent-ok {
  display: none !important; }

form.wpcf7-form.sent .success {
  display: block; }

span.wpcf7-list-item {
  margin: 0 !important; }

.form-wrapper form input,
.form-wrapper form select {
  -webkit-appearance: none;
  width: 100%;
  box-sizing: border-box;
  background-color: #ECECEC;
  border: none;
  padding: 0 1em;
  height: 35px;
  line-height: 35px;
  border-radius: 0;
  font-size: 14px; }
  .form-wrapper form input::-webkit-input-placeholder,
  .form-wrapper form select::-webkit-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  .form-wrapper form input:-ms-input-placeholder,
  .form-wrapper form select:-ms-input-placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }
  .form-wrapper form input::placeholder,
  .form-wrapper form select::placeholder {
    color: #003b5f;
    font-family: Arial, sans-serif; }

ul.downloads {
  list-style-type: none;
  padding: 0;
  margin: 0; }
  ul.downloads .download-item {
    position: relative;
    margin-bottom: .5em;
    margin-left: 2em;
    list-style: none; }
    ul.downloads .download-item--pdf:before {
      background-image: url("../images/icon-download-pdf.svg"); }
    ul.downloads .download-item--zip:before {
      background-image: url("../images/icon-download-zip.svg"); }
    ul.downloads .download-item:before {
      content: '';
      display: inline-block;
      vertical-align: middle;
      position: absolute;
      margin-left: -2em;
      margin-right: 2px;
      top: 50%;
      left: 0;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      width: 22px;
      height: 22px;
      background-image: url(../images/icon-download-pdf.svg);
      background-size: 19px 22px;
      background-repeat: no-repeat; }
    ul.downloads .download-item a {
      text-decoration: none;
      color: inherit; }

.lightbox, .samplerequest-overlay {
  display: block;
  position: fixed;
  z-index: 9999;
  background-color: rgba(0, 0, 0, 0.5);
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 200ms;
  transition: opacity 200ms;
  overflow: scroll;
  -webkit-overflow-scrolling: touch; }
  .lightbox.loading, .samplerequest-overlay.loading {
    opacity: 1;
    pointer-events: all; }
    .lightbox.loading .spinner, .samplerequest-overlay.loading .spinner {
      opacity: 1; }
  .lightbox.complete, .samplerequest-overlay.complete {
    opacity: 1;
    pointer-events: all; }
    .lightbox.complete .spinner, .samplerequest-overlay.complete .spinner {
      opacity: 0; }
    .lightbox.complete .box, .samplerequest-overlay.complete .box {
      opacity: 1;
      pointer-events: all; }
      @media only screen and (min-width: 600px) {
        .lightbox.complete .box, .samplerequest-overlay.complete .box {
          -webkit-transform: translate(-50%, -50%);
                  transform: translate(-50%, -50%); } }
  .lightbox.scroll .box, .samplerequest-overlay.scroll .box {
    top: 0 !important; }
    @media only screen and (min-width: 600px) {
      .lightbox.scroll .box, .samplerequest-overlay.scroll .box {
        -webkit-transform: translate(-50%, 0) !important;
                transform: translate(-50%, 0) !important; } }
  .lightbox .spinner, .samplerequest-overlay .spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    height: 18px;
    width: 18px;
    -webkit-animation: rotate 1.2s infinite linear;
            animation: rotate 1.2s infinite linear;
    border: 3px solid #fff;
    border-right-color: transparent;
    border-radius: 50%;
    opacity: 0; }

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
  .lightbox .box, .samplerequest-overlay .box {
    opacity: 0;
    background-color: #fff;
    margin: 60px auto;
    width: 96%;
    max-width: 690px;
    border-radius: 5px;
    pointer-events: none;
    -webkit-transition-delay: 0;
            transition-delay: 0;
    -webkit-transition: opacity 200ms, -webkit-transform 200ms;
    transition: opacity 200ms, -webkit-transform 200ms;
    transition: transform 200ms, opacity 200ms;
    transition: transform 200ms, opacity 200ms, -webkit-transform 200ms; }
    @media only screen and (min-width: 600px) {
      .lightbox .box, .samplerequest-overlay .box {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -45%);
                transform: translate(-50%, -45%); } }
    .lightbox .box ol, .samplerequest-overlay .box ol {
      list-style: decimal outside;
      margin-bottom: 1.5em; }
      .lightbox .box ol li, .samplerequest-overlay .box ol li {
        margin-left: 2em; }
    .lightbox .box h1, .lightbox .box h3, .lightbox .box .h3, .lightbox .box h2, .lightbox .box h2, .samplerequest-overlay .box h1, .samplerequest-overlay .box h3, .samplerequest-overlay .box .h3, .samplerequest-overlay .box h2, .samplerequest-overlay .box h2 {
      font-size: 24px; }
    .lightbox .box a#request-sample, .samplerequest-overlay .box a#request-sample {
      margin-top: 20px; }
    .lightbox .box h2, .lightbox .box .h2,
    .lightbox .box h3, .lightbox .box .h3, .samplerequest-overlay .box h2, .samplerequest-overlay .box .h2,
    .samplerequest-overlay .box h3, .samplerequest-overlay .box .h3 {
      margin-bottom: 20px; }
    .lightbox .box .close, .samplerequest-overlay .box .close {
      display: block;
      width: 30px;
      height: 30px;
      padding: 0;
      border-radius: 100%;
      background-color: #1f86bd;
      color: #fff;
      min-width: auto;
      position: absolute;
      right: 0;
      top: 60px;
      margin-top: -15px;
      margin-right: 50px;
      cursor: pointer;
      background-image: url(../images/lightbox-close.svg);
      background-size: 11px;
      background-position: center;
      background-repeat: no-repeat;
      -webkit-transition: background 200ms;
      transition: background 200ms; }
      @media only screen and (min-width: 600px) {
        .lightbox .box .close, .samplerequest-overlay .box .close {
          top: 0; } }
      .lightbox .box .close:hover, .samplerequest-overlay .box .close:hover {
        background-color: #1d7db0; }
    .lightbox .box .inner, .samplerequest-overlay .box .inner {
      padding: 40px 20px 60px 20px;
      box-sizing: border-box; }
      @media only screen and (min-width: 600px) {
        .lightbox .box .inner, .samplerequest-overlay .box .inner {
          padding: 40px 20px; } }
      .lightbox .box .inner::-webkit-scrollbar, .samplerequest-overlay .box .inner::-webkit-scrollbar {
        display: none; }
      @media only screen and (min-width: 600px) {
        .lightbox .box .inner, .samplerequest-overlay .box .inner {
          padding: 70px 50px; } }

body.lightbox-active {
  overflow: hidden !important; }

.samplerequest-overlay.active {
  opacity: 1;
  pointer-events: all; }
  .samplerequest-overlay.active .box {
    opacity: 1;
    pointer-events: all;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }

.finder-form {
  margin: 35px 0; }
  .finder-form .level {
    padding-top: 35px;
    margin-top: 35px;
    border-top: 1px dotted #003b5f; }
  .finder-form .select-wrapper {
    margin-bottom: 10px; }
  @media only screen and (min-width: 600px) {
    .finder-form .select-row {
      margin: 0 -5px; }
      .finder-form .select-row:after {
        content: '';
        display: table;
        clear: both; }
    .finder-form .select-wrapper {
      float: left;
      width: 50%; }
      .finder-form .select-wrapper .select-wrapper--inner {
        margin: 0 5px; } }

#productResult {
  margin-top: 35px; }

.block-productfinder ul li.product .product-title {
  border-bottom: none; }
  .block-productfinder ul li.product .product-title a {
    font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.2; }
    .block-productfinder ul li.product .product-title a:hover {
      text-decoration: none; }

#block-productfinder .slick-slide {
  opacity: 0; }

#block-productfinder.slick-initialized .slick-slide {
  opacity: 1; }

.finder-notice, .finder-noproduct {
  padding-top: 35px;
  margin-top: 35px;
  border-top: 1px dotted #003b5f; }

.finder-noproduct {
  display: none;
  border: none; }

/* ============================================ *
 * Calendar styles (restore styles from /js/calendar)
 * ============================================ */
div.calendar table {
  border-collapse: separate; }
  div.calendar table td.button {
    display: table-cell;
    background: inherit;
    color: inherit;
    text-transform: none; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiLCJtaXhpbi9fYnJlYWtwb2ludC5zY3NzIiwibWl4aW4vX3R5cG9ncmFwaHkuc2NzcyIsInZlbmRvci9fbm9ybWFsaXplLnNjc3MiLCJjb3JlL19yZXNldC5zY3NzIiwiZnVuY3Rpb24vX2JsYWNrLnNjc3MiLCJjb3JlL19jb21tb24uc2NzcyIsIl92YXIuc2NzcyIsIm1peGluL19jbGVhcmZpeC5zY3NzIiwibWl4aW4vX25vdC1zZWxlY3RhYmxlLnNjc3MiLCJtaXhpbi9fdG9nZ2xlLWNvbnRlbnQuc2NzcyIsIm1peGluL190cmlhbmdsZS5zY3NzIiwibWl4aW4vX2ltYWdlLXJlcGxhY2VtZW50LnNjc3MiLCJtaXhpbi9faWYtcmVzb2x1dGlvbi5zY3NzIiwiY29yZS9fZm9ybS5zY3NzIiwiY29yZS9fdGFibGUuc2NzcyIsImxheW91dC9fZ2xvYmFsLnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19oZWFkZXItbmF2LnNjc3MiLCJsYXlvdXQvX2hlYWRlci1zZWFyY2guc2NzcyIsImxheW91dC9faGVhZGVyLWFjY291bnQuc2NzcyIsIm1peGluL19tZW51LnNjc3MiLCJsYXlvdXQvX2hlYWRlci1jYXJ0LnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibW9kdWxlL19wcm9kdWN0LWxpc3Quc2NzcyIsIm1peGluL19sb2FkaW5nLW92ZXJsYXkuc2NzcyIsIm1vZHVsZS9fY2F0YWxvZy1wcm9kdWN0LnNjc3MiLCJtb2R1bGUvX2NhdGFsb2ctbXNycC5zY3NzIiwibW9kdWxlL19jYXRhbG9nLWNvbXBhcmUuc2NzcyIsIm1vZHVsZS9fY2hlY2tvdXQtY2FydC5zY3NzIiwibW9kdWxlL19jaGVja291dC1vbmVwYWdlLnNjc3MiLCJtb2R1bGUvX2NoZWNrb3V0LXN1Y2Nlc3Muc2NzcyIsIm1vZHVsZS9fY29uZmlndXJhYmxlc3dhdGNoZXMuc2NzcyIsIm1vZHVsZS9fY3VzdG9tZXIuc2NzcyIsIm1vZHVsZS9fY29udGFjdHMuc2NzcyIsIm1vZHVsZS9fcGF5cGFsLnNjc3MiLCJtb2R1bGUvX3Jldmlldy5zY3NzIiwibW9kdWxlL19zbGljay5zY3NzIiwibW9kdWxlL19zbGlkZXNob3cuc2NzcyIsIm1vZHVsZS9fd2lzaGxpc3Quc2NzcyIsIm1vZHVsZS9fY2hlY2tvdXQtY2FydC1taW5pY2FydC5zY3NzIiwibW9kdWxlL19zZWFyY2guc2NzcyIsIm1vZHVsZS9fYWNjb3VudC1yZXZpZXdzLnNjc3MiLCJtb2R1bGUvX2Ntcy5zY3NzIiwibW9kdWxlL19wcmljaW5nX2NvbmRpdGlvbnMuc2NzcyIsIm1vZHVsZS9fY29va2llcy5zY3NzIiwibW9kdWxlL190YWdzLnNjc3MiLCJtb2R1bGUvX2NhcHRjaGEuc2NzcyIsIm1vZHVsZS9fYWNjb3VudC1vcmRlcnMuc2NzcyIsIm1vZHVsZS9fcmVjdXJyaW5nLXByb2ZpbGVzLnNjc3MiLCJtb2R1bGUvX2JpbGxpbmctYWdyZWVtZW50cy5zY3NzIiwibW9kdWxlL19wb3B1bGFyLXRlcm1zLnNjc3MiLCJtb2R1bGUvX3dpZGdldC5zY3NzIiwibW9kdWxlL19jaGVja291dC1tdWx0aS1hZGRyZXNzLnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL19tYWluLnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL19sYXlvdXQuc2NzcyIsIm1vZHVsZS93b3JkcHJlc3MvX3NpZGViYXIuc2NzcyIsIm1vZHVsZS93b3JkcHJlc3MvcG9zdC9fbGlzdC5zY3NzIiwibW9kdWxlL3dvcmRwcmVzcy9wb3N0L192aWV3LnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL3BhZ2UvX3ZpZXcuc2NzcyIsIm1vZHVsZS93b3JkcHJlc3MvbW9kdWxlcy9fcGVvcGxlLnNjc3MiLCJtb2R1bGUvd29yZHByZXNzL21vZHVsZXMvX3Jlc2VsbGVycy5zY3NzIiwibW9kdWxlL3dvcmRwcmVzcy9tb2R1bGVzL19mb3Jtcy5zY3NzIiwibW9kdWxlL3dvcmRwcmVzcy9tb2R1bGVzL19kb3dubG9hZHMuc2NzcyIsIm1vZHVsZS9fbGlnaHRib3guc2NzcyIsIm1vZHVsZS9fcHJvZHVjdC1maW5kZXIuc2NzcyIsIm92ZXJyaWRlL19wbHVnaW4uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUMyRGpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWdDRTtBQ2pFRjtFQUNFLGtDQUFpQztFQUNqQywyUUFBNFE7RUFDNVEsb0JBQW1CO0VBQ25CLG1CQUFrQixFQUFBOztBQUlwQjtFQUNFLGtDQUFpQztFQUNqQywyUUFBNFE7RUFDNVEsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUFBOztBQ3RDcEIsNERBQTREO0FBRTVEOztnRkFFZ0Y7QUFFaEY7O0dBRUc7QUFFSDs7Ozs7Ozs7Ozs7RUFXSSxlQUFjLEVBQ2pCOztBQUVEOztHQUVHO0FBRUg7OztFQUdJLHNCQUFxQixFQUN4Qjs7QUFFRDs7O0dBR0c7QUFFSDtFQUNJLGNBQWE7RUFDYixVQUFTLEVBQ1o7O0FBRUQ7O0dBRUc7QUh1Q0g7RUdwQ0ksY0FBYSxFQUNoQjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOzs7O0dBSUc7QUFFSDtFQUNJLHdCQUF1QjtFQUFHLE9BQU87RUFDakMsK0JBQThCO0VBQUcsT0FBTztFQUN4QywyQkFBMEI7RUFBRyxPQUFPLEVBQ3ZDOztBQUVEOztHQUVHO0FBRUg7RUFDSSxVQUFTLEVBQ1o7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0kscUJBQW9CLEVBQ3ZCOztBQUVEOztHQUVHO0FBRUg7O0VBRUksV0FBVSxFQUNiOztBQUVEOztnRkFFZ0Y7QUFFaEY7OztHQUdHO0FBRUg7RUFDSSxlQUFjLEVBQ2pCOztBQUVEOztHQUVHO0FBRUg7RUFDSSwwQkFBeUIsRUFDNUI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxrQkFBaUIsRUFDcEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksaUJBQWdCO0VBQ2hCLFlBQVcsRUFDZDs7QUFHRDs7R0FFRztBQUVIOzs7O0VBSUksOEJBQTZCO0VBQzdCLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQjtFQUNoQixzQkFBcUI7RUFDckIsc0JBQXFCLEVBQ3hCOztBQUVEOztHQUVHO0FBRUg7RUFDSSx3Q0FBdUMsRUFDMUM7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxlQUFjO0VBQ2QsZUFBYztFQUNkLG1CQUFrQjtFQUNsQix5QkFBd0IsRUFDM0I7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxnQkFBZSxFQUNsQjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSxVQUFTLEVBQ1o7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSxVQUFTLEVBQ1o7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0ksMEJBQXlCO0VBQ3pCLGNBQWE7RUFDYiwrQkFBOEIsRUFDakM7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxVQUFTO0VBQUcsT0FBTztFQUNuQixXQUFVO0VBQUcsT0FBTyxFQUN2Qjs7QUFFRDs7OztHQUlHO0FBRUg7Ozs7RUFJSSxxQkFBb0I7RUFBRyxPQUFPO0VBQzlCLGdCQUFlO0VBQUcsT0FBTztFQUN6QixVQUFTO0VBQUcsT0FBTyxFQUN0Qjs7QUFFRDs7O0dBR0c7QUFFSDs7RUFFSSxvQkFBbUIsRUFDdEI7O0FBRUQ7Ozs7OztHQU1HO0FBRUg7Ozs7RUFJSSwyQkFBMEI7RUFBRyxPQUFPO0VBQ3BDLGdCQUFlO0VBQUcsT0FBTyxFQUM1Qjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLGdCQUFlLEVBQ2xCOztBQUVEOzs7R0FHRztBQUVIOztFQUVJLHVCQUFzQjtFQUFHLE9BQU87RUFDaEMsV0FBVTtFQUFHLE9BQU8sRUFDdkI7O0FBRUQ7Ozs7R0FJRztBQUVIO0VBQ0ksOEJBQTZCO0VBQUcsT0FBTztFQUVMLE9BQU87RUFDekMsd0JBQXVCLEVBQzFCOztBQUVEOzs7R0FHRztBQUVIOztFQUVJLHlCQUF3QixFQUMzQjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLFVBQVM7RUFDVCxXQUFVLEVBQ2I7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxlQUFjO0VBQUcsT0FBTztFQUN4QixvQkFBbUI7RUFBRyxPQUFPLEVBQ2hDOztBQUVEOztnRkFFZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNJLDBCQUF5QjtFQUN6QixrQkFBaUIsRUFDcEI7O0FDN1ZEOztrREFFa0Q7QUFFbEQ7OztFQUlJLFVBQVM7RUFDVCxXQUFVLEVBQ2I7O0FBRUQ7RUFDSSx5Q0NSK0I7RURRUSwwQ0FBMEM7RUFDakYsK0JBQThCO0VBQUcsc0NBQXNDLEVBQzFFOztBQUVEO0VBQ0ksb0JBQW1CO0VBQ25CLGVBQWM7RUFDZCxlQUFjLEVBQ2pCOztBQUVEOzs7Ozs7RUFNSSxVQUFTLEVBQ1o7O0FBRUQ7Ozs7OztFQU1JLGdCQUFlO0VBQ2Ysb0JBQW1CLEVBQ3RCOztBQUVEOzs7O0VBSUksb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxVQUFTO0VBQ1QsV0FBVTtFQUNWLFVBQVMsRUFDWjs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7O0VBRUksaUJBQWdCLEVBQ25COztBQUVEOztFQUVJLFlBQVcsRUFDZDs7QUFHRDs7RUFFSSxxQkFBb0IsRUFDdkI7O0FBR0Q7RUFDSSx5QkFBd0I7RUFBRyxPQUFPO0VBRUQsT0FBTztFQUN4Qyx1QkFBc0IsRUFDekI7O0FBRUQ7RUFDRSxnQkFBZSxFQUNoQjs7QUV4RkQ7O2tEQUVrRDtBQUVsRDtFQUNJLG9CQUFtQixFQUFBOztBQUd2QjtFQUNJLG9CQUFtQixFQUFBOztBQUd2QjtFQUNJLG9CQUFtQixFQUFBOztBQUl2QjtFQUNJLCtCQUE4QjtFQUM5QiwyQkFBMEIsRUFDN0I7O0FBRUQ7Ozs7OztFQU1JLCtCQ3lMNEI7RUR4TDVCLGVDa0VZO0VEakVaLGdCQ21NUztFRGxNVCxpQkMwTWUsRUR6TWxCOztBQUVEO0VBQ0ksb0JBQW1CO0VBQ25CLHdDQUF1QztFQUN2Qyw0QkFBMkI7RUFDM0IsbUNBQWtDO0VBQ2xDLG1DQUFrQztFQUNsQyxvQ0FBbUMsRUFDdEM7O0FBRUQ7RUFDSSxlQ3dCWTtFRHZCWixzQkFBcUIsRUFDeEI7O0FBRUQ7RUFFSSwyQkFBMEIsRUFDN0I7O0FBRUQ7RUFDSSx1QkNrSHVDO0VEakh2QyxlQUE2QixFQUNoQzs7QUFFRDs7RUFFSSxpQkFBZ0I7RUFDaEIsVUFBUztFQUNULFdBQVUsRUFDYjs7QUFFRDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFFRDs7a0RBRWtEO0FBRWxEO0VKcERJLFVBQVM7RUFDVCxxQkFBb0I7RUFDcEIsZUt3RVk7RUx2RVosZ0ZLK0xnRjtFTDlMaEYsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLGlCQUFnQixFSTZDSzs7QUFFekI7RUoxQ0ksVUFBUztFQUNULHFCQUFvQjtFQUNwQixlSzREWTtFTDNEWixnRkttTGdGO0VMbExoRixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFFbEIsaUJBQWdCLEVJa0NLOztBQUV6QjtFSi9CSSxVQUFTO0VBQ1Qsb0JBQW1CO0VBQ25CLGVLK0NZO0VMOUNaLGdGS3NLZ0Y7RUxyS2hGLGdCSzRLWTtFTDNLWixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLGlCQUFnQixFSXdCSzs7QUFFekI7RUpyQkksVUFBUztFQUNULG9CQUFtQjtFQUNuQixlS21DWTtFTGxDWixnRkswSmdGO0VMekpoRixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCLEVJY0s7O0FBRXpCO0VKWEksVUFBUztFQUNULG9CQUFtQjtFQUNuQixlS3VCWTtFTHRCWiwrQks0STRCO0VMM0k1QixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCLEVJSUs7O0FBRXpCO0VKREksVUFBUztFQUNULG1CQUFrQjtFQUNsQixlS1dZO0VMVlosK0JLZ0k0QjtFTC9INUIsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLGlCQUFnQixFSU5LOztBQUl6QjtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDs7a0RBRWtEO0FBRWxEO0VBQ0ksbUJBQWtCLEVBQ3JCOztBQUVEO0VBQ0ksaUJBQWdCO0VBQ2hCLGdCQzhIVztFRDdIWCwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksZUNyQ2EsRURzQ2hCOztBQUVEOztFQUVJLGVDSmMsRURLakI7O0FBRUQ7RUFDSSxlQ1JjO0VEU2Qsb0JDMUVjLEVEMkVqQjs7QUFFRDtFQUNJLGFBQVksRUFDZjs7QUFHRDs7R0FFRztBQUVIOzs7Ozs7RUpyQ0ksZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsZUtGWTtFTEdaLG9CQUFtQjtFQUNuQixvQkFBbUIsRUl3Q3RCOztBQUVEOztHQUVHO0FBRUg7O0VBRUksb0JBQW1CLEVBQ3RCOztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLGtCQUFpQjtFQUNqQixtQkFBa0IsRUFpQnJCO0VBcEJEOzs7SUpoR0ksVUFBUztJQUNULG9CQUFtQjtJQUNuQixlS21DWTtJTGxDWixnRkswSmdGO0lMekpoRixnQkFBZTtJQUNmLG9CQUFtQjtJQUNuQixtQkFBa0I7SUFDbEIsaUJBQWdCO0lJbUdaLGVDckVRO0lEc0VSLGlCQUFnQjtJQUNoQiwwQkFBeUI7SUFDekIsaUJBQWdCLEVBQ25CO0VBZEw7SUFnQlEsZ0JBQWU7SUFDZixvQkFBbUI7SUFDbkIsZUM1RWEsRUQ2RWhCOztBQUdMO0VBQ1Esc0JBQXFCO0VBQ3JCLHVCQUFzQjtFQUN0QixrQkFBaUIsRUFDcEI7O0FBR0w7RUFDSSxpQkFBZ0I7RUFDaEIsZUFBYyxFQUNqQjs7QUFFRDtFQUNJLGtCQUFpQjtFQUNqQixtQkM3SWlCLEVEOElwQjs7QUFFRDtFQUNJLGdCQUFlLEVBQ2xCOztBQUVEO0VBQ0ksV0FBVSxFQUNiOztBQUVEO0VBQ0kscUJBQTRCLEVBQy9COztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksaUJBQXdCLEVBWTNCO0VBYkQ7SUUzTUksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVGOE1WO0VBTEw7SUFRUSxZQUFXLEVBQ2Q7RUFUTDtJQVdRLGFBQVksRUFDZjs7QUFHTDs7RUFJUSxrQkFBaUI7RUFDakIsa0JBQWlCLEVBQ3BCOztBTDNORztFS2dPSjtJQUdRLGlCQUFnQixFQWtCbkI7SUFyQkw7TUpqTEEsVUFBUztNQUNULG9CQUFtQjtNQUNuQixlS21DWTtNTGxDWixnRkswSmdGO01MekpoRixnQkFBZTtNQUNmLG9CQUFtQjtNQUNuQixtQkFBa0I7TUFDbEIsaUJBQWdCO01PL0RoQix1QkFBc0I7TUFDdEIsc0JBQXFCO01BQ3JCLDBCQUF5QjtNQUN6QixxQkFBb0I7TUFDcEIsa0JBQWlCO01Da0VqQixvQkFBbUI7TUFDbkIsbUJBQWtCO01BQ2xCLDJCQUEwQjtNQUMxQixrQkFBaUI7TUFDakIsb0JBQW1CO01BQ25CLHNCSG9HcUI7TUduR3JCLG1CQUFrQjtNQUNsQiwwQkg2RnlCO01Ed0VULGVBQWM7TUFDZCxZQUFXO01BQ1gsZ0JBQWU7TUFDZixpQkFBZ0IsRUFDbkI7TUFiYjtRS3pPQSxZQUFXO1FBQ1gsbUJBQWtCO1FBQ2xCLFNBQVE7UUFDUixVQUFTO1FBQ1QsZUFBYztRQWlCVixrQ0FBbUM7UUFDbkMscUNBQXNDO1FBQ3RDLCtCSjJDUTtRSTFDUixtQkFBa0I7UUR5RGxCLFdBQVU7UUFDVixTQUFRO1FBQ1IsaUJBQWdCLEVBQ25CO01KcUpEO1FJbEpJLHFDSG9GbUQsRUduRnREO0lKaUpEO01KakxBLFVBQVM7TUFDVCxvQkFBbUI7TUFDbkIsZUttQ1k7TUxsQ1osZ0ZLMEpnRjtNTHpKaEYsZ0JBQWU7TUFDZixvQkFBbUI7TUFDbkIsbUJBQWtCO01BQ2xCLGlCQUFnQjtNTy9EaEIsdUJBQXNCO01BQ3RCLHNCQUFxQjtNQUNyQiwwQkFBeUI7TUFDekIscUJBQW9CO01BQ3BCLGtCQUFpQjtNQ2tFakIsb0JBQW1CO01BQ25CLG1CQUFrQjtNQUNsQiwyQkFBMEI7TUFDMUIsa0JBQWlCO01BQ2pCLG9CQUFtQjtNQUNuQixzQkhvR3FCO01HbkdyQixtQkFBa0I7TUFDbEIsMEJINkZ5QixFRGlGUjtNQWxCakI7UUt6T0EsWUFBVztRQUNYLG1CQUFrQjtRQUNsQixTQUFRO1FBQ1IsVUFBUztRQUNULGVBQWM7UUFVVixvQ0FBcUM7UUFDckMsbUNBQW9DO1FBQ3BDLDhCSmtEUTtRSWpEUixvQkFBbUI7UURnRW5CLFdBQVU7UUFDVixTQUFRO1FBQ1IsaUJBQWdCLEVBQ25CO01KcUpEO1FJbEpJLHFDSG9GbUQsRUduRnRELEVBQUE7O0FKMktMOztHQUVHO0FBRUg7O0VBU1EsZUFBYztFQUNkLGlCQUFnQixFQUVuQjtFQVpMOztJQUlZLGdGQ3REd0U7SUR1RHhFLDBCQUF5QjtJQUN6QixnQkNqREk7SURrREosZUNqTEksRURrTFA7O0FBUlQ7O0VBaUJRLGNBQWEsRUFjaEI7RUEvQkw7O0lBb0JZLGlCQUFnQjtJQUNoQixlQzFOSSxFRDJOUDtFQXRCVDs7SUF5QlksZUNuTUksRUR3TVA7SUE5QlQ7O01BNEJnQixlQ2pPQSxFRGtPSDs7QUFLYjs7a0RBRWtEO0FBRWxELHVCQUF1QjtBQUN2Qjs7OztFQUlJLG9CQzFLd0I7RUQyS3hCLGVDdE5ZO0VEdU5aLGtCQUFpQixFQWlCcEI7RUF2QkQ7Ozs7SUFTUSxvQkM5S3NDO0lEK0t0QyxnQkFBZSxFQUNsQjtFQVhMOzs7O0lBY1Esb0JDbEx3QztJRG1MeEMsZUNoT1EsRURpT1g7RUFoQkw7Ozs7SUFtQlEsZUNwT1E7SURxT1Isb0JDeEx3QztJRHlMeEMsY0FBYSxFQUNoQjs7QUFHTDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFFRCxxQkFBcUI7QUFFckI7Ozs7OztFQU1JLG9CQ2pSWTtFRGtSWixzQkFBcUI7RUFDckIsc0JBQXFCO0VBQ3JCLDJCQUEwQjtFQUkxQixtQkFBa0I7RUFDbEIsVUFBUztFQUNULGVBQWM7RUFDZCxnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixnRkMxSWdGO0VEMkloRixtQkFBa0I7RUFDbEIsdUJBQXNCO0VBQ3RCLG9CQUFtQjtFQUNuQix1QkFBc0I7RUFDdEIsaUJBQWdCLEVBd0RuQjtFTG5aTztJS29VUjs7Ozs7O01BV08sMkJBQTBCLEVBb0VoQyxFQUFBO0VBL0VEOzs7Ozs7SUEwQlEsb0JDMVFRO0lEMlFSLGdCQUFlLEVBQ2xCO0VBNUJMOzs7Ozs7SUE4QlEsb0JDdk84QjtJRHdPOUIsZUFBYyxFQUNqQjtFQWhDTDs7Ozs7O0lBa0NRLDBCQzNPOEI7SUQ0TzlCLGNBQWE7SUFDYixlQUFjLEVBQ2pCO0VBckNMOzs7Ozs7SUF1Q1EsK0JBQThCLEVBSWpDO0lBM0NMOzs7Ozs7TUF5Q1ksb0JBQStCLEVBQ2xDO0VBMUNUOzs7Ozs7Ozs7OztJQTZDUSxpQkFBZ0I7SUFDaEIsMEJDOVJRO0lEK1JSLGVDL1JRO0lEZ1NSLHNCQUFxQjtJQUNyQiwyQkFBMEIsRUFRN0I7SUw3WEc7TUtvVVI7Ozs7Ozs7Ozs7O1FBbURRLDJCQUEwQixFQU03QixFQUFBO0lBekRMOzs7Ozs7Ozs7OztNQXVEWSxlQ3ZTSSxFRHdTUDtFQXhEVDs7Ozs7O0lBNERRLGdCQUFlLEVBQ2xCOztBQXdCTDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQsMERBQTBEO0FBQzFEOztFQUVJLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osb0JBQW1CLEVBQ3RCOztBQUVEO0VBRVEsWUFBVztFQUNYLHNCQUFxQjtFQUNyQix1QkFBc0I7RUFDdEIsa0JBQWlCO0VBQ2pCLGlCQUFnQixFQUNuQjs7QUFhTDtFQUNJLFVBQVM7RUFDVCxlQUFjO0VBQ2QsVUFBUztFQUNULHdCQUF1QjtFQUN2QixnQkFBZTtFQUNmLHVCQUFzQixFQUN6Qjs7QUFFRDtFQUNJLGNBQWEsRUFDaEI7O0FBRUQ7O0VBRUksa0JBQWlCO0VBQ2pCLGFBQVk7RUFDWiwyQkFBMEI7RUFDMUIsMEJBQXlCO0VBQ3pCLHNCQUFxQjtFQUNyQixlQ3haWTtFRHlaWixnRkN0UWdGLEVENFFuRjtFQWREOztJQVdRLHNCQUFxQjtJQUNyQixlQ3ZYeUIsRUR3WDVCOztBTHZkRztFSzJkSjs7SUFHUSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWM7SUFDZCxnQkFBZTtJQUNmLHVCQUFzQixFQUN6QjtFQVJMO0lBVVEsY0FBYSxFQUNoQjtFQVhMO0lBYVEsY0FBYSxFQUNoQixFQUFBOztBTHplRDtFSzhlSjtJQUVRLFlBQVc7SUFDWCxZQUFXO0lBQ1gsZUFBYztJQUNkLGdCQUFlO0lBQ2YsbUJDOWNTLEVEK2NaO0VBUEw7SUFTUSxjQUFhLEVBQ2hCO0VBVkw7SUFZUSxjQUFhLEVBQ2hCLEVBQUE7O0FBSVQ7O0dBRUc7QUFFSDtFQUNJLFlBQVcsRUFDZDs7QUFFRDtFQUNJLFlBQVcsRUFDZDs7QUFFRDtFQUNJLGtCQUFpQjtFQUNqQixxQkFBb0IsRUFDdkI7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxnQkFBZSxFQUNsQjs7QUwxaEJPO0VLNmhCSjtJQUNJLGtCQUFpQixFQUNwQjtFQUVEOzs7SUFHSSxtQkFBa0I7SUFDbEIsWUFBVztJQUNYLGVBQWM7SUFDZCxnQkFBZTtJQUNmLGVBQWM7SUFDZCxZQUFXLEVBQ2QsRUFBQTs7QUFHTDs7R0FFRztBQUVIO0VBQ0ksWUFBVztFQUNYLGlCQUF3QjtFQUN4QixrQkNqaEJjO0VEa2hCZCxrQkFBaUIsRUEyQnBCO0VBL0JEO0lBT1EsVUFBUztJQUNULGtCQ2xpQkU7SURtaUJGLGtCQUFpQjtJQUNqQixhQUFZLEVBQ2Y7RUFYTDtJQWFRLFlBQVc7SUFDWCxVQUFTO0lBQ1Qsa0JBQWlCLEVBQ3BCO0VBaEJMO0lBa0JRLGtCQUFpQjtJQUNqQixzQkFBcUI7SUFDckIsZUFBYyxFQUNqQjtFQXJCTDtJQXVCUSxhQUFZO0lBQ1osaUJBQWdCO0lBQ2hCLGlCQUFnQixFQUNuQjtFQTFCTDtJRXRqQkksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVGa2xCVjs7QUFHTDs7R0FFRztBQUVIOztFQUNJLGlEQUFnRDtFQUNoRCw2QkFBNEI7RU10bEI1QixxQkFBb0IsRU53bEJ2Qjs7QU9ubEJHO0VQc2xCQTs7SUFDSSxvREFBbUQ7SUFDbkQsOEJBQTZCLEVBQ2hDLEVBQUE7O0FBR0w7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQjtFQUNoQixxQkFBb0IsRUFDdkI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsZ0JDclpZO0VEc1paLGdGQ25hZ0Y7RURvYWhGLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxlQ2ppQlksRURraUJmOztBQUVEO0VBQ0ksZUNoa0JZLEVEaWtCZjs7QUFFRDtFQUNJLGVDemlCWTtFRDBpQlosb0JBQW1CLEVBQ3RCOztBQUVEO0VBQ0ksWUFBVztFQUNYLGVBQWMsRUFDakI7O0FMcG9CTztFS3dvQko7SUFDSSxjQUFhLEVBQ2hCLEVBQUE7O0FBSUw7O0dBRUc7QUFFSDs7RUFFSSxzQkFBcUI7RUFDckIsWUFBVztFQUNYLGFBQVk7RUFDWiwwQkMvZTJCO0VEZ2YzQixtQkFBa0I7RUFDbEIsZUFBZTtFQUNmLFlBQVc7RUFDWCxrQkFBaUI7RUFDakIsbUJBQWtCO0VBQ2xCLG1CQUFrQixFQUVyQjs7QUFFRDtFQUVRLGFBQVk7RUFDWixlQzNtQlE7RUQ0bUJSLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsWUFBVztFQUNYLGdCQUFlO0VBQ2Ysc0NDL2R3QjtFRGdleEIsa0JBQWlCLEVBQ3BCOztBQVZMO0VBWVEsZUFBYztFQUNkLHNCQUFxQixFQUN4Qjs7QUFHTDtFQUlJLG9CQUFtQjtFQUNuQixZQUFXO0VBQ1gsYUFBWTtFQUNaLG9CQUFtQjtFQUVuQixzREFBcUQ7RUFDckQscUJBQW9CO0VBQ3BCLG1DQUFrQztFQUNsQyw2QkFBNEI7RUFFNUIsc0JBQXFCO0VBRXJCLGFBQVksRUFLZjs7QUFFRDtFS2x0QkksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUF3QlYsa0NBQW1DO0VBQ25DLHFDQUFzQztFQUN0QyxnQ0pvQ1E7RUluQ1Isa0JBQWlCO0VMc3JCakIsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1Qsa0JBQWlCO0VBQ2pCLGlCQUFnQixFQUNuQjs7QUFSTDtFS2x0QkksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUF3QlYsa0NBQW1DO0VBQ25DLHFDQUFzQztFQUN0QyxnQ0w4ckJvQztFSzdyQnBDLGtCQUFpQixFTDhyQnBCOztBQUdMOzs7Ozs7RUFNUSxhQUFZO0VBQ1osaUJBQWdCLEVBQ25COztBQUdMOztHQUVHO0FBRUg7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxpQkFBZ0I7RUFDaEIsaUJBQWdCO0VBQ2hCLGtCQUFpQjtFQUNqQixvQkFBbUI7RUFDbkIsY0FBYTtFQUNiLDBCQzFrQnFCO0VEMmtCckIsb0JDaGxCeUIsRURpbEI1Qjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksa0JBQWlCO0VBQ2pCLGdCQ2xpQlc7RURtaUJYLGtCQUFpQixFQUNwQjs7QUFFRDs7R0FFRztBQUVIOzs7Ozs7Ozs7RUFTSSxtQkFBa0I7RUFDbEIsaUJDbHVCcUI7RURtdUJyQixlQUFjO0VBQ2QsY0FBYSxFQU1oQjtFQWxCRDs7Ozs7Ozs7O0lFdndCSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRUZzeEJWOztBQUdMO0VBRVEsWUFBVztFQUNYLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sWUFDSixFQUFFOztBQUdOO0VBRVEsWUFBVztFQUNYLFlBQVcsRUFDZDs7QUxueUJHO0VLeXlCSjs7Ozs7Ozs7SUFRSSxtQkFBa0IsRUFDckI7RUFFRDtJQUNJLGtCQUFpQixFQUNwQjtFQUVEO0lBQ0ksY0FBYTtJQUNiLGtCQUFpQixFQUNwQixFQUFBOztBQUlMO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEOztHQUVHO0FBRUg7O0VFNTBCSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRUY2MEJkOztBQUVEOzs7RUFHSSxnQkFBZTtFQUNmLHVCQUFzQixFQUN6Qjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxXQUE4QjtFQUM5QixnQkFBZTtFQUFHLDZCQUE2QjtFQUMvQyxZQUFXLEVBS2Q7RUFURDtJQU9RLGdCQUFlLEVBQ2xCOztBQUdMO0VBQ0ksYUFBWTtFQUVaLFdBQVU7RUFDVixpQkFBZ0I7RUFBRyw2QkFBNkIsRUFLbkQ7RUFURDtJQU9RLGdCQUFlLEVBQ2xCOztBQUdMO0VBQ0ksWUFBVztFQUVYLFdBQVUsRUFDYjs7QUFFRDtFQUVRLFlBQVc7RUFDWCxZQUFXO0VBQ1gsV0FBVTtFQUFHLDZCQUE2QixFQUM3Qzs7QUFHTDtFQUVRLGFBQVk7RUFDWixpQkFBZ0I7RUFBRyw2QkFBNkIsRUFDbkQ7O0FBR0w7RUFFUSxnQkFBZTtFQUFHLDZCQUE2QixFQUNsRDs7QUFHTDtFQUVRLGlCQUE4QixFQUNqQzs7QUFITDtFQU1RLFlBQVc7RUFDWCxpQkFBOEIsRUFVakM7RUFqQkw7SUFVWSxhQUFZO0lBQ1osaUJBQThCLEVBQ2pDO0VBWlQ7SUFlWSxpQkFBOEIsRUFDakM7O0FMcDVCRDtFS3k1Qko7SUFFUSxZQUFXO0lBQ1gsWUFBVztJQUNYLGdCQUFlO0lBQ2Ysb0JBQW1CO0lBQ25CLFdBQThCLEVBQ2pDO0VBUEw7SUFVUSxhQUFZO0lBQ1osWUFBVyxFQVVkO0lBckJMO01BY1ksYUFBWTtNQUNaLFdBQThCLEVBQ2pDO0lBaEJUO01BbUJZLFdBQThCLEVBQ2pDLEVBQUE7O0FMNzZCTDtFS203Qko7Ozs7Ozs7Ozs7Ozs7OztJQWVJLFdBQVU7SUFDVixvQkFBbUI7SUFDbkIsWUFBVztJQUNYLFlBQVcsRUFDZDtFQUVEO0lBQ0ksWUFBVztJQUNYLFlBQVcsRUFDZDtFQUVEO0lBQ0ksWUFBVztJQUNYLFlBQVcsRUFDZDtFQUVEO0lBQ0ksV0FBVTtJQUFHLDZGQUE2RixFQUM3RyxFQUFBOztBQUdMLHFCQUFxQjtBQUVyQjtFQUNJLFlBQVcsRUE2Q2Q7RUE5Q0Q7O0lBS1EsV0FBVTtJQUNWLHVCQUFzQjtJQUN0QixjQ2g4QmdCLEVEcThCbkI7SUxyK0JHO01LeTlCUjs7UUFVWSxjQ2g4Qk0sRURrOEJiLEVBQUE7RUFaTDtJQWVRLFlBQVc7SUFDWCxnQkFBZSxFQUNsQjtFQWpCTDtJQW9CUSxhQUFZO0lBQ1osaUJBQWdCLEVBQ25CO0VMLytCRztJS3k5QlI7O01BMkJZLFlBQVc7TUFDWCxZQUFXO01BQ1gsVUFBUztNQUNULGlCQUFnQjtNQUNoQixnQkFBZSxFQUNsQixFQUFBO0VBaENUO0lBb0NRLFdBQVUsRUFDYjtFQXJDTDtJQXdDUSxXQUFVLEVBQ2I7RUF6Q0w7SUU5OUJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFRnlnQ1Y7O0FBR0w7RUFDSSxtQkFBa0IsRUFDckI7O0FBRUQ7O0dBRUc7QUwvZ0NLO0VLaWhDSjtJQUNJLGlCQ3grQmlCO0lEeStCakIsZUFBYztJQUNkLGdCQzMvQkcsRUQ0L0JOLEVBQUE7O0FBR0w7O0dBRUc7QUFFSDtFQUNJLG9CQ3ArQlk7RURxK0JaLGVDditCZ0I7RUR3K0JoQixnQkN6MEJTLEVEbTJCWjtFQTdCRDtJQU1RLDJCQUEwQjtJQUMxQixlQzUrQlk7SUQ2K0JaLGdCQUFlLEVBQ2xCO0VBVEw7SUFZUSxjQUFhO0lBQ2Isa0JBQWlCO0lBQ2pCLGtCQUFpQjtJQUNqQixrQkFBaUI7SUFDakIsa0JBQWlCO0lBQ2pCLG1CQUFrQixFQU9yQjtJQXhCTDtNQW9CWSxzQkFBb0I7TUFDcEIsdUJBQXNCO01BQ3RCLGdCQUFlLEVBQ2xCO0VBdkJUO0lBMkJRLGlCQUFnQixFQUNuQjs7QUFHTDs7R0FFRztBQUVIO0VBQ0ksZUM1K0JZO0VENitCWixtQkFBa0I7RUFDbEIsYUMvaENjO0VEZ2lDZCwwQkFBeUI7RUFDekIsZ0ZDeDNCZ0YsRUR5M0JuRjs7QUFFRDs7R0FFRztBQUVIO0VFaGxDSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRUZnbENkOztBQUVEOztHQUVHO0FBQ0g7RUFDSSxlQ3JoQ2EsRURzaENoQjs7QUFFRDtFQUNJLGVDbi9CYztFRG8vQmQsa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksZUNsL0JZO0VEbS9CWixrQkFBaUIsRUFDcEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLG9CQzlrQ00sRUQra0NUOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixnQkFBZTtFQUNmLGdCQ3Q1QlMsRUR1NUJaOztBQUVEO0VBQ0ksU0FBUTtFQUNSLFFBQU87RUFDUCxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxlQ2xoQ2MsRURvaENqQjs7QUFHRDtFQUNJLGVDbGhDWSxFRG1oQ2Y7O0FBRUQ7RUFDSSxlQ2xrQ2EsRURta0NoQjs7QUxqb0NPO0VLd29DSjtJQUNJLFdBQVUsRUFDYjtFQUVEO0lBQ0ksV0FBVTtJQUNWLG9CQUFtQixFQUN0QjtFQUVEO0lBQ0ksWUFBVztJQUNYLFdBQVU7SUFDVixlQUFjLEVBQ2pCLEVBQUE7O0FBSUw7O0dBRUc7QUFFSDtFQUNJLGNBQWE7RUFDYixvQkFBbUI7RUFDbkIsYUFBWSxFQUNmOztBQUVEO0VBQ0ksa0JBQWlCO0VBQ2pCLGdCQUFlLEVBQ2xCOztBQUVEOztHQUVHO0FBRUg7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxlQUFjLEVBQ2pCOztBQUVEO0VBQ0ksa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQixnQkFBZTtFQUNmLHNCQUFxQjtFQUNyQixjQUFhO0VBQ2IsMEJDeGhDcUI7RUR5aENyQixvQkM5aEN5QixFRCtoQzVCOztBQUVEO0VLM3NDSSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQUdWLHFDQUFxQztFQUNyQyxvQ0FBb0M7RUFDcEMsa0NKc0tpQjtFSXJLakIsaUJBQWdCO0VMbXNDcEIsV0FBVTtFQUNWLFdBQVUsRUFDYjs7QUFFRDtFS2p0Q0ksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUFHVixxQ0FBcUM7RUFDckMsb0NBQW9DO0VBQ3BDLGtDSmlLcUI7RUloS3JCLGlCQUFnQjtFTHlzQ3BCLFdBQVU7RUFDVixXQUFVLEVBQ2I7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLHNCQUFxQjtFQUNyQixrQkFBaUI7RUFDakIsZ0JBQWU7RUFDZixrQkFBaUI7RUFDakIsYUFBWTtFQUNaLG9CQUFtQjtFQUFHLGtFQUFrRSxFQU8zRjtFQWJEO0lBU1EsWUFBVztJQUNYLGtCQUFpQjtJQUNqQixZQUFXLEVBQ2Q7O0FBR0w7O0dBRUc7QUFFSDtFQUNJLGNBQTBCO0VBQzFCLCtCQ2ppQzRCLEVEa2lDL0I7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxlQzlwQ2lCLEVEK3BDcEI7O0FBRUQ7RUFDSSxlQ25xQ1k7RURvcUNaLGdCQ3JpQ1ksRURzaUNmOztBQUVEOztFQUVJLCtCQ25qQzRCLEVEb2pDL0I7O0FBRUQ7RUFDSSxlQzVxQ2lCO0VENnFDakIsb0JBQW1CO0VBQ25CLGdGQ3ZqQ2dGLEVEd2pDbkY7O0FBRUQ7RUFDSSxrQkFBaUI7RUFDakIsZUNwckNZO0VEcXJDWixlQUFjO0VBQUcsNEVBQTRFLEVBS2hHO0VBUkQ7SUFNUSxlQ3ZyQ2EsRUR3ckNoQjs7QUFHTDs7R0FFRztBQUVIOztFQUVJLHNCQUFxQixFQVN4QjtFQVhEOztJQUtRLGNBQWEsRUFDaEI7RUFOTDs7SUFTUSxzQkFBcUIsRUFDeEI7O0FBR0w7RUFFUSxlQzlzQ2E7RUQrc0NiLDhCQUE2QixFQUNoQzs7QUFHTDtFQUNJLGVDcnRDWTtFRHN0Q1osa0JBQWlCLEVBS3BCO0VBUEQ7SUFLUSxlQUFjLEVBQ2pCOztBQUdMOztHQUVHO0FBRUg7O0VBRUksZUFBYyxFQUNqQjs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDs7O0VBR0ksc0JBQXFCO0VBQ3JCLGlCQUFnQjtFQUNoQixvQkFBbUI7RUFDbkIsMEJBQXlCO0VBQ3pCLGdCQ255Q2lCLEVEOHlDcEI7RUFsQkQ7OztJQVVRLGdCQ25uQ1EsRURvbkNYO0VBWEw7OztJQWFRLG1CQUFrQixFQUNyQjtFQWRMOzs7SUFnQlEsa0JBQWlCLEVBQ3BCOztBQUdMOztrREFFa0Q7QUFFbEQ7RUFDSSxnQkNyb0NTO0VEc29DVCxnRkNocENnRixFRHVxQ25GO0VBekJEO0lFLzFDSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRUZtMkNWO0VBTkw7SUFTUSxZQUFXO0lBQ1gsWUFBVztJQUNYLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFDbEIsbUJBQWtCLEVBS3JCO0lBbEJMO01BZ0JZLGNBQWEsRUFDaEI7RUFqQlQ7SUFxQlEsWUFBVztJQUNYLG1CQUFrQjtJQUNsQixnQkFBZSxFQUNsQjs7QUFHTDs7RUFFSSxhQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxhQUFZO0VBQ1osYUFBWTtFQUNaLGtCQUFpQixFQUtwQjtFQVJEO0lBTVEsc0JBQXFCLEVBQ3hCOztBQUdMO0VBQ0ksbUJBQWtCO0VBQ2xCLGFBQVksRUFDZjs7QUFFRDtFQUNJLGNBQWE7RUFDYixtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGFBQVk7RUFDWixhQUFZO0VBQ1osMEJDdDFDWTtFRHUxQ1osMEJBQXlCO0VBQ3pCLFVBQVM7RUFDVCxhQUFZLEVBT2Y7RUFoQkQ7SUtsNUNJLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBR1Ysb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyxpQ0p5RFE7SUl4RFIsaUJBQWdCO0lMcTVDaEIsV0FBb0I7SUFDcEIsVUFBUyxFQUNaOztBQUdMO0VBQ0ksa0JBQWlCO0VBQ2pCLDBCQUF5QjtFQUN6QixtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxlQUFjLEVBQ2pCOztBTG42Q087RUt1NkNKO0lBQ0ksZ0JBQWUsRUF3QmxCO0lBekJEO01BSVEsY0FBYSxFQUNoQjtJQUxMO01BU1ksZUFBYztNQUNkLGlCQUFnQjtNQUNoQixXQUFVO01BQ1YsWUFBVztNQUNYLGFBQVk7TUFDWiw4QkFBNkIsRUFTaEM7TUF2QlQ7UUFpQmdCLFlBQVcsRUFDZDtNQWxCYjtRQXFCZ0IsY0FBYSxFQUNoQixFQUFBOztBQU9qQjs7R0FFRztBQUVIO0VBQ0ksYUFBWTtFQUNaLGFBQVk7RUFDWixvQkFBbUIsRUFDdEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGNBQTBCLEVBTTdCO0VBUEQ7SUFJUSxzQkFBcUI7SUFDckIscUJBQW9CLEVBQ3ZCOztBQUdMO0VBQ0ksY0FBYSxFQUNoQjs7QUFJRDs7R0FFRztBQUVIO0VBQ0ksa0JDdndDbUIsRUR3d0N0Qjs7QUFFRDtFQUNJLDRCQUEyQjtFQUMzQixxQkM1d0NtQixFRDZ3Q3RCOztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0kseUJBQXdCO0VBQ3hCLHFCQ3J4Q21CLEVEc3hDdEI7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxlQ3Y2Q2lCO0VEdzZDakIsZ0JDcnlDVyxFRHN5Q2Q7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLG9CQzkrQ007RUQrK0NOLG9CQUFtQixFQUN0Qjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksaUJDMytDYztFRDQrQ2Qsb0JBQW1CO0VBQ25CLGlDQzEyQ3FCO0VEMjJDckIsOEJDMzJDcUI7RUQ0MkNyQixvQkNqM0N5QjtFRGszQ3pCLDJCQUEwQixFQUs3QjtFQVhEO0lFbGhESSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRUYwaERWOztBQUdMO0VBQ0ksb0JDeC9DYyxFRHkvQ2pCOztBQUdEO0VBQ0ksaUJDNy9DYyxFRDgvQ2pCOztBQUVEOztFQUVJLGdGQ3oxQ2dGO0VEMDFDaEYsZUNsOUNZO0VEbTlDWixrQkFBaUI7RUFDakIsZ0JDLzBDWSxFRGcxQ2Y7O0FBRUQ7O0VBRUksb0JBQW1CO0VBQ25CLDBCQUF5QixFQUM1Qjs7QUFJRDtFQUNJLFlBQVc7RUFDWCxtQkFBa0IsRUFVckI7RUFaRDtJQUtRLFlBQVc7SUFDWCxrQkFBaUIsRUFLcEI7SUFYTDtNQVNZLGFBQVksRUFDZjs7QUFJVDtFQUNJLFlBQVc7RUFDWCxrQkFBaUI7RUFDakIsYUFBWSxFQW9CZjtFQXZCRDtJQU1RLFlBQVc7SUFDWCxhQUFZO0lBQ1osc0JBQXFCLEVBRXhCO0VBVkw7SUFZUSxnQ0FBZ0UsRUFJbkU7SUFoQkw7TUFjWSxrQ0FBb0UsRUFDdkU7RUFmVDtJQWtCUSxnQ0FBZ0UsRUFJbkU7SUF0Qkw7TUFvQlksa0NBQW9FLEVBQ3ZFOztBQUlUO0VBQ0ksYUFBWSxFQXlCZjtFQTFCRDs7SUFLUSxZQUFXO0lBQ1gsWUFBVztJQUNYLGFBQVksRUFFZjtFQVRMO0lBV1Esa0JBQWlCO0lBQ2pCLGdDQUF1RixFQUMxRjtFQWJMOztJQWdCUSxrQ0FBNkYsRUFDaEc7RUFqQkw7SUFvQlEsaUNBQTJGLEVBQzlGO0VBckJMOztJQXdCUSxrQ0FBaUcsRUFDcEc7O0FBR0w7RUFDSSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLGlCQy9sRFMsRURnb0RaO0VBcENEO0lBTVEsWUFBVztJQUNYLCtCQ243Q3dCO0lEbzdDeEIsb0JBQW1CO0lBQ25CLG1CQUFrQixFQUNyQjtFQVZMO0lBYVEsWUFBVztJQUNYLGFBQVk7SUFDWixrQkFBaUIsRUFTcEI7SUF4Qkw7TUFrQlksbUJBQWtCLEVBS3JCO01BdkJUO1FBcUJnQixhQUFZLEVBQ2Y7RUF0QmI7OztJQTZCUSxtQkFBa0IsRUFDckI7RUE5Qkw7SUFpQ1Esc0JBQXFCLEVBQ3hCOztBQUlMO0VBQ0ksaUJBQWdCO0VBQ2hCLFlBQVc7RUFDWCxtQkFBa0IsRUFLckI7RUFSRDtJQU1RLGNBQWEsRUFDaEI7O0FBR0w7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7O0VBRUksc0JBQXFCO0VBQ3JCLFVBQVM7RUFDVCxnQkN4OUNTO0VEeTlDVCxtQkFBa0I7RUFDbEIsMEJBQXlCO0VBQ3pCLHVCQUFzQjtFQUN0QixvQkFBbUI7RUFDbkIsa0JBQWlCO0VBQ2pCLFlBQVc7RUFDWCxhQUFZO0VBQ1osV0FBVTtFQUNWLGVDaG9EZ0I7RURpb0RoQiwyQkFBMEI7RUFDMUIsK0JDLytDNEIsRURtL0MvQjtFQW5CRDs7O0lBaUJRLGNBQWEsRUFDaEI7O0FBR0w7RUFDSSxzQkFBcUIsRUFJeEI7RUFMRDtJQUdRLGVDem9EUSxFRDBvRFg7O0FBV0w7O0VBR0ksWUFBVztFQUNYLGtCQUFpQjtFQUNqQixtQkFBa0I7RUFDbEIsOEJBQTZCO0VBQzdCLG1CQUFrQixFQUtyQjtFQVpEOztJQVVRLDBCQy9wRFEsRURncURYOztBQUdMO0VLcnVESSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQWlCVixrQ0FBbUM7RUFDbkMscUNBQXNDO0VBQ3RDLCtCSjJDUTtFSTFDUixtQkFBa0I7RUxndERsQixTQUFRO0VBQ1IsaUJBQWdCO0VBQ2hCLFVBQVM7RUFDVCxrQkFBaUIsRUFDcEI7O0FBUEw7RUtydURJLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLFVBQVM7RUFDVCxlQUFjO0VBaUJWLGtDQUFtQztFQUNuQyxxQ0FBc0M7RUFDdEMsK0JKaUZ5QjtFSWhGekIsbUJBQWtCLEVMdXREckI7O0FBR0w7RUtsdkRJLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLFVBQVM7RUFDVCxlQUFjO0VBd0JWLGtDQUFtQztFQUNuQyxxQ0FBc0M7RUFDdEMsZ0NKb0NRO0VJbkNSLGtCQUFpQjtFTHN0RGpCLFNBQVE7RUFDUixpQkFBZ0I7RUFDaEIsVUFBUztFQUNULGtCQUFpQixFQUNwQjs7QUFQTDtFS2x2REksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULGVBQWM7RUF3QlYsa0NBQW1DO0VBQ25DLHFDQUFzQztFQUN0QyxnQ0owRXlCO0VJekV6QixrQkFBaUIsRUw2dERwQjs7QUxudkRHO0VLeXZESjtJQUNJLGNBQWEsRUFDaEI7RUFFRDtJQUNJLFlBQVcsRUFDZDtFQUdEO0lBQ0ksY0FBYSxFQUNoQixFQUFBOztBTHB3REc7RUt5d0RKOztJQUdRLFlBQVcsRUFDZDtFQUpMO0lBT1EsWUFBVztJQUNYLFlBQVcsRUFVZDtJQWxCTDtNQVdZLFlBQVc7TUFDWCxlQUFjLEVBQ2pCO0lBYlQ7TUFnQlksYUFBWSxFQUNmLEVBQUE7O0FMMXhETDtFS2l5REo7Ozs7OztJQUtRLFlBQVcsRUFDZDtFQU5MOzs7SUFTUSxZQUFXO0lBQ1gsWUFBVyxFQVVkO0lBcEJMOzs7TUFhWSxZQUFXO01BQ1gsZUFBYyxFQUNqQjtJQWZUOzs7TUFrQlksYUFBWSxFQUNmLEVBQUE7O0FMcHpETDtFSzJ6REo7SUFDSSxjQUFhLEVBQ2hCLEVBQUE7O0FBR0w7O2tEQUVrRDtBQUVsRDs7O0VBSVEsbUJBQWtCO0VBQ2xCLGdCQUFlLEVBY2xCO0VBbkJMOzs7SUs3MERJLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBVVYsb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyw4QkprRFE7SUlqRFIsb0JBQW1CO0lMcTBEZixpQkFBZ0I7SUFDaEIsc0JBQXFCO0lBQ3JCLGtCQUFpQixFQUNwQjtFQVpUOzs7SUs3MERJLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBVVYsb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyw4Qkp3RnlCO0lJdkZ6QixvQkFBbUI7SUwyMERmLGlCQUFnQjtJQUNoQixzQkFBcUI7SUFDckIsa0JBQWlCLEVBQ3BCOztBQWxCVDs7O0VLNzBESSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsZUFBYztFQUdWLG9DQUFxQztFQUNyQyxtQ0FBb0M7RUFDcEMsaUNKeURRO0VJeERSLGlCQUFnQjtFTDQxRFIsaUJBQWdCO0VBQ2hCLHNCQUFxQjtFQUNyQixrQkFBaUIsRUFDcEI7O0FBNUJiOzs7RUs3MERJLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLFVBQVM7RUFDVCxlQUFjO0VBR1Ysb0NBQXFDO0VBQ3JDLG1DQUFvQztFQUNwQyxpQ0orRnlCO0VJOUZ6QixpQkFBZ0I7RUxrMkRSLGlCQUFnQjtFQUNoQixzQkFBcUI7RUFDckIsa0JBQWlCLEVBQ3BCOztBQU1iO0VBR1EsbUJBQWtCLEVBQ3JCOztBQUdMOztrREFFa0Q7QUFFbEQ7RUFDSSxtQkFBa0IsRUFDckI7O0FBRUQ7O0VBRUksa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0kseUJBQXdCLEVBQzNCOztBQUVEOztFQUVJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLFlBQVcsRUFDZDs7QUFFRDs7a0RBRWtEO0FBRWxEO0VBQ0ksY0FBYSxFQUNoQjs7QUFFRDs7a0RBRWtEO0FBRWxEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksWUFBVztFQUNYLGlCQUFnQjtFQUNoQixZQUFXLEVBQ2Q7O0FBT0Q7O2tEQUVrRDtBQUdsRDtFQUNJLGlCQ3A1RFMsRURtdEVaO0VBaFVEO0lBSVEsa0JBQWlCO0lBQ2pCLDZCQUE0QjtJQUM1QiwrQkFBOEIsRUF5VGpDO0lBL1RMOzs7TUFXZ0IsaUJBQWdCO01BQ2hCLG1CQUFrQjtNQUNsQixXQUFVO01BQ1YsT0FBTTtNQUNOLGdCQzF1REM7TUQydURELDBCQUF5QixFQVE1QjtNTHI4REw7UUs2NkRSOzs7VUFrQm9CLFVBQVMsRUFNaEIsRUFBQTtNTHI4REw7UUs2NkRSOzs7VUFxQm9CLFdBQVUsRUFHakIsRUFBQTtJQXhCYjtNQTJCWSxrQkFBaUI7TUFDakIscUJDLzZEQztNRGc3REQsV0FBVSxFQXNCYjtNTGgrREQ7UUs2NkRSO1VBZ0NvQixlQUFjO1VBQ2Qsa0JBQWlCO1VBQ2pCLG1CQUFrQjtVQUNsQixXQUFVO1VBQ1YsV0FBVTtVQUNWLGFBQVk7VUFDWixTQUFRLEVBYW5CLEVBQUE7TUxoK0REO1FLNjZEUjtVQTBDb0IsV0FBVSxFQVNyQixFQUFBO01MaCtERDtRSzY2RFI7VUE4Q29CLFdBQVU7VUFDVixVQUFTLEVBSXBCLEVBQUE7SUFuRFQ7TUF5RFksbUJBQWtCO01BQ2xCLFlBQVU7TUFDVixzQkFBcUI7TUFDckIsbUJBQWtCLEVBc0lyQjtNTC9tRUQ7UUs2NkRSO1VBK0RnQixXQUFVO1VBQ1Ysa0JBQWlCO1VBQ2pCLGlCQUFnQixFQWlJdkIsRUFBQTtNTC9tRUQ7UUs2NkRSO1VBcUVnQixXQUFVO1VBQ1YsaUJBQWdCLEVBNEh2QixFQUFBO01BbE1UO1FBNEVvQixpQkFBZ0I7UUFDaEIsb0JDaCtEUCxFRDYvREk7UUx2aEVUO1VLNjZEUjtZQWtGNEIsY0FBYSxFQUNoQixFQUFBO1FMaGdFakI7VUs2NkRSO1lBdUZ3QixhQUFZO1lBQ1osb0JBQW1CO1lBQ25CLG9CQUFtQjtZQUNuQixhQUFZO1lBQ1osa0JBQWlCO1lBQ2pCLGlCQUFnQixFQWN2QixFQUFBO1FBMUdqQjtVQWdHc0Isc0JBQXFCLEVBS3RCO1VBckdyQjtZQW1Hd0Isc0JBQXFCLEVBQ3RCO1FBcEd2QjtVQXVHd0IsZ0JBQWU7VUFDZixZQUFXLEVBQ2Q7TUF6R3JCO1FBNkdnQixpQkFBZ0I7UUFDaEIsZ0JBQWU7UUFDZixnRkNoMURvRTtRRGkxRHBFLDBCQUF5QjtRQUN6QixvQkFBeUI7UUFDekIsaUJBQWdCO1FBQ2hCLGtCQUFpQjtRQUlqQixvQkFBbUIsRUFhdEI7UUxqakVMO1VLNjZEUjtZQXFIcUIsa0JDemdFVixFRHdoRUUsRUFBQTtRTGpqRUw7VUs2NkRSO1lBeUh3QixrQkFBaUI7WUFDakIsaUJBQWdCO1lBQ2hCLGVBQWMsRUFTekIsRUFBQTtRTGpqRUw7VUs2NkRSO1lBOEhvQixpQkFBZ0IsRUFNdkIsRUFBQTtRTGpqRUw7VUs2NkRSO1lBa0l3QixpQkFBZ0IsRUFFM0IsRUFBQTtNQXBJYjtRQXNJZ0IsZUM5OURLO1FEKzlETCxpQkFBZ0IsRUFNbkI7UUE3SWI7VUEwSW9CLGVDbCtEQztVRG0rREQsMkJBQTBCLEVBQzdCO01BNUlqQjtRQStJZ0IsaUJBQXVCLEVBRTFCO01BakpiO1FBbUpvQixxQkFBb0I7UUFDcEIsaUJBQWdCLEVBY25CO1FML2tFVDtVSzY2RFI7WUF3SndCLG9CQUFtQjtZQUNuQixvQkFBbUI7WUFDbkIsWUFBVztZQUNYLG1CQUFrQjtZQUNsQixpQkFBZ0IsRUFNdkI7WUFsS2pCO2NBK0o0QixjQUFhLEVBQ2hCLEVBQUE7TUFoS3pCO1FBcUtnQixpQkFBZ0IsRUE0Qm5CO1FMOW1FTDtVSzY2RFI7WUEwS29CLGtCQUFpQjtZQUNqQixZQUFXO1lBQ1gsa0JBQWlCO1lBQ2pCLG9CQ2hrRVA7WURpa0VPLGlCQUFnQjtZQUNoQixvQkNua0VUO1lEb2tFUyxlQUFjLEVBaUJyQixFQUFBO1FMOW1FTDtVSzY2RFI7WUFxTG9CLG9CQUFtQixFQVkxQixFQUFBO1FMOW1FTDtVSzY2RFI7WUEyTG9CLFlBQVc7WUFDWCxrQkFBaUIsRUFLeEIsRUFBQTtJTDltRUw7TUs2NkRSO1FBd01vQixXQUFVO1FBQ1YsVUFBUyxFQUdoQixFQUFBO0lMem5FTDtNSzY2RFI7UUFpTmlCLGlCQUFnQixFQW9DcEIsRUFBQTtJTGxxRUw7TUs2NkRSO1FBc053QixnQkFBZSxFQVl0QixFQUFBO0lML29FVDtNSzY2RFI7UUF5TndCLFlBQVc7UUFDWCxrQkFBaUIsRUFReEIsRUFBQTtJTC9vRVQ7TUs2NkRSO1FBOE53QixZQUFXO1FBQ1gsa0JBQWlCLEVBR3hCLEVBQUE7SUwvb0VUO01LNjZEUjtRQXNPd0IsWUFBVztRQUNYLGtCQUFpQixFQVl4QixFQUFBO0lMaHFFVDtNSzY2RFI7UUEyT3dCLFlBQVc7UUFDWCxrQkFBaUIsRUFPeEIsRUFBQTtJTGhxRVQ7TUs2NkRSO1FBK093QixXQUFVO1FBQ1YsaUJBQWdCLEVBR3ZCLEVBQUE7SUxocUVUO01LNjZEUjtRQTRQb0IsV0FBVTtRQUNWLFVBQVM7UUFDVCxhQUFZLEVBR25CLEVBQUE7SUw5cUVMO01LNjZEUjtRQW9RaUIsaUJBQWdCLEVBOEJwQixFQUFBO0lML3NFTDtNSzY2RFI7UUF3UXdCLGdCQUFlLEVBU3RCLEVBQUE7SUw5ckVUO01LNjZEUjtRQTJRd0IsWUFBVztRQUNYLGtCQUFpQixFQUt4QixFQUFBO0lMOXJFVDtNSzY2RFI7UUErUXdCLHFCQUFvQixFQUUzQixFQUFBO0lMOXJFVDtNSzY2RFI7UUFvUndCLFlBQVc7UUFDWCxrQkFBaUIsRUFZeEIsRUFBQTtJTDlzRVQ7TUs2NkRSO1FBeVJ3QixZQUFXO1FBQ1gsa0JBQWlCLEVBT3hCLEVBQUE7SUw5c0VUO01LNjZEUjtRQTZSd0IsWUFBVztRQUNYLGVBQWMsRUFHckIsRUFBQTtJTDlzRVQ7TUs2NkRSO1FBd1NvQixTQUFRLEVBYWY7UUFyVGI7VUEwU3dCLFNBQVEsRUFDWCxFQUFBO0lMeHRFYjtNSzY2RFI7UUE4U29CLFdBQVU7UUFDVixXQUFVO1FBQ1YsYUFBWSxFQUtuQjtRQXJUYjtVQWtUd0IsV0FBVSxFQUNiLEVBQUE7SUFuVHJCO01BeVRrQixjQUFhLEVBQUs7SUx0dUU1QjtNSzY2RFI7UUEwVHlELGNBQWEsRUFBSyxFQUFBO0lMdnVFbkU7TUs2NkRSO1FBNFQyRCxlQUFjLEVBQUssRUFBQTs7QUFLOUU7RUFFUSxjQUFhLEVBQ2hCOztBQUhMO0VBTVksa0JBQWlCO0VBQ2pCLGtCQUFpQjtFQUNqQixjQUFhO0VBQ2IsbUJBQWtCO0VBQ2xCLG9CQUFtQixFQUN0Qjs7QUFJVDtFQUVJLGNBQWEsRUFvQmhCO0VMbnhFTztJSzZ2RVI7TUFLWSxlQUFjO01BQ2QsWUFBVztNQUNYLFVBQVM7TUFDVCxlQUFjO01BQ2Qsa0JBQWlCLEVBYTVCLEVBQUE7RUF0QkQ7SUFhVyxtQkFBa0IsRUFRbkI7SUFyQlY7TUFnQmdCLFdBQVU7TUFDVixtQkFBa0I7TUFDbEIsU0FBUTtNQUNSLFlBQVcsRUFDZDs7QUFHYjs7Ozs7RUFNUSxpQkFBZ0I7RUFDaEIsZUFBYyxFQUNqQjs7QUFSTDs7Ozs7RUFVUSxlQzFzRVE7RUQyc0VSLGlDQzNzRVE7RUQ0c0VSLGlCQUFnQixFQVFuQjtFQXBCTDs7Ozs7Ozs7O0lBZVksc0JBQXFCO0lBQ3JCLGVDM3VFSTtJRDR1RUosc0JDNXVFSSxFRDZ1RVA7O0FBSVQ7RUFFWSxzQkFBcUI7RUFDckIsZUN6dEVJO0VEMHRFSixzQkMxdEVJLEVEMnRFWDs7QUFFTDtFQUdZLGVDaHVFSTtFRGl1RUosc0JDanVFSSxFRGt1RVA7O0FBSVQ7RUFFUSwrQkN4dUVRO0VEeXVFUixZQUFXLEVBOEVkO0VBakZMO0lBTVksZUN4d0VTO0lEeXdFVCxvQkFBbUI7SUFDbkIsV0FBVSxFQUNiO0VBVFQ7SUFZWSxpQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLG9CQUFtQjtJQUNuQix1QkFBc0IsRUFTekI7SUxsMUVEO01LMHpFUjtRQWlCZ0IsV0FBVTtRQUNWLFlBQVcsRUFNbEIsRUFBQTtJTGwxRUQ7TUswekVSO1FBcUJnQixXQUFVO1FBQ1YsWUFBVyxFQUVsQixFQUFBO0VBeEJUO0lBNkJZLGdCQUFnQjtJQUNoQixzQkFBcUI7SUFDckIsb0JDaDBFRDtJRGkwRUMsaUJBQWdCO0lBQ2hCLG9EQUFtRDtJQUNuRCw2QkFBNEI7SUFDNUIsa0NBQWlDO0lBQ2pDLFlBQVcsRUErQmQ7SUw3M0VEO01LMHpFUjtRQXVDZ0IsV0FBVTtRQUNWLFlBQVc7UUFDWCxZQUFXO1FBQ1gscUJBQW9CLEVBeUIzQixFQUFBO0lMNzNFRDtNSzB6RVI7UUE4Q2dCLFdBQVU7UUFDVixZQUFXO1FBQ1gsWUFBVztRQUNYLHFCQUFvQixFQWtCM0IsRUFBQTtJQW5FVDtNQTREZ0IsV0FBVSxFQUNiO01MdjNFTDtRSzB6RVI7VUEwRG9CLGlCQUF1QixFQUc5QixFQUFBO0lBN0RiO01BK0RnQixnRkM3cUVvRTtNRDhxRXBFLGdCQ3ZxRUE7TUR3cUVBLGVDcDBFSSxFRHEwRVA7RUw1M0VMO0lLMHpFUjtNQXVFZSxlQUFjLEVBRXBCLEVBQUE7RUxuNEVEO0lLMHpFUjtNQTZFZSxvQkFBbUIsRUFFekIsRUFBQTs7QUFNTDtFQUNJLGtCQUFpQixFQUNwQjs7QUFNTDtFQUNJLGtCQUFpQixFQWdDcEI7RUFqQ0Q7SUFHUSxnQkFBZ0I7SUFDaEIsa0JBQWlCLEVBNEJwQjtJQWhDTDtNQU9ZLDJCQUE2QixFQXdCaEM7TUEvQlQ7UUFVZ0IsZUFBYztRQUNkLG1CQUFrQixFQWdCckI7UUxsN0VMO1VLdTVFUjtZQWNvQixpQkFBZ0IsRUFhdkIsRUFBQTtRQTNCYjtVQWlCb0IsaUJBQWdCO1VBQ2hCLGdCQ3J0RUw7VURzdEVLLGdGQzl0RWdFO1VEK3RFaEUsZUNwM0VBO1VEcTNFQSxzQkFBcUI7VUFDckIsaUJBQWdCLEVBQ25CO1FBdkJqQjtVQXlCb0Isb0JBQW1CLEVBQ3RCO01BMUJqQjtRQTZCZ0Isa0JBQWlCLEVBQ3BCOztBQUliO0VBRVEsZ0JBQWdCO0VBQ2hCLGtCQUFpQjtFQUNqQiwrQkN6MkVRO0VEMDJFUixZQUFXLEVBd0JkO0VBN0JMO0lBUVksMkJBQWtDLEVBZ0JyQztJQXhCVDtNQVdnQixlQUFjLEVBUWpCO01BbkJiO1FBY29CLGlCQUFnQixFQUluQjtRTDM4RVQ7VUt5N0VSO1lBZ0J3QixXQUFVLEVBRWpCLEVBQUE7SUFsQmpCO01BcUJnQixrQkFBaUI7TUFDakIsb0JBQW1CLEVBQ3RCO0VBdkJiO0lBMkJZLGFBQVksRUFDZjs7QUFHVDtFQUVZLGVBQWMsRUFDakI7O0FBSFQ7RUFLZ0IsbUJBQWtCO0VBQ2xCLGVDMTRFQTtFRDI0RUEsbUJBQWtCO0VBQ2xCLHNCQUFxQixFQWtCdkI7RUExQmQ7SUFVb0IsZUN6NkVKO0lEMDZFSSxzQkFBcUI7SUFDckIsYUFBWSxFQUNmO0VBYmpCO0lBZW9CLGVBQWM7SUFDZCxZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLFFBQU87SUFDUCxVQUFTO0lBQ1QsWUFBVztJQUNYLGFBQVk7SUFDWix1REFBc0Q7SUFDdEQsMkJBQTBCO0lBQzFCLDZCQUE0QixFQUMvQjs7QUFNakI7RUFFUSxnQkFBZSxFQUNsQjs7QUFLTDtFQUNJLHNCQUFxQjtFQUNyQix1QkFBc0I7RUFDdEIsaUJBQWdCO0VBQ2hCLGFBQVk7RUFDWixZQUFXO0VBQ1gsK0NBQXNDO1VBQXRDLHVDQUFzQztFQUN0QywwQkM3OEVZO0VEODhFWixnQ0FBK0I7RUFDL0IsbUJBQWtCLEVBQ3JCOztBQUVEO0VBQ0U7SUFBUSxnQ0FBdUI7WUFBdkIsd0JBQXVCLEVBQUE7RUFDL0I7SUFBUSxrQ0FBeUI7WUFBekIsMEJBQXlCLEVBQUEsRUFBQTs7QUFGbkM7RUFDRTtJQUFRLGdDQUF1QjtZQUF2Qix3QkFBdUIsRUFBQTtFQUMvQjtJQUFRLGtDQUF5QjtZQUF6QiwwQkFBeUIsRUFBQSxFQUFBOztBUTNoRm5DOztrREFFa0Q7QUFFbEQ7O0dBRUc7QUFFSDtFQUdRLG1CUHlDYSxFT3hDaEI7O0FBSkw7RUFPUSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGdCUHNOUTtFT3JOUixnQkFBZSxFQUNsQjs7QUFHTDtFQUVRLFlBQVc7RUFDWCxZQUFXLEVBQ2Q7O0FBR0w7RUFDSSxnQkFBc0IsRUFDekI7O0FBRUQ7RVpnQkksVUFBUztFQUNULG9CQUFtQjtFQUNuQixlSytDWTtFTDlDWixnRktzS2dGO0VMcktoRixnQks0S1k7RUwzS1osb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0I7RVlyQmhCLG9CQUFtQjtFQUNuQixvQkFBbUIsRUFDdEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGlCQUFnQixFQUtuQjtFQU5EO0lObENJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFTXFDVjs7QUFHTDtFQUVRLGdCQUFlO0VBQ2YsdUJBQXNCLEVBQ3pCOztBQUlMLGlDQUFpQztBQUNqQyxxREFBcUQ7QUFDckQ7RUFDSSxZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLGdCQUFlLEVBQ2xCOztBQUdEO0VBQ0ksa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixVQUFTLEVBQ1o7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLHNCQUFxQjtFQUNyQixnQlBvSlM7RUUvTlQsdUJBQXNCO0VBQ3RCLHNCQUFxQjtFQUNyQiwwQkFBeUI7RUFDekIscUJBQW9CO0VBQ3BCLGtCQUFpQixFS3lFcEI7O0FBRUQ7O0VBRUksY0FBYTtFQUNiLGVQMkJjO0VPMUJkLG9CQUFtQjtFQUNuQiwrQlArSDRCO0VPOUg1QixnQlA2SVksRU81SWY7O0FBRUQ7O0VBR1EsWUFBVztFQUNYLGVQaUJVO0VPaEJWLG9CQUFtQjtFQUNuQiwrQlBxSHdCO0VPcEh4QixnQlBtSVEsRU9sSVg7O0FBR0w7O0VBRUksY0FBYSxFQUNoQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZVBmaUI7RU9nQmpCLGdCUG9IWSxFT25IZjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksZ0JBQWUsRUFDbEI7O0FBRUQ7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxhQUFZO0VBQ1osMEJQaUJvQjtFT2hCcEIsZ0JQNkZXO0VPNUZYLGFBQVksRUFDZjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksWUFBVztFQUNYLGtCQUFpQjtFQUNqQixvQkFBbUI7RUFDbkIsYUFBWTtFQUNaLHVCQUFzQixFQUV6Qjs7QUFLRDs7R0FFRztBQUVIO0VBRUksb0JBQW1CO0VBQ25CLGdCUGtFVztFT2pFWCxhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLGVQaEVpQixFT3VFcEI7RUFiRDtJQVVRLGNBQWEsRUFDaEI7O0FBSUw7RUFDSSxzQlAzRGMsRU80RGpCOztBQUdEO0VBQ0ksa0NBQW1DLEVBQ3RDOztBQUVEO0VBQ0ksYUFBWTtFQUNaLDJCQUEwQjtFQUMxQixnQkFBZSxFQUNsQjs7QUFHRDs7Ozs7RUFLUSxnQkFBZTtFQUNmLHlCQUF3QjtFQUN4QixZQUFXO0VBQ1gsdUJBQXNCO0VBQ3RCLGFBQVk7RUFDWixlQUFjO0VBQ2QsYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixpQkFBZ0I7RUFDaEIsZ0JQMEJLLEVPcEJaO0VBcEJEOzs7OztJQWlCVSxlUHhJVTtJT3lJViwrQlBVc0IsRU9UdkI7RUFuQlQ7Ozs7O0lBaUJVLGVQeElVO0lPeUlWLCtCUFVzQixFT1R2QjtFQW5CVDs7Ozs7SUFpQlUsZVB4SVU7SU95SVYsK0JQVXNCLEVPVHZCOztBQUdULDBEQUEwRDtBQUMxRDtFQUNJOzs7Ozs7O0lBT0ksZ0JBQWU7SUFBRyxtQ0FBbUMsRUFDeEQsRUFBQTs7QUFHTDtFQUNJLGdCQUFlLEVBQ2xCOztBQUVEOztHQUVHO0FBRUg7O0VBRUksV0FBVTtFQUNWLG1CQUFrQjtFQUNsQix1QkFBc0IsRUFDekI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLGVBQWMsRUFFakI7O0FBRUQ7RUFDSSxlQUFjLEVBQ2pCOztBQUVEOztHQUVHO0FBRUg7O0VBRUksbUJBQWtCO0VBQ2xCLFVBQVM7RUFDVCxzQkFBcUIsRUFDeEI7O0FBRUQ7O0VBRUksWUFBVztFQUNYLGVBQWM7RUFDZCxtQkFBa0I7RUFDbEIsZ0JQdkNTO0VPd0NULG9CQUFtQjtFQUNuQixvQkFBbUIsRUFDdEI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxnQkFBZTtFQUNmLGVQcktjO0VPc0tkLGdCUGxEVyxFT21EZDs7QUFFRDs7a0RBRWtEO0FBRWxEO0VBR1Esb0JQalBVLEVPa1BiOztBQUpMO0VBT1EsWUFBVyxFQUNkOztBQVJMOzs7RUFhUSxvQlAzUFUsRU80UGI7O0FiL1JHO0VhaVJSO0lBa0JZLG9CQUFtQixFQTRCdEI7SUE5Q1Q7TU50UkksWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEVNeVNGO0lBckJiO01Bd0JnQixrQkFBaUI7TUFDakIsbUJBQWtCLEVBb0JyQjtNQTdDYjtRQTRCb0IsdUJBQXNCLEVBZ0J6QjtRQTVDakI7VUE4QndCLFdBQVU7VUFDVixZQUFXLEVBQ2Q7UUFoQ3JCO1VBa0N3QixXQUFVO1VBQ1YsWUFBVyxFQUNkO1FBcENyQjtVQXNDd0IsV0FBVTtVQUNWLFlBQVcsRUFDZDtRQXhDckI7VUEwQ3dCLGNBQWEsRUFDaEIsRUFBQTs7QUFPckI7RUFFUSxpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLFVBQVMsRUFFWjs7QUFOTDtFQVNRLFdBQVUsRUFDYjs7QUFWTDtFQWFRLDJCQUEwQixFQUM3Qjs7QUFkTDtFQWlCUSxpQkFBZ0I7RUFDaEIsVUFBUztFQUNULFdBQVU7RUFDVixnQlBqSUs7RU9rSUwsZVBwUVE7RU9xUVIsK0JQL0l3QjtFT2dKeEIsMkJBQTBCLEVBRTdCOztBQUlMLDBGQUEwRjtBQUMxRjs7Ozs7RUFtQ0kscUhBQXFILEVBVXhIO0VBN0NEOzs7OztJQU9RLGdCQUFlO0lBQ2YsWUFBVyxFQUtkO0lBYkw7Ozs7O01BV1ksY0FBYSxFQUNoQjtFQVpUOzs7Ozs7Ozs7O0lBaUJRLFlBQVc7SUFDWCxvQkFBbUI7SUFDbkIsaUJBQWdCLEVBRW5CO0VBckJMOzs7OztJUnVGSSxlQ3BXWTtJRHFXWiwwQkN4UnlCO0lEeVJ6QixrQkFBaUI7SVEvRGIsd0JBQXVCO0lBQ3ZCLHNCQUFxQjtJQUNyQixZQUFXO0lBQ1gsWUFBVztJQUNYLFlBQVc7SUFDWCx3QkFBdUI7SUFDdkIsdUJBQXNCLEVBQ3pCO0VBakNMOzs7OztJQXFDUSw4QkFBNkI7SUFDN0IsZ0JBQWUsRUFLbEI7SUEzQ0w7Ozs7O01BeUNZLDhCQUE2QixFQUNoQzs7QUFLVDs7RUFFSSxtQkFBa0I7RUFDbEIsWUFBVztFQUNYLGdCQUFlLEVBQ2xCOztBQUVEO0VBRVEsWUFBVztFQUNYLGdCQUFlO0VBQ2YsbUJBQWtCLEVBQ3JCOztBQUdMO0VBQ0ksaUJBQWdCLEVBZW5CO0VBaEJEO0lBSVEsWUFBVyxFQUNkO0VBTEw7O0lBUVEsa0JBQWlCLEVBQ3BCO0VBVEw7SUFXUSxZQUFXO0lBQ1gsc0JBQXFCO0lBQ3JCLFlBQVc7SUFDWCxXQUFVLEVBQ2I7O0FBSUw7RUFDSSxjQUFhLEVBQ2hCOztBQUtELDRCQUE0QjtBQUM1QjtFQUNFLHlCQUF3QjtFQUN4QixzQkFBcUI7RUFDckIsaUJBQWdCO0VBQ2hCLGFBQVc7RUFDWCxpQkFBZ0I7RUFDaEIsZUFBYztFQUNkLFlBQVcsRUFDWjs7QUFHRCxhQUFhO0FBQ2I7RUFDRSxZQUFVO0VBQ1Ysa0JBQWlCO0VBQ2pCLHdCQUF1QjtFQUN2QixpRUFBK0Q7RUFDL0QseUNBQXdDO0VBQ3hDLHNCQUFxQjtFQUNyQiw2QkFBNEIsRUFLN0I7RWJsZE87SWFzY1I7TUFTUSxrQkFBaUI7TUFDakIseUNBQXdDLEVBRS9DLEVBQUE7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsZVBoWXNCLEVPaVl6Qjs7QUNyZUQ7O2tEQUVrRDtBQUVsRDtFQUNJLHFCQUFvQixFQUN2Qjs7QUFFRDs7a0RBRWtEO0FBRWxEO0VBQ0ksWUFBVztFQUNYLGtCQUdKLEVBQUU7O0FBR0Y7O0VBRUksV0FBVTtFQUNWLG9CQUFtQixFQUd0Qjs7QUFFRDtFQUVJLGtCQUFpQjtFQUNqQixtQkFBa0IsRUFnQnJCO0VBbkJEO0lBTVEsa0JBQWlCLEVBQ3BCO0VBUEw7SUFVUSxhQUFZLEVBQ2Y7RUFYTDtJQWVZLFdBQVUsRUFDYjs7QUFNVDtFQUVJLGlCQUFnQjtFQUNoQixvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxrQ1JRZ0IsRVFQbkI7O0FBRUQ7O0VBRUksK0JSdUo2QixFUXRKaEM7O0FBR0Q7RUFDSSxrQkFBaUI7RUFDakIsaUJBQWdCLEVBS25CO0VBUEQ7SUFLUSxhQUFZLEVBQ2Y7O0FBR0w7O2tEQUVrRDtBQUVsRDtFQUNJLDBCUjBHb0I7RVF6R3BCLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFNbkI7RUFURDtJQU1RLGtCQUFpQjtJQUNqQixnQkFBZSxFQUNsQjs7QUFHTDs7RUFFSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxrQkFBaUI7RUFDakIsd0JBQXVCLEVBQzFCOztBQUVEO0VBQ0ksZUFBYyxFQUNqQjs7QUFFRDs7a0RBRWtEO0FBRWxEOztFQUdRLDhCUjJFZ0IsRVExRW5COztBQUpMOztFQVFRLGlDUnNFZ0I7RVFyRWhCLGFBQVk7RUFDWiw4QkFBNkIsRUFDaEM7O0FBWEw7RUFjUSwwQlJtRW9CLEVRbEV2Qjs7QUFmTDtFQWtCUSwwQlI4RG1CLEVRN0R0Qjs7QUFHTDs7a0RBRWtEO0FkMUgxQztFY2tPSjtJQWhCQSxhQUFhLEVBa0JaO0lBdEdEOzs7TUFHSSxlQUFjLEVBQ2pCO0lBRUs7TUFDRixnQkFBZTtNQUNmLGVBQWMsRUFDakI7SUFFSztNQUNGLGNBQWEsRUFDaEI7SUFFSztNQUNGLGNBQWEsRUFDaEI7SUFFSztNQUNGLG1CQUFrQjtNQUNsQixpQ1JtQmlCLEVRbEJwQjtJQUVLO01BQ0Ysb0JBQW1CO01BQ25CLGdCQUFlO01BQ2YsaUJBQWdCLEVBQ25CO0lBRUs7TUFDRixjQUFhLEVBQ2hCO0lBRUs7TUFDRixrQkFBaUIsRUFDcEI7SUFFSzs7TUFFRixrQkFBaUIsRUFDcEI7SUFFSztNQUNGLGlCQUFnQjtNQUNoQixtQkFBa0IsRUFDckI7SUFFSztNQUNGLGtDQUFpQztNQUNqQyxnQlJ5Q1E7TVF4Q1IsZ0ZSMkI0RTtNUTFCNUUsbUJBQWtCO01BQ2xCLDBCQUF5QixFQUM1QjtJQUVLO01BQ0YsZUFBYztNQUNkLGtCQUFpQixFQUNwQjtJQUVLO01QaE1OLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFT2dNVjtJQUVLO01BQ0YsZUFBYztNQUNkLFlBQVcsRUFDZDtJQUVLO01BQ0YsY0FBYSxFQUNoQjtJQUVLO01BQ0YsWUFBVztNQUNYLFdBQXNCLEVBQ3pCO0lBRUs7TUFDRixpQkFBZ0I7TUFDaEIsV0FBc0IsRUFDekI7SUFJRDtNQUNJLGNBQWEsRUFDaEI7SUFFRDtNQUNJLFdBQVUsRUFDYjtJQUVEO01BQ0ksZUFBYyxFQUNqQixFQUFBOztBZDlORztFY3dPSjtJQXRCQSxhQUFhLEVBd0JaO0lBNUdEOzs7TUFHSSxlQUFjLEVBQ2pCO0lBRUs7TUFDRixnQkFBZTtNQUNmLGVBQWMsRUFDakI7SUFFSztNQUNGLGNBQWEsRUFDaEI7SUFFSztNQUNGLGNBQWEsRUFDaEI7SUFFSztNQUNGLG1CQUFrQjtNQUNsQixpQ1JtQmlCLEVRbEJwQjtJQUVLO01BQ0Ysb0JBQW1CO01BQ25CLGdCQUFlO01BQ2YsaUJBQWdCLEVBQ25CO0lBRUs7TUFDRixjQUFhLEVBQ2hCO0lBRUs7TUFDRixrQkFBaUIsRUFDcEI7SUFFSzs7TUFFRixrQkFBaUIsRUFDcEI7SUFFSztNQUNGLGlCQUFnQjtNQUNoQixtQkFBa0IsRUFDckI7SUFFSztNQUNGLGtDQUFpQztNQUNqQyxnQlJ5Q1E7TVF4Q1IsZ0ZSMkI0RTtNUTFCNUUsbUJBQWtCO01BQ2xCLDBCQUF5QixFQUM1QjtJQUVLO01BQ0YsZUFBYztNQUNkLGtCQUFpQixFQUNwQjtJQUVLO01QaE1OLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFT2dNVjtJQUVLO01BQ0YsZUFBYztNQUNkLFlBQVcsRUFDZDtJQUVLO01BQ0YsY0FBYSxFQUNoQjtJQUVLO01BQ0YsWUFBVztNQUNYLFdBQXNCLEVBQ3pCO0lBRUs7TUFDRixpQkFBZ0I7TUFDaEIsV0FBc0IsRUFDekI7SUFJRDtNQUNJLGNBQWEsRUFDaEI7SUFFRDtNQUNJLFdBQVUsRUFDYjtJQUVEO01BQ0ksZUFBYyxFQUNqQixFQUFBOztBZDlORztFYzhPSjtJQUNJLGNBQWEsRUFDaEIsRUFBQTs7QUM5UEw7O2tEQUVrRDtBQUVsRDs7RUFFSSxhQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxpQkFBZ0I7RUFDaEIsaUJBQWdCO0VBQ2hCLGVBQWMsRUFDakI7O0FBRUQ7RVJOSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRVFNZDs7QUNqQkQ7O2tEQUVrRDtBQUVsRDtFQUNJLGlCQUFnQixFQUNuQjs7QWhCUU87RWdCSko7SUFDSSxtQkFBa0IsRUFDckIsRUFBQTs7QUFJTDs7RUFFSSxnRlZ3TWdGLEVVdk1uRjs7QUFHRDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFDRDs7a0RBRWtEO0FBRWxEO0VBQ0ksY0FBYTtFQUNiLG1CQUFrQixFQXNCckI7RWhCdkNPO0lnQmVSO01BSVEsc0JBQXFCO01BQ3JCLG1CQUFrQixFQW1CekIsRUFBQTtFQXhCRDtJQVNRLGNBQWEsRUFDaEI7RUFWTDtJQWFZLGVBQWM7SUFDZCxZQUFXO0lBQ1gsZ0RBQStDO0lBQy9DLFlBQVc7SUFDWCxZQUFXO0lBQ1gsc0JBQXFCO0lBQ3JCLG1CQUFrQjtJQUNsQixZQUFXO0lBQ1gsVUFBUyxFQUVaOztBQUdMO0VBQ0ksc0JBQXFCO0VBQ3JCLGdGVmlLNEU7RVVoSzVFLFdBQVU7RUFDVix3QkFBdUIsRUFFMUI7O0FBS0Q7RUFDSSxjQUFhO0VBQ2Isa0JBQWlCO0VBQ2pCLGtCQUFpQjtFQUNqQixrQkFBbUM7RUFDbkMsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUtyQjtFQVhEO0lUekRBLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFU2lFTjs7QUFHTDtFQUNJLGNBQWEsRUFDaEI7O0FBRUY7Ozs7Ozs7OztPQVNJO0FBT1A7O2tEQUVrRDtBQUc5QztFQUNRLGVBQWM7RUFDZCxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLFlBQVc7RUFDWCxVQUFTLEVBZWhCO0VBcEJEO0lBVWdCLFlBQVc7SUFDWCxnQkFBZSxFQU9sQjtJQWxCYjtNQWFvQixnQkFBZSxFQUNsQjtJQWRqQjtNQWdCb0IsY0FBYSxFQUNoQjs7QWhCM0diO0VnQm9ISjtJQUNJLFlBQVcsRUFDZCxFQUFBOztBaEJ0SEc7RWdCMkhKO0lBQ0ksa0JBQWlCO0lBQ2pCLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsa0JBQWlCO0lBQ2pCLGFBQVksRUFlZjtJQXBCRDtNQVFRLHNCQUFxQjtNQUNyQixtQkFBa0IsRUFVckI7TUFuQkw7UUFhZ0IsY0FBYSxFQUNoQjtNQWRiO1FBZ0JnQixnQkFBZSxFQUNsQixFQUFBOztBQU9qQjs7a0RBRWtEO0FBRWxEO0VBQ0ksWUFBVztFQUNYLGlCQUFnQixFQUluQjtFaEI3Sk87SWdCdUpSO01BSVEsbUJBQWtCLEVBRXpCLEVBQUE7O0FoQjdKTztFZ0JxS0o7SUFDSSxXQUFVO0lBQ1YsWUFBVyxFQUNkLEVBQUE7O0FBSUw7O0dBRUc7QUFFSDtFQUNJLG1CQUFrQjtFQUNsQixhQUFZO0VBQ1osZ0JWaUNXO0VVaENYLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsaUJBQWdCLEVBaUJuQjtFaEJ2TU87SWdCZ0xSO01BU1EsbUJBQWtCLEVBY3pCLEVBQUE7RUF2QkQ7SUFjUSxtQkFBa0IsRUFDckI7RUFmTDtJQW9CUSwwQkFBeUI7SUFDekIsY0FBYSxFQUNoQjs7QUFHTDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFLRDtFQUVRLGlCQUFnQixFQUNuQjs7QUFPTDs7R0FFRztBQUVIO0VBQ0ksY0FBYSxFQUNoQjs7QWhCaE9PO0VnQnNPSjtJQUNJLGdCQUFlLEVBQ2xCLEVBQUE7O0FBSUw7O2tEQUVrRDtBQUVsRDtFQUNJLGNBQWEsRUFDaEI7O0FoQmxQTztFZ0JxUEo7SUFDSSxlQUFjO0lBQ2QsaUJWOU5HLEVVK05OLEVBQUE7O0FoQnhQRztFZ0I0UEg7SUFDSSxjQUFhLEVBQ2hCLEVBQUE7O0FBR047RUFDSSxlQUFjO0VBQ2Qsb0JBQW1CLEVBQ3RCOztBQUVEOztrREFFa0Q7QWhCeFExQztFZ0IyUVI7SUFJUSxpQkFBZ0IsRUFFdkIsRUFBQTs7QUMvUkQ7O2tEQUVrRDtBQUVsRDtFQUlRLHNCQUFxQixFQUN4Qjs7QUFHTDtFQUNJLGdCQUFlLEVBQ2xCOztBQUVEO0VBRUksNkJBQTJELEVBQzlEOztBakJMTztFaUJZSjtJQUNJLGNBQWEsRUFDaEIsRUFBQTs7QUFNTDs7a0RBRWtEO0FqQnRCMUM7RWlCeUJKO0lBQ0ksZUFBYztJQUNkLGlCQUFnQixFQUNuQixFQUFBOztBQUlMOztrREFFa0Q7QUFJbEQ7RUFFUSxzQkFBcUI7RUFDckIsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxlWHlDUTtFV3hDUixrQkFSaUI7RUFTakIsZ0ZYK0o0RSxFVzlKL0U7O0FBU0w7O0VBRUksZUFBYyxFQUNqQjs7QUFFRDtFQUNJLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUVRLGVYVFEsRVdVWDs7QUFLRDtFQUVRLGVYakJJLEVXa0JQOztBQUVUO0VBR1ksZVhJSSxFV0NQO0VBUlQ7SUFNZ0IsZVgxQkEsRVcyQkg7O0FBTWI7O2tEQUVrRDtBQUVqRDtFQUNHLGNBQWEsRUFDZjs7QUFFRjtFQUNJLGNBQWEsRUFDaEI7O0FqQnBHTztFaUIwR0o7SUFFUSxZQUFXO0lBQ1gsaUJBQWdCLEVBQ25CLEVBQUE7O0FqQjlHRDtFaUJvSEo7SUFDSyxpQkFBZ0IsRUFDcEI7RUFFRDtJQUVRLGVBQWM7SUFDZCxnQkFBZTtJQUNmLFFBQU87SUFDUCxPQUFNO0lBQ04sY0FBYTtJQUNiLGNBQWE7SUFDYixrQkFBaUI7SUFDakIsdUJBQXNCO0lBQ3RCLFlBQVcsRUFLZDtJQWZMO01BYVksY0FBYSxFQUNoQjtFQUlUO0lBQ0ksWUFBVztJQUNYLGFBQVk7SUFDWixrQkFBaUI7SUFDakIsT0FBTTtJQUNOLFFBQU87SUFDUCxnQkFBZTtJQUNmLGFBQVk7SUFDWiwrQ0FBOEI7SUFBOUIsdUNBQThCO0lBQTlCLCtCQUE4QjtJQUE5QiwyREFBOEIsRUFDakM7RUFFRDtJQUNJLGtCQUFpQjtJQUNqQixxQkFBb0I7SUFDcEIsV0FBVTtJQUNWLHNDQUE2QjtJQUE3Qiw4QkFBNkIsRUFNaEM7SUFWRDtNQU9RLHFCQUFvQjtNQUNwQixXQUFVLEVBQ2I7RUFHTDtJQUNJLGFBQVk7SUFDWixpQkFBZ0IsRUFDbkI7RUFFRDtJQUlRLGtCQUFpQjtJQUNqQixxQlhsSkQ7SVdtSkMsdUJBQXNCLEVBMkJ6QjtJQWpDTDtNQVVZLGdCQUFlLEVBc0JsQjtNQWhDVDtRQWNnQixxQkFBb0I7UUFDcEIsZ0JYNkJIO1FXNUJHLDBCQUF5QjtRQUN6QixrQ1hoSUEsRVdrSUg7TUFuQmI7UUF1QmdCLCtCWHRJQSxFV3dJSDtFQXpCYjtJQXNDZ0IsK0JYckpBLEVXdUpIO0VBeENiO0lBNkNnQiwrQlg1SkEsRVc4Skg7RUFNYjs7O0lBR0ksWUFBVztJQUNYLG1CQUFrQjtJQUNsQixXQUFVO0lBQ1Ysa0JBQWlCO0lBQ2pCLE9BQUs7SUFDTCxhQUFZO0lBQ1osYUFBWSxFQUNmO0VBSUQ7SUFHUSxjQUFhLEVBQ2hCO0VBSUw7SUFDSSxjQUFhLEVBQ2YsRUFBQTs7QWpCblBFO0VpQndQSjtJQUlZLHNCQUFxQjtJQUNyQixhQUFZLEVBYWY7SUFsQlQ7TUFTZ0IsZ0JBQWU7TUFDZixlQUFjO01BQ2QsYUFBWTtNQUNaLGVBQWMsRUFDakI7SUFiYjtNQWdCZ0IsY0FBYSxFQUNoQixFQUFBOztBQU9qQjs7a0RBRWtEO0FqQmxSMUM7RWlCMFJKO0lBRUksbUJBQWtCO0lBaURsQiwyQ0FBMkM7SUF1SjNDLGNBQWMsRUE0Q2pCO0lBdFBEO01BS1Esc0JBQXFCLEVBQ3hCO0lBTkw7TUFVUSxtQkFBa0I7TUFDbEIsZ0JYbkZLO01Xb0ZMLHFCWDNRRSxFVytRTDtJQWhCTDtNQW1CUSxjQUFhLEVBQ2hCO0lBcEJMO01BeUJZLGNBQVk7TUFDWixvQkFBbUI7TUFDbkIsK0JBQThCO01BQzlCLHdEQUF1RDtNQUN2RCxtQkFBa0I7TUFDbEIsYUFBWTtNQUNaLFVBQVM7TUFDVCxtQkFBa0IsRUFDckI7SUFqQ1Q7O01Bc0NRLHNCQUFxQixFQUN4QjtJQXZDTDs7TUE0Q1EsZVg3UUksRVc4UVA7SUE3Q0w7TUFnRFEsYUFBWSxFQUNmO0lBakRMO01BcURRLGtCQUFpQjtNQUNqQixtQkFBa0I7TUFFbEIsUUFBTztNQUNQLFVBQW1DO01BQUUsdUNBQXVDO01BRTVFLGdCQUFnQjtNQUVoQixhQUFZO01BQ1osY0FBYTtNQUFHLDJCQUEyQjtNQUczQyxXQUFVO01BQ1Ysa0JBQWlCO01BQ2pCLHVCQUFzQixFQStGekI7TUFsS0w7UUFzRVksZ0JYNUlEO1FXNklDLDBCQUF5QjtRQUN6QixlWDdRSyxFV2tSUjtRQTdFVDtVQTJFZ0IsZVhqUkosRVdrUkM7TUE1RWI7UUFnRlksa0JYaFZIO1FXaVZHLG9CQUFtQixFQWlCdEI7UUFsR1Q7VUFvRmdCLFVBQVMsRUFDWjtRQXJGYjtVQXdGZ0IsaUJBQWdCLEVBQ25CO1FBekZiO1VBNEZnQixpQlg3VlQsRVdrV007VUFqR2I7WUErRmdCLGlCQUFnQixFQUNmO01BaEdqQjtRQW9HWSxtQkFBa0I7UUFDbEIsYUFBWTtRQUNaLFdBQVU7UUFDVixlQUFjO1FBQ2QsU0FBUTtRQUNSLG1CWHpXSDtRVzBXRyxVQUFTO1FBQ1QsZ0NYOVVJO1FXK1VKLCtCWDVMZ0I7UVc2TGhCLHVCQUFzQixFQTBCekI7UUF2SVQ7VUFnSGdCLGdCWHZMSjtVV3dMSSxtQkFBa0IsRUFDckI7UUFsSGI7VUFxSGdCLFdBQVU7VUFDVixtQkFBa0I7VUFBRyxhQUFZLEVBQ3BDO1FBdkhiO1VBMEhnQixnQlhoTUw7VVdpTUssYUFBWTtVQUNaLG1CQUFrQixFQUNyQjtRQTdIYjtVQWdJZ0IsbUJBQWtCO1VBQ2xCLFdBQVU7VUFDVixTQUFRO1VBQ1IsYUFBWTtVQUNaLGFBQVk7VUFDWixZQUFXLEVBQ2Q7TUF0SWI7UUE0SVksZUFBYztRQUNkLGFYOVlMO1FXK1lLLFlBQVc7UUFDWCxPQUFNO1FBQ04sUUFBTztRQUNQLG1CQUFrQjtRQUNsQixXQUFVO1FBQ1Ysa0JBQWlCO1FBQ2pCLGNBQWEsRUFDaEI7TUFySlQ7UUF3SlksZUFBYztRQUNkLGFYMVpMO1FXMlpLLFlBQVc7UUFDWCxVQUFTO1FBQ1QsUUFBTztRQUNQLG1CQUFrQjtRQUNsQixXQUFVO1FBQ1Ysa0JBQWlCO1FBQ2pCLGNBQWEsRUFDaEI7SUFqS1Q7O01BdUtPLFlBQVcsRUFFYjtJQXpLTDtNQTRLUSxXQUFVLEVBQ2I7SUE3S0w7O01BaUxRLFdBQVUsRUFFYjtJQW5MTDs7TUF1TFEsV0FBVSxFQUNiO0lBeExMO01BMkxRLGVBQWM7TUFDZCx1QkFBc0IsRUFDekI7SUE3TEw7O01BaU1RLFdBQVUsRUFDYjtJQWxNTDs7TUFzTVEsV0FBVSxFQUNiO0lBdk1MO01BNE1RLGNBQWE7TUFDYixPQUFNO01BQ04sZUFBYztNQUNkLGFBQVk7TUFDWCxnQ1hwWmEsRVdnYWpCO01BNU5MO1FBbU5ZLFlBQVc7UUFDWCx1QkFBc0IsRUFDekI7TUFyTlQ7UUF3TlksK0JYeFNnQjtRV3lTaEIsZ0JYN1JIO1FXOFJHLHFCQUFvQixFQUN2QjtJQTNOVDs7TUFpT1ksVUFBUztNQUNULFdBQVUsRUFDYjtJQW5PVDs7TUFxT1ksV0FBVTtNQUNWLFlBQVcsRUFFZDtJQXhPVDs7TUE4T1ksVUFBUztNQUNULFdBQVUsRUFDYixFQUFBOztBQVNiO0VBRVEsY0FBYTtFQUNiLDJGQUF3QztFQUN4QywyQkFBK0I7RUFDL0IsMEJBQXlCLEVBUzVCO0VBZEw7SUFRWSxvQkFBbUIsRUFDdEI7RUFUVDtJQVlZLGVBQWMsRUFDakI7O0FBSVQ7RUFFUSxvQkFBbUIsRUFDdEI7O0FBR0w7RUFFUSxlQUFjLEVBQ2pCOztBQzNqQkw7O2tEQUVrRDtBQUtsRDs7a0RBRWtEO0FBT2xEO0VBRVEsaUJBQWdCLEVBUW5CO0VsQlpHO0lrQkVSO01BTW9CLFlBQVc7TUFDWCxpQkFBZ0IsRUFHL0IsRUFBQTs7QWxCWkc7RWtCaUJKO0lBQ0ksbUJBQWtCO0lBQ2xCLFVBQVM7SUFDVCxnQkFBZTtJQUNmLFdBQVU7SUFDVixhQUFZO0lBQ1osdUJBQXNCO0lBQ3RCLGNBQWE7SUFDYixTQUFRLEVBS1g7SUFiRDtNQVdRLGVBQWMsRUFDakI7RUFFTDtJQUNJLGlCQUFnQixFQUNuQixFQUFBOztBbEJqQ0c7RWtCcUNKO0lBQ0ksV0FBVSxFQUNiLEVBQUE7O0FsQnZDRztFa0IyQ0o7SUFDSSxjQUFhO0lBQ2IsaUJBQWdCLEVBQ25CO0VBRUQ7SUFDSSxzQkFBcUI7SUFDckIsV0FBVSxFQW1EYjtJQXJERDtNQUlPLHdCQUF1QjtNQUN2QiwyQkFBMEI7TUFDMUIsbUJBQWtCO01BQ2xCLGFBQVk7TUFDWixtQkFBa0I7TUFDbEIsa0VBQXlEO01BQXpELDBEQUF5RDtNQUN6RCxnQkFBZSxFQUtqQjtNQWZMO1FBWVksa0JBQWlCO1FBQ2pCLGFBQVksRUFDZjtJQWRUO01Ba0JRLGNBQWEsRUFDaEI7SUFuQkw7TUF1QlEsZUFBYSxFQUNaO0lBeEJUO01BMEI0QixpQkFBaUI7TUFDckMsZUFBYSxFQUNaO0lBNUJUO01BOEI4QixpQkFBaUI7TUFDdkMsZUFBYSxFQUNaO0lBaENUO01BbUNRLGVBQWEsRUFDWjtJQXBDVDtNQXVDVyxlQUFjO01BQ2QsWUFBVztNQUNYLG1CQUFrQjtNQUNsQixXQUFVO01BQ1YsU0FBUTtNQUNSLFlBQVc7TUFDVixhQUFZO01BQ1osMkNBQTBDO01BQzFDLHlCQUF3QjtNQUN4QixrQkFBaUIsRUFFckIsRUFBQTs7QUFPWjs7a0RBRWtEO0FBRWxEO0VBQ0ksbUJBQWtCO0VBQ2xCLGVBQWMsRUFDakI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksWUFBVztFQUNYLGFBQVk7RUFDWixhQUFZO0VBQ1osb0JBQW1CO0VBQ25CLGdGWmlGZ0YsRVloRm5GOztBQUVEO0VQNUhJLHFCQUFvQjtFTzhIcEIsbUJBQWtCO0VBQ2xCLE9BQU07RUFDTixTQUFRO0VBQ1IsWUFBVztFQUNYLGFBQVk7RUFDWixVQUFTO0VBQ1QsaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULFlBQVc7RUFDWCxhQUFZO0VBQ1osa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixnREFBK0M7RUFDL0MsNkJBQTRCLEVBQy9COztBQUVEO0VBQ0ksa0JBQXVCO0VBQ3ZCLG1CQUF3QixFQUMzQjs7QUN2S0Q7O2tEQUVrRDtBQUVsRDs7R0FFRztBQUVIO0VBSVksaUNBQStFLEVBQ2xGOztBQUxUO0VBVVEsK0JBQThFLEVBQ2pGOztBbkJMRztFbUJZSjtJQUNJLFlBQVc7SUFDWCxZQUFXO0lBQ1gsb0JBQW1CO0lBQ25CLHNCQUFxQjtJQUNyQixnQkFBZTtJQUNmLDBCQUF5QixFQUM1QjtFQUtEO0lDakNBLG9CQUFtQjtJQUNuQiwwQmQ4S3FCO0lhNUlqQixlQUFjO0lBQ2QsbUJBQWtCO0lBQ2xCLGFBQVk7SUFDWixVQUFTO0lBQ1QsYUFBWTtJQUNaLGFBQVksRUFDZjtFQUVEO0lBQ0ksZUFBYztJQUNkLGtCQUFpQjtJQUNqQixlYitDUTtJYTlDUixlQUFjLEVBQ2pCO0VBRUQ7SUFDSSxlYmVRLEVhZFgsRUFBQTs7QUFJTDs7R0FFRztBQUVIO0VBQ0ksZUFBYyxFQUNqQjs7QUFFRDtFQUNJLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLGtCQUFnQjtFQUNoQixtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxlYlBZLEVhUWY7O0FFL0VEOztrREFFa0Q7QUFFbEQ7O0dBRUc7QXJCUUs7RXFCQ0o7SUFDSSxZQUFXLEVBQ2Q7RUFLRDtJRGpCQSxvQkFBbUI7SUFDbkIsMEJkOEtxQjtJZTVKakIsZUFBYztJQUNkLG1CQUFrQjtJQUNsQixhQUFZO0lBQ1osVUFBUztJQUNULFNBQVE7SUFDUixhQUFZO0lBQ1osa0JBQWlCLEVBQ3BCLEVBQUE7O0FBSUw7O0dBRUc7QUFFSDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLGVBQWM7RUFDZCxXQUFVO0VBQ1YsV0FBVTtFQUNWLFlBQVc7RUFDWCxhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLGdCQUFlO0VBQ2YsYUFBWTtFQUNaLG9CQUFtQjtFQUNuQixvQmZrQlk7RWVqQlosa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUVyQjs7QUFDRDtFQUNJLGFBQVksRUFDZjs7QUFNRDtFQUNJLGNBQWEsRUFDaEI7O0FyQnRETztFcUJ5REo7SUFDSSxXQUFVLEVBQ2IsRUFBQTs7QXJCM0RHO0VxQmdFSjtJQUdRLHNCQUFxQixFQUN4QjtFQUdMO0lBQ0ksZWZmUSxFZWdCWCxFQUFBOztBQUdMO0VBQ0ksY0FBYSxFQUNoQjs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksY0FBYTtFQUNiLG1CQUFrQixFQUNyQjs7QUFFRDs7R0FFRztBQUVILGFBQWE7QUFFYjtFQUNJLGlCQUFnQjtFQUNoQixjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksWUFBVztFQUNYLFdBQVUsRUFDYjs7QUFFRDtFQUNJLGdCQUFlLEVBQ2xCOztBQUVELGNBQWM7QUFFZDtFQUNJLHFCQUFvQjtFQUNwQixnRmYyRmdGO0VlMUZoRixnQkFBZTtFQUNmLGlCQUFnQixFQUNuQjs7QUFFRCxVQUFVO0FBRVY7RUFDSSxtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxtQkFBa0I7RUFDbEIsaUJBQWdDO0VBQ2hDLDZCQUE0QztFQUM1Qyw4QmZzQ3FCO0VlckNyQixnQmZ1Rlc7RWV0Rlgsa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksc0JBQXFCLEVBQ3hCOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLFdBQVU7RUFDVixVQUFTLEVBQ1o7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsYUFBWSxFQUNmOztBQUlEO0VBQ0ksaUJBQWdCO0VBQ2hCLGVmbkVpQjtFZW9FakIsZ0JmZ0VZLEVlL0RmOztBQUVELHVEQUF1RDtBQUN2RDtFQUNJLHdCQUF1QjtFQUN2Qiw4QmZPcUI7RWVOckIsZ0Jmd0RXLEVldkRkOztBQy9LRDs7a0RBRWtEO0FBRWxEOztHQUVHO0FBRUg7RUFDSSxvQkFBbUIsRUFLdEI7RXRCQU87SXNCTlI7TUFJUyxvQkFBbUIsRUFFM0IsRUFBQTs7QUFHRDtFQUNJLFlBQVc7RUFDWCxZQUFXO0VBQ1gsK0JoQjhFWTtFZ0I3RVosa0JBQWlCO0VBNEVqQjs7T0FFRyxFQTJKTjtFdEJoUE87SXNCR1I7TUFPUSxrQmhCbUJTLEVnQm1OaEIsRUFBQTtFQTdPRDtJQVdRLGlCQUFnQixFQUNuQjtFQVpMO0lBZVEsb0JBQW1CO0lBQ25CLGdCaEJnTVE7SWdCL0xSLGVoQmdFUSxFZ0IvRFg7RUFsQkw7SUFxQlEsbUJBQWtCLEVBQ3JCO0VBdEJMO0lBeUJRLFlBQVc7SUFDWCxXQUFVO0lBQ1YsdUJBQXNCO0lBQ3RCLG9CaEJSRTtJZ0JTRixvQmhCUEcsRWdCd0NOO0lBOURMO01BaUNZLHNCQUFxQjtNQUNyQix1QkFBc0I7TUFDdEIsaUJBQWdCLEVBQ25CO0lBcENUO01BdUNZLHNCQUFxQjtNQUNyQixpQkFBZ0I7TUFDaEIsZUFBYztNQUNkLGdCaEJ5S0MsRWdCeEtKO0lBM0NUO01BZ0RnQixpQkFBZ0IsRUFDbkI7SUFqRGI7TUFzRFksZWhCMkJJO01nQjFCSCxnQmhCNEpBLEVnQnRKSjtNQTdEVDtRQXlEZ0IsZWhCSEE7UWdCSUEsc0JBQXFCO1FBQ3JCLGFBQVksRUFDZjtFQTVEYjtJQWlFUSxhQUFZO0lBQ1osYUFBWTtJQUNaLG9CaEI3Q0csRWdCOENOO0VBcEVMOztJQXlFUSxnQmhCNklRLEVnQjVJWDtFQTFFTDtJQTZFUSxjQUFhLEVBQ2hCO0VBOUVMO0lBcUZRLGtEQUFpRDtJQUNqRCw2QkFBNEI7SUFDNUIsWUFBVztJQUNYLHVCQUFzQjtJQUN0QixzQkFBcUI7SUFDckIsa0JBQWlCLEVBQ3BCO0VWdkZEO0lVSko7TUErRlkscURBQW9EO01BQ3BELDRCQUEyQixFQUM5QixFQUFBO0VBakdUO0lBc0dZLDRCQUFpQztJQUNqQyxhQUFRLEVBQ1g7RUF4R1Q7SUEyR1ksZ0NBQXFDLEVBQ3hDO0VBNUdUO0lBc0dZLDZCQUFpQztJQUNqQyxhQUFRLEVBQ1g7RUF4R1Q7SUEyR1ksaUNBQXFDLEVBQ3hDO0VBNUdUO0lBc0dZLDZCQUFpQztJQUNqQyxhQUFRLEVBQ1g7RUF4R1Q7SUEyR1ksaUNBQXFDLEVBQ3hDO0VBNUdUO0lBc0dZLDZCQUFpQztJQUNqQyxhQUFRLEVBQ1g7RUF4R1Q7SUEyR1ksaUNBQXFDLEVBQ3hDO0VBNUdUO0lBc0dZLDZCQUFpQztJQUNqQyxhQUFRLEVBQ1g7RUF4R1Q7SUEyR1ksaUNBQXFDLEVBQ3hDO0VBNUdUO0lBd0hRLFlBQVc7SUFDWCxlQUE4QjtJQUM5QixlQUFjLEVBQ2pCO0VBM0hMO0lBOEhRLFlBQVc7SUFDWCxnQkFBZSxFQUNsQjtFQWhJTDtJQW1JUSxpQkFBZ0IsRUFLbkI7SUF4SUw7TWZSSSxZQUFXO01BQ1gsZUFBYztNQUNkLFlBQVcsRWU2SU47RUF2SVQ7SUEySVEsWUFBVztJQUNYLGVBQThCO0lBQzlCLFVBQVMsRUFDWjtFQTlJTDtJQWlKUSxhQUFZO0lBQ1osa0JBQWlCO0lBQ2pCLFlBQVcsRUFDZDtFQXBKTDs7SUF3SlEsWUFBVyxFQUNkO0VBekpMO0lBNEpRLGNBQWEsRUFDaEI7RUE3Skw7OztJQWtLUSxZQUFXO0lBQ1gsb0JoQi9JRSxFZ0JnSkw7RUFwS0w7O0lBd0tRLGNBQWEsRUFDaEI7RUF6S0w7SUE0S1EsZ0JoQnVDSztJZ0JsQ0wsWUFBVztJQUNYLGVoQmhHYTtJZ0JpR2IsaUJoQjdKRyxFZ0JxS047SXRCOUxHO01zQkdSO1FBOEtZLGdCaEJ1Q0csRWdCMUJWLEVBQUE7SUEzTEw7TUFzTFksZWhCcEdTLEVnQndHWjtNQTFMVDtRQXdMZ0Isc0JBQXFCLEVBQ3hCO0V0QjVMTDtJc0JHUjtNQWtNWSxpQkFIdUM7TUFJdkMsaUJBQWdCO01BQ2hCLHFCQU5pQyxFQU9wQztJQXJNVDtNQXdNWSxnQkFBZSxFQUNsQjtJQXpNVDtNQTRNWSxZQUFXO01BQ1gsWUFBVztNQUNYLHlCQUF5QixFQUM1QixFQUFBO0V0QmxORDtJc0JHUjs7TUFxTlksZUFBYyxFQUNqQixFQUFBO0V0QnpORDtJc0JHUjtNQThOWSxnQkFIaUM7TUFJakMsZ0JBQWUsRUFDbEI7SUFoT1Q7TUFtT1kscUJBVGlDO01BVWpDLFlBQVcsRUFDZDtJQXJPVDtNQXdPWSxZQUFXO01BQ1gsWUFBVztNQUNYLFlBQVcsRUFDZCxFQUFBOztBQUlUO0VBRVEsYUFBWTtFQUNaLGVBQWMsRUFDakI7O0FDcFFMOzt1REFFdUQ7QUFFdkQ7O0dBRUc7QUFFSDs7RUFFSSxvQkFBbUIsRUFDdEI7O0F2QkdPO0V1QkRSO0lBR1kscUJqQnVCRCxFaUJsQk4sRUFBQTs7QUFSTDtFQU1ZLDBCQUF5QixFQUM1Qjs7QXZCTkQ7RXVCRFI7SUFXWSxpQkFBcUIsRUFDeEIsRUFBQTs7QUFJVDtFQUNJLHFCakIrTW1CLEVpQjlNdEI7O0FBR0Q7O0VBRUksb0JBQW1CLEVBQ3RCOztBQUVEOztHQUVHO0FBRUg7Ozs7O0V0QlBJLFVBQVM7RUFDVCxxQkFBb0I7RUFDcEIsZUs0RFk7RUwzRFosZ0ZLbUxnRjtFTGxMaEYsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBRWxCLGlCQUFnQjtFc0JLaEIsZ0JqQnFMVztFaUJwTFgsK0JqQnNLNEI7RWlCcks1QixvQkFBbUI7RUFDbkIsaUJBQWdCLEVBU25CO0VBbEJEOzs7OztJQVlRLGVqQjJDUSxFaUJ0Q1g7SUFqQkw7Ozs7O01BY1ksZWpCY0k7TWlCYkosc0JBQXFCLEVBQ3hCOztBQUlUOztFQUVJLGlCQUFnQjtFQUNoQixnQkFBZTtFQUNmLGtDakJFZ0I7RWlCRGhCLGdCakJnS1MsRWlCeEpaO0VBYkQ7O0lBUVksK0JqQmlKb0I7SWlCaEpwQixlakJIUTtJaUJJUixnQkFBZSxFQUVsQjs7QUFHVDs7a0RBRWtEO0FBSWxEO0VBQ0ksbUJBQWtCLEVBQ3JCOztBQUVEO0VoQi9FSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRWdCK0VkOztBQUVEO0VBQ0ksbUJBQWtCO0VBQ2xCLG9CQVp5QjtFQWF6QixtQkFBa0IsRUFLckI7RUFSRDtJaEJuRkksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVnQndGVjs7QUFHTDtFQUNJLHVCQUFzQjtFQUN0Qix3QkFBdUI7RUFDdkIsa0JBQWlCO0VBQ2pCLGdGakJnSGdGO0VpQi9HaEYsZ0JBQWU7RUFDZixvQmpCeEJjO0VpQnlCZCxvQkFBbUI7RUFDbkIsYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsVUFBUztFQUNULG1CQUFrQjtFQUNsQixpQ0FBd0I7VUFBeEIseUJBQXdCLEVBVzNCO0V2QmhITztJdUJ3RlI7TUFnQlEsZ0JBQWU7TUFDZix1QkFBc0I7TUFDdEIsd0JBQXVCO01BQ3ZCLGtCQUFpQjtNQUNqQixXQUFVO01BQ1YsYUFBWSxFQUduQixFQUFBOztBQUVEO0VBQ0ksWUFBVztFQUNYLGFBQVk7RUFDWixRQUFPO0VBQ1AsT0FBTSxFQUtUO0V2QjNITztJdUJrSFI7TUFNUSxVQUFTO01BQ1QsVUFBUyxFQUVoQixFQUFBOztBQUVEO0VBRVEsdUJBQXNCO0VBQ3RCLHdCQUF1QjtFQUN2QixrQkFBaUI7RUFDakIsZ0ZqQjBFNEU7RWlCekU1RSxnQkFBZTtFQUNmLG9CakI5RFU7RWlCK0RWLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QsbUJBQWtCO0VBQ2xCLGlDQUF3QjtVQUF4Qix5QkFBd0IsRUFXM0I7RXZCdEpHO0l1QjZIUjtNQWlCWSxnQkFBZTtNQUNmLHVCQUFzQjtNQUN0Qix3QkFBdUI7TUFDdkIsa0JBQWlCO01BQ2pCLGFBQVk7TUFDWixhQUFZO01BQ1osVUFBUyxFQUVoQixFQUFBOztBQXpCTDtFQTRCUSxpQkFBZ0I7RUFDaEIsaUJBQWdCO0VBQ2hCLHdCQUFlO1VBQWYsZ0JBQWU7RUFDZixZQUFXO0VBQ1gsYUFBWTtFQUNaLFlBQVc7RUFDWCxPQUFNLEVBQ1Q7O0FBS0w7RUFDSSxpQkFBZ0I7RUFDaEIsaUJBQWdCO0VBQ2hCLHdCQUFlO1VBQWYsZ0JBQWUsRUFDbEI7O0FBRUQ7RUFDSSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGVBQWMsRUFPakI7RUFWRDtJQU9ZLHNCQUFxQixFQUN4Qjs7QUFJVDtFQUVRLFlBQVc7RUFDWCxlQUFjO0VBQ2QsYUFBWTtFQUNaLHVCQUFzQixFQUN6Qjs7QUFJTDtFQUVJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxhQUFZLEVBS2Y7RUFQRDtJQUtRLGNBQWEsRUFDaEI7O0FBR0w7RUFFUSxXQUFVO0VBQ1Ysb0JBQW1CO0VBQ25CLGlCQUFnQixFQUNuQjs7QUFNTDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLGtCakI1TGM7RWlCNkxkLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsaUJBVjJCO0VBVzNCLFlBQVcsRUFDZDs7QUFFRDtFQUNJLGVBQWMsRUFDakI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksZWpCMUppQjtFaUIySmpCLGdCakJ4Qlc7RWlCeUJYLGdCQUFlLEVBQ2xCOztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUlELDJDQUEyQztBQUszQztFQUNJLFlBQVc7RUFDWCxpQkFBNEI7RUFDNUIsdUJBQWtDLEVBQ3JDOztBQUVEO0VBQ0ksWUFBVyxFQUNkOztBQUVEO0VBQ0ksZ0JBQWUsRUFDbEI7O0FBRUQ7RUFDSSxtQkFBa0IsRUFHckI7RUFKRDtJQ3hSUSxZQUFVO0lBQ1YsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixVQUFTO0lBQ1QsWUFBVztJQUNYLGFBQVk7SUFDWixjQUFhLEVBQ2hCO0VEaVJMO0lDOVFRLHdCQUF1QjtJQUN2QixhQWQyQjtJQWUzQixXQUFTLEVBQ1o7RUQyUUw7SUN4UVEsdURBQXNEO0lBQ3RELDZCQUE0QjtJQUM1Qiw0QkFBMkI7SUFDM0IsV0FBUyxFQUNaO0VEb1FMO0lDalFRLG1CQUFrQixFQU1yQjtJRDJQTDtNQzdQWSxlQUFjLEVBQ2pCOztBeEJqQkQ7RXVCc1JKLDZDQUE2QztFQVM3QztJQUNJLDRCQUE0QjtJQVE1Qiw2QkFBNkIsRUFXaEM7SUFwQkQ7TUFHUSxZQUFXLEVBQ2Q7SUFKTDtNQU1RLHVCQUE4RCxFQUNqRTtJQVBMO01BV1EsaUJBQTZDO01BQzdDLHVCQUE4RCxFQUNqRTtJQWJMO01BZVEsWUFBVyxFQUNkO0lBaEJMO01Ba0JRLGdCQUFlLEVBQ2xCLEVBQUE7O0F2QmxURDtFdUI4VEosdUNBQXVDO0VBS3ZDLDhCQUE4QjtFQUM5QjtJQUNJLFlBQVcsRUFDZDtFQUNEO0lBQ0ksWUFBVyxFQUNkO0VBQ0Q7O0lBRUksdUJBQThELEVBQ2pFO0VBRUQsdUJBQXVCO0VBQ3ZCO0lBQ0ksdUJBQThELEVBQ2pFO0VBQ0Q7SUFDSSxpQkFBNkM7SUFDN0MsdUJBQThELEVBQ2pFO0VBQ0Q7SUFDSSxZQUFXLEVBQ2Q7RUFDRDtJQUNJLGdCQUFlLEVBQ2xCO0VBOUJELHVDQUF1QztFQUt2Qyw4QkFBOEI7RUFDOUI7SUFDSSxZQUFXLEVBQ2Q7RUFDRDtJQUNJLFlBQVcsRUFDZDtFQUNEOztJQUVJLHVCQUE4RCxFQUNqRTtFQUVELHVCQUF1QjtFQUN2QjtJQUNJLHVCQUE4RCxFQUNqRTtFQUNEO0lBQ0ksaUJBQTZDO0lBQzdDLHVCQUE4RCxFQUNqRTtFQUNEO0lBQ0ksWUFBVyxFQUNkO0VBQ0Q7SUFDSSxnQkFBZSxFQUNsQjtFQTlCRCx1Q0FBdUM7RUFLdkMsOEJBQThCO0VBQzlCO0lBQ0ksWUFBVyxFQUNkO0VBQ0Q7SUFDSSxZQUFXLEVBQ2Q7RUFDRDs7SUFFSSx1QkFBOEQsRUFDakU7RUFFRCx1QkFBdUI7RUFDdkI7SUFDSSx1QkFBOEQsRUFDakU7RUFDRDtJQUNJLGlCQUE2QztJQUM3Qyx1QkFBOEQsRUFDakU7RUFDRDtJQUNJLFlBQVcsRUFDZDtFQUNEO0lBQ0ksZ0JBQWUsRUFDbEIsRUFBQTs7QUFXTDs7a0RBRWtEO0FBRWxEO0VBQ0ksaUJBQWdCO0VBQ2hCLG9CQUFtQixFQXdCdEI7RUExQkQ7SUFLUSxxQkFBb0I7SUFDcEIsb0JBQW1CO0lBQ25CLGlDakIxTXVCLEVpQndOMUI7SUFyQkw7TWhCaFhJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFZ0J5WE47SUFYVDtNQWFZLFlBQVc7TUFDWCxpQkFBc0IsRUFNekI7TUFwQlQ7UUFpQmdCLFlBQVc7UUFDWCxnQkFBZSxFQUNsQjtFQW5CYjtJQXVCUSxrQkFBaUI7SUFDakIsb0JBQW1CLEVBQ3RCOztBQUdMO0VBQ0ksYUFBWTtFQUNaLGlCQUFzQjtFQUN0QixtQkFBZ0MsRUEwQ25DO0VBN0NEO0lBTVEsaUJBQWdCLEVBQ25CO0VBUEw7SUFTUSxVQUFTLEVBVVo7SUFuQkw7O01BYVksWUFBVztNQUNYLGtCakIvV1MsRWlCZ1haO0lBZlQ7TUFpQlksZ0JBQWUsRUFDbEI7RUFsQlQ7SUFxQlEsY0FBYSxFQUNoQjtFQXRCTDtJQXdCUSxnQmpCN01TLEVpQjhNWjtFQXpCTDtJQTJCUSxjQUEwQixFQUM3QjtFQTVCTDtJQThCUSxnQmpCL1hhLEVpQmdZaEI7RUEvQkw7O0lBbUNRLFlBQVc7SUFDWCxXQUFVO0lBQ1YsaUJBQWdCLEVBQ25CO0VBdENMO0lBd0NRLGFBQVk7SUFDWixXQUFVO0lBQ1Ysa0JBQWlCO0lBQ2pCLGFBQVksRUFDZjs7QXZCbmJHO0V1QnViSjtJQUNJLGdCakJ0T1MsRWlCdU9aLEVBQUE7O0F2QnpiRztFdUI2Yko7O0lBR1EsWUFBVztJQUNYLFdBQVU7SUFDVixvQkFBbUIsRUFDdEI7RUFOTDtJQVFRLGFBQVk7SUFDWixXQUFVLEVBQ2IsRUFBQTs7QXZCdmNEO0V1QjRjSjtJQUNJLGdCQUFlLEVBQ2xCO0VBQ0Q7OztJQUlRLFlBQVc7SUFDWCxZQUFXO0lBQ1gsaUJBQWdCO0lBQ2hCLGlCQUFnQixFQUNuQixFQUFBOztBQUlUOztrREFFa0Q7QUFFbEQ7RUFHUSxZQUFXO0VBQ1gsZ0JBQWUsRUFDbEI7O0FBTEw7RUFPUSxrQkFBaUIsRUFDcEI7O0FBUkw7RUFZUSxrQkFBaUIsRUFDcEI7O0FBYkw7RUFnQlEsb0JqQnhkRTtFaUJ5ZEYsWUFBVyxFQUtkO0VBdEJMO0loQnBlSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRWdCdWZOOztBQUlUO0VoQjdmSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRWdCK2ZWOztBQUpMO0VBT1EsWUFBVztFQUNYLFdBQVU7RUFDVixVQUFTO0VBQ1Qsc0JBQXFCLEVBZXhCO0VBekJMO0lBYVksaUJBQWdCO0lBQ2hCLGtCQUFpQixFQUNwQjtFQWZUO0lBa0JZLGVBQWMsRUFNakI7SUF4QlQ7TUFxQmdCLFlBQVc7TUFDWCxnQkFBZSxFQUNsQjs7QUFRYjs7a0RBRWtEO0FBRWxEO0VBQ0ksMEJqQnRYcUI7RWlCdVhyQixjQUFhLEVBVWhCO0VBWkQ7SUFLUSxZQUFXO0lBQ1gsZ0JBQWUsRUFLbEI7SUFYTDtNQVNZLGNBQWEsRUFDaEI7O0FBSVQ7O2tEQUVrRDtBQUVsRDtFQUVJLGNBQWE7RXRCaGdCYixVQUFTO0VBQ1Qsb0JBQW1CO0VBQ25CLGVLbUNZO0VMbENaLGdGSzBKZ0Y7RUx6SmhGLGdCQUFlO0VBQ2Ysb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0I7RU8vRGhCLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsMEJBQXlCO0VBQ3pCLHFCQUFvQjtFQUNwQixrQkFBaUI7RUNrRWpCLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsMkJBQTBCO0VBQzFCLGtCQUFpQjtFQUNqQixvQkFBbUI7RUFDbkIsc0JIb0dxQjtFR25HckIsbUJBQWtCO0VBQ2xCLDBCSDZGeUI7RWlCZ1p6QixnQkFBZSxFQUNsQjtFQUxEO0lidGpCSSxZQUFXO0lBQ1gsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixVQUFTO0lBQ1QsZUFBYztJQVVWLG9DQUFxQztJQUNyQyxtQ0FBb0M7SUFDcEMsOEJKa0RRO0lJakRSLG9CQUFtQjtJRGdFbkIsV0FBVTtJQUNWLFNBQVE7SUFDUixpQkFBZ0IsRUFDbkI7RWNrZUw7SWQvZFEscUNIb0ZtRCxFR25GdEQ7O0FBSUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUdLO0VSekNOLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsZUttQ1k7RUxsQ1osZ0ZLMEpnRjtFTHpKaEYsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLGlCQUFnQjtFTy9EaEIsdUJBQXNCO0VBQ3RCLHNCQUFxQjtFQUNyQiwwQkFBeUI7RUFDekIscUJBQW9CO0VBQ3BCLGtCQUFpQjtFQ2tFakIsb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQiwyQkFBMEI7RUFDMUIsa0JBQWlCO0VBQ2pCLG9CQUFtQjtFQUNuQixzQkhvR3FCO0VHbkdyQixtQkFBa0I7RUFDbEIsMEJINkZ5QjtFR3ZFakIsZUFBYyxFQUNqQjtFQUhDO0lDakdOLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBVVYsb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyw4QkprRFE7SUlqRFIsb0JBQW1CO0lEZ0VuQixXQUFVO0lBQ1YsU0FBUTtJQUNSLGlCQUFnQixFQUNuQjtFQWFLO0lBVkYscUNIb0ZtRCxFR25GdEQ7O0FBY0s7RUFDRSxjSDNETTtFRzRETixVQUFTO0VBQ1Qsb0JBQW1CO0VBQ25CLG9CQUFtQjtFQUNuQixzQkhvRWEsRUduRWhCOztBQUNDO0VBQ0UsNEJBQTJCLEVBQzlCOztBY21kVDtFQUNJLG9CakJ2aEJjO0VpQndoQmQsaUJqQnhoQmMsRWlCaWlCakI7RUFYRDtJQUtRLGtCQUFpQjtJQUNqQixlQUFjLEVBQ2pCO0VBUEw7SUFTUSxlakI3ZWEsRWlCOGVoQjs7QXZCbmtCRztFdUJ1a0JKO0lBQ0ksbUJBQWtCLEVBS3JCO0lBTkQ7TUFJUSxjQUFhLEVBQ2hCLEVBQUE7O0F2QjVrQkQ7RXVCaWxCSjtJQUNJLG9CQUFtQixFQUN0QjtFQUdEO0lBQ0ksY0FBYSxFQUNoQjtFQUdEO0lBQ0ksZUFBYztJQUNkLGlCQUFnQixFQUVuQjtJZG5mSztNQUNFLGdCQUFlO01BQ2YsdUJBQXNCLEVBV3pCO01BYkM7UUFLTSxlSHhEQSxFR3lESDtNQU5IO1FDckhOLFlBQVc7UUFDWCxtQkFBa0I7UUFDbEIsU0FBUTtRQUNSLFVBQVM7UUFDVCxlQUFjO1FBaUJWLGtDQUFtQztRQUNuQyxxQ0FBc0M7UUFDdEMsK0JKMkNRO1FJMUNSLG1CQUFrQixFRHNHYjtNQVRIO1FBV00seUJBQXdCLEVBQzNCO0lBR0g7TUFDRSxjQUFhLEVBQ2hCO0lBS0s7TUFFTSx5QkFBd0IsRUFDM0I7SUFISDtNQzNJVixZQUFXO01BQ1gsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUixVQUFTO01BQ1QsZUFBYztNQVVWLG9DQUFxQztNQUNyQyxtQ0FBb0M7TUFDcEMsOEJKa0RRO01JakRSLG9CQUFtQjtNRGlJUCxVQUFTO01BQ1QsU0FBUTtNQUNSLGlCQUFnQixFQUNuQjtJQUdIO01BQ0UsZUFBYyxFQUNqQjtFY2dkVDtJQUNJLDBCakJ6aUJRO0lpQjBpQlIsVUFBUztJQUNULGlCQUFnQjtJQUNoQixlQUFjO0lBQ2QsZUFBYyxFQW9CakI7SUF6QkQ7TWIxbUJBLFlBQVc7TUFDWCxtQkFBa0I7TUFDbEIsU0FBUTtNQUNSLFVBQVM7TUFDVCxlQUFjO01BaUJWLGtDQUFtQztNQUNuQyxxQ0FBc0M7TUFDdEMsK0JhMmxCeUM7TWIxbEJ6QyxtQkFBa0I7TWEybEJkLFlBQVc7TUFDWCxTQUFRO01BQ1IsaUJBQWdCLEVBQ25CO0lBWkw7TUFlUSwwQmpCdGZ3QjtNaUJ1ZnhCLGVBQWMsRUFDakI7SUFqQkw7TWIxbUJBLFlBQVc7TUFDWCxtQkFBa0I7TUFDbEIsU0FBUTtNQUNSLFVBQVM7TUFDVCxlQUFjO01BVVYsb0NBQXFDO01BQ3JDLG1DQUFvQztNQUNwQyw4QmE4bUJ3QztNYjdtQnhDLG9CQUFtQjtNYThtQmYsWUFBVztNQUNYLFNBQVE7TUFDUixpQkFBZ0IsRUFDbkI7RUFHTDs7SUFFSSxjakIzbEJVO0lpQjRsQlYsMEJqQnpkaUI7SWlCMGRqQixjQUFhLEVBQ2hCO0VBRUQ7O0lBRUksYUFBWTtJQUNaLFlBQVcsRUFDZDtFQUVEO0lsQmpOQSxlQ3BXWTtJRHFXWiwwQkN4UnlCO0lEeVJ6QixrQkFBaUIsRWtCc05oQjtJQVBEO01BSVEsc0JBQXFCO01BQ3JCLCtCakI1ZStDLEVpQjZlbEQsRUFBQTs7QUFJVDtFQUVRLGVBQWM7RXRCdG1CbEIsVUFBUztFQUNULG9CQUFtQjtFQUNuQixlS21DWTtFTGxDWixnRkswSmdGO0VMekpoRixnQkFBZTtFQUNmLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsaUJBQWdCLEVzQmltQmY7O0FBSkw7RUFPUSxtQmpCdm5CVTtFaUJ3bkJWLG9CakJ4bkJVLEVpQnluQmI7O0FBVEw7RUFXUSxtQkFBa0IsRUFTckI7RUFwQkw7SUFjWSxrQkFBaUIsRUFDcEI7RUFmVDtJaEJ4cEJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFZ0J5cUJOOztBQUlUO0VBQ0ksa0JBQWlCO0VBQ2pCLG1CakJ0b0JpQixFaUJ1b0JwQjs7QUFFRDtFQUdRLFlBQVc7RUFDWCxpQkFBZ0I7RUFDaEIsYUFBWSxFQUNmOztBQUlMO0VBRWdCLGVBQWMsRUFDakI7O0FBSGI7RUFNUSxrQ2pCeG9CWTtFaUJ5b0JaLHFCakJ2cUJHLEVpQndxQk47O0FBUkw7RUFXUSxpQkFBZ0IsRUFDbkI7O0FBWkw7RUFnQlEsWUFBVztFQUNYLGlCQUFnQjtFQUNoQixhQUFZLEVBQ2Y7O0FBbkJMO0VBc0JRLGtDakJ4cEJZO0VpQnlwQlosY2pCdnJCRyxFaUJpdkJOO0VBakZMO0lBeUJZLDBCQUF5QjtJQUN6QixvQmpCenJCQyxFaUIwckJKO0VBM0JUO0lBNkJZLG1CQUFrQixFQUNyQjtFQTlCVDtJQWdDWSxtQkFBa0IsRUFRckI7SUF4Q1Q7TUFrQ29CLGlCQUFnQjtNQUNoQixXQUFVO01BQ1YsaUJBQWdCO01BQ2hCLG9CakJyc0JUO01pQnNzQlMsc0JBQXFCLEVBQzVCO0V2Qmh1Qkw7SXVCeXJCUjtNaEI5ckJJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFZ0IwdUJGO0lBOUNiO01BZ0RnQixhQUFZO01BQ1osV0FBVTtNQUNWLGdCakJodEJGO01pQml0QkUsdUJBQXNCLEVBQ3pCO0lBcERiO01Bc0RnQixrQkFBaUI7TUFDakIscUJBQW9CO01BQ3BCLGlCQUFnQixFQUNuQjtJQXpEYjtNQTJEZ0IsWUFBVztNQUNYLGtCQUFpQixFQU9wQjtNQW5FYjtRQThEb0IsaUJBQWdCO1FBQ2hCLFlBQVc7UUFDWCxzQkFBcUI7UUFDckIsaUJBQWdCLEVBQ25CO0lBbEVqQjtNQXNFb0IsYUFBWTtNQUNaLGlCQUFnQixFQUNuQjtJQXhFakI7TUEwRW9CLFlBQVc7TUFDWCxrQkFBaUIsRUFDcEIsRUFBQTs7QUFPakI7RUFFUSxpQkFBZ0IsRUFDbkI7O0FBR0w7RUFDSSxnQkFBZ0I7RUFJaEIsK0JqQmh1QmdCLEVpQmcyQm5CO0V2QnY1Qk87SXVCa3hCUjtNQUdZLG9CQUFtQixFQWtJOUIsRUFBQTtFQXJJRDtJaEJ2eEJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFZ0I4eEJOO0V2QjN4QkQ7SXVCa3hCUjtNQVlZLFlBQVcsRUFHbEIsRUFBQTtFdkJqeUJHO0l1Qmt4QlI7TUFtQlksY0FBYSxFQUVwQixFQUFBO0VBckJMO0lBeUJRLG1CQUFrQixFQVNyQjtJdkJwekJHO011Qmt4QlI7UUEyQlksY0FBYSxFQU9wQixFQUFBO0l2QnB6Qkc7TXVCa3hCUjtRQStCWSxjQUFhLEVBR3BCLEVBQUE7RUFsQ0w7SUF3Q2dCLGVqQmp3QkE7SWlCa3dCQSxxQkFBb0I7SUFDcEIsZ0JqQjFtQkM7SWlCMm1CRCxrQkFBaUI7SUFDakIsZUFBYyxFQUNqQjtFdkIvekJMO0l1Qmt4QlI7TUFtRGdCLFdBQVU7TUFDVixhQUFZO01BQ1osb0JBQW1CLEVBQ3RCLEVBQUE7RXZCeDBCTDtJdUJreEJSO01BNERZLFdBQVU7TUFDVixZQUFXLEVBU2xCO01BdEVMO1FBZ0VnQixtQkFBa0I7UUFDbEIsU0FBUTtRQUNSLG9DQUEyQjtnQkFBM0IsNEJBQTJCLEVBQzlCLEVBQUE7RXZCcjFCTDtJdUJreEJSO01BNkVnQixVQUFTO01BQ1QseUNBQWdDO2NBQWhDLGlDQUFnQztNQUNoQyxrQkFBaUI7TUFDakIsaUJBQWdCLEVBQ25CLEVBQUE7RXZCbjJCTDtJdUJreEJSO01BeUZnQixjQUFhLEVBQ2hCLEVBQUE7RUExRmI7SUFpR1ksY0FBYSxFQU9oQjtJQXhHVDtNQW9HZ0IsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUixvQ0FBMkI7Y0FBM0IsNEJBQTJCLEVBQzlCO0V2QnozQkw7SXVCa3hCUjtNQTRHZ0IsZUFBYyxFQUNqQixFQUFBO0VBN0diO0lBaUhZLGNBQWEsRUFDaEI7RUFsSFQ7SUF3SFEsZ0JqQnpyQlU7SWlCMHJCViwwQkFBeUI7SUFDekIsV0FBVTtJQUNWLFVBQVMsRUFLWjtJdkJsNUJHO011Qmt4QlI7UUE4SFksb0JBQW1CLEVBRTFCLEVBQUE7O0FBT0w7RUFDSSwrQmpCbjJCZ0IsRWlCbzRCbkI7RUFsQ0Q7SUFJUSxrQmpCcDRCRztJaUJxNEJILHFCakJyNEJHLEVpQmk2Qk47SUFqQ0w7TUFRWSxpQmpCeDRCRDtNaUJ5NEJDLGdCakIvc0JJLEVpQmd0QlA7SUFWVDtNQWFZLGtDakIvMkJRO01pQmkzQlIscUJqQjc0QkUsRWlCODRCTDtJQWhCVDtNQW1CWSxlakJ4MUJJO01pQnkxQkosMkJBQTBCLEVBTTdCO01BMUJUO1FBdUJnQixlakJ2M0JBLEVpQnkzQkg7SUF6QmI7TUE2QlksZ0JqQnB1Qks7TWlCcXVCTCxnRmpCM3VCd0U7TWlCNHVCeEUsb0JqQjc1QkUsRWlCODVCTDs7QUFLVDtFQUNJLGdCQUFnQixFQXlDbkI7RUExQ0Q7SUFJUSxtQkFBa0I7SUFDbEIsb0JBQW1CLEVBaUN0QjtJQXRDTDtNaEJuOEJJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFZ0J5OEJOO0lBUlQ7TUFVWSxZQUFXO01BQ1gsV0FBVTtNQUNWLGNBQWE7TUFDYix1QkFBc0I7TUFDdEIsZUFBYyxFQXVCakI7TUFyQ1Q7UUFpQmdCLGdCQUFlO1FBQ2YsWUFBVyxFQUNkO01BbkJiO1FBa0NnQixnQkFBZTtRQUNmLGtDakIxNkJJLEVpQjI2QlA7UUFwQ2I7VUF5Qm9CLGVqQmg2QkE7VWlCaTZCQSxnQkFBZSxFQU1sQjtVQWhDakI7WUE2QndCLGVqQmw2QlI7WWlCbTZCUSxzQkFBcUIsRUFDeEI7O0F2Qjc5QmI7RXVCMitCSjtJQUVRLGNBQWEsRUFDaEIsRUFBQTs7QUVyaENUO0VBR1EsMEJBQXlCLEVBQzVCOztBQUpMO0VBTVEsY0FBYSxFQUNoQjs7QUFQTDtFQVVRLGdCQUFlLEVBQ2xCOztBQVhMO0VBY1EsWUFBVztFQUNYLGdCQUFlO0VBQ2Ysa0JBQWlCLEVBQ3BCOztBekJzQkc7RXlCdkNSO0lBcUJZLFdBQVU7SUFDVix1QkFBc0I7SUFDdEIsZ0JBQWU7SUFDZixZQUFXLEVBQ2QsRUFBQTs7QXpCY0Q7RXlCdkNSO0lBNkJZLFlBQVc7SUFDWCxZQUFXO0lBQ1gsV0FBVSxFQUNiO0VBaENUO0lBa0NZLGNBQWE7SUFDYix1QkFBc0I7SUFDdEIsZ0JBQWU7SUFDZixZQUFXLEVBQ2QsRUFBQTs7QXpCQ0Q7RXlCdkNSO0lBMENZLGtCQUFpQixFQUV4QixFQUFBOztBekJMRztFeUJ2Q1I7SUErQ1ksa0JBQWlCLEVBRXhCLEVBQUE7O0FBakRMO0VBc0RnQixrQkFBaUIsRUFDcEI7O0FBdkRiO0VBNERRLGlCQUFnQjtFQUNoQixvQm5CR0csRW1CQ047RXpCMUJHO0l5QnZDUjtNQStEWSxvQkFBMEIsRUFFakMsRUFBQTs7QUFqRUw7RUFtRVEsaUJBQWdCLEVBQ25COztBQXBFTDtFQXVFWSxlbkJ3QlMsRW1CdkJaOztBQXhFVDtFQTBFWSxnQkFBZSxFQWtCbEI7RUE1RlQ7SUE2RWdCLGlCbkJiTCxFbUIyQkU7SXpCcERMO015QnZDUjtRQWdGd0IsWUFBVztRQUNYLGFBQVksRUFDZixFQUFBO0l6QjNDYjtNeUJ2Q1I7UUFzRm9CLG9CbkJ0QlQsRW1CMkJFLEVBQUE7SUEzRmI7TUF5Rm9CLHNCQUFxQixFQUN4Qjs7QUExRmpCO0VBaUdZLCtCbkJIUTtFbUJJUixrQm5CbENELEVtQnVDRjtFQXZHVDtJbEJrQ0ksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVrQjRERjtFekJ6REw7SXlCdkNSO01BcUdnQixxQm5CckNMLEVtQnVDRixFQUFBOztBQXZHVDtFQXlHWSxpQkFBZ0IsRUFLbkI7RXpCdkVEO0l5QnZDUjtNQTJHb0IscUJuQjFDUCxFbUI2Q0osRUFBQTs7QUE5R1Q7RUFnSFksY0FBYSxFQUNoQjs7QUFqSFQ7RUFtSFksY0FBYSxFQUNoQjs7QUFwSFQ7RUFzSFksY0FBYSxFQUNoQjs7QUF2SFQ7RUF5SFksa0JuQnhEQztFbUJ5REQsaUJuQnpEQztFbUIwREQsK0JuQjdCUSxFbUJrQ1g7RUFoSVQ7SUE4SGdCLG9CQUFtQixFQUN0Qjs7QUEvSGI7RUFrSVksZ0JBQWU7RUFDZixnRm5CZ0h3RTtFbUIvR3hFLGVuQlRJLEVtQlVQOztBQXJJVDtFQXVJWSxVQUFTO0VBQ1QsZUFBYyxFQUNqQjs7QUF6SVQ7RUEySVksY0FBYSxFQUNoQjs7QUE1SVQ7RUE4SVksb0JBQW1CO0VBQ25CLGlCQUFnQixFQUtuQjtFekI3R0Q7SXlCdkNSO01BaUpnQixvQkFBbUI7TUFDbkIsY0FBYSxFQUVwQixFQUFBOztBQXBKVDtFQTBKUSxlQUFlO0VBQ2YsY0FBYTtFQUNiLGdCQUFrQjtFQUNsQiwrQm5CL0RZLEVtQmdFZjtFQTlKTDtJbEJrQ0ksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVrQnFITjs7QXpCbEhEO0V5QnZDUjtJQWlLWSxZQUFXLEVBQ2QsRUFBQTs7QUFsS1Q7RUFzS1ksZ0JuQm9GSTtFbUJuRkosZ0JBQW1CO0VBQ25CLGlCQUFnQixFQUNuQjs7QUF6S1Q7RUEyS1ksaUJBQWdCO0VBQ2hCLGtCQUFpQixFQUNwQjs7QXpCdElEO0V5QnZDUjtJQWdMWSxXQUFVLEVBMkhiLEVBQUE7O0F6QnBRRDtFeUJ2Q1I7SUFxTG9CLG9CQUFtQixFQTBHMUIsRUFBQTs7QUEvUmI7RWxCa0NJLFlBQVc7RUFDWCxlQUFjO0VBQ2QsWUFBVyxFa0JxSkU7O0FBekxqQjtFQTJMb0IscUJuQnZISCxFbUJ3SEE7O0FBNUxqQjtFQWdNd0IsZ0JBQWU7RUFDZixtQkFBa0IsRUFrQnJCO0VBbk5yQjtJQW1NNEIsZUFBYztJQUNkLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxZQUFXO0lBQ1gsYUFBWTtJQUNaLCtEQUE4RDtJQUM5RCwyQkFBMEI7SUFDMUIsNkJBQTRCLEVBQy9CO0VBN016QjtJQWdOK0IsNkRBQTRELEVBQzlEOztBQWpON0I7RUFxTndCLGNBQWEsRUFxQmhCO0VBMU9yQjtJQXVONEIsZUFBYyxFQUNqQjtFQXhOekI7SUEyTjRCLGtCQUFpQjtJQUNqQixrQkFBaUI7SUFDakIsY0FBYSxFQVdoQjtJQXhPekI7TUFnT2dDLGNBQWEsRUFDaEI7SUFqTzdCO01Bb09nQyxZQUFXO01BQ1gsc0JBQXFCO01BQ3JCLFdBQVUsRUFDYjs7QUF2TzdCO0VBK093QixnQkFBZSxFQUNsQjs7QUFoUHJCO0VBbVBvQixvQm5CbkxULEVtQm9MTTs7QUFwUGpCO0VBd1A0QixhQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLHFCbkJ6TGYsRW1CMExZOztBQTNQekI7RUFnUW9CLGtCbkJoTVQsRW1Cb01NO0VBcFFqQjtJQWtRd0Isb0JBQW1CLEVBQ3RCOztBekI1TmI7RXlCdkNSO0lBdVF3QixpQkFBZ0IsRUFFdkIsRUFBQTs7QUF6UWpCO0VBMlFvQiwwQm5CaEpKO0VtQmlKSSxlbkJqSko7RW1Ca0pJLGlCQUFnQixFQUNuQjs7QUE5UWpCO0VBZ1JvQixZQUFXO0VBQ1gsYUFBWTtFQUNaLG9EQUFtRDtFQUNuRCxzQkFBcUI7RUFDckIsNkJBQTRCLEVBQy9COztBQXJSakI7RUF1UndCLGVuQjVKUixFbUI2Sks7O0FBeFJyQjtFQTJSd0IsZW5CaEtSLEVtQmlLSzs7QUE1UnJCO0VBaVNnQixrQ25Cbk1JLEVtQm9NUDs7QXpCM1BMO0V5QnZDUjtJQXFTb0IsV0FBVTtJQUNWLHVCQUFzQjtJQUN0QixnQm5Cbk9IO0ltQm9PRyxZQUFXLEVBQ2QsRUFBQTs7QUF6U2pCO0VBNlNZLGNBQWEsRUFDaEI7O0F6QnZRRDtFeUJ2Q1I7SUFpVGdCLGVBQWM7SUFDZCx1QkFBc0I7SUFDdEIsV0FBVTtJQUNWLG9CbkJoUEMsRW1CcVBKO0lBelRiO01BdVRvQixvQm5CclBOLEVtQnNQRyxFQUFBOztBQXhUakI7RUE0VGEsK0JuQjlOTyxFbUIrTlg7O0FBN1RUO0VBZ1VZLGdCQUFrQixFQXNCckI7RXpCL1NEO0l5QnZDUjtNQWtVZ0IsbUJuQjlQQztNbUIrUEQsa0NuQnJPSSxFbUJ3UFgsRUFBQTtFQXRWVDtJQXNVZ0IsZUFBYyxFQUNqQjtFQXZVYjtJQXlVZ0IsZW5COU1BO0ltQitNQSxpQ25CL01BO0ltQmdOQSxpQkFBZ0IsRUFRbkI7SUFuVmI7TUE4VW9CLHNCQUFxQjtNQUNyQixlbkIvT0o7TW1CZ1BJLHNCbkJoUEosRW1CaVBDOztBQWpWakI7RUF3Vlksa0NuQjFQUSxFbUJrUVg7RXpCelREO0l5QnZDUjtNQTRWb0IsV0FBVTtNQUNWLGFBQVksRUFDZixFQUFBOztBekJ2VFQ7RXlCdkNSO0lBb1dnQixtQkFBa0I7SUFDbEIsb0JBQW1CLEVBQ3RCLEVBQUE7O0F6Qi9UTDtFeUJ2Q1I7SUEwV2dCLGdCQUFrQixFQXVCekIsRUFBQTs7QUFqWVQ7RUE4V2dCLGVBQWMsRUFFakI7O0FBaFhiO0VBa1hnQixvQkFBbUIsRUFDdEI7O0FBblhiO0VBcVhnQixXQUFVO0VBQ1YsU0FBUSxFQUNYOztBQXZYYjtFQXlYZ0IsWUFBVztFQUNYLFFBQU8sRUFDVjs7QUEzWGI7RUE4WGdCLGdCQUFlLEVBQ2xCOztBQS9YYjtFbEJrQ0ksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEVrQmlXRjs7QXpCOVZMO0V5QnZDUjtJQXlZb0IsV0FBVTtJQUNWLFlBQVc7SUFDWCx1QkFBc0I7SUFDdEIsZ0JBQWUsRUFFbEIsRUFBQTs7QUE5WWpCO0VBa1pnQixXQUFVLEVBQ2I7O0FDMVhiOztrREFFa0Q7QUFFbEQ7RUFDSSxXQUFVO0VBQ1YsMkJBQTBCO0VBQzFCLGtCQUFpQjtFQUNqQixvQkFBbUI7RUFDbkIsY0FBYTtFQUNiLGtCQUFpQjtFQUNqQiwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSxXQUFVO0VBQ1YsZUFBYztFQUNkLGdCQUFlO0VBQ2Ysa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxvQkFBbUI7RUFDbkIsMEJwQjJKcUI7RW9CMUpyQixpQkFBZ0I7RUFDaEIsbUJBQWtCO0VBQ2xCLGlCQUFnQjtFQUNoQixhQUFZO0VBQ1osYUFBWSxFQXlLZjtFMUJ6TE87STBCU1I7TUFXWSxzQkFBcUIsRUFDeEI7SUFaVDtNQWVZLHNCQUFxQjtNQUNyQix1QkFBc0IsRUFDekIsRUFBQTtFMUIxQkQ7STBCU1I7TUFxQlEsWUFBVztNQUNYLHFCQUFvQixFQTBKM0IsRUFBQTtFQWhMRDtJQTBCUSxrQkFBaUI7SUFDakIsbUJBQWtCO0lBQ2xCLFlBQVcsRUFlZDtJQTNDTDtNQStCWSxnQnBCOEtDO01vQjdLRCxVQUFTO01BQ1QsaUJBQWdCO01BQ2hCLG9CQUFtQjtNQUNuQixzQkFBcUI7TUFDckIsaUJBQWdCO01BQ2hCLHdCQUF1QixFQUsxQjtNMUJuREQ7UTBCU1I7VUF3Q2dCLG1CQUFrQixFQUV6QixFQUFBO0VBMUNUO0lBOENRLGVBQWM7SUFDZCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFdBQVU7SUFDVixhQUFZO0lBQ1osWUFBVztJQUNYLGdCQUFlO0lBQ2Ysa0JBQWlCO0lBQ2pCLG1CQUFrQixFQUNyQjtFQXZETDtJQTBEUSw4QnBCcUd1QjtJb0JwR3ZCLGNBQWE7SUFDYixlQUFjO0lBQ2QsaUJBQWdCO0lBQ2hCLGlCQUFnQixFQUtuQjtJMUI1RUc7TTBCU1I7UUFpRVksbUJBQWtCLEVBRXpCLEVBQUE7RUFuRUw7SUFzRVEsZ0JBQWUsRUEyRWxCO0lBakpMO01uQmRJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFbUJzRk47SUExRVQ7TUE2RVksZUFBYyxFQUNqQjtJQTlFVDtNQWlGWSxZQUFXO01BQ1gsY0FBYTtNQUNiLFlBQVcsRUFDZDtJQXBGVDtNQXVGWSxZQUFXO01BQ1gsaUJBQWdCLEVBS25CO01BN0ZUO1FBMkZnQixzQkFBcUIsRUFDeEI7SUE1RmI7TUFnR1ksWUFBVyxFQXdCZDtNQXhIVDtRQW1HZ0Isc0JBQXFCO1FBQ3JCLFlBQVc7UUFDWCxZQUFXLEVBQ2Q7TUF0R2I7UUF5R2dCLFlBQVc7UUFDWCxtQkFBa0I7UUFDbEIsa0JBQWlCO1FBQ2pCLFlBQVcsRUFDZDtNQTdHYjtRbkJkSSxZQUFXO1FBQ1gsZUFBYztRQUNkLFlBQVcsRW1CNkhGO01BakhiO1FBcUhvQixZQUFXLEVBQ2Q7STFCL0hUO00wQlNSO1FBMkhZLG1CQUFrQixFQXNCekI7UUFqSkw7Ozs7VUFpSWdCLFlBQVcsRUFDZDtRQWxJYjtVQXFJZ0IsZUFBYyxFQUNqQjtRQXRJYjtVQXlJZ0IsWUFBVztVQUNYLG9CQUFtQixFQUN0QixFQUFBO0lBM0liO01uQmRJLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFbUI0Sk47RUFoSlQ7SUFvSlEsZ0JBQWUsRUFnQmxCO0kxQjdLRztNMEJTUjtRQXNKWSxtQkFBa0I7UUFDbEIsaUJBQWdCLEVBYXZCLEVBQUE7SUFwS0w7O01BNEpZLHNCQUFxQjtNQUNyQixVQUFTO01BQ1QsV0FBVSxFQUNiO0lBL0pUO01Ba0tZLHNCQUFxQixFQUN4QjtFQW5LVDtJQXVLUSxnQkFBZTtJQUNmLGVBQWM7SUFDZCxzQkFBcUIsRUFDeEI7RUExS0w7O0lBOEtRLDhCcEJmdUIsRW9CZ0IxQjs7QUFHTDs7a0RBRWtEO0FBRWxEO0VBQ0ksZUFBYztFQUNkLG1CQUFrQixFQUNyQjs7QUNoTkQ7O2tEQUVrRDtBQUVsRDtFcEJLSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRW9CTGQ7O0FBRUQ7RUFDSSxzQkFBcUIsRUFDeEI7O0FBRUQ7RUFHWSxrQkFBaUI7RUFDakIsaUJBQWdCLEVBQ25COztBQUxUO0VBUVksZUFBYyxFQUNqQjs7QUNyQlQ7O2tEQUVrRDtBQUdsRDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUVRLGV0QjREUTtFc0IzRFIsZ0J0QnNOTyxFc0JyTlY7O0FBSkw7RUFPUSwrQnRCd013QixFc0J2TTNCOztBQVJMO0VBV1Esc0JBQXFCLEVBQ3hCOztBQUdMO0VBRVksbUJBQWtCLEVBQ3JCOztBQUhUO0VBTVksbUJBQWtCO0VBQ2xCLGlCQUFnQjtFQUNoQiw2QkFBNEI7RUFDNUIsaUJBQWdCO0VBQ2hCLGV0QnFDSTtFc0JwQ0osK0J0QnFMb0IsRXNCcEx2Qjs7QUFHVDs7RUFFSSxZQUFXO0VBQ1gsWUFBVyxFQUtkO0U1QmpDTztJNEJ5QlI7O01BTVEsaUJBQWdCLEVBRXZCLEVBQUE7O0FBRUQ7RUFDSSxhQUFZLEVBQ2Y7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEOzs7OztFQUtJLG9CdEJoQm9CLEVzQmlCdkI7O0FBRUQ7RUFFUSxZQUFXLEVBQ2Q7O0FBSUQ7RUFDSSxZQUFXO0VBQ1gsWUFBVyxFQUNkOztBQUVEO0VBQ0ksWUFBVztFQUNYLG9CdEI5QlU7RXNCK0JWLGdCQUFlLEVBQ2xCOztBQUVEOztFQUVJLG1CdEJwQ1UsRXNCcUNiOztBQUVEOzs7RUFHSSxXQUFVO0VBQ1YsdUJBQXNCLEVBQ3pCOztBQUVEO0VBQ0ksYUFBWTtFQUNaLGFBQVksRUFDZjs7QTVCcEZHO0U0QjBESjtJQUNJLFlBQVc7SUFDWCxZQUFXLEVBQ2Q7RUFFRDtJQUNJLFlBQVc7SUFDWCxvQnRCOUJVO0lzQitCVixnQkFBZSxFQUNsQjtFQUVEOztJQUVJLG1CdEJwQ1UsRXNCcUNiO0VBRUQ7OztJQUdJLFdBQVU7SUFDVix1QkFBc0IsRUFDekI7RUFFRDtJQUNJLGFBQVk7SUFDWixhQUFZLEVBQ2YsRUFBQTs7QTVCcEZHO0U0QmtHSjtJQUNJLGNBQWEsRUFDaEI7RUFFRDs7Ozs7O0lBS1EsZUFBYztJQUNkLGdCQUFlO0lBQ2YsaUJBQWdCO0lBQ2hCLFlBQVc7SUFDWCxZQUFXLEVBQ2QsRUFBQTs7QUFJVDtFckJ6SEksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEVxQjBIVjs7QUFFTDs7a0RBRWtEO0FBRWxEO0VBRUksb0J0QnRHTyxFc0JpSFY7RUFiRDtJckJsSUksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVxQnNJVjtFQU5MO0lBUVEsWUFBVztJQUNYLG9CQUFtQjtJQUNuQixtQkFBa0I7SUFDbEIsbUJBQWtCLEVBQ3JCOztBQUdMO0VBQ0ksYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixnQkFBZTtFQWlCZixvRUFBb0UsRUFxQ3ZFO0VBekREO0lBU1Esb0JBQW1CO0lBQ25CLG9CQUFtQixFQU10QjtJQWhCTDtNckJqSkksWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEVxQnVKTjtJQVJUO01BYVksZ0JBQWU7TUFDZixvQkFBbUIsRUFDdEI7RUFmVDtJQWtCUSxlQUFjLEVBQ2pCO0VBbkJMO0lBc0JRLGVBQWMsRUFDakI7RUF2Qkw7SUEyQlksc0JBQXFCLEVBQ3hCO0VBNUJUO0lBK0JZLHNCQUFxQjtJQUNyQixvQkFBbUIsRUFLdEI7SUFyQ1Q7TUFtQ2dCLGVBQWMsRUFDakI7RUFwQ2I7SUF3Q1ksZ0JBQWUsRUFDbEI7RUF6Q1Q7SUFnRGdCLGVBQWMsRUFDakI7RUFqRGI7SUFvRFksWUFBVztJQUNYLGVBQWM7SUFDZCxtQkFBa0IsRUFDckI7O0E1Qm5NRDtFNEJ3TUo7SUFFUSxrQkFBaUI7SUFDakIsb0JBQW1CLEVBQ3RCLEVBQUE7O0FBSVQ7RUFDSSxtQkFBa0IsRUFDckI7O0E1QmxOTztFNEJxTko7SUFDSSxZQUFXO0lBQ1gsbUJBQWtCLEVBU3JCO0lBWEQ7TUFPWSxZQUFXO01BQ1gsWUFBVyxFQUNkO0VBSVQ7SUFDSSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWMsRUFDakIsRUFBQTs7QTVCdE9HO0U0QjBPSjtJQUNJLFlBQVcsRUFDZCxFQUFBOztBQUdMO0VBQ0ksZ0Z0QnBDZ0YsRXNCb05uRjtFQWpMRDtJQUlRLFlBQVcsRUFDZDtFQUxMO0lBUVEsZ0JBQWUsRUFDbEI7RUFUTDs7O0lBaUJRLG9CQUFtQjtJQUNuQix1QkFBc0IsRUFDekI7RUFuQkw7SUFzQlEsZXRCakxRO0lzQmtMUixnQnRCaERLO0lzQmlETCxpQkFBZ0IsRUFDbkI7RUF6Qkw7SUE0QlEsZ0J0QnhEUTtJc0J5RFIscUJBQW9CLEVBQ3ZCO0VBOUJMOztJQWtDUSw4QkFBNkI7SUFDN0IsZ0JBQWU7SUFDZixnRnRCdkU0RSxFc0J3RS9FO0VBckNMOztJQXlDUSxtQkFBa0I7SUFDbEIsaUJBQWdCLEVBU25CO0lBbkRMOztNQTZDWSxXQUFVLEVBS2I7TUFsRFQ7O1FBZ0RnQixjQUFhLEVBQ2hCO0U1QmhTTDtJNEIrT1I7OztNQXlEWSx1QkFBc0IsRUFDekIsRUFBQTtFQTFEVDtJQWlFUSxXQUFVLEVBQ2I7RUFsRUw7SUF3RVksaUJBQWdCLEVBQ25CO0VBekVUO0lyQnBQSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRXFCK1ROO0VBN0VUO0lBaUZRLGVBQWM7SUFDZCxlQUFjO0lBQ2QsMEJBQXlCO0lBQ3pCLGdGdEJ2SDRFLEVzQndIL0U7RUFyRkw7OztJQTBGUSxjQUFhLEVBQ2hCO0VBM0ZMO0lBOEZRLGdCQUFlO0lBQ2YsaUJBQWdCLEVBVW5CO0lBekdMO01Ba0dZLGdCQUFlO01BQ2YsWUFBVyxFQUNkO0lBcEdUO01BdUdZLGNBQWEsRUFDaEI7RUF4R1Q7SUE0R1EsK0J0QmpKd0IsRXNCbUozQjtFQTlHTDtJQWlIUSxZQUFXLEVBQ2Q7RUFsSEw7O0lBc0hRLGtCQUFpQixFQUNwQjtFQXZITDtJQTBIUSxtQkFBa0I7SUFDbEIsZ0JBQWUsRUFnQmxCO0lBM0lMO01sQnhQSSxZQUFXO01BQ1gsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUixVQUFTO01BQ1QsZUFBYztNQXdCVixrQ0FBbUM7TUFDbkMscUNBQXNDO01BQ3RDLGdDSitEUTtNSTlEUixrQkFBaUI7TWtCd1ZiLG1CQUFrQjtNQUNsQixTQUFRO01BQ1IsYUFBWSxFQUNmO0lBbElUO01sQnhQSSxZQUFXO01BQ1gsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUixVQUFTO01BQ1QsZUFBYztNQVVWLG9DQUFxQztNQUNyQyxtQ0FBb0M7TUFDcEMsOEJKNkVRO01JNUVSLG9CQUFtQjtNa0I4V1gsYUFBWTtNQUNaLFNBQVEsRUFDWDtFQXpJYjtJQThJUSxvQkFBbUI7SUFDbkIsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQixnQkFBZTtJQUNmLGdCdEJ6S08sRXNCa0xWO0lBM0pMO01BcUpZLGVBQWMsRUFDakI7SUF0SlQ7TUF5SlksaUJBQWdCLEVBQ25CO0VBMUpUO0lBOEpRLGdCQUFlO0lBQ2YsbUJBQWtCLEVBYXJCO0lBNUtMO01Ba0tZLGFBQVk7TUFDWixzQnRCM1FZO01zQjRRWixpQkFBZ0I7TUFDaEIsbUJBQWtCO01BQ2xCLGFBQVksRUFDZjtJQXZLVDtNQTBLWSxtQkFBa0IsRUFDckI7RUEzS1Q7SUErS1EsbUJBQWtCLEVBQ3JCOztBNUIvWkc7RTRCbWFKO0lBR1EsZ0J0QjdNSSxFc0I4TVA7RUFKTDs7SUFRUSxpQkFBZ0IsRUFDbkI7RUFUTDtJQVlRLHFCQUFvQixFQUN2QixFQUFBOztBNUJoYkQ7RTRCcWJKOztJQUlZLGNBQWEsRUFDaEIsRUFBQTs7QTVCMWJMO0U0QmljSjtJQUVRLGNBQWEsRUFDaEI7RUFITDtJQVFRLGVBQWM7SUFDZCxvQkFBbUI7SUFDbkIscUJBQW9CO0lBQ3BCLG1CQUFrQjtJQUVsQixZQUFXLEVBY2Q7SUEzQkw7TUFnQlksK0J0QjFaSTtNc0IyWkosa0J0QnhiSCxFc0J5YkE7SUFsQlQ7TXJCdGNBLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFcUIwZEY7SUF0QlQ7TUF5QlksaUJBQWdCLEVBQ25CO0VBMUJUO0lBOEJRLGtCQUFpQixFQUNwQjtFQS9CTDtJQWtDUSxhQUFZO0lBQ1osZUFBYyxFQXFCakI7SUF4REw7TUFzQ1ksbUJBQWtCO01BQ2xCLG1CQUFrQixFQVlyQjtNQW5EVDtRQTBDZ0Isb0JBQW1CLEVBQ3RCO01BM0NiO1FBOENnQixrQ0FBaUM7UUFDakMsZ0J0QjFSUDtRc0IyUk8sbUJBQWtCO1FBQ2xCLCtCdEJ4U1ksRXNCeVNmO0lBbERiO01Bc0RZLGlCQUFnQixFQUNuQjtFQXZEVDtJQTJEUSxpQkFBZ0I7SUFDaEIsbUJBQWtCLEVBVXJCO0lBdEVMO01BK0RZLG9CQUFtQjtNQUNuQixtQkFBa0IsRUFLckI7TUFyRVQ7UUFtRWdCLGlCQUFnQixFQUNuQjtFQXBFYjtJQXlFUSxtQkFBa0I7SUFDbEIsbUJ0QjllSztJc0IrZUwsZ0J0QnBURyxFc0J5VE47SUFoRkw7TUE4RVksZ0J0QnZURCxFc0J3VEY7RUEvRVQ7SUFtRlEsV0FBc0I7SUFDdEIsWUFBVztJQUNYLGtCQUFpQixFQVFwQjtJQTdGTDtNQXdGWSxlQUFjO01BQ2QsZ0J0QnZVQTtNc0J3VUEsbUJBQWtCO01BQ2xCLDBCQUF5QixFQUM1QjtFQTVGVDs7SUFpR1EsYUFBWTtJQUNaLFdBQXNCLEVBQ3pCO0VBbkdMOztJQXVHUSxrQkFBaUI7SUFDakIsZUFBYztJQUNkLGFBQVksRUFDZjtFQTFHTDs7O0lBK0dRLGNBQWEsRUFDaEI7RUFoSEw7SUFtSFEsZUFBYyxFQUNqQjtFQXBITDtJQXdIUSxjQUFhLEVBQ2hCO0VBekhMO0lBK0hZLHlCQUF3QjtJQUN4QixtQkFBa0I7SUFFbEIsVUFBUztJQUNULFNBQVEsRUFDWDtFQXBJVDtJQTBJUSxpQkFBZ0IsRUFNbkI7SUFoSkw7TUE2SVksa0JBQWlCO01BQ2pCLG1CQUFrQixFQUNyQjtFQS9JVDs7SUFvSlEsaUJBQWdCO0lBQ2hCLGdCdEJoWUM7SXNCaVlELCtCdEI3WW9CLEVzQjhZdkI7RUF2Skw7SUEwSlEsbUJBQWtCO0lBQ2xCLFlBQVcsRUFlZDtJQTFLTDtNQThKWSxhQUFZLEVBQ2Y7SUEvSlQ7TUFrS1ksWUFBVyxFQUNkO0lBbktUOztNQXVLWSxjQUFhLEVBQ2hCO0VBS1Q7SUFLb0Isc0NBQXFDLEVBQ3hDLEVBQUE7O0FBT3JCOztrREFFa0Q7QUFFbEQ7RUFHUSxnQnRCL2FRLEVzQmdiWDs7QUFKTDtFQU9RLG9CdEI1bUJLLEVzQjZtQlI7O0FBUkw7RUFXUSxzQnRCdGlCVSxFc0J1aUJiOztBQVpMOzs7Ozs7RUFxQlEsZXRCOWpCa0IsRXNCb2tCckI7RUEzQkw7Ozs7OztJQXdCWSwwQkFBbUMsRUFDdEM7RUF6QlQ7Ozs7OztJQXdCWSwwQkFBbUMsRUFDdEM7RUF6QlQ7Ozs7OztJQXdCWSwwQkFBbUMsRUFDdEM7O0FBekJUO0VBOEJRLGlCdEJsb0JNLEVzQm1vQlQ7O0FBL0JMO0VBcUNRLGlCdEIxb0JLO0VzQjJvQkwsa0JBQWlCO0VBQ2pCLGlCQUFnQixFQWFuQjtFQXBETDtJQTBDWSxvQkFBbUIsRUFDdEI7RUEzQ1Q7SUFnRGdCLGtCQUFpQjtJQUNqQixtQkFBa0IsRUFDckI7O0FBbERiO0VBdURRLFlBQVc7RUFDWCxlQUFjLEVBQ2pCOztBQXpETDtFQTZEWSxzQ0FBa0QsRUFDckQ7O0E1QjdyQkQ7RTRCbXNCSjtJQUNJLFlBQVc7SUFDWCxZQUFXLEVBVWQ7SUFaRDtNQUtRLGVBQWMsRUFDakI7SUFOTDs7TUFVUSxZQUFXLEVBQ2QsRUFBQTs7QUFRVDtFQUNJLGtCQUFpQixFQTRCcEI7RUE3QkQ7SXJCM3RCSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRXFCOHRCVjtFQUxMO0lBU1EsZ0J0QnpnQks7SXNCMGdCTCxvQkFBbUI7SUFFbkIsWUFBVyxFQWdCZDtJQTVCTDtNQWVZLGlCQUFnQixFQUNuQjtJQWhCVDtNQWtCWSxvQkFBbUI7TUFDbkIsaUJBQWdCLEVBQ25COztBQWdCVDs7RXJCL3ZCSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRXFCZ3dCZDs7QUFFRDs7RUFFSSxZQUFXLEVBd0NkO0VBMUNEOztJQUtRLGNBQWEsRUFDaEI7RUFOTDs7SUFTUSxnRnRCNWpCNEU7SXNCNmpCNUUsZ0J0QmhqQlE7SXNCaWpCUixpQkFBZ0I7SUFDaEIsaUJBQWdCO0lBQ2hCLDBCQUF5QjtJQUN6QixpQkFBZ0I7SUFDaEIsc0JBQXFCO0lBQ3JCLG1CQUFrQixFQUNyQjtFQWpCTDs7SUFvQlEsc0JBQXFCLEVBQ3hCO0VBckJMOztJQXdCUSxnQkFBZSxFQUNsQjtFQXpCTDs7SUE0QlEsc0JBQXFCO0lBQ3JCLHVCQUFzQixFQUt6QjtJQWxDTDs7TUFnQ1ksWUFBVyxFQUNkO0VBakNUOztJQXFDUSxpQkFBZ0I7SUFDaEIsYUFBWTtJQUNaLHFCQUFvQjtJQUNwQixhQUFZLEVBQ2Y7O0FBR0w7RUFDSSxtQnRCdHdCaUIsRXNCdXdCcEI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsYUFBWSxFQU1mO0VBUkQ7SUFLUSxnQnRCOWxCSztJc0IrbEJMLHFCQUFvQixFQUN2Qjs7QUFHTDtFQUVJLHlCQUF3QixFQUN2Qjs7QUFITDtFQUtRLGlCQUFnQixFQUNuQjs7QUFOTDtFQVNRLG9CQUFtQixFQUN0Qjs7QUFPTDs7a0RBRWtEO0FBRWxEO0VBRVEsZXRCdnhCUSxFc0J3eEJYOztBQUhMO0VBTVEsWUFBVztFQUNYLFlBQVcsRUFDZDs7QUFHTCxnSEFBZ0g7QTVCejFCeEc7RTRCMjFCSjtJQWdCSSw4QkFBOEIsRUFJakM7SUFwQkQ7OztNQUlRLGlCQUE0QjtNQUM1Qix1QkFBa0MsRUFDckM7SUFOTDtNQVNRLFlBQVcsRUFDZDtJQVZMO01BYVEsZ0JBQWUsRUFDbEI7SUFkTDtNQWtCUSxZQUFXLEVBQ2QsRUFBQTs7QTVCOTJCRDtFNEJtM0JKO0lBR1ksWUFBVyxFQUNkO0VBSlQ7SUFPZ0IsYUFBWSxFQUNmLEVBQUE7O0E1QjMzQlQ7RTRCazRCSjtJQUdZLG9CQUFtQixFQUN0QjtFQUpUO0lBT1ksZUFBYyxFQUNqQixFQUFBOztBQUtiO0VBR1ksZXRCOXpCSTtFc0IrekJKLDJCQUEwQixFQUM3Qjs7QUNsNkJUOztrREFFa0Q7QUFFbEQ7O0VBRUksY0FBYSxFQUNoQjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxZQUFXLEVBQ2Q7O0E3QkVPO0U2QkNKO0lBRVEsWUFBVztJQUNYLGNBQThCO0lBQzlCLG9CQUFtQixFQUN0QjtFQUxMOztJQVNRLGNBQThCO0lBQzlCLGVBQWMsRUFDakI7RUFYTDtJQWNRLGdCQUFlLEVBQ2xCLEVBQUE7O0FBSVQ7RUFFUSxhQUFzQixFQUN6Qjs7QUFHTDs7R0FFRztBQUVIO0VBQ0ksWUFBVztFQUNYLG1CQUFrQjtFQUNsQixlQUFjO0VyQjFDZCx1QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLDBCQUF5QjtFQUN6QixxQkFBb0I7RUFDcEIsa0JBQWlCLEVxQjRDcEI7RUFURDtJdEJuQ0ksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVzQnlDVjs7QUFHTDtFQUNJLGdCQUFlLEVBQ2xCOztBQUdEO0VBQ0ksa0N2QlFnQixFdUJQbkI7O0FBRUQ7RUFDSSxjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksZUFBYztFQUNkLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsYUFBWTtFQUNaLGtCQUFpQixFQUNwQjs7QUFFRDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFFRDs7O0VBR0ksZ0Z2QnVJZ0Y7RXVCdEloRixZQUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLDBCdkJsQlk7RXVCbUJaLGVBQWM7RUFDZCxtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLFNBQVE7RUFDUixRQUFPO0VBQ1Asa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0kscUNBQXNDLEVBQ3pDOztBQUVEO0VBQ0ksZXZCSmlCLEV1QktwQjs7QUFFRDs7RUFFSSxldkJWWSxFdUJXZjs7QUFFRDtFQUNJLGdCdkJpSFk7RXVCaEhaLGlCQUFnQjtFQUNoQixrQkFBaUI7RUFDakIsYUFBWTtFQUNaLFlBQVc7RUFDWCx5QkFBd0IsRUFDM0I7O0E3QnhHTztFNkIwR1I7SUFFUSwwQnZCbkZHLEV1QjZGVixFQUFBOztBQVpEO0V0Qi9HSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRXNCb0hWOztBN0JqSEc7RTZCMEdSO0lBVVEsY3ZCakZVLEV1Qm1GakIsRUFBQTs7QUFFRDtFQUNJLFlBQVcsRUFDZDs7QUFFRDtFQUNJLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLGlCQUFnQixFQXNCbkI7RUF2QkQ7SUFJUSxZQUFXO0lBQ1gsZUFBYztJQUNkLG1CdkIvR0U7SXVCZ0hGLGlCQUFnQixFQUNuQjtFQVJMO0lBVVEsYUFBWTtJQUNaLGlCQUFnQjtJQUNoQixpQkFBZ0IsRUFDbkI7RUFiTDtJQWVRLGFBQVk7SUFDWixVQUFTLEVBQ1o7RUFqQkw7SUFtQlEsa0JBQWlCO0lBQ2pCLHNCQUFxQjtJQUNyQix1QkFBc0IsRUFDekI7O0E3QnRKRztFNkIwSko7O0lBR1EsZUFBYyxFQUNqQixFQUFBOztBQU1UO0VBS1EsZ0J2QnlDUztFdUJ4Q1Qsa0JBQWlCLEVBQ3BCOztBQVBMO0VBWVEsYUFBWSxFQUNmOztBQWJMO0VBZ0JRLGFBQVksRUFDZjs7QUFqQkw7RUFvQlEsY0FBYTtFQUNiLGlCQUFnQixFQUNuQjs7QUF0Qkw7RUF5QlEsaUJ2QnBLRyxFdUJxS047O0FBR0o7RUFLVyxnQnZCYUk7RXVCWkosY0FBYSxFQUNoQjs7QTdCeE1EO0U2QitNSjs7SUFFSSxjQUFhLEVBQ2hCLEVBQUE7O0FBR0w7RUFDSSxjdkJuTGMsRXVCb0xqQjs7QUFFRDs7Ozs7R0FLRztBQUVIOztFQUVJLGdDQUF1QjtFQUF2Qix3QkFBdUIsRUFDMUI7O0FBRUQ7RUFDSSw4QkFBcUI7RUFBckIsc0JBQXFCLEVBQ3hCOztBQUVEO0VBQ0ksb0NBQTJCO0VBQTNCLDRCQUEyQixFQUM5Qjs7QUFFRCxxSEFBcUg7QUFDckgscUhBQXFIO0FBQ3JILHFIQUFxSDtBQUNySDs7RUFFSSxXQUFVLEVBQ2I7O0FBRUQ7RUFDSSxXQUFVO0VBQ1YsaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEOztHQUVHO0FBRUg7RUFDSSxnQkFBZSxFQWtGbEI7RUFuRkQ7SUFJUSxtQkFBa0I7SUFDbEIsa0JBQWlCLEVBUXBCO0lBYkw7TUFRWSxnQkFBZSxFQUNsQjtJQVRUO01BV1ksa0JBQWlCLEVBQ3BCO0VBWlQ7SUFlUSxjQUFhLEVBQ2hCO0VBaEJMO0lBa0JRLFlBQVcsRUFDZDtFQW5CTDtJQXFCUSxnQkFBZTtJQUNmLGFBQVk7SUFDWixrQkFBaUIsRUFDcEI7RUF4Qkw7SUE0QlEsa0JBQWlCLEVBQ3BCO0VBN0JMO0lBK0JRLG1CQUFrQixFQUtyQjtJQXBDTDtNQWtDWSxnQkFBZSxFQUNsQjtFQW5DVDtJQXNDUSxhQUFZO0lBQ1osbUJBQWtCLEVBQ3JCO0VBeENMO0lBMENRLFlBQVcsRUFDZDtFQTNDTDtJQTZDUSxzQkFBcUIsRUFDeEI7RUE5Q0w7SUFnRFEsaUJBQWdCLEVBQ25CO0VBakRMO0lBcURZLGdCQUFlO0l0QjVUdkIsWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVzQjRUTjtFQXZEVDtJQXlEWSxjQUFhLEVBS2hCO0VBOURUO0lBZ0VZLFlBQVcsRUFDZDtFN0JuVUQ7STZCa1FSO01Bb0VZLGdCQUFlLEVBTXRCO01BMUVMO1FBdUVnQixhQUFZLEVBQ2YsRUFBQTtFQXhFYjtJQTZFUSxnQkFBZSxFQUNsQjtFQTlFTDtJQWdGUSxZQUFXO0lBQ1gscUJBQW9CLEVBQ3ZCOztBQUtMLHVCQUF1QjtBQUV2QjtFQUNJLGlCQUFnQixFQUluQjtFQUxEO0lBR1ksa0JBQWlCLEVBQ3BCOztBQUdUO0VBQ0ksVUFBUztFQUNULFVBQVM7RUFDVCxtQkFBa0IsRUF1RHJCO0VBMUREO0lBTVEsZ0J2QmhKTyxFdUJpSlY7RUFQTDtJQVNRLGlCQUFnQjtJNUI1VHBCLFVBQVM7SUFDVCxvQkFBbUI7SUFDbkIsZUttQ1k7SUxsQ1osZ0ZLMEpnRjtJTHpKaEYsZ0JBQWU7SUFDZixvQkFBbUI7SUFDbkIsbUJBQWtCO0lBQ2xCLGlCQUFnQjtJNEJ1VFosbUJBQWtCO0lBQ2xCLDBCQUF5QjtJQUN6QixvQkFBbUI7SUFDbkIsZXZCM1JhLEV1QjRSaEI7RUFmTDtJQWtCUSxldkJoU1EsRXVCaVNYO0VBbkJMO0lBcUJRLG9CQUFtQjtJQUNuQiwrQnZCN0t5QixFdUI4SzVCO0VBdkJMO0lBMEJRLG1CQUFrQixFQUNyQjtFQTNCTDtJQWdDWSxXQUFVO0lBQ1Ysa0JBQWlCO0lBQ2pCLGV2QmhUSTtJdUJpVEosK0J2QjFMcUI7SXVCMkxyQixxQkFBb0I7SUFDcEIsbUJBQWtCO0lBQ2xCLFlBQVc7SUFDWCxZQUFXO0lBQ1gsZ0J2QmxMRyxFdUJ1TE47SUE3Q1Q7TUEyQ2dCLGNBQWEsRUFDaEI7RUE1Q2I7SUFnRFksWUFBVztJQUNYLG1CQUFrQjtJQUNsQixnQnZCNUxHLEV1QjZMTjtFQW5EVDtJdEJ2V0ksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVzQjRaTjs7QUFLVCxpQkFBaUI7QUFDakI7RUFHWSxjQUFhLEVBQ2hCOztBQUlUO0VBQ0ksWUFBVyxFQUNkOztBQUVEO0VBQ0ksWUFBVztFQUNYLGlCQUFnQjtFQUNoQixvQkFBbUIsRUFZdEI7RUFmRDtJQU1RLGlCQUFnQixFQUNuQjtFQVBMO0lBU1EsWUFBVztJQUNYLG1CQUFrQixFQUNyQjtFQVhMO0lBYVEsYUFBWSxFQUNmOztBN0J6Ykc7RTZCOGJKO0lBQ0ksY0FBYSxFQUNoQixFQUFBOztBN0JoY0c7RTZCcWNKO0lBQ0ksY0FBYSxFQUNoQixFQUFBOztBQUdMO21DQUNtQztBQUNuQzs7RUFFSSxnQkFBZSxFQUNsQjs7QUFFRDs7RUFFSSxjQUFhLEVBQ2hCOztBQUlELGlIQUFpSDtBQUNqSDtFQUNJLGtCQUFpQjtFQUNqQixnQkFBZSxFQTBCbEI7RUE1QkQ7SUFLUSxjQUFhLEVBQ2hCO0VBTkw7SUFTUSwwQkFBeUI7SUFDekIsV0FBVSxFQWlCYjtJQTNCTDtNQWFZLFlBQVc7TUFDWCxXQUFVLEVBQ2I7STdCeGVEO002QnlkUjtRQW1CZ0IsWUFBVztRQUNYLFlBQVcsRUFDZCxFQUFBO0lBckJiO01BeUJZLGNBQWEsRUFDaEI7O0E3Qm5mRDtFNkJ3Zko7SUFDSSxjQUFhLEVBS2hCO0lBTkQ7TUFJUSxlQUFjLEVBQ2pCO0VBRUw7SUFDSSxlQUFjLEVBQ2pCLEVBQUE7O0FBR0w7RUFFUSxvQnZCbmVVLEV1Qm9lYjs7QUFITDtFQU1RLFlBQVc7RUFDWCxrQkFBaUIsRUFDcEI7O0FBR0wsa0JBQWtCO0FBQ2xCO0V0QnJoQkksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXO0VzQnNoQlAsaUJ2QjFmRyxFdUJ5Z0JOO0VBbEJMO0lBTVksa0JBQWlCLEVBQ3BCO0VBUFQ7SUFVWSxZQUFXO0lBQ1gsWUFBVztJQUNYLG9CQUFtQixFQUN0QjtFQWJUO0lBZ0JZLFlBQVcsRUFDZDs7QUFJVDtFdEIxaUJJLFlBQVc7RUFDWCxlQUFjO0VBQ2QsWUFBVztFc0I0aUJILFlBQVc7RUFDWCxpQnZCN2dCSztFdUI4Z0JMLGVBQWMsRUFPakI7RUFiVDtJQVVvQixvQnZCbGhCSCxFdUJtaEJBOztBQVhqQjtFQWtCWSxtQnZCcGhCTSxFdUJxaEJUOztBQW5CVDtFQXNCWSxZQUFXLEVBQ2Q7O0FBdkJUO0VBMEJZLGFBQVksRUFTZjtFQW5DVDtJdEIxaUJJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFc0Jza0JGO0VBOUJiO0lBaUNnQixrQkFBaUIsRUFDcEI7O0FBbENiO0VBdUNRLHFCdkJyakJFO0V1QnNqQkYsb0J2QnRqQkU7RXVCdWpCRixpQ3ZCN2RrQixFdUJvZnJCO0VBaEVMO0l0QjFpQkksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVzQnFsQk47RUE3Q1Q7SUFnRFksYUFBWSxFQVdmO0lBM0RUO01BbURnQixZQUFXO01BQ1gsa0JBQWlCO01BQ2pCLG1CQUFrQixFQUNyQjtJQXREYjtNQXlEZ0IsZUFBYyxFQUNqQjtFQTFEYjtJQThEWSxtQkFBa0IsRUFDckI7O0E3QnBtQkQ7RTZCeW1CSjtJQUdRLGdCQUFlLEVBQ2xCO0VBSkw7SUFRWSxZQUFXO0lBQ1gsWUFBVyxFQUNkO0VBVlQ7SUFhWSxpQkFBZ0IsRUFLbkI7SUFsQlQ7TUFnQmdCLFlBQVcsRUFDZCxFQUFBOztBQU9qQjtFQUVRLFlBQVc7RUFDWCxlQUFjO0VBQ2QsZXZCampCUTtFdUJrakJSLGdCdkJuYlE7RXVCb2JSLGtDdkJobEJZO0V1QmlsQloscUJBQW9CO0VBQ3BCLG9CQUFtQjtFQUNuQixvQnZCaG5CSyxFdUJpbkJSOztBQUdMO0VBRVEsaUJBQWdCLEVBQ25COztBQy9wQkw7O2tEQUVrRDtBQUVsRDtFQUVRLFdBQVU7RUFDVixtQkFBa0IsRUFDckI7O0FBSkw7RUFPUSxlQUFjO0VBQ2QsbUJBQWtCLEVBS3JCO0VBYkw7SUFXWSxZQUFXLEVBQ2Q7O0FDaEJUOztrREFFa0Q7QUFFbEQsWUFBWTtBQUNaOzs7RXhCSUksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEV3QkRWOztBQUdMLDRCQUE0QjtBQUM1Qjs7RUFFSSxlQUFjO0VBQ2QsbUJBQXlDO0VBQ3pDLGdCekJrTlM7RXlCak5ULG1CQUFrQjtFQUNsQixlekI4RVk7RXlCN0VaLHNCQUFxQjtFQUNyQix3QkFBdUIsRUFDMUI7O0FBRUQ7RUFDSSwwQnpCMEpxQjtFeUJ6SnJCLGdCQUFlLEVBa0NsQjtFQXBDRDtJQUtRLG1CQUF5QyxFQUM1QztFQU5MO0lBU1EsZ0JBQWU7SUFDZixzQkFBcUIsRUFDeEI7RUFYTDtJQWNRLGNBQWE7SUFDYixvQkFBbUI7SUFDbkIsbUJBQWtCO0lBQ2xCLFFBQU87SUFDUCxTQUFRO0lBQ1IsT0FBTTtJQUNOLFVBQVM7SUFDVCxpRUFBZ0U7SUFDaEUsWUFBVyxFQUNkO0VBdkJMO0lBMkJZLG1CQUFrQixFQUNyQjtFQTVCVDtJQStCWSxtQkFBa0I7SUFDbEIsT0FBTTtJQUNOLFFBQU8sRUFDVjs7QUFJVDtFQUNJLHVCQUFzQjtFQUN0QixVQUFTO0VBQ1Qsb0JBQW1CO0VBQ25CLG9CekI0R3lCLEV5QjNHNUI7O0FBRUQ7RUFDSSxrQkFBaUI7RUFDakIsUUFBTztFQUNQLFlBQVc7RUFDWCxtQ0FBa0MsRUEyQ3JDO0VBL0NEO0lBT1EsWUFBVztJQUNYLFFBQU87SUFDUCxrQkFBaUIsRUFDcEI7RUFFRDtJQUNJLHNCQUFxQjtJQUNyQixZQUFXO0lBQ1gsVUFBUztJQUNULG9CQUFtQixFQUN0QjtFQWpCTDtJQXFCWSxlQUFjLEVBQ2pCO0VBdEJUO0lBeUJZLHNCekJ1Rm1CO0l5QnRGbkIsbUJBQWtCLEVBTXJCO0lBaENUO01BNkJnQixhQUFZO01BQ1osMEJBQXlCLEVBQzVCO0VBL0JiO0lBbUNZLFlBQVc7SUFDWCxpQkFBZ0IsRUFDbkI7RUFyQ1Q7SUF5Q1EsZUFBYyxFQUNqQjtFQTFDTDtJQTZDUSxXQUFVLEVBQ2I7O0FBR0w7RUFFUSxrQkFBaUI7RUFDakIsV0FBVSxFQUNiOztBQUpMO0VBT1EsYUFBWTtFQUNaLGtCQUEyQjtFQUMzQixrQkFBaUI7RUFDakIsaUJBQWdCLEVBU25CO0VBbkJMO0lBYVkscUJBQW9CLEVBQ3ZCO0VBZFQ7SUFpQlksc0J6QmpFSSxFeUJrRVA7O0FBbEJUO0VBc0JRLG9CekJrQ3FCO0V5QmpDckIsMEJ6QnNDaUI7RXlCckNqQixtQkFBeUM7RUFDekMsZUFBYztFQUNkLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixvQkFBbUIsRUFPdEI7RUFyQ0w7SUFpQ1ksdUJBQXNCO0lBQ3RCLG1CQUEyQztJQUMzQyx3QkFBdUIsRUFDMUI7O0FBcENUO0VBd0NRLFdBQVUsRUFDYjs7QS9CbEpHO0UrQnVKSjtJQUNJLFlBQVcsRUFDZCxFQUFBOztBQUdMO0VBRVEsbUJBQWtCLEVBYXJCO0VBZkw7SUFLWSxrQkFBaUI7SUFDakIsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixTQUFRLEVBQ1g7RUFUVDtJQVlZLGVBQWM7SUFDZCxZQUFXLEVBQ2Q7O0FBZFQ7RUFrQlEsc0JBQXFCO0VBQ3JCLGtCQUFpQixFQU1wQjtFQXpCTDtJQXNCWSxzQnpCWmE7SXlCYWIsZ0JBQWUsRUFDbEI7O0FBSVQseUJBQXlCO0FBQ3pCOzs7RUFHSSxzQnpCbklZLEV5Qm9JZjs7QUFFRDtFQUNJLDRCQUEyQixFQWdCOUI7RUFqQkQ7SUFJUSxjQUFhLEVBQ2hCO0VBTEw7SUFRUSxnQkFBZTtJQUNmLG9CekJwR1U7SXlCcUdWLDRCQUEyQjtJQUMzQixrQkFBaUI7SUFDakIsdUJBQXNCO0lBQ3RCLFlBQVc7SUFDWCxlQUFjO0lBQ2QsbUJBQXlDLEVBQzVDOztBQUdMLFlBQVk7QUFDWjtFQUNJLGV6Qi9IaUIsRXlCZ0lwQjs7QUFFRDtFQUdZLFlBQVc7RUFDWCxlQUFjO0VBQ2QsWUFBVztFQUNYLFVBQVMsRUFrQlo7RUF4QlQ7O0lBVWdCLGdCekJSQSxFeUJTSDtFQVhiO0lBY2dCLGVBQWM7SUFDZCxpQkFBZ0IsRUFDbkI7RUFoQmI7SUFtQmdCLGdCQUFlO0lBQ2Ysb0JBQW1CO0lBQ25CLGV6QnhKQTtJeUJ5SkEsa0JBQWlCLEVBQ3BCOztBQXZCYjtFQTJCWSxZQUFXO0VBQ1gsYUFBWSxFQUNmOztBQTdCVDtFQWdDWSxjQUFhLEVBQ2hCOztBQWpDVDtFQXFDUSxrQ0FBaUM7RUFDakMsZ0JBQWUsRUFDbEI7O0FDNVFMOztrREFFa0Q7QUFFakQ7Ozs7RUFPVyxlMUJ1Rkk7RTBCdEZKLDJCQUEwQixFQUk3QjtFQVpSOzs7O0lBVWUsZTFCeURBLEUwQnhESDs7QWhDREw7RWdDTVA7SUFJZSxjQUFhLEVBSXBCLEVBQUE7O0FoQ2REO0VnQ01QO0lBVWUsK0JBQStCLEVBRzFDLEVBQUE7O0FBR0w7RUFFUSw2QkFBNEIsRUFDL0I7O0FBR0w7RUFHUSxxQjFCTkcsRTBCT047O0FBSkw7RUFRWSxhQUFZLEVBQ2Y7O0FBVFQ7RUFhUSxnQjFCMEtRLEUwQnpLWDs7QUFkTDtFQWtCWSxpQkFBZ0I7RUFDaEIsY0FBYSxFQUVoQjs7QUFyQlQ7O0VBd0JZLHVCQUFzQixFQUN6Qjs7QUF6QlQ7RUE2QmdCLGlCQUFnQjtFQUNoQixtQkFBa0I7RUFDbEIsc0JBQXlCLEVBQzVCOztBaEM1REw7RWdDNEJSOztJQXdDZ0IsZUFBYztJQUNkLGlCQUFnQixFQUNuQjtFQTFDYjtJQTZDZ0Isb0JBQW1CLEVBQ3RCO0VBOUNiO0lBaURnQixtQkFBa0IsRUFDckIsRUFBQTs7QWhDOUVMO0VnQzRCUjtJQXlEZ0IsaUJBQWdCLEVBQ25CLEVBQUE7O0FoQ3RGTDtFZ0M0QlI7SUFtRWdCLHFCMUJ0RUwsRTBCdUVFO0VBcEViO0lBdUVnQixrQjFCMUVMLEUwQjJFRSxFQUFBOztBaENwR0w7RWdDNEJSO0lBOEVZLGNBQWEsRUFDaEIsRUFBQTs7QUFJVDtFQUdZLGFBQVksRUFDZjs7QUFJVDtFQUVRLGNBQWEsRUFDaEI7O0FBSEw7RUFLUSxnQjFCNEZPO0UwQjNGUCxtQjFCdEdFLEUwQnVHTDs7QUFHTDtFQUNJLGNBQWE7RUFDYiwwQjFCbUNxQjtFMEJsQ3JCLGMxQmpHYztFMEJrR2QsbUJBQWtCLEVBcUJyQjtFQXpCRDtJQU9RLGVBQWMsRUFDakI7RUFSTDtJQVdRLCtCMUI4RHdCLEUwQjdEM0I7RUFaTDtJQWVRLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sU0FBUTtJQUNSLGMxQmhIVTtJMEJpSFYsZ0IxQnFFUSxFMEJwRVg7RUFwQkw7SUF1QlEsY0FBYSxFQUNoQjs7QUFHTDtFQUlRLGNBQWEsRUFDaEI7O0FBSUw7O0VBR1EsaUJBQWdCO0VBQ2hCLGFBQVk7RUFDWixxQjFCakpHLEUwQmtKTjs7QUFHTDs7a0RBRWtEO0FBQ2xEO0VBSWdCLFVBQVM7RUFDVCxpQkFBZ0IsRUFDbkI7O0FBTmI7RUFVWSxtQkFBa0I7RUFDbEIsa0JBQWlCLEVBaUJwQjtFQTVCVDtJQWNnQixpQkFBZ0IsRUFDbkI7RUFmYjtJQWtCZ0IsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixPQUFNLEVBQ1Q7RUFyQmI7O0lBeUJnQixtQkFBa0I7SUFDbEIsV0FBVSxFQUNiOztBQTNCYjs7O0VBaUNZLFlBQVc7RUFDWCxzQkFBcUIsRUFDeEI7O0FBbkNUO0VBc0NZLGdCMUJEQztFMEJFRCxpQkFBZ0IsRUFDbkI7O0FBeENUO0VBMkNZLGlCMUJuTUQ7RTBCb01DLG9CMUJwTUQsRTBCcU1GOztBQTdDVDtFQWlEUSxnQkFBZSxFQTRCbEI7RUE3RUw7SUFxRGdCLGdGMUIxQm9FO0kwQjJCcEUsMEJBQXlCO0lBQ3pCLG1CQUFrQjtJQUNsQixnQjFCakJELEUwQmtCRjtFQXpEYjtJQTZEWSxvQkFBbUIsRUFLdEI7SUFsRVQ7TUFnRWdCLG9CQUFtQixFQUN0QjtFQWpFYjtJQXNFZ0IsZUFBYyxFQUNqQjtFQXZFYjtJQTJFWSxjQUFhLEVBQ2hCOztBQTVFVDtFQW1Gb0IsZUFBc0IsRUFDekI7O0FBcEZqQjtFQXlGb0Isb0IxQjdPSCxFMEI4T0E7O0FBMUZqQjtFQTZGb0IsaUIxQnJQVCxFMEJzUE07O0FBOUZqQjtFQW9HZ0IsaUIxQmxQRTtFMEJtUEYsaUJBQWdCLEVBQ25COztBQXRHYjtFQXlHZ0Isc0JBQXFCO0VBQ3JCLGlCQUFnQixFQUNuQjs7QUEzR2I7RUFnSGdCLG9CMUJwUUMsRTBCcVFKOztBQWpIYjtFQXVIb0IsaUIxQnJRRjtFMEJzUUUsaUJBQWdCLEVBS25CO0VBN0hqQjtJQTJId0IsbUJBQWtCLEVBQ3JCOztBQTVIckI7RUFnSW9CLGdCQUFlO0VBQ2YsaUJBQWdCLEVBQ25COztBQU1qQjs7RUFJWSxZQUFXO0VBQ1gsWUFBVztFQUNYLG1CMUI1Uk0sRTBCNlJUOztBQVBUO0VBVVksWUFBVztFQUNYLFlBQVcsRUFDZDs7QUFJVDs7a0RBRWtEO0FBRWxEO0VBR1ksZTFCNVBJO0UwQjZQSiwyQkFBMEIsRUFJN0I7RUFSVDtJQU1nQixlMUIxUkEsRTBCMlJIOztBQUtiO0VBRVEsaUIxQmxVRztFMEJtVUgsb0JBQW1CLEVBWXRCO0VBZkw7SUFNWSxnQjFCNUlJO0kwQjZJSixpQkFBZ0I7SUFDaEIsc0JBQXFCO0lBQ3JCLGlCQUFnQixFQUNuQjtFQVZUO0lBYVksYzFCblVNLEUwQm9VVDs7QUFkVDs7OztFQXNCWSxlMUIzUkk7RTBCNFJKLDJCQUEwQixFQUk3QjtFQTNCVDs7OztJQXlCZ0IsZTFCelRBLEUwQjBUSDs7QUExQmI7RUErQlEscUJBQW9CO0VBQ3BCLGtDMUJsVVk7RTBCbVVaLG9CQUFtQixFQU90QjtFQXhDTDs7SUFxQ1ksK0IxQm5McUIsRTBCcUx4Qjs7QUF2Q1Q7O0VBNkNZLHlCQUFpQztFQUNqQyxrQkFBaUIsRUFpQnBCO0VBL0RUOztJQWlEZ0IsbUJBQWtCO0lBQ2xCLHFCQUFvQixFQVl2QjtJQTlEYjs7OztNQXNEb0IsaUJBQWdCO01BQ2hCLCtCMUJ0TVk7TTBCdU1aLGdCMUIzTFAsRTBCNExJO0lBekRqQjs7TUE0RG9CLG9CQUE0QixFQUMvQjs7QUE3RGpCO0VBb0VZLGtCQUFpQixFQUNwQjs7QUFyRVQ7RUF3RVksZ0JBQXVCO0VBQ3ZCLDhCMUIxUG1CLEUwQjJSdEI7RUExR1Q7SUE0RWdCLGNBQWEsRUFDaEI7RUE3RWI7SUFnRmdCLG9CQUFtQjtJQUNuQixZQUFXO0lBQ1gsaUJBQWdCO0lBQ2hCLGdCMUJwTkQsRTBCcU5GO0VBcEZiO0lBdUZnQixrQkFBaUIsRUFrQnBCO0lBekdiO016QjlWSSxZQUFXO01BQ1gsZUFBYztNQUNkLFlBQVc7TXlCdWJLLGlCQUFnQixFQWFuQjtNQXhHakI7UUE4RndCLFlBQVc7UUFDWCxnRjFCNU80RDtRMEI2TzVELGdCMUJqT1Q7UTBCa09TLGtCQUFpQixFQUNwQjtNQWxHckI7UUFxR3dCLFlBQVc7UUFDWCxrQkFBaUIsRUFDcEI7O0FBT3JCOztrREFFa0Q7QUFFbEQ7RUFFUSwrQjFCbFF5QixFMEJ1UzVCO0VBdkNMOztJQU1ZLGtCQUFpQixFQUNwQjtFQVBUO0lBVVksbUJBQW1CLEVBS3RCO0lBZlQ7TUFhZ0IsaUIxQnJiRSxFMEJzYkw7RWhDemRMO0lnQzJjUjs7TUFvQmdCLFlBQVc7TUFDWCxnQkFBZTtNQUNmLGlCQUFnQixFQUtuQjtNQTNCYjs7UUF5Qm9CLFlBQVcsRUFDZCxFQUFBO0VoQ3JlVDtJZ0MyY1I7TUFrQ3dCLG9CQUFtQixFQUN0QixFQUFBOztBQU9yQjs7a0RBRWtEO0FBRWxEO0VBQ0kscUIxQnZkYztFMEJ3ZGQsaUMxQm5WMkI7RTBCb1YzQixZQUFXO0VBQ1gsb0IxQnBlTyxFMEI0ZlY7RUE1QkQ7Ozs7SUFVUSxnQkFBZSxFQUNsQjtFQVhMO0lBY1EsbUJBQThCLEVBQ2pDO0VBZkw7SUFrQlEsbUJBQThCLEVBU2pDO0lBM0JMO01BcUJZLGlCQUFnQixFQUNuQjtJQXRCVDtNQXlCWSxlQUFjLEVBQ2pCOztBQUlUO0VBQ0ksZ0YxQjVVZ0Y7RTBCNlVoRiwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSxvQkFBbUI7RUFDbkIsaUJBQWdCLEVBZ0VuQjtFQWxFRDtJQUtRLHFCQUFvQjtJQUNwQixpQzFCMVh1QixFMEIyWDFCO0VBUEw7SUFVUSxpQkFBZ0I7SUFDaEIsV0FBVSxFQUNiO0VBWkw7SUFlUSxXQUFVLEVBQ2I7RUFoQkw7O0lBb0JRLGlCQUFnQjtJQUNoQixlQUFjO0lBQ2Qsa0JBQWlCLEVBQ3BCO0VBdkJMO0lBMEJRLGFBQVk7SUFDWixvQjFCcGhCVTtJMEJxaEJWLFlBQVcsRUFZZDtJQXhDTDtNQStCWSxnQjFCcldDO00wQnNXRCxnRjFCaFh3RTtNMEJpWHhFLGtCQUFpQjtNQUNqQixpQkFBZ0IsRUFLbkI7TUF2Q1Q7UUFxQ2dCLGFBQVksRUFDZjtFQXRDYjtJQTJDUSxZQUFXO0lBQ1gsK0IxQjdYeUIsRTBCa1o1QjtJQWpFTDs7TUFnRFksK0IxQmpZcUI7TTBCa1lyQixpQkFBZ0IsRUFDbkI7SUFsRFQ7TUFxRFksa0IxQjlpQk0sRTBCK2lCVDtJQXREVDtNQXlEWSxtQjFCeGpCSyxFMEJ5akJSO0lBMURUO01BNkRZLGdGMUI3WXdFO00wQjhZeEUsb0JBQW1CO01BQ25CLDBCQUF5QixFQUM1Qjs7QUFJVDtFQUVRLGtCMUIvakJVO0UwQmdrQlYsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUNyQjs7QUFMTDtFQVFRLGtCQUE2QixFQUNoQzs7QUFUTDtFQVlRLG9CQUFtQjtFQUNuQixpQkFBZ0IsRUFDbkI7O0FBR0w7RUFFUSxpQjFCaGxCVTtFMEJpbEJWLGlCQUFnQixFQUtuQjtFQVJMO0lBTVksbUJBQWtCLEVBQ3JCOztBQVBUO0VBV1EsZ0JBQWUsRUFDbEI7O0FoQzduQkc7RWdDaW9CSjtJQUVRLGtCQUFpQixFQUNwQjtFQUhMO0lBTVEsa0JBQWlCLEVBQ3BCO0VBUEw7SUFXWSxjQUFhLEVBQ2hCO0VBWlQ7SUFlWSxtQjFCN21CRSxFMEI4bUJMO0VBaEJUO0lBb0JRLHNCMUI3ZW1CLEUwQjhldEI7RUFyQkw7SUF5QlksbUJBQWtCLEVBQ3JCO0VBMUJUO0lBK0JZLHFCQUFvQjtJQUNwQixpQkFBZ0IsRUFLbkI7SUFyQ1Q7TUFtQ2dCLHFCMUJ2b0JILEUwQndvQkE7RUFwQ2I7SUF5Q1EsY0FBYSxFQUNoQixFQUFBOztBQUlUO0VBQ0ksZUFBYyxFQUNqQjs7QUFFRDtFQUVRLGlCMUJscEJVLEUwQm1wQmI7O0FoQ3RyQkc7RWdDMHJCSjs7SUFJWSxvQjFCcnFCTDtJMEJzcUJLLGtCQUFpQixFQUNwQjtFQUlUO0lBR1ksb0JBQW1CLEVBQ3RCLEVBQUE7O0FoQ3hzQkw7RWdDOHNCSjtJQUdZLGlCQUFnQixFQU1uQjtJQVRUOztNQU9nQixXQUFVLEVBQ2IsRUFBQTs7QWhDdHRCVDtFZ0M2dEJKOzs7O0lBT2dCLGNBQWEsRUFDaEI7RUFLYjtJQUVRLFlBQVcsRUFDZDtFQUdMO0lBRVEsWUFBVztJQUNYLFdBQVU7SUFDVixvQjFCM3RCRCxFMEI0dEJGO0VBR0w7SUFFUSxjQUFhLEVBQ2hCO0VBR0w7SUFFUSxpQkFBZ0IsRUFLbkI7SUFQTDtNQUtZLGNBQWEsRUFDaEI7RUFOVDtJQVVRLCtCMUI3akJxQixFMEJra0J4QjtJQWZMO01BYVksbUJBQWtCLEVBQ3JCO0VBZFQ7SUFrQlEscUIxQm52Qks7STBCb3ZCTCxvQjFCeHZCRCxFMEJ5dkJGO0VBcEJMOztJQXlCWSxXQUFVO0lBQ1YsaUJBQWdCO0lBQ2hCLGdCQUFlLEVBQ2xCO0VBNUJUO0lBK0JZLFlBQVc7SUFDWCxpQkFBZ0IsRUFDbkI7RUFqQ1Q7SUFvQ1ksYUFBWSxFQUNmLEVBQUE7O0FoQ255Qkw7RWdDeXlCSjtJQUlnQixnQkFBZSxFQUNsQixFQUFBOztBaEM5eUJUO0VnQ3F6Qko7SUFJZ0IsbUJBQWtCLEVBQ3JCO0VBTGI7SUFTWSxtQkFBa0IsRUFXckI7SUFwQlQ7TUFZZ0IsWUFBVztNQUNYLGlCQUFnQjtNQUNoQixvQjFCdHlCSCxFMEIyeUJBO01BbkJiO1FBaUJvQixpQkFBZ0IsRUFDbkI7RUFsQmpCO0lBd0JnQixvQjFCaHpCSCxFMEJpekJBO0VBekJiO0lBNkJZLG9CMUJyekJDLEUwQnN6Qko7RUE5QlQ7SUFpQ1ksY0FBYSxFQUNoQjtFQWxDVDtJQXNDZ0Isb0IxQjl6Qkg7STBCK3pCRyxpQkFBZ0I7SUFDaEIsWUFBVztJQUNYLFlBQVcsRUFDZDtFQTFDYjtJQTZDZ0Isb0IxQnIwQkgsRTBCczBCQTtFQUtiO0lBQ0ksaUIxQjUwQlMsRTBCNjBCWjtFQUVEOztJQUlZLGNBQWEsRUFDaEI7RUFMVDtJQVFZLGtCQUFpQixFQUNwQjtFQUlUOztJQUlZLFlBQVc7SUFDWCxpQjFCajJCQyxFMEJrMkJKO0VBSVQ7SUFDSSxVQUFTLEVBY1o7SUFmRDs7TUFLUSxZQUFXO01BQ1gsaUMxQmp1Qm1CO00wQmt1Qm5CLGdCQUFzQixFQUN6QjtJQVJMO01BV1Esa0JBQWlCO01BQ2pCLGlCQUFnQjtNQUNoQixvQjFCdjNCRCxFMEJ3M0JGO0VBR0w7SUFFUSxvQkFBbUIsRUFDdEIsRUFBQTs7QUFJVDs7a0RBRWtEO0FBRWxEO0VBRVEsb0JBQW1CLEVBQ3RCOztBQUhMO0VBTVEsY0FBYSxFQUNoQjs7QUFQTDtFQVVRLDhCMUIzeEJ5QjtFMEI0eEJ6QixrQjFCbjVCRSxFMEJvNUJMOztBQ3o3Qkw7O2tEQUVrRDtBQUVsRDtFQUVRLGtCM0JpQ0c7RTJCaENILGlCQUFnQixFQW1CbkI7RUF0Qkw7SUFNWSxZQUFXLEVBQ2Q7RWpDR0Q7SWlDVlI7TUFVWSxpQkFBZ0I7TUFDaEIsZUFBYyxFQVdyQjtNQXRCTDtRQWNnQixZQUFXO1FBQ1gsaUJBQWdCLEVBQ25CO01BaEJiO1FBbUJnQixhQUFZLEVBQ2YsRUFBQTs7QUN4QmI7O2tEQUVrRDtBbENZMUM7RWtDVlI7O0lBTW9CLGFBQVksRUFDZixFQUFBOztBQVBqQjtFQWFRLG9CNUJvQkU7RTRCbkJGLHFCNUJtQkU7RTRCbEJGLGlDNUJ5SXlCLEU0QnhJNUI7O0FBaEJMO0VBbUJRLGdCQUFlO0VBQ2YsaUJBQWdCO0VBQ2hCLFVBQVMsRUFLWjtFQTFCTDtJQXdCWSxvQjVCU0YsRTRCUkQ7O0FsQ2ZEO0VrQ1ZSO0lBOEJZLGtCQUFpQixFQUNwQjtFQS9CVDtJQWtDWSxjQUFhLEVBQ2hCLEVBQUE7O0FBS1Q7RUFDSSxnQjVCT2lCO0U0Qk5qQixtQjVCTWlCO0U0QkxqQixtQkFBa0IsRUFTckI7RUFaRDtJQU1RLHNCQUFxQixFQUt4QjtJQVhMO01BU1ksZUFBYyxFQUNqQjs7QUFJVDtFQUNJLGNBQWE7RUFDYixtQkFBa0I7RUFDbEIsbUJBQWtCLEVBaUJyQjtFQXBCRDtJQU1RLGVBQWM7SUFDZCxlQUFjLEVBQ2pCO0VBUkw7SUFVUSxzQkFBcUI7SUFDckIsZ0JBQWUsRUFDbEI7RUFaTDtJQWNRLGFBQVksRUFDZjtFQWZMO0lBaUJRLHdCQUF1QjtJQUN2QixnQkFBZSxFQUNsQjs7QUFJTDtFQUNJLGVBQWM7RUFDZCxVQUFTLEVBQ1o7O0FsQ3RFTztFa0N5RUo7SUFDSSxlQUFjLEVBQ2pCLEVBQUE7O0FsQzNFRztFa0MrRUo7SUFDSSxlQUFjLEVBQ2pCLEVBQUE7O0FBR0w7RUFDSSxtQkFBa0I7RUFDbEIsZUFBcUI7RUFDckIsZ0JBQWUsRUFtQmxCO0VBdEJEO0lBTVEsZUFBYztJQUNkLFlBQVcsRUFVZDtJQWpCTDtNQVVZLHNCQUFxQjtNQUNyQixnQkFBZSxFQUtsQjtNQWhCVDtRQWNnQixnQkFBZSxFQUNsQjtFQWZiO0lBb0JRLGNBQWEsRUFDaEI7O0FBR0w7RUFFUSxrQkFBaUIsRUFDcEI7O0FBR0w7RUFDSSxzQkFBcUIsRUFDeEI7O0FBRUQ7RUFFUSxtQkFBa0I7RUFDbEIsZUFBYyxFQW9CakI7RUF2Qkw7SUFNWSxzQkFBcUI7SUFDckIsZ0JBQWUsRUFRbEI7SUFmVDtNQVVnQixhQUFZLEVBQ2Y7SUFYYjtNQWFnQixlQUFjLEVBQ2pCO0VBZGI7SUFpQlksZ0JBQWUsRUFLbEI7SUF0QlQ7TUFtQmdCLGdCNUJnRkE7TTRCL0VBLGlCQUFnQixFQUNuQjs7QUN6SmI7O2tEQUVrRDtBQUVsRDtFQUNJLFlBQVc7RUFDWCxZQUFXLEVBMEtkO0VBNUtEO0lBS1EsOEI3QjJLaUI7STZCMUtqQixpQzdCMEtpQjtJNkJ6S2pCLG9CQUFtQixFQWdDdEI7SUF2Q0w7TTVCS0ksWUFBVztNQUNYLGVBQWM7TUFDZCxZQUFXLEU0QklOO0lBWFQ7TUFjWSxZQUFXO01BQ1gsZUFBYyxFQUNqQjtJQWhCVDtNQW1CWSxZQUFXO01BQ1gsYUFBWTtNQUNaLFlBQVcsRUFpQmQ7TUF0Q1Q7UUF5Qm9CLGlCQUFnQixFQU9uQjtRQWhDakI7VUE0QndCLGdGN0IwTDREO1U2QnpMNUQsZ0JBQWU7VUFDZiwwQkFBeUIsRUFDNUI7TUEvQnJCO1FBb0NnQixjQUFhLEVBQ2hCO0VBckNiO0lBMENRLGU3QnlCUTtJNkJ4QlIsZ0I3QndMUTtJNkJ2TFIsMEJBQXlCLEVBSzVCO0lBakRMO01BK0NZLGU3QitDSSxFNkI5Q1A7RUFoRFQ7SUFvRFEsZ0Y3QmtLNEU7STZCaks1RSxnQjdCOEtRO0k2QjdLUixvQkFBbUI7SUFDbkIsMEJBQXlCLEVBSzVCO0lBNURMO01BMERZLGU3QlNJLEU2QlJQO0VBM0RUO0lBK0RRLGtCQUFpQjtJQUNqQixhQUFZLEVBd0RmO0lBeEhMO01BbUVZLGlDN0I2R2E7TTZCNUdiLGdGN0JrSndFO002QmpKeEUsZ0I3QjhKSTtNNkI3Skosb0JBQW1CO01BQ25CLG9CQUFtQjtNQUNuQiwwQkFBeUIsRUFLNUI7TUE3RVQ7UUEyRWdCLGNBQWEsRUFDaEI7SUE1RWI7TUFnRlksZ0Y3QnNJd0U7TTZCckl4RSxnQjdCa0pJO002QmpKSixvQkFBbUI7TUFDbkIsZUFBYztNQUNkLDBCQUF5QjtNQUN6QixhQUFZLEVBa0NmO01BdkhUO1E1QktJLFlBQVc7UUFDWCxlQUFjO1FBQ2QsWUFBVyxFNEJ5RkU7TUFoR2pCO1FBb0dnQixnQjdCK0hBO1E2QjlIQSxvQkFBbUIsRUFDdEI7TUF0R2I7UUF5R2dCLDBCN0J1RVM7UTZCdEVULGlCQUFnQjtRQUNoQixnQkFBZTtRQUNmLHlCQUF3QixFQUMzQjtNQTdHYjtRQWdIZ0IsMEI3QmdFUztRNkIvRFQsaUJBQWdCLEVBS25CO1FBdEhiO1VBb0hvQixZQUFXLEVBQ2Q7RUFySGpCO0lBMkhRLGFBQVk7SUFDWixVQUFTO0lBQ1QsYUFBWSxFQUNmO0VBOUhMO0lBaUlRLGdGN0JxRjRFO0k2QnBGNUUsZ0I3QmlHUTtJNkJoR1Isb0JBQW1CO0lBQ25CLG9CN0JuR0UsRTZCMElMO0lBM0tMO01BdUlZLGVBQWM7TUFDZCwwQkFBeUIsRUFDNUI7SUF6SVQ7TUE0SVksK0I3QnlFcUI7TTZCeEVyQixnQjdCbUZDO002QmxGRCxlQUFjLEVBNEJqQjtNQTFLVDtRQWlKZ0IsZ0Y3QnFFb0U7UTZCcEVwRSxnQjdCaUZBO1E2QmhGQSxZQUFXLEVBVWQ7UUE3SmI7VUFzSm9CLG1CQUFrQixFQUNyQjtRQXZKakI7VUEwSm9CLGFBQVk7VUFDWixlQUFjLEVBQ2pCO01BNUpqQjtRQWdLZ0IsZUFBYyxFQUNqQjtNQWpLYjtRQW9LZ0IsZTdCakdBO1E2QmtHQSxnRjdCaURvRTtRNkJoRHBFLGdCQUFlO1FBQ2Ysb0JBQW1CO1FBQ25CLDBCQUF5QixFQUM1Qjs7QUFLYjtFQUNJLGlDN0JDcUI7RTZCQXJCLGlCN0IvSU0sRTZCK0xUO0VBbEREO0lBS1Esd0JBQXVCLEVBTzFCO0lBWkw7TUFRWSx3QkFBdUI7TUFDdkIsYUFBWTtNQUNaLDJCQUEwQixFQUM3QjtFQVhUO0lBZ0JZLG9CQUFtQjtJQUNuQixnQjdCb0NJLEU2Qm5DUDtFQWxCVDtJQW9CWSxhQUFZO0lBQ1osbUJBQWtCO0lBQ2xCLFdBQVUsRUFPYjtJQTdCVDtNQXlCZ0IsWUFBVztNQUNYLGVBQWM7TUFDZCxnQkFBZSxFQUNsQjtFQTVCYjtJQWtDWSxjQUFhLEVBYWhCO0lBL0NUO01BcUNnQixZQUFXO01BQ1gsc0JBQXFCO01BRXJCLGdDQUErQjtNQUMvQixZQUFXO01BQ1gsYTdCUUg7TTZCUEcsaUJBQWdCO01BQ2hCLG1CQUFrQjtNQUNsQixTQUFRLEVBQ1g7O0FBTWI7O2tEQUVrRDtBQUVsRDtFQUNJLGdGN0JqQmdGO0U2QmtCaEYsZ0I3QkxZO0U2Qk1aLDBCQUF5QixFQXdCNUI7RUEzQkQ7SUFNUSxvQkFBbUIsRUFDdEI7RUFQTDtJQVdRLDhCQUE2QjtJQUM3Qiw0QkFBMkI7SUFDM0IsYUFBWTtJQUNaLGlCQUFnQjtJQUNoQixxQkFBb0I7SUFDcEIsWUFBVyxFQVVkO0lBMUJMO01Bb0JZLDhCQUE2QjtNQUM3Qiw0QkFBMkI7TUFDM0IsWUFBVztNQUNYLGFBQVk7TUFDWixxQkFBb0IsRUFDdkI7O0FuQ3JQRDtFbUM0UEo7SUFJZ0IsZ0JBQWUsRUFDbEI7RUFMYjtJQVFnQixXQUFVO0lBQ1YsZUFBYyxFQVVqQjtJQW5CYjtNQVlvQixlQUFjO01BQ2QsWUFBVyxFQUtkO01BbEJqQjtRQWdCd0IsbUJBQWtCLEVBQ3JCLEVBQUE7O0FuQzdRakI7RW1Dd1JKO0lBSWdCLGFBQVksRUFRZjtJQVpiO01BUXdCLFlBQVc7TUFDWCxnQkFBZSxFQUNsQixFQUFBOztBbkNsU2pCO0VtQzZTSjtJQUVRLFlBQVcsRUFZZDtJQWRMO01BS1ksWUFBVyxFQVFkO01BYlQ7O1FBVW9CLFlBQVcsRUFDZDtFQVhqQjtJQWlCUSxZQUFXLEVBQ2Q7RUFsQkw7SUF3QmdCLGtCQUFpQjtJQUNqQixtQkFBa0IsRUFDckI7RUExQmI7SUErQmdCLGtCQUFpQjtJQUNqQixtQkFBa0IsRUFDckI7RUFqQ2I7SUFvQ2dCLFdBQVU7SUFDVixhQUFZLEVBQ2Y7RUF0Q2I7SUEwQ1ksaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQixpQkFBZ0I7SUFDaEIsZUFBcUI7SUFDckIsWUFBVyxFQVFkO0lBdERUO01BaURnQixjQUFhLEVBQ2hCO0lBbERiO01Bb0RnQixzQkFBcUIsRUFDeEIsRUFBQTs7QW5DbFdUO0VtQzRXSjtJQUNJLFlBQVcsRUFDZCxFQUFBOztBQUdMOztrREFFa0Q7QUFDbEQ7RUFJZ0Isb0JBQW1CLEVBQ3RCOztBQUxiO0VBU1ksWUFBVztFQUNYLGVBQWMsRUFTakI7RUFuQlQ7SUFhZ0IsWUFBVyxFQUNkO0VBZGI7SUFpQmdCLFlBQVcsRUFDZDs7QW5DdFlMO0VtQzRZSjtJQUdZLGdCQUFlLEVBQ2xCLEVBQUE7O0FDdmJiLFlBQVk7QUFDWjtFQUNJLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2QsdUJBQXNCO0VBQ3RCLDRCQUEyQjtFQUMzQiwwQkFBeUI7RUFFekIsdUJBQXNCO0VBQ3RCLHNCQUFxQjtFQUNyQixrQkFBaUI7RUFDakIsd0JBQXVCO0VBQ3ZCLG9CQUFtQjtFQUNuQix5Q0FBd0M7RUFDeEMsV0FBVTtFQUNWLHlDQUFnQztFQUFoQyxpQ0FBZ0MsRUFLbkM7RUFuQkQ7SUFpQlEsV0FBVSxFQUNiOztBQUVMO0VBQ0ksbUJBQWtCO0VBQ2xCLGlCQUFnQjtFQUNoQixlQUFjO0VBQ2QsVUFBUztFQUNULFdBQVUsRUFTYjtFQWREO0lBUVEsY0FBYSxFQUNoQjtFQVRMO0lBV1EsZ0JBQWU7SUFDZixhQUFZLEVBQ2Y7O0FBRUw7RUFDSSx3Q0FBdUM7RUFJdkMsZ0NBQStCLEVBQ2xDOztBQUNEO0VBQ0ksbUJBQWtCO0VBQ2xCLFFBQU87RUFDUCxPQUFNO0VBQ04sZUFBYyxFQVlqQjtFQWhCRDtJQU9RLFlBQVc7SUFDWCxlQUFjLEVBQ2pCO0VBVEw7SUFXUSxZQUFXLEVBQ2Q7RUFDRDtJQUNJLG1CQUFrQixFQUNyQjs7QUFFTDtFQUNJLFlBQVc7RUFDWCxhQUFZO0VBQ1osWUFBVztFQUNYLGdCQUFlO0VBWWYsY0FBYSxFQWdCaEI7RXJDdWxQQztJcUNoblBNLGFBQVksRUFDZjtFQVJMO0lBVVEsZUFBYztJQUNkLFlBQVcsRUFDZDtFQVpMO0lBY1EsY0FBYSxFQUNoQjtFQWZMO0lBbUJRLHFCQUFvQixFQUN2QjtFQUNEO0lBQ0ksZUFBYyxFQUNqQjtFQUNEO0lBQ0ksbUJBQWtCLEVBQ3JCO0VBQ0Q7SUFDSSxlQUFjO0lBQ2QsYUFBWTtJQUNaLDhCQUE2QixFQUNoQzs7QUFFTDtFQUNJLGNBQWEsRUFDaEI7O0FBQ0Q7RUFDSSxvQjlCMEJZO0U4QnpCWixZQUFXO0VBQ1gsYUFBWTtFQUNaLHVCQUFzQjtFQUN0QixlQUFjO0VBQ2QsbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLGtCQUFpQjtFQUNqQixZQUFXO0VBQ1gsZ0JBQWUsRUFNbEI7RUFsQkQ7SUFlUSxzQkFBcUI7SUFDckIsa0JBQWlCLEVBQ3BCOztBQUVMO0VBQ0ksV0FBVTtFQUNWLGFBQVksRUFNZjtFQVJEO0lBS1Esa0JBQWlCO0lBQ2pCLG1CQUFrQixFQUNyQjs7QUFFTDtFQUNJLG1CQUFrQixFQW9CckI7RUFyQkQ7SUFJUSxjQUFhLEVBQ2hCO0VBTEw7SUFPUSxZQUFXO0lBQ1gsYUFBWTtJQUNaLG9CQUFtQjtJQUNuQixtQkFBa0I7SUFDbEIsZ0JBQWU7SUFDZixzQkFBcUI7SUFDckIsY0FBYTtJQUNiLHNCQUFxQjtJQUNyQixpQjlCMUVLLEU4QitFUjtJQXBCTDtNQWtCWSxvQjlCOUNJLEU4QitDUDs7QUFHVDtFQUNJLGNBQ0osRUFBRTs7QUFDRjtFQUVRLGlCQUFnQjtFQUNoQixZQUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixvQjlCMUZLLEU4QjZKUjtFQXpFTDtJQVNZLGFBQVksRUFLZjtJQWRUO01BWWdCLGFBQVksRUFDZjtFQWJiO0lBZ0JZLFlBQVc7SUFDWCxXQUFVO0lBQ1YsWUFBVyxFQUNkO0VBbkJUO0lBcUJZLFdBQVU7SUFDVixZQUFXO0lBQ1gsWUFBVyxFQUNkO0VBeEJUO0lBMEJZLG1CQUFrQjtJQUNsQixhOUJoSEQ7SThCaUhDLFlBQVcsRUFTZDtJQXJDVDtNQStCZ0Isa0JBQWlCLEVBS3BCO01BcENiO1FBa0NvQixvQjlCdkZKLEU4QndGQztFQW5DakI7SUF1Q1ksYUFBWTtJQUNaLGtCQUFpQixFQUNwQjtFQXpDVDtJQTJDWSx1QkFBc0IsRUE2QnpCO0lBeEVUO01BOENnQiwwQkFBeUIsRUFzQjVCO01BcEViO1FBaURvQixtQkFBa0I7UUFDbEIsU0FBUTtRQUNSLG9DQUEyQjtnQkFBM0IsNEJBQTJCO1FBQzNCLGdCQUFlO1FBQ2YsMEJBQXlCO1FBQ3pCLGFBQVk7UUFDWixnRjlCdUNnRTtROEJ0Q2hFLGVBQWMsRUFXakI7UXBDakxUO1VvQzhHUjtZQTJEd0IsZ0JBQWUsRUFRdEIsRUFBQTtRcENqTFQ7VW9DOEdSO1lBOER3QixnQkFBZSxFQUt0QixFQUFBO1FwQ2pMVDtVb0M4R1I7WUFpRXdCLGlCQUFnQixFQUV2QixFQUFBO0lBbkVqQjtNQXNFZ0Isd0RBQXVELEVBQzFEOztBQUtiO0VBRVEsb0JBQW1CO0VBQ25CLGdEQUErQztFQUMvQyxzQkFBcUI7RUFDckIsNEJBQTJCO0VBQzNCLDZCQUE0QjtFQUM1QixhQUFZO0VBQ1osU0FBUSxFQUNYOztBQVRMO0VBWVEsV0FBVSxFQUNiOztBQWJMO0VBZ0JRLGlEQUFnRDtFQUNoRCxZQUFXLEVBQ2Q7O0FDMU5MOztrREFFa0Q7QUFFbEQ7RUFDSSxtQkFBa0I7RUFDbEIsZUFBYztFQUNkLFlBQVc7RUFDWCxlQUFjO0VBQ2QsMEIvQjZLMkIsRStCaEo5QjtFQWxDRDtJQVFRLFlBQVc7SUFDWCxXQUFVO0lBQ1YsbUJBQWtCO0lBQ2xCLFVBQVM7SUFDVCwyQkFBMEIsRUFxQjdCO0lBakNMO01BY1ksbUJBQWtCO01BQ2xCLE9BQU07TUFDTixRQUFPO01BQ1AsWUFBVztNQUNYLFdBQVU7TUFDVixlQUFjO01BQ2QsVUFBUyxFQVlaO01BaENUO1FBd0JnQixpQkFBZ0I7UUFDaEIsYUFBWSxFQUNmO01BMUJiO1FBNkJnQixnQkFBZTtRQUNmLFlBQVcsRUFDZDs7QUFLYjtFQUNJLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsVUFBUztFQUNULGlCQUFnQjtFN0IxQ2hCLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsMEJBQXlCO0VBQ3pCLHFCQUFvQjtFQUNwQixrQkFBaUIsRTZCNEVwQjtFQTdDRDtJQVdRLG1CQUFrQjtJQUNsQixZQUFXO0lBQ1gsYUFBWTtJQUNaLHNCQUFxQjtJQUNyQixlQUFjO0lBQ2QsZ0JBQWUsRUF3QmxCO0lBeENMO01Bb0JZLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFMYTtNQU1iLGFBTmE7TUFPYixVQUFTO01BQ1QsU0FBUTtNQUNSLGtCQUE2QjtNQUM3QixpQkFBNEI7TUFDNUIsbUJBQWtCO01BQ2xCLDBCQUF5QjtNQUN6QixtQkFBa0IsRUFDckI7SUEvQlQ7TUFrQ1ksMEIvQjhEd0IsRStCN0QzQjtJQW5DVDtNQXNDWSwwQi9CMkQwQixFK0IxRDdCO0VBdkNUO0lBMkNRLGdCQUFlLEVBQ2xCOztBQUdMOztFQUVJLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sV0FBVTtFQUNWLGdCQUFlO0VBQ2YsYUFBWTtFQUNaLGFBQVk7RUFDWixhQUFZO0VBQ1osZ0JBQWU7RTdCM0ZmLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsMEJBQXlCO0VBQ3pCLHFCQUFvQjtFQUNwQixrQkFBaUIsRTZCOEdwQjtFQWhDRDs7SUFhUSxZQUFXO0lBQ1gsU0FBUTtJQUNSLFVBQVM7SUFDVCxhQUFZO0lBQ1osbUJBQWtCO0lBQ2xCLG9CQUFtQjtJQUNuQixlQUFjO0lBQ2QsU0FBUTtJQUNSLGtCQUFpQixFQUNwQjtFQXRCTDs7SUF5QlEsV0FBVSxFQUNiO0VBMUJMOztJQTZCUSxZQUFXO0lBQ1gsZ0JBQWUsRUFDbEI7O0FBR0w7RUFDSSxVQUFTLEVBWVo7RUFiRDtJQUlRLCtCQUE4QjtJQUM5QiwwREFBeUQ7SUFDekQsU0FBUTtJQUNSLFdBQVUsRUFDYjtFQVJMO0lBV1EsMERBQWlFLEVBQ3BFOztBQUdMO0VBQ0ksV0FBVSxFQVliO0VBYkQ7SUFJUSwrQkFBOEI7SUFDOUIsMERBQXlEO0lBQ3pELFNBQVE7SUFDUixZQUFXLEVBQ2Q7RUFSTDtJQVdRLDBEL0JYNEIsRStCWS9COztBQUdMO0VBQ0ksbUJBQWtCO0VBQ2xCLGFBQVk7RUFDWixhQUFZO0VBQ1osWUFBVztFQUNYLGFBQVksRUFDZjs7QUFFRDtFQUNJLDJCQUEwQjtFQUMxQixtQkFBa0I7RUFDbEIsVUFBUztFQUNULFlBQVc7RUFDWCxhQUFZO0VBQ1osa0JBQWlCO0VBQ2pCLGFBQVk7RUFDWixjQUFhO0VBQ2IsWUFBVyxFQUNkOztBQ3pLRDs7a0RBRWtEO0FBRWxEO0VBRVEsbUJBQWtCLEVBQ3JCOztBQUhMO0VBTVEsZ0ZoQ2dONEU7RWdDL001RSxnQmhDNE5RO0VnQzNOUiwwQkFBeUI7RUFDekIsWUFBVyxFQWdCZDtFQXpCTDtJQVlZLGlDaEM4S1ksRWdDN0tmO0VBYlQ7SUFnQlksY0FBYTtJQUNiLG9CQUFtQixFQUN0QjtFQWxCVDtJQXFCWSxnRmhDaU13RTtJZ0NoTXhFLGdCaEM2TUk7SWdDNU1KLDBCQUF5QixFQUM1Qjs7QUF4QlQ7RUE0QlEsZ0JoQ2lNUTtFZ0NoTVIsZ0ZoQ3lMNEU7RWdDeEw1RSxpQkFBZ0I7RUFDaEIsMEJBQXlCLEVBSzVCO0VBcENMO0lBa0NZLGVoQ2lDSSxFZ0NoQ1A7O0FBbkNUO0VBdUNRLGdCaEM2TFM7RWdDNUxULGdGaEM4SzRFO0VnQzdLNUUsY0FBYSxFQUNoQjs7QUExQ0w7RUE2Q1EsMEJoQ29HZ0I7RWdDbkdoQixZQUFXO0VBQ1gsYUFBWTtFQUNaLGdCaENvTFM7RWdDbkxULGdGaENxSzRFLEVnQ25KL0U7RUFuRUw7SUFvRFksMEJBQXlCLEVBQzVCO0VBckRUO0lBdURZLDBCQUF5QixFQUM1QjtFQXhEVDtJQTBEWSwwQkFBeUIsRUFDNUI7RUEzRFQ7SUE2RFksMEJBQXlCLEVBQzVCO0VBOURUO0lBaUVZLDBCaENFSSxFZ0NEUDs7QUFsRVQ7RUFzRVEsa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixpQkFBZ0IsRUFNbkI7RUE5RUw7SUEyRVksZ0JoQ3lKSztJZ0N4SkwsaUJBQWdCLEVBQ25COztBQTdFVDtFQWlGUSxtQkFBa0IsRUFDckI7O0FBbEZMO0VBc0ZZLGFBQVksRUFDZjs7QUF2RlQ7RUEwRlksV0FBVSxFQUNiOztBQTNGVDtFQThGWSxhQUFZO0VBQ1osbUJBQWtCLEVBQ3JCOztBQWhHVDtFQW1HWSxhQUFZLEVBd0JmO0VBM0hUO0lBc0dnQixnQmhDNkhBO0lnQzVIQSxvQmhDdEVOO0lnQ3VFTSxpQkFBZ0I7SUFDaEIsWUFBVyxFQUNkO0VBMUdiO0lBNkdnQixvQmhDNUVOLEVnQzZFRztFQTlHYjtJQWlIZ0IsaUJBQWdCLEVBQ25CO0VBbEhiO0lBcUhnQixtQkFBa0IsRUFDckI7RUF0SGI7SUF5SGdCLG9CQUFtQixFQUN0Qjs7QUExSGI7RUE4SFksWUFBVyxFQUNkOztBQS9IVDs7RUFtSVksb0JBQW1CLEVBQ3RCOztBQXBJVDtFQXlJUSxnRmhDNkU0RTtFZ0M1RTVFLGdCaEN5RlEsRWdDcEZYO0VBL0lMO0lBNklZLGVoQy9DSSxFZ0NnRFA7O0FBOUlUO0VBa0pRLGdCQUFlLEVBV2xCO0VBN0pMO0lBcUpZLGNBQWEsRUFDaEI7RUF0SlQ7SUF5SlksZ0JBQWU7SUFDZixlaEN2Rkk7SWdDd0ZKLG1CQUFrQixFQUNyQjs7QUE1SlQ7RUFpS1ksaUJBQWdCO0VBQ2hCLGVoQy9GSSxFZ0NnR1A7O0FBbktUO0VBdUtRLGlCQUFnQixFQUNuQjs7QXRDOUpHO0VzQ29LSjtJQUdZLG1CaENwSUU7SWdDcUlGLG9CaENySUUsRWdDc0lMLEVBQUE7O0F0Q3pLTDtFc0NpTEo7SUFFUSxrQkFBaUI7SUFDakIsbUJBQWtCLEVBU3JCO0lBWkw7TUFNWSxjQUFhLEVBQ2hCO0lBUFQ7TUFVWSxhQUFZLEVBQ2Y7RUFYVDtJQWVRLGdCaEN3QkcsRWdDdkJOLEVBQUE7O0F0Q2pNRDtFc0N3TUo7SS9CN01BLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFK0I4TU47RUFITDtJQU1RLGdCaENLSSxFZ0NKUDtFQVBMO0lBVVEsYUFBWTtJQUNaLGdCQUFlLEVBQ2xCO0VBWkw7SUFlUSxnQkFBZSxFQUNsQjtFQWhCTDtJQW1CUSxtQkFBa0IsRUFLckI7SUF4Qkw7TS9CN01BLFlBQVc7TUFDWCxlQUFjO01BQ2QsWUFBVyxFK0JrT0Y7RUF2QlQ7SUEyQlEsWUFBVyxFQU1kO0lBakNMO01BOEJZLFlBQVc7TUFDWCxhQUFZLEVBQ2Y7RUFoQ1Q7SUFxQ1ksaUJBQWdCLEVBQ25CO0VBdENUO0lBeUNZLGdCQUFlO0lBQ2YsaUJBQWdCLEVBQ25CO0VBM0NUO0lBK0NRLG9CQUFtQixFQUN0QixFQUFBOztBdEN4UEQ7RXNDK1BKO0lBRVEsZ0JBQWUsRUFDbEI7RUFITDs7SUFPUSxjQUFhLEVBQ2hCLEVBQUE7O0F0Q3ZRRDtFc0M4UUo7SUFFUSxtQkFBa0IsRUFDckI7RUFITDtJQU1RLGVBQWMsRUFDakI7RUFQTDtJQWVZLFlBQVc7SUFDWCxnQkFBZTtJQUNmLGlCQUFnQjtJQUNoQixrQkFBaUIsRUFDcEI7RUFuQlQ7SUFzQlksZUFBYztJQUNkLGlCQUFnQixFQVVuQjtJQWpDVDtNQTBCZ0IsWUFBVyxFQU1kO01BaENiO1FBNkJvQixhQUFZO1FBQ1osY0FBYSxFQUNoQjtFQS9CakI7SUFxQ1ksaUJBQWdCLEVBY25CO0lBbkRUO01Bd0NnQixZQUFXO01BQ1gsbUJoQzFSSCxFZ0MyUkE7SUExQ2I7TUE2Q2dCLGlCQUFnQixFQUNuQjtJQTlDYjtNQWlEZ0IsY0FBYSxFQUNoQjtFQWxEYjtJQXVEZ0IsWUFBVztJQUNYLFdBQVUsRUFDYjtFQXpEYjtJQTREZ0IsYUFBWTtJQUNaLFdBQVUsRUFDYjtFQTlEYjtJQWtFWSxtQkFBa0I7SUFDbEIsVUFBUztJQUNULFdBQVU7SUFDVixlQUFjO0lBQ2QsYUFBWTtJQUNaLGFBQVksRUFDZjtFQXhFVDtJQTZFWSxZQUFXLEVBQ2QsRUFBQTs7QUFLYjs7a0RBRWtEO0FBRWxEO0VBR1Esb0JBQW1CLEVBQ3RCOztBQUpMO0VBT1EsZUFBYztFQUNkLG1CQUFrQixFQUNyQjs7QUFUTDtFQVlRLFlBQVc7RUFDWCxVQUFTLEVBQ1o7O0FBZEw7OztFQW1CUSxnQmhDL0pRLEVnQ2dLWDs7QUFwQkw7RUF1QlEsWUFBVztFQUNYLDBCQUF5QjtFQUN6QixrQkFBaUI7RUFDakIsbUJBQWtCO0VBQ2xCLGdDaEN4TnVCLEVnQ3lOMUI7O0FDL1lMOztrREFFa0Q7QUFFbEQ7RUFDSSxzQkFBcUIsRUErS3hCO0VBaExEO0lBSVEsZUFBYztJQUNkLGNqQ3dDVSxFaUN2Q2I7RUFOTDtJQVNRLGNqQ29DVTtJaUNuQ1YsbUJBQWtCLEVBQ3JCO0VBWEw7SUFlUSxZQUFXO0lBQ1gsbUJBQWtCLEVBQ3JCO0lBakJMO01mRFEsWUFBVTtNQUNWLG1CQUFrQjtNQUNsQixTQUFRO01BQ1IsVUFBUztNQUNULFlBQVc7TUFDWCxhQUFZO01BQ1osY0FBYSxFQUNoQjtJZU5MO01mU1Esd0JBQXVCO01BQ3ZCLGFBZDJCO01BZTNCLFdBQVMsRUFDWjtJZVpMO01mZVEsdURBQXNEO01BQ3RELDZCQUE0QjtNQUM1Qiw0QkFBMkI7TUFDM0IsV0FBUyxFQUNaO0llbkJMO01mc0JRLG1CQUFrQixFQU1yQjtNZTVCTDtRZjBCWSxlQUFjLEVBQ2pCO0VlM0JUO0lBb0JRLGNBQWEsRUFDaEI7RUFyQkw7SUF1QlEsZUFBYztJQUNkLGdGakM4TDRFO0lpQzdMNUUsZ0JBQWU7SUFDZixrQkFBaUI7SUFDakIsaUJBQWdCO0lBQ2hCLGFBQVk7SUFDWixtQkFBa0I7SUFDbEIsMEJBQXlCO0lBQ3pCLG1CQUFrQixFQWNyQjtJQTdDTDtNQWtDWSxZQUFXO01BQ1gsYUFBWTtNQUNaLGVBQWM7TUFDZCxlakN5REk7TWlDeERKLHNCQUFxQjtNQUNyQixvQkFBbUI7TUFDbkIsZ0JBQWU7TUFDZixtQkFBa0I7TUFDbEIsVUFBUztNQUNULFlBQTBCLEVBQzdCO0VBNUNUO0lBK0NRLGNqQ0ZVO0lpQ0dWLGlCQUFnQixFQWVuQjtJQS9ETDtNQW1EWSwwQkFBeUI7TUFDekIsaUNBQWdDO01BQ2hDLG1CQUFrQixFQVNyQjtNQTlEVDtRQXdEZ0IsYUFBWSxFQUNmO01BekRiO1FBNERnQixtQkFBa0IsRUFDckI7RUE3RGI7SUFtRVksaUJBQWdCO0lBQ2hCLGtCQUFpQixFQUtwQjtJQXpFVDtNQXVFZ0IsZWpDSkEsRWlDS0g7RUF4RWI7SUE2RVEscUJBQW9CLEVBeUN2QjtJQXRITDtNQWdGWSwwQkFBeUI7TUFDekIsb0JqQ2hERixFaUNpREQ7SUFsRlQ7TUFvRlksZWpDVUk7TWlDVEosYUFBWSxFQUNmO0lBdEZUO01BMEZnQixhQUFZO01BQ1osa0JBQWlCLEVBQ3BCO0lBNUZiO01BZ0dZLGtCQUFpQjtNQUNqQixtQkFBa0I7TUFDbEIsa0JBQWlCO01BQ2pCLGFBQVk7TUFDWixtQkFBa0I7TUFDbEIsYUFBWSxFQUNmO0lBdEdUO01BeUdZLFdBQVU7TUFFVixrQ0FBeUI7TUFBekIsMEJBQXlCLEVBVTVCO01BckhUO1FBK0dnQixnQkFBZSxFQUNsQjtNQWhIYjtRQW1IZ0IsV0FBVSxFQUNiO0VBcEhiO0lBeUhRLDBCQUF5QjtJQUN6QixtQkFBa0I7SUFDbEIsaUJBQWdCLEVBU25CO0lBcElMO01BOEhZLGFBQVk7TUFDWiwwQkFBeUIsRUFDNUI7SUFoSVQ7TUFrSVksZWpDcENJLEVpQ3FDUDtFQW5JVDtJQXVJUSxjakMxRlU7SWlDMkZWLGdCQUFlO0lBQ2YsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQixtQkFBa0IsRUFrQnJCO0lBN0pMO01BOElZLGlCQUFnQixFQUNuQjtJQS9JVDtNQWtKWSxhQUFZO01BQ1osa0JBQWlCO01BQ2pCLDBCQUF5QjtNQUN6QixnQmpDNkVHLEVpQzVFTjtJQXRKVDtNQTBKZ0IsaUJBQWdCLEVBQ25CO0VBM0piO0lBZ0tRLG1CQUFrQjtJQUNsQixXQUFVO0lBQ1YsY0FBYSxFQUNoQjtFQW5LTDtJQXNLUSxtQkFBa0I7SUFDbEIsYUFBWTtJQUNaLGNBQWEsRUFDaEI7RUF6S0w7O0lBOEtRLGNBQWEsRUFDaEI7O0FBR0w7O0VBRUksZUFBYyxFQUNqQjs7QXZDM0tPO0V1QzhLSjtJQUNJLFlBQVc7SUFDWCxtQkFBa0IsRUFDckIsRUFBQTs7QXZDakxHO0V1Q3FMSjtJQUNJLFdBQVUsRUFDYixFQUFBOztBdkN2TEc7RXVDMkxKO0lBR1ksZWpDMUdBLEVpQzJHSDtFQUpUO0lBUVksMEJBQXlCLEVBQzVCO0VBVFQ7SUFhUSxZQUFXLEVBQ2Q7RUFkTDtJQWlCUSxjakMvS0ssRWlDZ0xSO0VBbEJMO0lBcUJRLGtCQUErQixFQUNsQztFQXRCTDtJQXlCUSxxQkFBb0IsRUFnQ3ZCO0lBekRMO01BNEJZLFVBQVM7TUFDVCxZakNyTEU7TWlDc0xGLG1CQUFrQixFQUNyQjtJQS9CVDtNQW1DZ0Isc0JBQXFCLEVBb0J4QjtNQXZEYjtRQXVDd0IsZ0JBQWUsRUFDbEI7TUF4Q3JCO1FBMkN3QixzQkFBcUI7UUFDckIsb0JBQW1CLEVBQ3RCO01BN0NyQjtRQWdEd0IsWUFBVztRQUNYLFlBQVc7UUFDWCxnQkFBZTtRQUNmLHdCQUF1QjtRQUN2QixrQkFBaUIsRUFDcEIsRUFBQTs7QXZDaFBqQjtFdUN5UEo7SUFHWSxZQUFXO0lBQ1gsUUFBTztJQUNQLG1CQUFrQjtJQUNsQixZQUFXLEVBQ2Q7RUFQVDs7SUFjd0IsWUFBVztJQUNYLGVBQWM7SUFDZCxlQUFjLEVBQ2pCO0VBakJyQjtJQW9Cd0IsaUJBQWdCLEVBQ25CLEVBQUE7O0F2QzlRakI7RXVDdVJKO0lBR1ksWUFBVyxFQUNkLEVBQUE7O0FDelNiOztrREFFa0Q7QUFFbEQ7RUFDSSxtQkFBa0I7RUFDbEIsNkJBQTRCO0VBQzVCLDhCQUE2QjtFQUM3QixxQkFBb0I7RUFDcEIsdUJBQXNCO0VBQ3RCLGFBQVksRUE0Q2Y7RUFsREQ7SUFTUSwwQkFBeUI7SUFDekIsMEJsQ3lEUTtJa0N4RFIsUUFBTztJQUNQLGdCQUFlO0lBQ2YsbUJBQWtCO0lBQ2xCLE9BQU07SUFDTixZQUFXLEVBNEJkO0lBM0NMO01Ba0JZLGlDbEN5SmlCO01rQ3hKakIsZWxDZ0RJO01rQy9DSixnQkFBZTtNQUNmLGdCbEM4TUk7TWtDN01KLGlCQUFnQjtNQUNoQixpQkFBZ0IsRUFtQm5CO01BMUNUO1FBMEJnQixlbEMySW9CLEVrQzFJdkI7TUEzQmI7UUE4QmdCLDBCbENxQ0E7UWtDcENBLGFBQVksRUFDZjtNQWhDYjtRQW1DZ0IsYUFBWTtRQUNaLGtCQUFpQixFQUNwQjtNQXJDYjtRQXdDZ0Isb0JBQW1CLEVBQ3RCO0VBekNiO0k5QkNJLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBR1Ysb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyxpQ0p5RFE7SUl4RFIsaUJBQWdCO0k4Qm9DaEIsVUFBUztJQUNULFVBQVMsRUFDWjs7QUFHTDs7a0RBRWtEO0FBRWxEO0VBQ0ksb0JsQ2tIeUI7RWtDakh6QiwwQmxDd0gyQjtFa0N2SDNCLGNsQ3hCTyxFa0NnQ1Y7RUFYRDtJQU9ZLGlDbENtSG1CO0lrQ2xIbkIsaUJBQWdCLEVBQ25COztBeEN2REQ7RXdDNERKO0lBQ0ksY2xDaENTLEVrQ2lDWixFQUFBOztBQzVFTDs7a0RBRWtEO0FBRWxEO0VBR1ksaUNuQzZLYTtFbUM1S2IsZ0JuQ3lOSTtFbUN4TkosZ0ZuQ2lOd0U7RW1DaE54RSxpQkFBZ0I7RUFDaEIscUJuQzBCRjtFbUN6QkUsMEJBQXlCLEVBQzVCOztBQVRUO0VBWVksZUFBYyxFQUNqQjs7QUFiVDtFQWtCWSxpQ25DOEphO0VtQzdKYixlQUFjO0VBQ2QsZ0JuQ3lNSTtFbUN4TUosaUJBQWdCO0VBQ2hCLGdGbkNnTXdFO0VtQy9MeEUscUJuQ1VGLEVtQ1REOztBQXhCVDtFQTRCUSxnRm5DMEw0RSxFbUM5Sy9FO0VBeENMO0lBK0JZLG9CbkNFRixFbUNERDtFQWhDVDtJQW1DWSxZQUFXO0lBQ1gsZ0JuQytMSTtJbUM5TEosbUJuQ0pGO0ltQ0tFLDBCQUF5QixFQUM1Qjs7QUF2Q1Q7RUE0Q1ksaUNuQ29JYTtFbUNuSWIsZ0JuQ2dMSTtFbUMvS0osaUJBQWdCO0VBQ2hCLGdGbkN1S3dFO0VtQ3RLeEUsaUJBQWdCO0VBQ2hCLGdCQUFlO0VBQ2YsMEJBQXlCLEVBQzVCOztBQW5EVDtFQXNEWSxlQUFjO0VBQ2QsZ0ZuQytKd0U7RW1DOUp4RSxnQm5DMEtHLEVtQ3pLTjs7QXpDL0NEO0V5Q3NESjtJQUdZLFlBQVcsRUFDZCxFQUFBOztBekMxREw7RXlDa0VKO0lBR1ksWUFBVztJQUNYLG1CQUFrQixFQUNyQixFQUFBOztBekN2RUw7RXlDK0VKO0lBR1ksWUFBVyxFQUNkLEVBQUE7O0FDakdiOztrREFFa0Q7QUFLbEQ7Ozs7Ozs7O0VBTVksYUFBWSxFQUNmOztBQVBUOztFQWFZLGdCQUFlLEVBQ2xCOztBQWRUOztFQWlCWSxlcEMwRUk7RW9DekVKLCtCcENnTXFCO0VvQy9MckIsZ0JBQWU7RUFDZixrQkFBaUI7RUFDakIsZXBDc0RJLEVvQ3JEUDs7QUF0QlQ7O0VBeUJZLGVwQ2tFSSxFb0NqRVA7O0FBMUJUOztFQTZCWSxlcEM4REksRW9DN0RQOztBQTlCVDs7RUFpQ1ksZXBDMERJO0VvQ3pESiwrQnBDZ0xxQjtFb0MvS3JCLGdCcEMwTEM7RW9DekxELG1CQUFrQjtFQUNsQixrQkFBaUIsRUFDcEI7O0FBdENUOztFbkNFSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRW1Dd0NOOztBQUlUO0VBR1ksZXBDd0NJO0VvQ3ZDSixnQkFBZTtFQUNmLGVBQWM7RUFDZCwwQkFBeUIsRUFLNUI7RTFDcEREO0kwQ3lDUjtNQVNnQixnQkFBZSxFQUV0QixFQUFBOztBQVhUO0VBYVksaUJBQWdCO0VBQ2hCLFlBQVcsRUFDZDs7QUFmVDtFQWlCWSxZQUFXLEVBQ2Q7O0FBbEJUO0VBb0JZLGlCQUFnQjtFQUNoQixhQUFZLEVBQ2Y7O0FBSVQ7OztFQUlRLG9CcENwQ1UsRW9DZ0RiO0VBaEJMOzs7SUFPWSxpQkFBZ0IsRUFDbkI7RUFSVDs7O0lBV1ksaUJBQWdCO0lBQ2hCLGVBQWM7SUFDZCxtQkFBa0I7SUFDbEIsK0JwQ3lIb0IsRW9DeEh2Qjs7QWpDQ0w7RUFDSSxjQUFhLEVBQ2hCOztBQUdLO0VSekNOLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsZUttQ1k7RUxsQ1osZ0ZLMEpnRjtFTHpKaEYsZ0JBQWU7RUFDZixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLGlCQUFnQjtFTy9EaEIsdUJBQXNCO0VBQ3RCLHNCQUFxQjtFQUNyQiwwQkFBeUI7RUFDekIscUJBQW9CO0VBQ3BCLGtCQUFpQjtFQ2tFakIsb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQiwyQkFBMEI7RUFDMUIsa0JBQWlCO0VBQ2pCLG9CQUFtQjtFQUNuQixzQkhvR3FCO0VHbkdyQixtQkFBa0I7RUFDbEIsMEJINkZ5QjtFR3ZFakIsZUFBYyxFQUNqQjtFQUhDO0lDakdOLFlBQVc7SUFDWCxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCxlQUFjO0lBVVYsb0NBQXFDO0lBQ3JDLG1DQUFvQztJQUNwQyw4QkprRFE7SUlqRFIsb0JBQW1CO0lEZ0VuQixXQUFVO0lBQ1YsU0FBUTtJQUNSLGlCQUFnQixFQUNuQjtFQWFLO0lBVkYscUNIb0ZtRCxFR25GdEQ7O0FBY0s7RUFDRSxjSDNETTtFRzRETixVQUFTO0VBQ1Qsb0JBQW1CO0VBQ25CLG9CQUFtQjtFQUNuQixzQkhvRWEsRUduRWhCOztBQUNDO0VBQ0UsNEJBQTJCLEVBQzlCOztBaUNiVDtFQUlRLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFLbkI7RUFWTDtJQVFZLG1CcEMxRUYsRW9DMkVEOztBQU9UO0VBRVEsZUFBYztFQUNkLGtCQUFpQjtFQUNqQixtQkFBa0IsRUFHckI7RUFQTDtJQU1ZLG1CQUFrQixFQUFLOztBQU5uQztFQVVRLGdCQUFlO0VBQ2YsZUFBYztFQUNkLGdCcENvR1EsRW9DL0ZYO0VBakJMO0lBZVksY0FBYSxFQUNoQjs7QUFPVDtFQUVRLGFBQVksRUFDZjs7QUFHTDtFQUNJLG1CQUFrQixFQWFyQjtFQWREO0lBSVEsY0FBYSxFQUNoQjtFQUxMO0luQzNJSSxZQUFXO0lBQ1gsZUFBYztJQUNkLFlBQVcsRW1Da0pWO0VBVEw7SUFZUSxVQUFTLEVBQ1o7O0ExQ25KRztFMEN3Sko7SUFDSSxnQkFBZSxFQUNsQixFQUFBOztBQ3hLTDs7a0RBRWtEO0FBRWxEO0VBR1ksZXJDd0VHO0VxQ3ZFSCxnRnJDa053RTtFcUNqTnhFLGdCckM4Tkk7RXFDN05KLDBCQUF5QixFQUM1Qjs7QUFJVDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUVRLG9CQUFtQixFQVN0QjtFQVhMO0lBSVksYUFBWTtJQUNaLG1CQUFrQixFQUNyQjtFQU5UO0lBUVksYUFBWTtJQUNaLFlBQVcsRUFDZDs7QUM3QlQ7O2tEQUVrRDtBQUVsRDtFQUVRLGtCQUFpQixFQUtwQjtFQVBMO0lyQ0tJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFcUNETjs7QUFOVDtFQVVRLFlBQVc7RUFDWCxlQUFjO0VBQ2QsaUJBQWdCO0VBQ2hCLGlCQUFnQixFQU1uQjtFQW5CTDtJQWdCWSx1QkFBd0M7SUFDeEMsaUJBQWdCLEVBQ25COztBQWxCVDtFQXNCUSxZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLHVCQUF3QyxFQUMzQzs7QTVDZkc7RTRDcUJKO0lBRVEsZUFBYyxFQUNqQixFQUFBOztBNUN4QkQ7RTRDZ0NKO0lBQ0ksZ0JBQWUsRUFNbEI7SUFQRDtNQUlRLGVBQWM7TUFDZCxlQUFjLEVBQ2pCLEVBQUE7O0E1Q3RDRDtFNEM4Q0o7SUFDSSxnQkFBZSxFQW1CbEI7SUFwQkQ7TUFJUSwrQkFBOEIsRUFLakM7TUFUTDtRckNuREEsWUFBVztRQUNYLGVBQWM7UUFDZCxZQUFXLEVxQ3lERjtJQVJUO01BWVEsWUFBVztNQUNYLGdCQUFlO01BQ2YsZUFBYyxFQUNqQjtJQWZMO01Ba0JRLGlCQUFnQixFQUNuQixFQUFBOztBQy9FVDs7a0RBRWtEO0FBRWxEO0VBQ0ksZ0JBQWU7RUFDZixvQkFBbUIsRUFDdEI7O0FBQ0Q7RUFDSSxpQkFBZ0IsRUFDbkI7O0FBQ0Q7RUFDSSwwQnZDbUt5QjtFdUNsS3pCLDBCdkN1S3FCO0V1Q3RLckIsWUFBVztFQUNYLG9CQUFtQjtFQUNuQixxQkFBb0I7RUFDcEIsV0FBVSxFQUNiOztBQUNEO0VBQ0ksWUFBVztFQUNYLG1CQUFrQixFQUNyQjs7QUFDRDtFQUNJLGtCQUFpQixFQUNwQjs7QUFDRDtFQUNJLFlBQVc7RUFDWCxZQUFXO0VBQ1gsb0JBQW1CLEVBQ3RCOztBQUNEO0VBQ0ksWUFBVztFQUNYLG1CQUFrQixFQUNyQjs7QUFDRDtFQUNJLGdCQUFlLEVBQ2xCOztBQUNEO0VBRVEsV0FBVSxFQUtiO0VBUEw7SUFLWSxhQUFZLEVBQ2Y7O0E3QzlCRDtFNkNrQ0o7O0lBRUksWUFBVyxFQUNkLEVBQUE7O0FDbkRMOztrREFFa0Q7QUFDbEQ7RUFDSSxZQUFXO0VBQ1gsaUJBQWdCLEVBQ25COztBQUNEO0VBQ0ksWUFBVztFQUNYLGdCQUFlO0VBQ2YsZ0JBQWU7RUFDZixtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLG9CQUFtQixFQUN0Qjs7QUFDRDtFQUNJLDBCQUF5QjtFQUN6Qix1QkFBc0I7RUFDdEIsWUFBVyxFQUNkOztBQUNEO0VBQW1DLFVBQVUsRUFBRzs7QUFDaEQ7RUFDSSxnQkFBZTtFQUNmLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsV0FBVSxFQUNiOztBQUNEO0VBQ0ksdUNBQXNDO0VBQ3RDLCtDQUE4QztFQUM5Qyw0Q0FBMkMsRUFDOUM7O0FBQ0Q7RUFBcUYsWUFBWSxFQUFHOztBQUNwRztFQUNJLG1CQUFrQjtFQUNsQixXQUFVO0VBQ1YsU0FBUSxFQUNYOztBQUNEO0VBQWUsd0JBQXdCLEVBQUc7O0FBQzFDO0VBQTJCLG9CQUFvQixFQUFHOztBQUNsRDtFQUNJLFlBQVc7RUFDWCxZQUFXLEVBTWQ7RUFSRDtJQUtRLFlBQVU7SXZDcENkLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFdUNvQ1Y7O0FBRUw7O2tEQUVrRDtBQUNsRDtFQUNJLFlBQVc7RUFDWCxnQkFBZTtFQUNmLFlBQVcsRUFDZDs7QUN4REQ7O2tEQUVrRDtBL0NZMUM7RStDVEo7OztJQUlRLFlBQVc7SUFDWCxnQnpDd05HO0l5Q3ZOSCxtQkFBa0I7SUFDbEIsWUFBVyxFQUNkO0VBUkw7OztJQVVRLG1CQUFrQjtJQUNsQixZQUFXLEVBQ2QsRUFBQTs7QUNqQlQ7O2tEQUVrRDtBQUVsRDtFQUdRLG9CQUFtQixFQUt0QjtFQVJMO0lBTVkscUJBQW9CLEVBQ3ZCOztBaERHRDtFZ0RWUjtJQVdRLGdCMUN3TlEsRTBDNU1mO0lBdkJEO01BY1ksbUJBQWtCLEVBQ3JCO0lBZlQ7O01BbUJZLGFBQVksRUFDZixFQUFBOztBQUtUO0VBQ0ksWUFBVyxFQUtkO0VBTkQ7SUFJUSxtQjFDbUJhLEUwQ2xCaEI7O0FBR0w7RUFDSSxhQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLG9CMUNETyxFMENXVjtFaERwQ087SWdEdUJSO01BTVEsbUJBQWtCO01BQ2xCLFlBQVcsRUFNbEIsRUFBQTtFQWJEO0lBV1EsaUJBQWdCLEVBQ25COztBQUdMO0V6QzNDSSxZQUFXO0VBQ1gsZUFBYztFQUNkLFlBQVcsRXlDNENWOztBQUdMO0VBQ0ksZ0JBQWUsRUFDbEI7O0FDNUREOztrREFFa0Q7QUFFbEQ7RUFFUSxvQjNDaUNHLEUyQ1JOO0VBM0JMO0kxQ0tJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFMENETjtFQU5UO0lBU1ksaUJBQWdCO0lBQ2hCLFlBQVcsRUFDZDtFQVhUO0lBY1ksaUIzQzRCWTtJMkMzQlosbUIzQ2lDUyxFMkNoQ1o7RUFoQlQ7SUFtQlksYUFBWTtJQUNaLGdCM0M0QlMsRTJDdEJaO0lqRGhCRDtNaURWUjtRQXVCZ0IsWUFBVztRQUNYLFlBQVcsRUFFbEIsRUFBQTs7QUExQlQ7RUE4QlEsWUFBVztFQUNYLGdCM0NpQmE7RTJDaEJiLG1CM0NnQmEsRTJDZmhCOztBQUdMO0VBRVEsZUFBYyxFQUtqQjtFakRqQ0c7SWlEMEJSO01BS1ksZ0JBQWUsRUFFdEIsRUFBQTs7QUFHTDtFQUVRLGVBQTJCLEVBQzlCOztBakR2Q0c7RWlEMkNKOztJQUlZLGNBQWEsRUFDaEIsRUFBQTs7QUM5RGI7O2tEQUVrRDtBQUVsRDtFQUNFLFlBQVc7RUFDWCxZQUFXLEVBQ1o7O0FBQ0Q7RUFDRSxZQUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQixFQUNuQjs7QUNaRDs7a0RBRWtEO0FBRWxEOztHQUVHO0FBRUg7RUFJZ0IsWUFBVyxFQU1kO0VuREpMO0ltRE5SO01BUW9CLGlCQUFnQixFQUV2QixFQUFBOztBQUtiO0VBQ0ksWUFBVyxFQUNkOztBQUVEO0VBQ0ksWUFBVztFQUNYLFlBQVcsRUFDZDs7QW5EaEJPO0VtRG9CSjs7O0k1QjBTQSx1Q0FBdUM7SUFLdkMsOEJBQThCO0lBWTlCLHVCQUF1QjtJQWpCdkIsdUNBQXVDO0lBS3ZDLDhCQUE4QjtJQVk5Qix1QkFBdUIsRTRCcFRsQjtJNUJ5UzhCOzs7TUFDL0IsWUFBVyxFQUNkO0lBQ2tDOzs7TUFDL0IsWUFBVyxFQUNkO0lBQ2tDOzs7Ozs7TUFFL0IsdUJBQThELEVBQ2pFO0lBR2tDOzs7TUFDL0IsdUJBQThELEVBQ2pFO0lBQ2tDOzs7TUFDL0IsaUJBQTZDO01BQzdDLHVCQUE4RCxFQUNqRTtJQUNrQzs7O01BQy9CLFlBQVcsRUFDZDtJQUNrQzs7O01BQy9CLGdCQUFlLEVBQ2xCO0lBeEJrQzs7O01BQy9CLFlBQVcsRUFDZDtJQUNrQzs7O01BQy9CLFlBQVcsRUFDZDtJQUNrQzs7Ozs7O01BRS9CLHVCQUE4RCxFQUNqRTtJQUdrQzs7O01BQy9CLHVCQUE4RCxFQUNqRTtJQUNrQzs7O01BQy9CLGlCQUE2QztNQUM3Qyx1QkFBOEQsRUFDakU7SUFDa0M7OztNQUMvQixZQUFXLEVBQ2Q7SUFDa0M7OztNQUMvQixnQkFBZSxFQUNsQixFQUFBOztBdkI1Vkc7RW1EZ0NKO0k1QjhSQSx1Q0FBdUM7SUFLdkMsOEJBQThCO0lBWTlCLHVCQUF1QjtJQWpCdkIsdUNBQXVDO0lBS3ZDLDhCQUE4QjtJQVk5Qix1QkFBdUIsRTRCM1NsQjtJNUJnUzhCO01BQy9CLFlBQVcsRUFDZDtJQUNrQztNQUMvQixZQUFXLEVBQ2Q7SUFDa0M7O01BRS9CLHVCQUE4RCxFQUNqRTtJQUdrQztNQUMvQix1QkFBOEQsRUFDakU7SUFDa0M7TUFDL0IsaUJBQTZDO01BQzdDLHVCQUE4RCxFQUNqRTtJQUNrQztNQUMvQixZQUFXLEVBQ2Q7SUFDa0M7TUFDL0IsZ0JBQWUsRUFDbEI7SUF4QmtDO01BQy9CLFlBQVcsRUFDZDtJQUNrQztNQUMvQixZQUFXLEVBQ2Q7SUFDa0M7O01BRS9CLHVCQUE4RCxFQUNqRTtJQUdrQztNQUMvQix1QkFBOEQsRUFDakU7SUFDa0M7TUFDL0IsaUJBQTZDO01BQzdDLHVCQUE4RCxFQUNqRTtJQUNrQztNQUMvQixZQUFXLEVBQ2Q7SUFDa0M7TUFDL0IsZ0JBQWUsRUFDbEIsRUFBQTs7QTZCMVdMOztrREFFa0Q7QUFFbEQ7RUFFUSxZQUFXO0VBQ1gsWUFBVztFQUNYLG9CQUFtQixFQW1CdEI7RUF2Qkw7SUFNWSxZQUFXO0lBQ1gsV0FBVTtJQUNWLG1CQUFrQjtJQUNsQixvQkFBbUI7SUFDbkIsb0I5Q2lLaUI7SThDaEtqQiwwQkFBeUI7SUFDekIsaUM5Q29LYTtJOENuS2IsZ0M5Q21LYTtJOENsS2Isb0JBQW1CO0lBQ25CLGdGOUN1TXdFLEU4Q2hNM0U7SUF0QlQ7TUFpQmdCLDBCOUN3SFksRThDdkhmO0lBbEJiO01Bb0JnQixrQkFBaUIsRUFDcEI7O0FBckJiO0VBeUJRLFlBQVc7RUFDWCxZQUFXO0VBQ1gsb0JBQW1CLEVBVXRCO0VBckNMO0lBNkJZLGVBQWM7SUFDZCxZQUFXO0lBQ1gsZ0JBQWU7SUFDZixpQkFBZ0IsRUFDbkI7RUFqQ1Q7SUFtQ1ksYUFBWSxFQUNmOztBQXBDVDtFQXVDUSxxQkFBb0I7RUFDcEIsZ0JBQWU7RUFDZixvQkFBbUIsRUFDdEI7O0FBMUNMO0VBNENRLFlBQVc7RUFDWCxZQUFXLEVBQ2Q7O0FBOUNMO0VBZ0RRLFdBQVUsRUFDYjs7QUFqREw7RUFtRFEsV0FBVSxFQUNiOztBQXBETDtFQXNEUSxvQkFBbUIsRUFDdEI7O0FBdkRMO0VBMERRLGtCQUFpQjtFQUNqQixnQjlDa0tRO0U4Q2pLUixrQkFBaUIsRUFDcEI7O0FBN0RMO0VBZ0VRLGFBQVksRUFDZjs7QUFqRUw7RUFvRVEsYUFBWTtFQUNaLGtCQUFpQixFQUNwQjs7QUFHTDtFQUVRLHFCQUFvQjtFQUNwQixlQUFjO0VBQ2QsWUFBVztFQUNYLGFBQVksRUFDZjs7QUFHTDtFQUVRLGlCQUFnQixFQUNuQjs7QUFITDtFQUtRLGlCQUFnQixFQVluQjtFQWpCTDtJQU9ZLGlCQUFnQjtJQUNoQixtQkFBa0IsRUFDckI7RUFUVDtJQVdZLGlCQUFnQjtJQUNoQixvQkFBbUIsRUFDdEI7RUFiVDtJQWVZLGlCQUFnQixFQUNuQjs7QUFJVDs7Ozs7Ozs7Ozs7OztFQU1nQixvQkFBbUI7RUFDbkIsWUFBVztFQUNYLG9COUM2RGE7RThDNURiLGlDOUNpRVM7RThDaEVULGNBQWE7RUFDYixnQkFBZSxFQUNsQjs7QUFaYjs7Ozs7RUFlWSxvQkFBbUI7RUFDbkIsWUFBVztFQUNYLG9COUNvRGlCO0U4Q25EakIsaUM5Q3dEYTtFOEN2RGIsY0FBYTtFQUNiLGdCQUFlLEVBQ2xCOztBQXJCVDs7Ozs7RUF1Qlksb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFDbkI7O0FBSVQ7RUFFUSxZQUFXO0VBQ1gsWUFBVyxFQUNkOztBQUdMO0VBQ0ksdUJBQXNCLEVBQ3pCOztBQUVEO0VBQ0ksWUFBVztFQUNYLFlBQVUsRUFDYjs7QXBEeElPO0VvRDJJSjtJQUVRLG9CQUFtQixFQUN0QjtFQUVMOztJQUdRLFlBQVc7SUFDWCxZQUFXO0lBQ1gsVUFBUztJQUNULGlCQUFnQjtJQUNoQixnQkFBZSxFQUNsQixFQUFBOztBcER4SkQ7RW9ENkpKO0lBRVEsWUFBVyxFQUNkO0VBSEw7SUFNWSxZQUFXO0lBQ1gsVUFBUztJQUNULGlCQUFnQjtJQUNoQixpQkFBZ0I7SUFDaEIsa0JBQWlCLEVBQ3BCO0VBWFQ7SUFhWSxrQkFBaUI7SUFDakIsWUFBVyxFQUNkO0VBZlQ7SUFrQlEsWUFBVztJQUNYLFlBQVcsRUFDZDtFQXBCTDtJQXNCUSxZQUFXO0lBQ1gsb0JBQW1CLEVBQ3RCO0VBeEJMO0lBMkJZLGtCQUFpQixFQUNwQjtFQTVCVDtJQThCWSxZQUFXO0lBQ1gsaUJBQWdCLEVBQ25CO0VBaENUO0lBbUNRLFlBQVc7SUFDWCxXQUFVLEVBQ2IsRUFBQTs7QXBEbE1EO0VvRHVNSjtJQUNJLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFDbEIsaUJBQWdCLEVBQ25CLEVBQUE7O0FwRDNNRztFb0QrTUo7SUFFUSxlQUFjLEVBQ2pCLEVBQUE7O0FDelBSO0VBQ0csY0FBYTtFQUNiLDJCL0M0RmdCO0UrQzNGaEIsd0JBQXVCLEVBQ3hCOztBQUNIO0VBRUksWUFBVztFQUNYLGNBQWEsRUFDZDs7QUFKSDtFQVFNLGlCQUFnQjtFQUNoQixhQUFZLEVBQ2I7O0FBVkw7RUFZTSxZQUFXLEVBQ1o7O0FBT0w7RUFDRSxnQkFBZSxFQUNoQjs7QUFDRDtFQUVJLGNBQWEsRUFDZDs7QUFFSDtFQUdNLGNBQWEsRUFDZDs7QUFHTDtFQUVJLGtDL0NvRGdCLEUrQ25EakI7O0FBSEg7RUFLSSxvQi9DbUJPLEUrQ2xCUjs7QUFFSDtFQUVJLG9CQUFtQixFQUNwQjs7QUFHSDtFQUVJLCtCQUE4QjtFQUM5Qiw2QkFBNEIsRUFDN0I7O0FBSkg7RUFNSSxpQkFBZ0IsRUFDakI7O0FBUEg7RUFVSSx5QkFBd0IsRUFDekI7O0FBRUg7RUFFSSxjQUFhLEVBQ2Q7O0FBRUg7RUFDRSxvQkFBd0IsRUFDekI7O0FBQ0Q7RUFFSSxrQy9DaUJnQjtFK0NoQmhCLHFCL0NkTyxFK0NlUjs7QUMvRUg7O0VBSU0sdUJBQXNCLEVBQ3ZCOztBQUxMOztFQVVNLHVCQUFzQixFQUN2Qjs7QUFHTDtFL0NvQkksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFXLEUrQ2pCVjs7QXREb0JHO0VzRHpCUjtJQVVRLG1CQUFrQjtJQUNsQixvQkFBbUIsRUE4QnhCLEVBQUE7O0FBekNIOzs7RUFnQk0sZUFBYztFQUNkLG9CQUFtQjtFQUNuQixlQUFjO0VBQ2QsWUFBVztFQUlYLHVCQUFzQixFQVF2QjtFdERORztJc0R6QlI7OztNQXFCUSxjQUFhLEVBVWhCLEVBQUE7RXRETkc7SXNEekJSOzs7TUEyQlUsYUFBWSxFQUNiLEVBQUE7O0F0REhEO0VzRHpCUjtJQWtDUSxXQUFVO0lBQ1YsWUFBVyxFQUVkLEVBQUE7O0FBckNMO0VBdUNNLFlBQVcsRUFDWjs7QUN0REw7RUFFSSxvQkFBbUI7RUFDbkIsZ0JqRHVQWTtFaUR0UFosZWpEdUhZO0VpRHRIWixxQkFBb0IsRUFDckI7O0FBTkg7O0VBVU0sY0FBYSxFQUNkOztBQVhMOztFQWFNLFVBQVM7RUFDVCxvQkFBbUIsRUFhcEI7RXZEWUc7SXVEdkNSOztNQWlCVSxrQ2pENkVVLEVpRDVFWCxFQUFBO0VBbEJUOztJQXFCUSxtQkFBa0IsRUFDbkI7RUF0QlA7O0lBd0JRLGVqRG1HUTtJaURsR1IsaUNBQWdDLEVBQ2pDOztBQUVGO0VBNUJMOztJaERrQ0ksWUFBVztJQUNYLGVBQWM7SUFDZCxZQUFXLEVnRExOO0VBL0JUOztJQWlDVSxZQUFXO0lBQ1gsV0FBVTtJQUNWLGVBQWM7SUFDZCxjQUFhO0lBQ2IsdUJBQXNCLEVBQ3ZCO0VBdENUOztJQXdDVSxtQkFBa0I7SUFDbEIsb0JBQW1CLEVBQ3BCLEVBQUE7O0FBMUNUO0VBOENJLG1CQUFrQixFQU1uQjtFQXBESDtJQWlETSxvQkFBbUIsRUFFcEI7O0FBbkRMO0VBdURNLGtDakRvRVUsRWlEbkVYOztBQXhETDtFQTREVSxnQkFBZSxFQWNoQjtFQTFFVDtJQThEWSxVQUFTO0lBQ1QsZUFBYyxFQVVmO0lBekVYO01Ba0VjLGVqRHlERTtNaUR4REYsMkJBQTBCLEVBSzNCO01BeEViO1FBc0VnQiwwQkFBeUIsRUFDMUI7O0FBdkVmO0VBK0VJLGNBQWEsRUFDZDs7QXZEekNLO0V1RDZDTjtJQUNFLGNBQWEsRUFDZCxFQUFBOztBQUdIO0VBRVEsb0JBQW1CO0VBQ25CLG9CQUFtQjtFQUNuQixrQ2pEOEJRLEVpRDdCVDs7QUFMUDtFQU9RLGVBQWM7RUFDZCxZQUFXO0VBQ1gsWUFBVyxFQUNaOztBQVZQO0VBWVEsZ0ZqRDhJNEU7RWlEN0k1RSxnQmpEbUpTO0VpRGxKVCxvQkFBbUI7RUFDbkIsZUFBYztFQUNkLG9CakR4Q0ssRWlEeUNOOztBQWpCUDtFQW1CUSxXQUFVLEVBQ1g7O0FBcEJQO0VBc0JRLFlBQVcsRUFDWjs7QUF2QlA7RUF5QlEsYUFBWSxFQUtiO0VBOUJQO0lBMkJVLGtCQUFpQjtJQUNqQixhQUFZLEVBQ2I7O0FBSVQ7RUFFSSxpQkFBZ0IsRUFDakI7O0FBR0g7RUFDRSxVQUFTLEVBQ1Y7O0FBRUQ7RUFDRSxlakRWYztFaURXZCwyQkFBMEIsRUFLM0I7RUFQRDtJQUlJLGVqRHhDWTtJaUR5Q1osMkJBQTBCLEVBQzNCOztBQUdIO0VBQ0Usa0NqRG5CYztFaURvQmQsK0JqRHBCYztFaURxQmQsZ0JBQWUsRUFDaEI7O0FDakpEO0VBRUksYUFBWSxFQUNiOztBQUhIO0VBS0ksbUJBQWtCO0VBQ2xCLG9CQUFtQixFQUtwQjtFeEQ0Qks7SXdEdkNSO01BUU0sbUJBQWtCO01BQ2xCLG9CQUFtQixFQUV0QixFQUFBOztBQVhIO0VBYUksa0JBQWlCLEVBQ2xCOztBQWRIO0VBZ0JJLGNBQWEsRUFDZDs7QUFqQkg7RUFtQkksYUFBWTtFQUNaLFVBQVMsRUFDVjs7QUFyQkg7RUF3QlEsb0JsRHdDRyxFa0R2Q0o7O0FBekJQO0VBNEJRLGlCQUFnQixFQW9DakI7RUFoRVA7SUErQlUsa0NsRCtEVSxFa0Q5RFg7RUFoQ1Q7SUFtQ1ksaUJBQWdCO0lBQ2hCLGtCbEQ2QkMsRWtESEY7SUE5RFg7TUF1Q2MsK0JsRHVETSxFa0R0RFA7SUF4Q2I7TUE0Q2dCLFlBQVc7TUFDWCxnQkFBZSxFQUNoQjtJQTlDZjtNQWlEYyxpQmxEZ0JEO01rRGZDLGtCbERjSDtNa0RiRywrQmxEMkNNLEVrRHBDUDtNQTFEYjtRQXNEZ0Isc0JBQXFCO1FBQ3JCLHFCQUFvQjtRQUNwQixrQkFBaUIsRUFDbEI7SUF6RGY7TUE0RGMsb0JsREtELEVrREpBOztBQTdEYjtFQXFFTSxpQkFBZ0I7RUFDaEIsZUFBYztFQUNkLFlBQVc7RUFDWCxlQUFjO0VBQ2QsWUFBVztFQUNYLG1CQUFrQixFQW9DbkI7RUE5R0w7SUE2RVEsc0JBQXFCO0lBQ3JCLFlBQVc7SUFDWCxpQkFBZ0I7SUFDaEIsZUFBYyxFQTZCZjtJQTdHUDtNQW9GWSxzQkFBcUI7TUFDckIsdUJBQXNCO01BQ3RCLFlBQVc7TUFDWCxZQUFXO01BQ1gsYUFBWTtNQUNaLGVsRE9JLEVrRFdMO01BM0dYO1FBNEZjLFVBQVM7UUFDVCxlbERDTSxFa0RBUDtNQTlGYjtRQW9HZ0IsWUFBVztRQUNYLGFBQVk7UUFDWixVQUFTO1FBQ1QsWUFBVztRQUNYLGFBQVksRUFDYjs7QUN6R2Y7RUFFSSxrQkFBaUIsRUFRbEI7RUFWSDtJQUlNLGFBQVksRUFDYjtFQUxMO0lBT00sWUFBVztJQUNYLGFBQVksRUFDYjs7QUFUTDtFQWFJLGdCQUFlO0VBQ2YsaUJBQWdCLEVBQ2pCOztBQWZIO0VBb0JJLGtDbkQwRWdCO0VtRHpFaEIsb0JuRDRDUyxFbUQzQ1Y7RXpEaUJLO0l5RHZDUjtNQWtCUSxlQUFjLEVBSW5CLEVBQUE7O0FBdEJIO0VBd0JJLFVBQVM7RUFDVCxnQkFBa0I7RUFDbEIsb0JuRHVDUztFbUR0Q1QsK0JuRG1FZ0I7RW1EbEVoQixrQ25Ea0VnQjtFbURqRWhCLG1CQUFrQixFQWdCbkI7RUE3Q0g7SUFnQ00sWUFBVyxFQUNaO0VBakNMO0lBb0NNLG1CQUFrQjtJQUNsQixTQUFRO0lBQ1IsYUFBWSxFQUtiO0lBM0NMO01Bd0NRLFlBQVcsRUFFWjs7QUExQ1A7RUFpRFEsc0JBQXFCLEVBQ3RCOztBQWxEUDtFQXFESSxtQkFBa0IsRUFDbkI7O0FDdERIO0VBRUksMEJBQXlCO0VBQ3pCLDJCcEQyRmdCO0VvRDFGaEIsd0JBQXVCLEVBQ3hCOztBQUxIOzs7RUFTSSxpQnBEd0RTO0VvRHZEVCxvQkFBbUI7RUFDbkIscUJBQW9CO0VBQ3BCLGdCcEQ2T2EsRW9ENU9kOztBQWJIO0VBZUksY0FBYSxFQUNkOztBQWhCSDtFQWtCSSxlcEQ0RWdCO0VvRDNFaEIsMkJBQTBCLEVBVTNCO0VBN0JIO0lBc0JNLGVwRDBFVSxFb0R6RVg7RUF2Qkw7SUEwQk0saUJwRHNDSztJb0RyQ0wsZUFBYyxFQUNmOztBQTVCTDtFQStCSSxnQnBEMk5ZLEVvRDFOYjs7QUFoQ0g7RUFrQ0ksZ0JwRHVOYSxFb0R0TmQ7O0FBbkNIO0VBc0NVLGlDQUFnQyxFQUtuQztFQTNDUDtJQXlDWSwwQkFBeUIsRUFDMUI7O0FBMUNYO0VBK0NJLHNCQUFxQixFQUN0Qjs7QUFoREg7RUFrREksYXBEY08sRW9EYlI7O0FBRUg7RUFTSSxvQkFBbUI7RUFDbkIsa0NwRCtCZ0I7RW9EOUJoQixtQkFBa0IsRUFDbkI7RUFaSDtJQUlNLGlCQUFnQixFQUNqQjtFQUxMO0lBT00sZXBEb0NVLEVvRG5DWDs7QUFPTDtFQUVJLGdCcERtTGE7RW9EbExiLG1CQUFrQjtFQUNsQixnRnBEMktnRjtFb0QxS2hGLGlCQUFnQixFQUNqQjs7QUFHSDtFQUNFLGlCcERkUyxFb0RlVjs7QUFFRDtFQUdJLFdBQVU7RUFDVixVQUFTLEVBVVY7RUFkSDtJQU1NLGtCQUFpQjtJQUNqQixrQkFBaUI7SUFDakIsY0FBYTtJQUNiLGlCQUFnQixFQUlqQjtJQWJMO01BV1EsY0FBYSxFQUNkOztBQVpQO0VBaUJJLFdBQVU7RUFDVixVQUFTLEVBSVY7RUF0Qkg7SUFvQk0sY0FBYSxFQUNkOztBQ3RHTDtFQUVFLG9CQUFtQjtFQUNuQixtQkFBa0I7RUFDbEIsbUJBQWtCLEVBV2xCO0UzRHdCTTtJMkR2Q1I7TUFRRyxlQUFjO01BQ2QsWUFBVztNQUNYLGFBQVksRUFLYixFQUFBO0VBZkY7SXBEa0NJLFlBQVc7SUFDWCxlQUFjO0lBQ2QsWUFBVyxFb0R0Qlo7O0EzRHlCSztFMkR2Q1I7SUFtQkksK0JyRDJFZ0IsRXFEMUVoQixFQUFBOztBQXBCSjtFQXdCRSxlQUFjLEVBNEJkO0UzRGJNO0kyRHZDUjtNQTJCRyxXQUFVO01BQ1YsYUFBWTtNQUNaLG9CQUFtQjtNQUNuQixnQkFBZTtNQUNmLFVBQVMsRUFxQlYsRUFBQTtFQXBERjtJQXlDRyxhQUFZO0lBQ1osdUJBQXNCO0lBQ3RCLGtDckRtRGlCLEVxRDlDakI7SUFoREg7TUFvQ0ksWUFBVyxFQUlYO00zRERJO1EyRHZDUjtVQXNDSyxpQkFBZ0IsRUFFakIsRUFBQTtJM0RESTtNMkR2Q1I7UUE4Q0ksa0JyRG1CUyxFcURqQlYsRUFBQTtFQWhESDtJQWtERyxpQnJEZVUsRXFEZFY7O0FBbkRIO0VBdURHLCtCckR1Q2lCLEVxRHRDakI7O0EzRGpCSztFMkR2Q1I7SUE2REksaUJBQWdCLEVBQ2hCLEVBQUE7O0FBS0o7O0VBRUMsb0JBQXdCLEVBQ3hCOztBQ3RFRDtFQU1VLGNBQWEsRUFpQmQ7RTVEZ0JEO0k0RHZDUjtNQVNZLGlCQUFnQixFQWNuQixFQUFBO0VBdkJUO0lBYVksc0JBQXFCO0lBQ3JCLHVCQUFzQixFQUN2QjtFQWZYO0lBaUJZLGNBQWE7SUFDYixtQkFBa0I7SUFDbEIsWUFBVztJQUNYLHNCQUFxQjtJQUNyQix1QkFBc0I7SUFDdEIsaUJBQWdCLEVBQWE7O0FDdEJ6QztFQUVnQyx5QkFBeUI7RUFDckQsZXZEd0hZLEV1RHZIYjs7QUFKSDtFQUtzQiw2QkFBNkI7RUFDOUMsZXZEcUhXO0V1RHBIWCxXQUFXLEVBQ2I7O0FBUkg7RUFTdUIseUJBQXlCO0VBQzNDLGV2RGlIVztFdURoSFgsV0FBVyxFQUNiOztBQVpIO0VBYTJCLDZCQUE2QjtFQUNuRCxldkQ2R1csRXVENUdiOztBQWZIO0VBZ0I0QixvQkFBb0I7RUFDM0MsZXZEMEdXLEV1RHpHYjs7QUFsQkg7RUFxQkksY0FBYTtFQUNiLGNBQWE7RUFDYixhQUFZO0VBQ1osMEJ2RGdGVztFdUQvRVgsYUFBWSxFQUNiOztBQTFCSDtFQTRCSSxrQkFBaUIsRUFDbEI7O0FBN0JIO0VBK0JJLFlBQVcsRUFDWjs7QUFoQ0g7RUFrQ0kseUJBQXdCLEVBQ3pCOztBQW5DSDs7RUF3Q1EseUJBQXdCO0VBQ3hCLFlBQVc7RUFDWCx1QkFBc0I7RUFDdEIsMEJ2RDZHa0I7RXVENUdsQixhQUFZO0VBQ1osZUFBYztFQUNkLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsZ0J2RDZNSyxFdUR2TU47RUF0RFA7O0lBbURVLGV2RDJDVTtJdUQxQ1YsK0J2RDZMc0IsRXVENUx2QjtFQXJEVDs7SUFtRFUsZXZEMkNVO0l1RDFDViwrQnZENkxzQixFdUQ1THZCO0VBckRUOztJQW1EVSxldkQyQ1U7SXVEMUNWLCtCdkQ2THNCLEV1RDVMdkI7O0FBckRUO0VBeURNLGV2RCtDUyxFdUQ5Q1Y7O0FBMURMO0VBOERJLGVBQWM7RUFDZCxjQUFhLEVBS2Q7RUFwRUg7SUFrRU0sZ0JBQWUsRUFDaEI7O0FBbkVMO0VBdUVnQyx5QkFBd0IsRUFBSTs7QUF2RTVEO0VBd0VhLGVBQWMsRUFBSTs7QUFJL0I7RUFDRSxxQkFBb0IsRUFDckI7O0FBS0Q7O0VBR1EseUJBQXdCO0VBQ3hCLFlBQVc7RUFDWCx1QkFBc0I7RUFDdEIsMEJ2RCtEa0I7RXVEOURsQixhQUFZO0VBQ1osZUFBYztFQUNkLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLGdCdkQ4SkssRXVEeEpOO0VBbEJQOztJQWVVLGV2REpVO0l1REtWLCtCdkQ4SXNCLEV1RDdJdkI7RUFqQlQ7O0lBZVUsZXZESlU7SXVES1YsK0J2RDhJc0IsRXVEN0l2QjtFQWpCVDs7SUFlVSxldkRKVTtJdURLViwrQnZEOElzQixFdUQ3SXZCOztBQ3BHVDtFQUNFLHNCQUFxQjtFQUNyQixXQUFVO0VBQ1YsVUFBUyxFQXlDVjtFQTVDRDtJQU1JLG1CQUFrQjtJQUNsQixvQkFBbUI7SUFDbkIsaUJBQWdCO0lBQ2hCLGlCQUFnQixFQWtDakI7SUEzQ0g7TUFhUSx5REFBd0QsRUFDekQ7SUFkUDtNQWtCUSx5REFBd0QsRUFDekQ7SUFuQlA7TUF1Qk0sWUFBVztNQUNYLHNCQUFxQjtNQUNyQix1QkFBc0I7TUFDdEIsbUJBQWtCO01BQ2xCLGtCQUFpQjtNQUNqQixrQkFBaUI7TUFDakIsU0FBUTtNQUNSLFFBQU87TUFDUCxvQ0FBMkI7Y0FBM0IsNEJBQTJCO01BQzNCLFlBQVc7TUFDWCxhQUFZO01BQ1osdURBQXNEO01BQ3RELDJCQUEwQjtNQUMxQiw2QkFBNEIsRUFDN0I7SUFyQ0w7TUF3Q00sc0JBQXFCO01BQ3JCLGVBQWMsRUFDZjs7QUMxQ0w7RUFDRSxlQUFjO0VBQ2QsZ0JBQWU7RUFDZixjQUFhO0VBQ2IscUNBQWdDO0VBQ2hDLFFBQU87RUFDUCxPQUFNO0VBQ04sWUFBVztFQUNYLGFBQVk7RUFDWixXQUFVO0VBQ1YscUJBQW9CO0VBQ3BCLGtDekR5QmlDO0V5RHpCakMsMEJ6RHlCaUM7RXlEeEJqQyxpQkFBZ0I7RUFDaEIsa0NBQWlDLEVBa0tsQztFQS9LRDtJQWdCSSxXQUFVO0lBQ1Ysb0JBQW1CLEVBS3BCO0lBdEJIO01Bb0JNLFdBQVUsRUFDWDtFQXJCTDtJQXdCSSxXQUFVO0lBQ1Ysb0JBQW1CLEVBYXBCO0lBdENIO01BNEJNLFdBQVUsRUFDWDtJQTdCTDtNQStCTSxXQUFVO01BQ1Ysb0JBQW1CLEVBS3BCO00vREVHO1ErRHZDUjtVQW1DUSx5Q0FBZ0M7a0JBQWhDLGlDQUFnQyxFQUVuQyxFQUFBO0VBckNMO0lBeUNRLGtCQUFpQixFQUlwQjtJL0RORztNK0R2Q1I7UUEyQ1UsaURBQXdDO2dCQUF4Qyx5Q0FBd0MsRUFFN0MsRUFBQTtFQTdDTDtJQWdESSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFVBQVM7SUFDVCx5Q0FBZ0M7WUFBaEMsaUNBQWdDO0lBQ2hDLGFBQVk7SUFDWixZQUFXO0lBQ1gsK0NBQXNDO1lBQXRDLHVDQUFzQztJQUN0Qyx1QkFBc0I7SUFDdEIsZ0NBQStCO0lBQy9CLG1CQUFrQjtJQUNsQixXQUFVLEVBQ1g7O0FBRUQ7RUFDRTtJQUFRLGdDQUF1QjtZQUF2Qix3QkFBdUIsRUFBQTtFQUMvQjtJQUFRLGtDQUF5QjtZQUF6QiwwQkFBeUIsRUFBQSxFQUFBO0VBL0RyQztJQWtFSSxXQUFVO0lBQ1YsdUJBQXNCO0lBQ3RCLGtCQUFpQjtJQUNqQixXQUFVO0lBa0NWLGlCQUFnQjtJQUNoQixtQnpEekV1QjtJeUQwRXZCLHFCQUFvQjtJQUVwQiw0QnpEckV3QjtZeURxRXhCLG9CekRyRXdCO0l5RHNFeEIsMkR6RHhFK0I7SXlEd0UvQixtRHpEeEUrQjtJeUR3RS9CLDJDekR4RStCO0l5RHdFL0Isb0V6RHhFK0IsRXlEMEloQztJL0R2SUs7TStEdkNSO1FBd0VRLG1CQUFrQjtRQUNsQixTQUFPO1FBQ1AsVUFBUztRQUNULHlDQUFnQztnQkFBaEMsaUNBQWdDLEVBbUdyQyxFQUFBO0lBOUtIO01BZ0ZRLDRCQUEyQjtNQUMzQixxQnpEcUxlLEV5RGpMbEI7TUFyRkw7UUFtRlksaUJBQWdCLEVBQ25CO0lBcEZUO01BMkZNLGdCekQ4SlcsRXlEN0paO0lBNUZMO01BK0ZNLGlCekQ5Qk8sRXlEK0JSO0lBaEdMOzs7TUFvR00sb0J6RG5DTyxFeURvQ1I7SUFyR0w7TUFnSE0sZUFBYztNQUNkLFlBQVc7TUFDWCxhQUFZO01BQ1osV0FBVTtNQUNWLG9CQUFtQjtNQUNuQiwwQnpEckJVO015RHNCVixZQUFXO01BQ1gsZ0JBQWU7TUFDZixtQkFBa0I7TUFDbEIsU0FBUTtNQUNSLFVBQVM7TUFJVCxrQkFBaUI7TUFDakIsbUJBQWtCO01BRWxCLGdCQUFlO01BQ2Ysb0RBQW1EO01BQ25ELHNCQUFxQjtNQUNyQiw0QkFBMkI7TUFDM0IsNkJBQTRCO01BQzVCLHFDekRsRzZCO015RGtHN0IsNkJ6RGxHNkIsRXlEc0g5QjtNL0RuSEc7UStEdkNSO1VBNEhNLE9BQU0sRUE4QlAsRUFBQTtNQTFKTDtRQXdKUSwwQkFBcUMsRUFDdEM7SUF6SlA7TUE0Sk0sNkJBQTRCO01BTzVCLHVCQUFzQixFQVV2QjtNL0R0SUc7UStEdkNSO1VBK0pRLG1CQUFrQixFQWNyQixFQUFBO01BN0tMO1FBd0tRLGNBQWEsRUFDZDtNL0RsSUM7UStEdkNSO1VBMktRLG1CQUFrQixFQUVyQixFQUFBOztBQUlMO0VBQ0UsNEJBQTJCLEVBQzVCOztBQUVEO0VBR0ksV0FBVTtFQUNWLG9CQUFtQixFQU1wQjtFQVZIO0lBTU0sV0FBVTtJQUNWLG9CQUFtQjtJQUNuQix5Q0FBZ0M7WUFBaEMsaUNBQWdDLEVBQ2pDOztBQzlMTDtFQUNDLGVBQWUsRUFtQ2Y7RUFwQ0Q7SUFJRSxrQjFENERTO0kwRDNEVCxpQjFEMkRTO0kwRDFEVCwrQjFEd0ZrQixFMER2RmxCO0VBUEY7SUFVRSxvQkFBbUIsRUFDbkI7RWhFNEJNO0lnRXZDUjtNQWdCRyxlQUFjLEVBT2Q7TUF2Qkg7UXpEa0NJLFlBQVc7UUFDWCxlQUFjO1FBQ2QsWUFBVyxFeURmWDtJQXJCSjtNQTBCRyxZQUFXO01BQ1gsV0FBVSxFQU1WO01BakNIO1FBOEJJLGNBQWEsRUFDYixFQUFBOztBQU9KO0VBQ0MsaUIxRHlCVSxFMERkVjs7QUFFRDtFQUVFLG9CQUFtQixFQVVuQjtFQVpGO0lBS0csZ0YxRDBMaUY7STBEekxqRixnQjFEaU1ZO0kwRGhNWixpQkFBZ0IsRUFJaEI7SUFYSDtNQVNJLHNCQUFxQixFQUNyQjs7QUFLSjtFQUVFLFdBQVUsRUFDVjs7QUFIRjtFQU1HLFdBQVUsRUFDVjs7QUFJSDtFQUNDLGtCMURmVTtFMERnQlYsaUIxRGhCVTtFMERpQlYsK0IxRGFtQixFMERabkI7O0FBRUQ7RUFDQyxjQUFhO0VBQ2IsYUFBWSxFQUNaOztBQzlERDs7a0RBRWtEO0FBQ2xEO0VBRVEsMEJBQXlCLEVBUTVCO0VBVkw7SUFLWSxvQkFBbUI7SUFDbkIsb0JBQW1CO0lBQ25CLGVBQWM7SUFDZCxxQkFBb0IsRUFDdkIiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVc2FnZSBleGFtcGxlOlxuLy8gRm9yIElFIHNldCAkbXEtc3VwcG9ydCB0byBmYWxzZS5cbi8vIFNldCB0aGUgZml4ZWQgdmFsdWUuXG4vLyBUaGVuIHVzZSBtaXhpbnMgdG8gdGVzdCB3aGV0aGVyIHN0eWxlcyBzaG91bGQgYmUgYXBwbGllZC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1xLXN1cHBvcnQ6IGZhbHNlO1xuJG1xLWZpeGVkLXZhbHVlOiAxMDI0O1xuXG4vLyBSZW5kZXJzIGF0IGZpeGVkIHZhbHVlXG5AaW5jbHVkZSBicCAobWluLXdpZHRoLCAzMDBweCkgeyBcbiAgICBkaXYgeyBjb2xvcjojMDAwOyB9XG59XG5cbi8vIERvZXNuJ3QgcmVuZGVyIHdpdGhvdXQgTVEgc3VwcG9ydFxuQGluY2x1ZGUgYnAgKG1pbi13aWR0aCwgMTIwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiNGRkY7IH1cbn1cblxuLy8gRG9lc24ndCByZW5kZXIgd2l0aG91dCBNUSBzdXBwb3J0XG5AaW5jbHVkZSBicCAobWF4LXdpZHRoLCAzMDBweCkgeyBcbiAgICBkaXYgeyBjb2xvcjojNDQ0OyB9XG59XG5cbi8vIFJlbmRlcnMgYXQgZml4ZWQgdmFsdWVcbkBpbmNsdWRlIGJwIChtYXgtd2lkdGgsIDEyMDBweCkgeyBcbiAgICBkaXYgeyBjb2xvcjojODg4OyB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdVYnVudHVUaXRsaW5nLUJvbGQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQuc3ZnI1VidW50dVRpdGxpbmctQm9sZFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdVYnVudHVUaXRsaW5nLUJvbGQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQuc3ZnI1VidW50dVRpdGxpbmctQm9sZFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjIuMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBDb3JyZWN0cyBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqIENvcnJlY3RzIGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qXG4gKiBQcmV2ZW50cyBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgZm9yIGBoaWRkZW5gIGF0dHJpYnV0ZSBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBTZXRzIGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnRzIGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qXG4gKiBSZW1vdmVzIGRlZmF1bHQgbWFyZ2luLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGRyZXNzZXMgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5hOmZvY3VzIHtcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7IH1cblxuLypcbiAqIEltcHJvdmVzIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHlwb2dyYXBoeVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGRyZXNzZXMgYGgxYCBmb250IHNpemVzIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYCBpbiBGaXJlZm94IDQrLFxuICogU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07IH1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOSwgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qXG4gKiBDb3JyZWN0cyBmb250IGZhbWlseSBzZXQgb2RkbHkgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLypcbiAqIEltcHJvdmVzIHJlYWRhYmlsaXR5IG9mIHByZS1mb3JtYXR0ZWQgdGV4dCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkOyB9XG5cbi8qXG4gKiBTZXRzIGNvbnNpc3RlbnQgcXVvdGUgdHlwZXMuXG4gKi9cbnEge1xuICBxdW90ZXM6IFwiXFwyMDFDXCIgXCJcXDIwMURcIiBcIlxcMjAxOFwiIFwiXFwyMDE5XCI7IH1cblxuLypcbiAqIEFkZHJlc3NlcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLypcbiAqIFByZXZlbnRzIGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZXMgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qXG4gKiBDb3JyZWN0cyBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGaWd1cmVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3NlcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkgNS5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qXG4gKiAxLiBDb3JyZWN0cyBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKlxuICogMS4gQ29ycmVjdHMgZm9udCBmYW1pbHkgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0cyBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWVcbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKlxuICogQWRkcmVzc2VzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0cyBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZXMgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKlxuICogMS4gQWRkcmVzc2VzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlcyBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkuXG4gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qXG4gKiAxLiBBZGRyZXNzZXMgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzZXMgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbi8qXG4gKiBSZW1vdmVzIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqIG9uIE9TIFguXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qXG4gKiBSZW1vdmVzIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKlxuICogMS4gUmVtb3ZlcyBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkuXG4gKiAyLiBJbXByb3ZlcyByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAvKiAyICovIH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmVzZXRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbmh0bWwge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBQcmV2ZW50IHRhcCBoaWdobGlnaHQgb24gaU9TL0FuZHJvaWQgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiBQcmV2ZW50IGF1dG9tYXRpYyBzY2FsaW5nIG9uIGlPUyAqLyB9XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuaHRtbCxcbmJvZHksXG5pbWcsXG5maWVsZHNldCxcbmFiYnIsXG5hY3JvbnltIHtcbiAgYm9yZGVyOiAwOyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG50aCxcbmNvZGUsXG5jaXRlLFxuY2FwdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG5hZGRyZXNzIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxucTpiZWZvcmUsXG5xOmFmdGVyIHtcbiAgY29udGVudDogJyc7IH1cblxuaW5wdXQ6Zm9jdXMsXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzIHtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbmlmcmFtZSwgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEJhc2UgU3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQC1tcy12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7IH1cblxuQC1vLXZpZXdwb3J0IHtcbiAgd2lkdGg6IGRldmljZS13aWR0aDsgfVxuXG5Admlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoOyB9XG5cbmEsIGJ1dHRvbiB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cblxuYm9keSxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGFibGUsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogI2ZkZmRmZDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9iZy5qcGcpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbmEge1xuICBjb2xvcjogIzFmODZiZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG5hOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzFkN2ViMjtcbiAgY29sb3I6ICMwOTI5M2E7IH1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFR5cG9ncmFwaHlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5oMSwgLmgxIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjdlbTtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG5oMiwgLmgyIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG5oMywgLmgzIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4xOyB9XG5cbmg0LCAuaDQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuaDUsIC5oNSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuaDYsIC5oNiB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNoYXJlZCBDbGFzc2VzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmFkZHJlc3MtbGlzdCBhZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG5cbi5hdmFpbGFiaWxpdHkge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmF2YWlsYWJpbGl0eSAubGFiZWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5hdmFpbGFiaWxpdHkuaW4tc3RvY2sge1xuICBjb2xvcjogIzExQjQwMDsgfVxuXG4uYXZhaWxhYmlsaXR5LmF2YWlsYWJsZS1zb29uLFxuLmF2YWlsYWJpbGl0eS5vdXQtb2Ytc3RvY2sge1xuICBjb2xvcjogI0RGMjgwQTsgfVxuXG4uYXZhaWxhYmlsaXR5LW9ubHkge1xuICBjb2xvcjogI0RGMjgwQTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uZy1yZWNhcHRjaGEge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUGFnZSBUaXRsZXNcbiAqL1xuLnBhZ2UtdGl0bGUgaDEsXG4ucGFnZS10aXRsZSAuaDEsXG4ucGFnZS10aXRsZSBoMixcbi5wYWdlLXRpdGxlIC5oMixcbi5wcm9kdWN0LW5hbWUgaDEsXG4ucHJvZHVjdC1uYW1lIC5oMSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQmxvY2sgTW9kdWxlXG4gKi9cbi5ibG9jayxcbi5jb2wtbGVmdC1maXJzdCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLmNvbC1sZWZ0LWZpcnN0IC5ibG9jazpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5ibG9jay10aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTBweCAwIDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuYmxvY2stdGl0bGUgaDIsXG4gIC5ibG9jay10aXRsZSBoMyxcbiAgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLmJsb2NrLXRpdGxlIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogIzViNWI1YTsgfVxuXG5pbWcuaW1hZ2UtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuYm9keTpub3QoLmN1c3RvbWVyLWFjY291bnQpIC5ibG9jazpmaXJzdC1jaGlsZCAuYmxvY2stdGl0bGUge1xuICBib3JkZXItdG9wOiBub25lO1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uYmxvY2stc3VidGl0bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG5cbi5ibG9jay1jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogNXB4OyB9XG5cbi5ibG9jay1jb250ZW50LnVucGFkIHtcbiAgcGFkZGluZzogMDsgfVxuXG4uYmxvY2stY29udGVudCBsaS5pdGVtIHtcbiAgbWFyZ2luOiAwIDAgMTBweCA5cHg7IH1cblxuLmJsb2NrLWNvbnRlbnQgbGkuaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYmxvY2sgLmFjdGlvbnMge1xuICBtYXJnaW46IDEwcHggMCAwOyB9XG4gIC5ibG9jayAuYWN0aW9uczphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJsb2NrIC5hY3Rpb25zIGEge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5ibG9jayAuYWN0aW9ucyAuYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLmNvbC1sZWZ0IC5ibG9jayAuYWN0aW9ucyAuYnV0dG9uIH4gYSxcbi5jb2wtcmlnaHQgLmJsb2NrIC5hY3Rpb25zIC5idXR0b24gfiBhIHtcbiAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gIG1hcmdpbi1yaWdodDogNXB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLnNpZGViYXIgLmJsb2NrOm5vdCguYmxvY2stbGF5ZXJlZC1uYXYpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLnNpZGViYXIgLmJsb2NrOm5vdCguYmxvY2stbGF5ZXJlZC1uYXYpIC5ibG9jay10aXRsZSA+IHN0cm9uZyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDdweCAyNHB4O1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjQ0NDQ0NDO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gICAgICAuc2lkZWJhciAuYmxvY2s6bm90KC5ibG9jay1sYXllcmVkLW5hdikgLmJsb2NrLXRpdGxlID4gc3Ryb25nOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMxZjg2YmQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgICAgIC5zaWRlYmFyIC5ibG9jazpub3QoLmJsb2NrLWxheWVyZWQtbmF2KSAuYmxvY2stdGl0bGUgPiBzdHJvbmc6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjRjRGNEY0LCAzJSk7IH1cbiAgICAuc2lkZWJhciAuYmxvY2s6bm90KC5ibG9jay1sYXllcmVkLW5hdikgLmJsb2NrLXRpdGxlLmFjdGl2ZSA+IHN0cm9uZyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDdweCAyNHB4O1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjQ0NDQ0NDO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDsgfVxuICAgICAgLnNpZGViYXIgLmJsb2NrOm5vdCguYmxvY2stbGF5ZXJlZC1uYXYpIC5ibG9jay10aXRsZS5hY3RpdmUgPiBzdHJvbmc6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjMWY4NmJkO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAgICAgLnNpZGViYXIgLmJsb2NrOm5vdCguYmxvY2stbGF5ZXJlZC1uYXYpIC5ibG9jay10aXRsZS5hY3RpdmUgPiBzdHJvbmc6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjRjRGNEY0LCAzJSk7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTZWNvbmRhcnkgTmF2aWdhdGlvblxuICovXG4uYmxvY2stYWNjb3VudCAuYmxvY2stdGl0bGUsXG4uYmxvY2stY21zLW1lbnUgLmJsb2NrLXRpdGxlIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGJvcmRlci10b3A6IG5vbmU7IH1cbiAgLmJsb2NrLWFjY291bnQgLmJsb2NrLXRpdGxlIHN0cm9uZyxcbiAgLmJsb2NrLWNtcy1tZW51IC5ibG9jay10aXRsZSBzdHJvbmcge1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjMDAzYjVmOyB9XG5cbi5ibG9jay1hY2NvdW50IGxpLFxuLmJsb2NrLWNtcy1tZW51IGxpIHtcbiAgbWFyZ2luOiA3cHggMDsgfVxuICAuYmxvY2stYWNjb3VudCBsaSBzdHJvbmcsXG4gIC5ibG9jay1jbXMtbWVudSBsaSBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICMxZjg2YmQ7IH1cbiAgLmJsb2NrLWFjY291bnQgbGkgYSxcbiAgLmJsb2NrLWNtcy1tZW51IGxpIGEge1xuICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gICAgLmJsb2NrLWFjY291bnQgbGkgYTpob3ZlcixcbiAgICAuYmxvY2stY21zLW1lbnUgbGkgYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzFmODZiZDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBCdXR0b25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU2Vjb25kYXJ5IEJ1dHRvbnMgKi9cbi5jYXJ0IC5idXR0b25zLXNldCAuYnV0dG9uLFxuLmNhcnQtdGFibGUgLmJ1dHRvbixcbi5zaWRlYmFyIC5hY3Rpb25zIC5idXR0b24sXG4uYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiAjREREREREO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgcGFkZGluZzogN3B4IDE1cHg7IH1cbiAgLmNhcnQgLmJ1dHRvbnMtc2V0IC5idXR0b246aG92ZXIsXG4gIC5jYXJ0LXRhYmxlIC5idXR0b246aG92ZXIsXG4gIC5zaWRlYmFyIC5hY3Rpb25zIC5idXR0b246aG92ZXIsXG4gIC5idXR0b24uYnV0dG9uLXNlY29uZGFyeTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2QwZDBkMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNhcnQgLmJ1dHRvbnMtc2V0IC5idXR0b246YWN0aXZlLFxuICAuY2FydC10YWJsZSAuYnV0dG9uOmFjdGl2ZSxcbiAgLnNpZGViYXIgLmFjdGlvbnMgLmJ1dHRvbjphY3RpdmUsXG4gIC5idXR0b24uYnV0dG9uLXNlY29uZGFyeTphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNjNGM0YzQ7XG4gICAgY29sb3I6ICMwMDNiNWY7IH1cbiAgLmNhcnQgLmJ1dHRvbnMtc2V0IC5idXR0b246Zm9jdXMsXG4gIC5jYXJ0LXRhYmxlIC5idXR0b246Zm9jdXMsXG4gIC5zaWRlYmFyIC5hY3Rpb25zIC5idXR0b246Zm9jdXMsXG4gIC5idXR0b24uYnV0dG9uLXNlY29uZGFyeTpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgYmFja2dyb3VuZDogI2M0YzRjNDtcbiAgICBvdXRsaW5lOiBub25lOyB9XG5cbi5zaWRlYmFyIC5hY3Rpb25zIGJ1dHRvbi5idXR0b24ge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbi8qIFByaW1hcnkgQnV0dG9ucyAqL1xuLmJ1dHRvbixcbmJ1dHRvbixcblt0eXBlPXN1Ym1pdF0sXG4uY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbixcbiNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbixcbi5mb290ZXIgLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6ICMxZjg2YmQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiA5cHggMjRweCA4cHggMjRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMjAwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5idXR0b24sXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPXN1Ym1pdF0sXG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24sXG4gICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLFxuICAgIC5mb290ZXIgLmJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiA4cHggMjRweCA2cHggMjRweDsgfSB9XG4gIC5idXR0b246aG92ZXIsXG4gIGJ1dHRvbjpob3ZlcixcbiAgW3R5cGU9c3VibWl0XTpob3ZlcixcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b246aG92ZXIsXG4gICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbjpob3ZlcixcbiAgLmZvb3RlciAuYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAzYjVmO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuYnV0dG9uOmFjdGl2ZSxcbiAgYnV0dG9uOmFjdGl2ZSxcbiAgW3R5cGU9c3VibWl0XTphY3RpdmUsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uOmFjdGl2ZSxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uOmFjdGl2ZSxcbiAgLmZvb3RlciAuYnV0dG9uOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzE4Njc5MTtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uOmZvY3VzLFxuICBidXR0b246Zm9jdXMsXG4gIFt0eXBlPXN1Ym1pdF06Zm9jdXMsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uOmZvY3VzLFxuICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b246Zm9jdXMsXG4gIC5mb290ZXIgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE4Njc5MTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5idXR0b24ub3Blbi1saWdodGJveCxcbiAgYnV0dG9uLm9wZW4tbGlnaHRib3gsXG4gIFt0eXBlPXN1Ym1pdF0ub3Blbi1saWdodGJveCxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24ub3Blbi1saWdodGJveCxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLm9wZW4tbGlnaHRib3gsXG4gIC5mb290ZXIgLmJ1dHRvbi5vcGVuLWxpZ2h0Ym94IHtcbiAgICBiYWNrZ3JvdW5kOiAjOWQ5ZDlkICFpbXBvcnRhbnQ7IH1cbiAgICAuYnV0dG9uLm9wZW4tbGlnaHRib3g6aG92ZXLCoCxcbiAgICBidXR0b24ub3Blbi1saWdodGJveDpob3ZlcsKgLFxuICAgIFt0eXBlPXN1Ym1pdF0ub3Blbi1saWdodGJveDpob3ZlcsKgLFxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLm9wZW4tbGlnaHRib3g6aG92ZXLCoCxcbiAgICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24ub3Blbi1saWdodGJveDpob3ZlcsKgLFxuICAgIC5mb290ZXIgLmJ1dHRvbi5vcGVuLWxpZ2h0Ym94OmhvdmVywqAge1xuICAgICAgYmFja2dyb3VuZDogIzkwOTA5MDsgfVxuICAuYnV0dG9uLnNlY29uZGFyeSwgLmJ1dHRvbi5vdXRsaW5lLFxuICBidXR0b24uc2Vjb25kYXJ5LFxuICBidXR0b24ub3V0bGluZSxcbiAgW3R5cGU9c3VibWl0XS5zZWNvbmRhcnksXG4gIFt0eXBlPXN1Ym1pdF0ub3V0bGluZSxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24uc2Vjb25kYXJ5LFxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbi5vdXRsaW5lLFxuICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24uc2Vjb25kYXJ5LFxuICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24ub3V0bGluZSxcbiAgLmZvb3RlciAuYnV0dG9uLnNlY29uZGFyeSxcbiAgLmZvb3RlciAuYnV0dG9uLm91dGxpbmUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzAwM2I1ZjtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcGFkZGluZzogNnB4IDI0cHggNXB4IDI0cHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuYnV0dG9uLnNlY29uZGFyeSwgLmJ1dHRvbi5vdXRsaW5lLFxuICAgICAgYnV0dG9uLnNlY29uZGFyeSxcbiAgICAgIGJ1dHRvbi5vdXRsaW5lLFxuICAgICAgW3R5cGU9c3VibWl0XS5zZWNvbmRhcnksXG4gICAgICBbdHlwZT1zdWJtaXRdLm91dGxpbmUsXG4gICAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbi5zZWNvbmRhcnksXG4gICAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbi5vdXRsaW5lLFxuICAgICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLnNlY29uZGFyeSxcbiAgICAgICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbi5vdXRsaW5lLFxuICAgICAgLmZvb3RlciAuYnV0dG9uLnNlY29uZGFyeSxcbiAgICAgIC5mb290ZXIgLmJ1dHRvbi5vdXRsaW5lIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDI0cHggNHB4IDI0cHg7IH0gfVxuICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLm91dGxpbmU6aG92ZXIsXG4gICAgYnV0dG9uLnNlY29uZGFyeTpob3ZlcixcbiAgICBidXR0b24ub3V0bGluZTpob3ZlcixcbiAgICBbdHlwZT1zdWJtaXRdLnNlY29uZGFyeTpob3ZlcixcbiAgICBbdHlwZT1zdWJtaXRdLm91dGxpbmU6aG92ZXIsXG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLFxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uLm91dGxpbmU6aG92ZXIsXG4gICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLnNlY29uZGFyeTpob3ZlcixcbiAgICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24ub3V0bGluZTpob3ZlcixcbiAgICAuZm9vdGVyIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLFxuICAgIC5mb290ZXIgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gIC5idXR0b24uc2VhcmNoLWJ1dHRvbixcbiAgYnV0dG9uLnNlYXJjaC1idXR0b24sXG4gIFt0eXBlPXN1Ym1pdF0uc2VhcmNoLWJ1dHRvbixcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24uc2VhcmNoLWJ1dHRvbixcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5idXR0b25zLXNldCAuYnV0dG9uLnNlYXJjaC1idXR0b24sXG4gIC5mb290ZXIgLmJ1dHRvbi5zZWFyY2gtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87IH1cblxuYS5idXR0b24ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuYS5idXR0b246aG92ZXIge1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4vKiBEaXNhYmxlZCAtIGNsYXNzIGZvciBhbmNob3IsIHN0YXRlIGZvciBmb3JtIGVsZW1lbnRzICovXG4uYnV0dG9uLmRpc2FibGVkLFxuLmJ1dHRvbjpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6ICNDOEM4Qzg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYnV0dG9uIGltZywgYS5idXR0b24gaW1nIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7IH1cblxuLmJ1dHRvbjIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmJ1dHRvbjI6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi5idXR0b24yIHNwYW4sXG4uYnV0dG9uMiBzcGFuIHNwYW4ge1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzFmODZiZDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLmJ1dHRvbjIgc3Bhbjpob3ZlcixcbiAgLmJ1dHRvbjIgc3BhbiBzcGFuOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMxNDU3N2I7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY29sMi1zZXQgLmJ1dHRvbnMtc2V0IC5idXR0b24sXG4gIC5jb2wyLXNldCAuYnV0dG9ucy1zZXQgLmJ1dHRvbjIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5jb2wyLXNldCAuYnV0dG9ucy1zZXQgLmJhY2stbGluayB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY29sMi1zZXQgLmJ1dHRvbnMtc2V0IC5yZXF1aXJlZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmJ1dHRvbnMtc2V0IC5idXR0b24ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cbiAgLmJ1dHRvbnMtc2V0IC5iYWNrLWxpbmsge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmJ1dHRvbnMtc2V0IC5yZXF1aXJlZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBheXBhbCBCdXR0b25cbiAqL1xuLnBheXBhbC1sb2dvLnBheXBhbC1hZnRlciB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5wYXlwYWwtYWZ0ZXIgLnBheXBhbC1vciB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5wYXlwYWwtb3Ige1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgbWFyZ2luOiAwcHggMTBweCA1cHg7IH1cblxuLnBheXBhbC1hZnRlciAucGF5cGFsLWJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5wYXlwYWwtYnV0dG9uIHtcbiAgbGluZS1oZWlnaHQ6IDBweDsgfVxuXG4ucGF5cGFsLWJ1dHRvbiBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAucGF5cGFsLW9yIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDsgfVxuICAucGF5cGFsLWxvZ28sXG4gIC5wYXlwYWwtb3IsXG4gIC5wYXlwYWwtYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZsb2F0OiBub25lOyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQnV0dG9uIFNldHNcbiAqL1xuLmJ1dHRvbnMtc2V0IHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMTBweCAwIDA7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuYnV0dG9ucy1zZXQgcC5yZXF1aXJlZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuYnV0dG9ucy1zZXQgLmJhY2stbGluayB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzM3B4OyB9XG4gIC5idXR0b25zLXNldCBhOm5vdCguYnV0dG9uKSB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAwOyB9XG4gIC5idXR0b25zLXNldCBidXR0b24uYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtaW4td2lkdGg6IDE0MHB4OyB9XG4gIC5idXR0b25zLXNldDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogSWNvbnNcbiAqL1xuLmljb24tc3ByaXRlLCAuYnRuLXJlbW92ZTIsIC5zb3J0ZXIgPiAuc29ydC1ieSAuc29ydC1ieS1zd2l0Y2hlciwgLnNvcnRlciA+IC52aWV3LW1vZGUgLmdyaWQsXG4uc29ydGVyID4gLnZpZXctbW9kZSAubGlzdCwgLnNraXAtbmF2IC5pY29uLCAuc2tpcC1hY2NvdW50IC5pY29uLCAucmV2aWV3LXN1bW1hcnktdGFibGUgLnJhdGluZy1ib3ggLnJhdGluZy1udW1iZXI6YWZ0ZXIsIC5yYXRpbmdzLXRhYmxlIC5yYXRpbmctYm94LCAucmF0aW5ncy10YWJsZSAucmF0aW5nLWJveCAucmF0aW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuXG5AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogNCAvIDIpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAuaWNvbi1zcHJpdGUsIC5idG4tcmVtb3ZlMiwgLnNvcnRlciA+IC5zb3J0LWJ5IC5zb3J0LWJ5LXN3aXRjaGVyLCAuc29ydGVyID4gLnZpZXctbW9kZSAuZ3JpZCxcbiAgLnNvcnRlciA+IC52aWV3LW1vZGUgLmxpc3QsIC5za2lwLW5hdiAuaWNvbiwgLnNraXAtYWNjb3VudCAuaWNvbiwgLnJldmlldy1zdW1tYXJ5LXRhYmxlIC5yYXRpbmctYm94IC5yYXRpbmctbnVtYmVyOmFmdGVyLCAucmF0aW5ncy10YWJsZSAucmF0aW5nLWJveCwgLnJhdGluZ3MtdGFibGUgLnJhdGluZy1ib3ggLnJhdGluZyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX3Nwcml0ZUAyeC5wbmcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwcHggMTAwMHB4OyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQnJlYWRjcnVtYnNcbiAqL1xuLmJyZWFkY3J1bWJzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAtMTVweCAwIDE1cHg7IH1cblxuLmJyZWFkY3J1bWJzIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmJyZWFkY3J1bWJzIGEge1xuICBmbG9hdDogbGVmdDtcbiAgY29sb3I6ICMwMDNiNWY7IH1cblxuLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICBjb2xvcjogIzFmODZiZDsgfVxuXG4uYnJlYWRjcnVtYnMgc3Ryb25nIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLmJyZWFkY3J1bWJzIHNwYW4ge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMCA3cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBCdXR0b24gLSBSZW1vdmUgLyBQcmV2aW91c1xuICovXG4uYnRuLXJlbW92ZSxcbi5idG4tcHJldmlvdXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFREVERUQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLyogSGlkZSB0ZXh0ICovXG4gIGZvbnQ6IDAvMCBhO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmJ0bi1yZW1vdmU6YWZ0ZXIge1xuICBjb250ZW50OiAnWCc7XG4gIGNvbG9yOiAjMWY4NmJkO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uYnRuLXJlbW92ZTpob3ZlcjphZnRlciB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmJ0bi1yZW1vdmUyIHtcbiAgYmFja2dyb3VuZDogI2M1YzVjNTtcbiAgd2lkdGg6IDMzcHg7XG4gIGhlaWdodDogMzNweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uLWNhcnQtcmVtb3ZlLnN2Zyk7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uYnRuLXByZXZpb3VzOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjMWY4NmJkO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTJweDtcbiAgbWFyZ2luLXRvcDogLTRweDsgfVxuXG4uYnRuLXByZXZpb3VzOmhvdmVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjRkZGRkZGO1xuICBib3JkZXItbGVmdDogbm9uZTsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmN1cnJlbnRseSAuYnRuLXJlbW92ZSxcbi5ibG9jay1sYXllcmVkLW5hdiAuY3VycmVudGx5IC5idG4tcHJldmlvdXMsXG4ubWluaS1wcm9kdWN0cy1saXN0IC5idG4tcmVtb3ZlLFxuLm1pbmktcHJvZHVjdHMtbGlzdCAuYnRuLXByZXZpb3VzLFxuI2NvbXBhcmUtaXRlbXMgLmJ0bi1yZW1vdmUsXG4jY29tcGFyZS1pdGVtcyAuYnRuLXByZXZpb3VzIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogNnB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIENoZWNrb3V0IEFncmVlbWVudHNcbiAqL1xuLmNoZWNrb3V0LWFncmVlbWVudHMgbGkge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5jaGVja291dC1hZ3JlZW1lbnRzIC5hZ3JlZW1lbnQtY29udGVudCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG1heC13aWR0aDogNjcwcHg7XG4gIG1heC1oZWlnaHQ6IDEyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIENWViBTZWN1cml0eSBDb2RlXG4gKi9cbi5jdnYtd2hhdC1pcy10aGlzIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQ29udGFpbmVyXG4gKi9cbi5tYWluLWNvbnRhaW5lcixcbi5zdXBwb3J0LWNvbnRhaW5lcixcbi5ob21lLXNsaWRlLXdyYXBwZXIsXG4ucGFnZS1oZWFkZXIsXG4uaG9tZS1zbGlkZXItc2VhcmNoLWNvbnRhaW5lcixcbi5sYXRlc3QtbmV3cy1jb250YWluZXIsXG4ucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lcixcbi5mb290ZXItY29udGFpbmVyLFxuLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAucGFnZSAuZnVsbHNjcmVlbi1zbGlkZXIgLnNsaWNrLXNsaWRlIC5jb250ZW50LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogOTYwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxNXB4OyB9XG4gIC5tYWluLWNvbnRhaW5lcjphZnRlcixcbiAgLnN1cHBvcnQtY29udGFpbmVyOmFmdGVyLFxuICAuaG9tZS1zbGlkZS13cmFwcGVyOmFmdGVyLFxuICAucGFnZS1oZWFkZXI6YWZ0ZXIsXG4gIC5ob21lLXNsaWRlci1zZWFyY2gtY29udGFpbmVyOmFmdGVyLFxuICAubGF0ZXN0LW5ld3MtY29udGFpbmVyOmFmdGVyLFxuICAucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lcjphZnRlcixcbiAgLmZvb3Rlci1jb250YWluZXI6YWZ0ZXIsXG4gIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLnBhZ2UgLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZSAuY29udGVudC13cmFwcGVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4ud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5oZWFkZXItd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTA7IH1cblxuLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuY29sLW1haW4ge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAubWFpbi1jb250YWluZXIsXG4gIC5zdXBwb3J0LWNvbnRhaW5lcixcbiAgLnBhZ2UtaGVhZGVyLFxuICAuaG9tZS1zbGlkZS13cmFwcGVyLFxuICAuaG9tZS1zbGlkZXItc2VhcmNoLWNvbnRhaW5lcixcbiAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lcixcbiAgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIsXG4gIC5mb290ZXItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAzNXB4IDI1cHg7IH1cbiAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmhvbWUtc2xpZGUtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMjVweDtcbiAgICBwYWRkaW5nLXRvcDogMTVweDsgfSB9XG5cbi5mb290ZXItY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDBweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDb2x1bW4gTGF5b3V0c1xuICovXG4ubWFpbjphZnRlcixcbi5jb2wtd3JhcHBlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLmNvbC1sZWZ0LFxuLmNvbC1yaWdodCxcbi5jb2wtbWFpbiB7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4uY29sLWxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICAvKiBSZW1vdmUgdGhlIDE1cHggcGFkZGluZyAqL1xuICBjbGVhcjogbGVmdDsgfVxuICAuY29sLWxlZnQgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmNvbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDMwJTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgLyogUmVtb3ZlIHRoZSAxNXB4IHBhZGRpbmcgKi8gfVxuICAuY29sLXJpZ2h0IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5jb2wtbWFpbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNzAlOyB9XG5cbi5jb2wxLWxheW91dCAuY29sLW1haW4ge1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIC8qIFJlbW92ZSB0aGUgMTVweCBwYWRkaW5nICovIH1cblxuLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAvKiBSZW1vdmUgdGhlIDE1cHggcGFkZGluZyAqLyB9XG5cbi5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4ge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIC8qIFJlbW92ZSB0aGUgMTVweCBwYWRkaW5nICovIH1cblxuLmNvbDMtbGF5b3V0IC5jb2wtcmlnaHQge1xuICB3aWR0aDogMjAuODMzMzMlOyB9XG5cbi5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDc5LjE2NjY3JTsgfVxuICAuY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIC5jb2wtbWFpbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiA3My42ODQyMSU7IH1cbiAgLmNvbDMtbGF5b3V0IC5jb2wtd3JhcHBlciAuY29sLWxlZnQge1xuICAgIHdpZHRoOiAyNi4zMTU3OSU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpIHtcbiAgLmNvbDMtbGF5b3V0IC5jb2wtcmlnaHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmNvbDMtbGF5b3V0IC5jb2wtd3JhcHBlciB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtd3JhcHBlciAuY29sLW1haW4ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IDc1JTsgfVxuICAgIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIgLmNvbC1sZWZ0IHtcbiAgICAgIHdpZHRoOiAyNSU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5jb2wtbGVmdCxcbiAgLmNvbC1yaWdodCxcbiAgLmNvbC1tYWluLFxuICAuY29sMS1sYXlvdXQgLmNvbC1sZWZ0LFxuICAuY29sMS1sYXlvdXQgLmNvbC1yaWdodCxcbiAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbixcbiAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1sZWZ0LFxuICAuY29sMi1sZWZ0LWxheW91dCAuY29sLXJpZ2h0LFxuICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4sXG4gIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLWxlZnQsXG4gIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLXJpZ2h0LFxuICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluLFxuICAuY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIC5jb2wtbGVmdCxcbiAgLmNvbDMtbGF5b3V0IC5jb2wtcmlnaHQsXG4gIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIgLmNvbC1tYWluIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmNvbDMtbGF5b3V0IC5jb2wtd3JhcHBlciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmNvbC1tYWluIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuY29sLW1haW4gLmNvbC1sZWZ0IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC8qIE9uIHByb2R1Y3QgbGlzdGluZyBwYWdlcywgdGhlIGxlZnQgY29sdW1uIGdldHMgbW92ZWQgaW5zaWRlIGNvbC1tYWluIG9uIHNtYWxsIHZpZXdwb3J0cyAqLyB9IH1cblxuLyogQ29udGVudCBDb2x1bW5zICovXG4uY29sMi1zZXQge1xuICB3aWR0aDogMTAwJTsgfVxuICAuY29sMi1zZXQgLmNvbC0xLFxuICAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMjBweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgICAgIC5jb2wyLXNldCAuY29sLTEsXG4gICAgICAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICAgICAgcGFkZGluZzogMTBweDsgfSB9XG4gIC5jb2wyLXNldCAuY29sLTEge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmNvbDItc2V0IC5jb2wtMSxcbiAgICAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cbiAgLmNvbDItc2V0IC5uYXJyb3cge1xuICAgIHdpZHRoOiAzMyU7IH1cbiAgLmNvbDItc2V0IC53aWRlIHtcbiAgICB3aWR0aDogNjUlOyB9XG4gIC5jb2wyLXNldDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuYm9keSA+IC53cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRvcCBDb250YWluZXJcbiAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAudG9wLWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAwIDM1cHg7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBHbG9iYWwgU2l0ZSBOb3RpY2VcbiAqL1xuLmdsb2JhbC1zaXRlLW5vdGljZSB7XG4gIGJhY2tncm91bmQ6ICMxZjg2YmQ7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LXNpemU6IDE0cHg7IH1cbiAgLmdsb2JhbC1zaXRlLW5vdGljZSBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmdsb2JhbC1zaXRlLW5vdGljZSAubm90aWNlLWlubmVyIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogMTM2MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgIC5nbG9iYWwtc2l0ZS1ub3RpY2UgLm5vdGljZS1pbm5lciBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuZ2xvYmFsLXNpdGUtbm90aWNlIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJvbW90aW9uYWwgTWVzc2FnZSBCYW5uZXJcbiAqL1xuLnByb21vLW1zZyB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogR3JpZFxuICovXG4uZ3JpZDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTWVzc2FnZXNcbiAqL1xuLnN1Y2Nlc3Mge1xuICBjb2xvcjogIzExQjQwMDsgfVxuXG4uZXJyb3Ige1xuICBjb2xvcjogI0RGMjgwQTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLm5vdGljZSB7XG4gIGNvbG9yOiAjRTI2NzAzO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBNZXNzYWdlc1xuICovXG4ubWVzc2FnZXMge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5tZXNzYWdlcyBsaSBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4ubWVzc2FnZXMgbGkgbGk6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IC02cHg7IH1cblxuLm1lc3NhZ2VzIC5lcnJvci1tc2cgbGkge1xuICBjb2xvcjogI0RGMjgwQTsgfVxuXG4ubWVzc2FnZXMgLm5vdGljZS1tc2cgbGkge1xuICBjb2xvcjogI0UyNjcwMzsgfVxuXG4ubWVzc2FnZXMgLnN1Y2Nlc3MtbXNnIGxpIHtcbiAgY29sb3I6ICMxMUI0MDA7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MTVweCkge1xuICAub3JkZXItbGlzdC1ncmlkIC5jb2wtMSB7XG4gICAgd2lkdGg6IDMwJTsgfVxuICAub3JkZXItbGlzdC1ncmlkIC5jb2wtMiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gIC5vcmRlci1saXN0LWdyaWQgLmNvbC0zIHtcbiAgICBjbGVhcjogbm9uZTtcbiAgICB3aWR0aDogMjAlO1xuICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUGFnZSBQb3B1cFxuICovXG4ucGFnZS1wb3B1cCB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4ucGFnZS1wb3B1cCBoMSB7XG4gIG1hcmdpbjogMCAwIDAuNWVtO1xuICBmb250LXNpemU6IDM2cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUGF5bWVudCBNZXRob2RzXG4gKi9cbi5wYXltZW50LW1ldGhvZHMge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5wYXltZW50LW1ldGhvZHMgZHQge1xuICBwYWRkaW5nOiA1cHggMDsgfVxuXG4ucGF5bWVudC1tZXRob2RzIGRkIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7IH1cblxuLnBheW1lbnQtbWV0aG9kcyAuZm9ybS1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiA1cHggMTVweCAxNXB4O1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0OyB9XG5cbi5wYXltZW50LW1ldGhvZHMgLmZvcm0tbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCAjQ0NDQ0NDO1xuICBib3JkZXItdG9wOiBub25lO1xuICB0b3A6IC0xMXB4O1xuICBsZWZ0OiAzMHB4OyB9XG5cbi5wYXltZW50LW1ldGhvZHMgLmZvcm0tbGlzdDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkICNGNEY0RjQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIHRvcDogLTEwcHg7XG4gIGxlZnQ6IDMwcHg7IH1cblxuLnBheW1lbnQtbWV0aG9kcyAuZm9ybS1saXN0IGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBsZWFzZSBXYWl0IChMb2FkaW5nIEluZGljYXRvcilcbiAqL1xuLnBsZWFzZS13YWl0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiBQcmV2ZW50IHRoZSBsaW5lYnJlYWsgaW4gdGhlIEhUTUwgZnJvbSBjYXVzaW5nIGxheW91dCBpc3N1ZXMgKi8gfVxuICAucGxlYXNlLXdhaXQgaW1nIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB3aWR0aDogMjRweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcmljZSBCb3ggLSBTdGFuZGFyZFxuICovXG4ucHJpY2UtYm94IHtcbiAgbWFyZ2luOiA3cHggMDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5wcmljZS1ib3ggcCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnByaWNlLW5vdGljZSB7XG4gIGNvbG9yOiAjNWI1YjVhOyB9XG5cbi5wcmljZS1ib3ggLnByaWNlIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4ucHJpY2UtYm94IC5wcmljZSxcbi5wcmljZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4ucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gIGNvbG9yOiAjNWI1YjVhO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4ucHJpY2UtYm94IC5taW5pbWFsLXByaWNlLWxpbmsge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvKiBXZSB3YW50IHRoaXMgdG8gc2hvdyBvbiBpdHMgb3duIGxpbmUsIG90aGVyd2lzZSB0aGUgbGF5b3V0IGxvb2tzIGZ1bmt5ICovIH1cbiAgLnByaWNlLWJveCAubWluaW1hbC1wcmljZS1saW5rIC5sYWJlbCB7XG4gICAgY29sb3I6ICM1YjViNWE7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJpY2UgQm94IC0gU3BlY2lhbFxuICovXG4ucHJpY2UtYm94IC5vbGQtcHJpY2UsXG4ucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtbGFiZWwsXG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UsXG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gIGNvbG9yOiAjNWI1YjVhO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuXG4ucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHBhZGRpbmctbGVmdDogMWVtOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWxhYmVsIHtcbiAgICBjb2xvcjogI0Q4NEQzQzsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcmljZSBCb3ggLSBUYXhlc1xuICovXG4ucHJpY2UtYm94IC5wcmljZS1leGNsdWRpbmctdGF4LFxuLnByaWNlLWJveCAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbnNwYW4ud2VlZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRpZXIgUHJpY2VzXG4gKi9cbi5wcm9kdWN0LXByaWNpbmcsXG4udGllci1wcmljZXMsXG4udGllci1wcmljZXMtZ3JvdXBlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYmFja2dyb3VuZDogI0ZCRjRERTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0UyRDRDNztcbiAgbWFyZ2luLXRvcDogN3B4OyB9XG4gIC5wcm9kdWN0LXByaWNpbmcgbGksXG4gIC50aWVyLXByaWNlcyBsaSxcbiAgLnRpZXItcHJpY2VzLWdyb3VwZWQgbGkge1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAucHJvZHVjdC1wcmljaW5nIC5iZW5lZml0LFxuICAudGllci1wcmljZXMgLmJlbmVmaXQsXG4gIC50aWVyLXByaWNlcy1ncm91cGVkIC5iZW5lZml0IHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLnByb2R1Y3QtcHJpY2luZyAucHJpY2UsXG4gIC50aWVyLXByaWNlcyAucHJpY2UsXG4gIC50aWVyLXByaWNlcy1ncm91cGVkIC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSXRlbSBPcHRpb25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLml0ZW0tb3B0aW9ucyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLml0ZW0tb3B0aW9uczphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLml0ZW0tb3B0aW9ucyBkdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gICAgLml0ZW0tb3B0aW9ucyBkdDphZnRlciB7XG4gICAgICBjb250ZW50OiAnOiAnOyB9XG4gIC5pdGVtLW9wdGlvbnMgZGQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtYXJnaW46IDAgMCA2cHg7IH1cblxuLnRydW5jYXRlZCxcbi50cnVuY2F0ZWQgYS5kb3RzIHtcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbi50cnVuY2F0ZWQgYS5kZXRhaWxzIHtcbiAgY3Vyc29yOiBoZWxwO1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4OyB9XG4gIC50cnVuY2F0ZWQgYS5kZXRhaWxzOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnRydW5jYXRlZCAudHJ1bmNhdGVkX2Z1bGxfdmFsdWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDMwMDsgfVxuXG4udHJ1bmNhdGVkIC50cnVuY2F0ZWRfZnVsbF92YWx1ZSAuaXRlbS1vcHRpb25zIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAzMDA7XG4gIHdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWY4NmJkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xuICB0b3A6IDIxcHg7XG4gIGxlZnQ6IC0xMDBweDsgfVxuICAudHJ1bmNhdGVkIC50cnVuY2F0ZWRfZnVsbF92YWx1ZSAuaXRlbS1vcHRpb25zOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkICMxZjg2YmQ7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBsZWZ0OiA5N3B4O1xuICAgIHRvcDogLTdweDsgfVxuXG4udHJ1bmNhdGVkIC50cnVuY2F0ZWRfZnVsbF92YWx1ZSAuaXRlbS1vcHRpb25zID4gcCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cblxuLnRydW5jYXRlZCAuc2hvdyAuaXRlbS1vcHRpb25zIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAudHJ1bmNhdGVkIHtcbiAgICBjdXJzb3I6IGluaGVyaXQ7IH1cbiAgICAudHJ1bmNhdGVkIGEuZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnRydW5jYXRlZCAudHJ1bmNhdGVkX2Z1bGxfdmFsdWUgLml0ZW0tb3B0aW9ucyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgLnRydW5jYXRlZCAudHJ1bmNhdGVkX2Z1bGxfdmFsdWUgLml0ZW0tb3B0aW9ucyBwIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgICAgIC50cnVuY2F0ZWQgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIC5pdGVtLW9wdGlvbnM6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJpbnRlciBGcmllbmRseSBQYWdlXG4gKi9cbi5wYWdlLXByaW50IHtcbiAgd2lkdGg6IDYuNWluO1xuICBtYXJnaW46IDIwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQWRkIHRvIGxpbmtzXG4gKi9cbi5hZGQtdG8tbGlua3Mge1xuICBtYXJnaW46IDdweCAwOyB9XG4gIC5hZGQtdG8tbGlua3MgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDBweCAzcHggM3B4OyB9XG5cbi5hZGQtdG8tbGlua3MgLnNlcGFyYXRvciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU3RhbmRhcmQgRm9ybWF0dGVkIFRleHQgQmxvY2tcbiAqL1xuLnN0ZCBwIHtcbiAgbWFyZ2luOiAwIDAgMS41ZW07IH1cblxuLnN0ZCBvbCB7XG4gIGxpc3Qtc3R5bGU6IGRlY2ltYWwgb3V0c2lkZTtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cblxuLnN0ZCBvbCBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAyZW07IH1cblxuLnN0ZCB1bCB7XG4gIGxpc3Qtc3R5bGU6IGRpc2Mgb3V0c2lkZTtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cblxuLnN0ZCB1bCBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAyZW07IH1cblxuLnN0ZCAubm90ZSB7XG4gIGNvbG9yOiAjNWI1YjVhO1xuICBmb250LXNpemU6IDEzcHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVGFic1xuICovXG4udGFicyB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVG9vbGJhclxuICovXG4udG9vbGJhciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0NDQ0NDQztcbiAgYmFja2dyb3VuZDogI0Y0RjRGNDtcbiAgcGFkZGluZzogNXB4IDEwcHggMHB4IDEwcHg7IH1cbiAgLnRvb2xiYXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5wYWdlci1uby10b29sYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4ucGFnZXItbm8tdG9vbGJhciB+IC5wYWdlci1uby10b29sYmFyIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4udG9vbGJhcixcbi5wYWdlciB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4udG9vbGJhciBsYWJlbCxcbi5wYWdlci1uby10b29sYmFyIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uc29ydGVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuc29ydGVyIGxhYmVsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgIC5zb3J0ZXIgbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogJzonOyB9XG5cbi5zb3J0ZXIgPiAuc29ydC1ieSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgaGVpZ2h0OiAzMHB4OyB9XG4gIC5zb3J0ZXIgPiAuc29ydC1ieSAuc29ydC1ieS1zd2l0Y2hlciB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuc29ydGVyID4gLnNvcnQtYnkgLnNvcnQtYnktc3dpdGNoZXItLWFzYyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNHB4IC01NDJweDsgfVxuICAgIC5zb3J0ZXIgPiAuc29ydC1ieSAuc29ydC1ieS1zd2l0Y2hlci0tYXNjOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00NnB4IC01NDJweDsgfVxuICAuc29ydGVyID4gLnNvcnQtYnkgLnNvcnQtYnktc3dpdGNoZXItLWRlc2Mge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDRweCAtNTY3cHg7IH1cbiAgICAuc29ydGVyID4gLnNvcnQtYnkgLnNvcnQtYnktc3dpdGNoZXItLWRlc2M6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ2cHggLTU2N3B4OyB9XG5cbi5zb3J0ZXIgPiAudmlldy1tb2RlIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5zb3J0ZXIgPiAudmlldy1tb2RlIC5ncmlkLFxuICAuc29ydGVyID4gLnZpZXctbW9kZSAubGlzdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4OyB9XG4gIC5zb3J0ZXIgPiAudmlldy1tb2RlIC5ncmlkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4cHggLTQ5MnB4OyB9XG4gIC5zb3J0ZXIgPiAudmlldy1tb2RlIHN0cm9uZy5ncmlkLFxuICAuc29ydGVyID4gLnZpZXctbW9kZSBhLmdyaWQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00MnB4IC00OTJweDsgfVxuICAuc29ydGVyID4gLnZpZXctbW9kZSAubGlzdCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTFweCAtNTE3cHg7IH1cbiAgLnNvcnRlciA+IC52aWV3LW1vZGUgc3Ryb25nLmxpc3QsXG4gIC5zb3J0ZXIgPiAudmlldy1tb2RlIGEubGlzdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM5cHggLTUxN3B4OyB9XG5cbi5wYWdlciB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLnBhZ2VyIC5hbW91bnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbjogMCAxNXB4IDAgMDsgfVxuICAucGFnZXIgLmxpbWl0ZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgfVxuICAgIC5wYWdlciAubGltaXRlciA+IGxhYmVsIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDsgfVxuICAgICAgLnBhZ2VyIC5saW1pdGVyID4gbGFiZWw6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnOic7IH1cbiAgLnBhZ2VyIC5hbW91bnQsXG4gIC5wYWdlciAubGltaXRlcixcbiAgLnBhZ2VyIC5wYWdlcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5wYWdlciBvbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5wYWdlcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnBhZ2VzIHN0cm9uZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ucGFnZXMgbGkge1xuICBmbG9hdDogbGVmdDsgfVxuXG4ucGFnZXMgYSxcbi5wYWdlcyAuY3VycmVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5wYWdlcyBhLm5leHQsIC5wYWdlcyBhLnByZXZpb3VzLFxuICAucGFnZXMgLmN1cnJlbnQubmV4dCxcbiAgLnBhZ2VzIC5jdXJyZW50LnByZXZpb3VzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5wYWdlcyAuY3VycmVudCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAucGFnZXMgLmN1cnJlbnQ6aG92ZXIge1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi5wYWdlcyAubmV4dCxcbi5wYWdlcyAucHJldmlvdXMge1xuICBmb250OiAwLzAgYTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucGFnZXMgLm5leHQ6aG92ZXIsXG4gIC5wYWdlcyAucHJldmlvdXM6aG92ZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxZjg2YmQ7IH1cblxuLnBhZ2VzIC5uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMWY4NmJkO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4OyB9XG5cbi5wYWdlcyAubmV4dDpob3ZlcjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzE0NTc3YjtcbiAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG5cbi5wYWdlcyAucHJldmlvdXM6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjMWY4NmJkO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0zcHg7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7IH1cblxuLnBhZ2VzIC5wcmV2aW91czpob3ZlcjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICMxNDU3N2I7XG4gIGJvcmRlci1sZWZ0OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLnBhZ2VyIC5hbW91bnQtLWhhcy1wYWdlcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucGFnZXMge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5saW1pdGVyIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuY29sMS1sYXlvdXQgLnNvcnRlcixcbiAgLmNvbDEtbGF5b3V0IC5wYWdlciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNvbDEtbGF5b3V0IC5wYWdlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuY29sMS1sYXlvdXQgLnBhZ2VyIC5wYWdlcyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5wYWdlciAuY291bnQtY29udGFpbmVyIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLmNvbDItbGVmdC1sYXlvdXQgLnNvcnRlcixcbiAgLmNvbDItbGVmdC1sYXlvdXQgLnBhZ2VyLFxuICAuY29sMi1yaWdodC1sYXlvdXQgLnNvcnRlcixcbiAgLmNvbDItcmlnaHQtbGF5b3V0IC5wYWdlcixcbiAgLmNvbDMtbGF5b3V0IC5zb3J0ZXIsXG4gIC5jb2wzLWxheW91dCAucGFnZXIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jb2wyLWxlZnQtbGF5b3V0IC5wYWdlcixcbiAgLmNvbDItcmlnaHQtbGF5b3V0IC5wYWdlcixcbiAgLmNvbDMtbGF5b3V0IC5wYWdlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAucGFnZXIgLnBhZ2VzLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAucGFnZXIgLnBhZ2VzLFxuICAgIC5jb2wzLWxheW91dCAucGFnZXIgLnBhZ2VzIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAucGFnZXIgLmNvdW50LWNvbnRhaW5lcixcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLnBhZ2VyIC5jb3VudC1jb250YWluZXIsXG4gICAgLmNvbDMtbGF5b3V0IC5wYWdlciAuY291bnQtY29udGFpbmVyIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gIC50b29sYmFyIC52aWV3LW1vZGUgPiBsYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFRheCAtIEZ1bGwgVGF4IFN1bW1hcnlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlIC5zdW1tYXJ5LWNvbGxhcHNlLFxuI3Nob3BwaW5nLWNhcnQtdG90YWxzLXRhYmxlIC5zdW1tYXJ5LWNvbGxhcHNlLFxuYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIC5zdW1tYXJ5LWNvbGxhcHNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgI2NoZWNrb3V0LXJldmlldy10YWJsZSAuc3VtbWFyeS1jb2xsYXBzZTpiZWZvcmUsXG4gICNzaG9wcGluZy1jYXJ0LXRvdGFscy10YWJsZSAuc3VtbWFyeS1jb2xsYXBzZTpiZWZvcmUsXG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSAuc3VtbWFyeS1jb2xsYXBzZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLXJpZ2h0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiA3cHggc29saWQgIzFmODZiZDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICNjaGVja291dC1yZXZpZXctdGFibGUgLnN1bW1hcnktY29sbGFwc2U6aG92ZXI6YmVmb3JlLFxuICAjc2hvcHBpbmctY2FydC10b3RhbHMtdGFibGUgLnN1bW1hcnktY29sbGFwc2U6aG92ZXI6YmVmb3JlLFxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUgLnN1bW1hcnktY29sbGFwc2U6aG92ZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogN3B4IHNvbGlkICMxNDU3N2I7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlIC5zaG93LWRldGFpbHMgLnN1bW1hcnktY29sbGFwc2U6YmVmb3JlLFxuI3Nob3BwaW5nLWNhcnQtdG90YWxzLXRhYmxlIC5zaG93LWRldGFpbHMgLnN1bW1hcnktY29sbGFwc2U6YmVmb3JlLFxuYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIC5zaG93LWRldGFpbHMgLnN1bW1hcnktY29sbGFwc2U6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgIzFmODZiZDtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlIC5zaG93LWRldGFpbHMgLnN1bW1hcnktY29sbGFwc2U6aG92ZXI6YmVmb3JlLFxuI3Nob3BwaW5nLWNhcnQtdG90YWxzLXRhYmxlIC5zaG93LWRldGFpbHMgLnN1bW1hcnktY29sbGFwc2U6aG92ZXI6YmVmb3JlLFxuYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlIC5zaG93LWRldGFpbHMgLnN1bW1hcnktY29sbGFwc2U6aG92ZXI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgIzE0NTc3YjtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuXG4jc2hvcHBpbmctY2FydC10b3RhbHMtdGFibGUgdGZvb3QgdGQgLnN1bW1hcnktY29sbGFwc2U6YmVmb3JlLCAjc2hvcHBpbmctY2FydC10b3RhbHMtdGFibGUgdGZvb3QgdGQgLnN1bW1hcnktY29sbGFwc2U6aG92ZXI6YmVmb3JlIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE1hZ2VudG8gSGVscGVyc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uYS1yaWdodCxcbi5hbGlnbi1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5uby1kaXNwbGF5IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5ub2JyLFxuLm5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLndpZHRoLWZ1bGwge1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDdXN0b20gSGVscGVyc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFByaW50IFN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wYWdlLXByaW50IC5wcmludC1oZWFkIHtcbiAgbWFyZ2luOiAwIDAgMTVweDsgfVxuXG4ucGFnZS1wcmludCAucHJpbnQtaGVhZCAubG9nbyB7XG4gIGZsb2F0OiBub25lO1xuICBtYXgtaGVpZ2h0OiA1MHB4O1xuICB3aWR0aDogYXV0bzsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBIb21lIFBhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uaG9tZS1zbGlkZXItY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTBweCA4MHB4OyB9XG4gICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIGgxLFxuICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciBoMS5ob21lLXNsaWRlLXRpdGxlLFxuICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciBoMi5ob21lLXNsaWRlLXRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAxNXB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgaDEsXG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciBoMS5ob21lLXNsaWRlLXRpdGxlLFxuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgaDIuaG9tZS1zbGlkZS10aXRsZSB7XG4gICAgICAgICAgdG9wOiAxNXB4OyB9IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIGgxLFxuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgaDEuaG9tZS1zbGlkZS10aXRsZSxcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIGgyLmhvbWUtc2xpZGUtdGl0bGUge1xuICAgICAgICAgIGxlZnQ6IDI1cHg7IH0gfVxuICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgei1pbmRleDogMTsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtaW1hZ2Uge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAyNXB4O1xuICAgICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgIHRvcDogMTAlOyB9IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgICBib3R0b206IDklOyB9IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgICB3aWR0aDogNjIlO1xuICAgICAgICAgIGJvdHRvbTogMDsgfSB9XG4gICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQge1xuICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMCU7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IHtcbiAgICAgICAgICB3aWR0aDogNDMlO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNSU7IH0gfVxuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnNoYXJlLWJ1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAuc2hhcmUtYnV0dG9ucy5zbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5zaGFyZS1idXR0b25zIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNzBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnNoYXJlLWJ1dHRvbnMgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnNoYXJlLWJ1dHRvbnMgYTpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnNoYXJlLWJ1dHRvbnMgaW1nIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAuODtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAuaGVhZGxpbmUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDM1cHg7IH0gfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzNnB4OyB9IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0NHB4OyB9IH1cbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IHAge1xuICAgICAgICBjb2xvcjogIzViNWI1YTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCBwIGEge1xuICAgICAgICAgIGNvbG9yOiAjNWI1YjVhO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCBhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgaDIsIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAuaG9tZS1zbGlkZS1jb250ZW50IC5oMiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCBoMiwgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLmgyIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCBoMi5zbWFsbCwgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLmgyLnNtYWxsIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiAxODAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC04MCU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfSB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLmhvbWUtc2xpZGUtY29udGVudCAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH0gfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg3OXB4KSB7XG4gICAgICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICB3aWR0aDogMTI1JTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjUlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUyIC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDU5JTtcbiAgICAgICAgYm90dG9tOiAwOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUyIC5ob21lLXNsaWRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUyIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgZm9udC1zaXplOiA3MnB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUyIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgd2lkdGg6IDE2MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNjAlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUyIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgd2lkdGg6IDEzMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMzAlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUyIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTIwJTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMiAuaG9tZS1zbGlkZS1jb250ZW50IC5wcm9kdWN0LW5hbWUge1xuICAgICAgICB3aWR0aDogMTEwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMCU7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlci5zbGlkZTIgLmhvbWUtc2xpZGUtY29udGVudCAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwJTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMyAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgIHRvcDogNjBweDtcbiAgICAgICAgYm90dG9tOiBhdXRvOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUzIC5ob21lLXNsaWRlLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUzIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgZm9udC1zaXplOiA3MnB4OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUzIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgd2lkdGg6IDE4MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtODAlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUzIC5ob21lLXNsaWRlLWNvbnRlbnQgLmhlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTE2cHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlci5zbGlkZTMgLmhvbWUtc2xpZGUtY29udGVudCAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgd2lkdGg6IDE0NSU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNDUlOyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGUzIC5ob21lLXNsaWRlLWNvbnRlbnQgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIHdpZHRoOiAxMjAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTIwJTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlMyAuaG9tZS1zbGlkZS1jb250ZW50IC5wcm9kdWN0LW5hbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlci5zbGlkZTQgLmhvbWUtc2xpZGUtaW1hZ2Uge1xuICAgICAgICB0b3A6IDI2JTsgfVxuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGU0IC5ob21lLXNsaWRlLWltYWdlOmxhbmcoZW4pIHtcbiAgICAgICAgICB0b3A6IDM1JTsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyLnNsaWRlNCAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgIHRvcDogMTYwcHg7XG4gICAgICAgIGJvdHRvbTogYXV0bzsgfVxuICAgICAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIuc2xpZGU0IC5ob21lLXNsaWRlLWltYWdlOmxhbmcoZW4pIHtcbiAgICAgICAgICB0b3A6IDMyMHB4OyB9IH1cbiAgICAuaG9tZS1zbGlkZXItY29udGFpbmVyIC5ob21lLXNsaWRlLXdyYXBwZXIgLm1lZGl1bSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciAuaG9tZS1zbGlkZS13cmFwcGVyIC5zbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgIC5ob21lLXNsaWRlci1jb250YWluZXIgLmhvbWUtc2xpZGUtd3JhcHBlciAubWVkaXVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4uaXMtYmxvZyAuaG9tZS1zbGlkZXItY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4uaXMtYmxvZy53b3JkcHJlc3MtcG9zdC12aWV3IC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAtMTVweDtcbiAgbWF4LXdpZHRoOiAxMDEwcHg7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMjVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMjVweDsgfVxuXG4uaG9tZS1zbGlkZXItc2VhcmNoIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgLmhvbWUtc2xpZGVyLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG4gIC5ob21lLXNsaWRlci1zZWFyY2ggLmhvbWUtc2xpZGVyLXNlYXJjaC1mb3Jtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmhvbWUtc2xpZGVyLXNlYXJjaCAuaG9tZS1zbGlkZXItc2VhcmNoLWZvcm13cmFwcGVyIC5zZWFyY2hfbWluaV9mb3JtIHtcbiAgICAgIHdpZHRoOiA0MyU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogLTE0MHB4OyB9XG5cbi5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIHVsIGxpLFxuLnN1cHBvcnQtY29udGFpbmVyIHVsIGxpLFxuLnByb2R1Y3QtY2F0ZWdvcnktbmF2IHVsIGxpLFxuLmJveC1jcm9zcy1zZWxsIHVsIGxpLFxuLnNob3AtbGlzdCB1bCBsaSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmc6IDRweCAwOyB9XG5cbi5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIGEsXG4uc3VwcG9ydC1jb250YWluZXIgYSxcbi5wcm9kdWN0LWNhdGVnb3J5LW5hdiBhLFxuLmJveC1jcm9zcy1zZWxsIGEsXG4uc2hvcC1saXN0IGEge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDNiNWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIgYTpob3ZlciwgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIgYS5hY3RpdmUsXG4gIC5zdXBwb3J0LWNvbnRhaW5lciBhOmhvdmVyLFxuICAuc3VwcG9ydC1jb250YWluZXIgYS5hY3RpdmUsXG4gIC5wcm9kdWN0LWNhdGVnb3J5LW5hdiBhOmhvdmVyLFxuICAucHJvZHVjdC1jYXRlZ29yeS1uYXYgYS5hY3RpdmUsXG4gIC5ib3gtY3Jvc3Mtc2VsbCBhOmhvdmVyLFxuICAuYm94LWNyb3NzLXNlbGwgYS5hY3RpdmUsXG4gIC5zaG9wLWxpc3QgYTpob3ZlcixcbiAgLnNob3AtbGlzdCBhLmFjdGl2ZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgIGJvcmRlci1jb2xvcjogIzFmODZiZDsgfVxuXG4uc3VwcG9ydC1jb250YWluZXIgYS5hY3RpdmUge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBib3JkZXItY29sb3I6ICMwMDNiNWY7IH1cblxuLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIgYS5hY3RpdmUge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDAzYjVmOyB9XG5cbi5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciwgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciB7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIGgzLCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIGgzLCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciBoMywgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIGgzIHtcbiAgICBjb2xvcjogIzAwOGJkMjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5saW5rcywgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5hYm91dCwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGlua3MsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmFib3V0LCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAubGlua3MsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5hYm91dCwgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5saW5rcywgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5hYm91dCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBwYWRkaW5nOiAzNXB4IDA7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5saW5rcywgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5hYm91dCwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGlua3MsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmFib3V0LCAuc3VwcG9ydC1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAubGlua3MsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5hYm91dCwgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5saW5rcywgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5hYm91dCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLmxpbmtzLCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLmFib3V0LCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5saW5rcywgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuYWJvdXQsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5saW5rcywgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLmFib3V0LCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmxpbmtzLCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmFib3V0IHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH0gfVxuICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQge1xuICAgIHBhZGRpbmc6IDM1cHggMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3VwcG9ydC1wZXJzb24ucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDtcbiAgICBjbGVhcjogYm90aDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCwgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDgwcHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCwgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7IH0gfVxuICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCBwLCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0IHAsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0IHAsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCBwIHtcbiAgICAgIHdpZHRoOiA3MCU7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAgICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0IHAsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQgcCwgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQgcCwgLnN1cHBvcnQtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0IHAge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDQycHg7IH0gfVxuICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCAubnVtYmVyLCAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5zdXBwb3J0IC5udW1iZXIsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0IC5udW1iZXIsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCAubnVtYmVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgY29sb3I6ICMwMDNiNWY7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuYWJvdXQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLnN1cHBvcnQtd3JhcHBlciAuc3VwcG9ydCwgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuYWJvdXQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5hYm91dCwgLnN1cHBvcnQtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuYWJvdXQsIC5zdXBwb3J0LWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAuc3VwcG9ydCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5zdXBwb3J0LXdyYXBwZXIgLnN1cHBvcnQsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQsIC5zdXBwb3J0LWNvbnRhaW5lciAuc3VwcG9ydC13cmFwcGVyIC5zdXBwb3J0LCAuc3VwcG9ydC1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLnN1cHBvcnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfSB9XG5cbi5zdXBwb3J0LWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5sYXRlc3QtbmV3cy1jb250YWluZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAzNXB4IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5sYXRlc3QtbmV3cy1zbGlkZXIge1xuICAgICAgbWFyZ2luOiAyMHB4IC0xNXB4IDAgLTE1cHg7IH1cbiAgICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmxhdGVzdC1uZXdzLXNsaWRlciAuc2xpY2stc2xpZGUge1xuICAgICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5sYXRlc3QtbmV3cy1zbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuICAgICAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5sYXRlc3QtbmV3cy1zbGlkZXIgLnNsaWNrLXNsaWRlIC5oZWFkbGluZSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICAgICAgbWFyZ2luOiAyM3B4IDAgMThweCAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgICAgICAgLmxhdGVzdC1uZXdzLWNvbnRhaW5lciAubGF0ZXN0LW5ld3Mtd3JhcHBlciAubGF0ZXN0LW5ld3Mtc2xpZGVyIC5zbGljay1zbGlkZSBhIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gICAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyIC5sYXRlc3QtbmV3cy13cmFwcGVyIC5sYXRlc3QtbmV3cy1zbGlkZXIgLnNsaWNrLXByZXYsIC5sYXRlc3QtbmV3cy1jb250YWluZXIgLmxhdGVzdC1uZXdzLXdyYXBwZXIgLmxhdGVzdC1uZXdzLXNsaWRlciAuc2xpY2stbmV4dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC03LjUlOyB9XG5cbi5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIC5wcm9kdWN0cy10ZWFzZXItd3JhcHBlciB7XG4gIHBhZGRpbmc6IDM1cHggMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIgLnByb2R1Y3RzLXRlYXNlci13cmFwcGVyIC5wcm9kdWN0cy10ZWFzZXItc2xpZGVyIHtcbiAgICBtYXJnaW46IDU1cHggLTE1cHggMCAtMTVweDsgfVxuICAgIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIC5wcm9kdWN0cy10ZWFzZXItd3JhcHBlciAucHJvZHVjdHMtdGVhc2VyLXNsaWRlciAuc2xpY2stc2xpZGUge1xuICAgICAgbWFyZ2luOiAwIDE1cHg7IH1cbiAgICAgIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIC5wcm9kdWN0cy10ZWFzZXItd3JhcHBlciAucHJvZHVjdHMtdGVhc2VyLXNsaWRlciAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgICAgbWFyZ2luOiA1cHggYXV0bzsgfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAgICAgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIgLnByb2R1Y3RzLXRlYXNlci13cmFwcGVyIC5wcm9kdWN0cy10ZWFzZXItc2xpZGVyIC5zbGljay1zbGlkZSBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDgwJTsgfSB9XG4gICAgLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIgLnByb2R1Y3RzLXRlYXNlci13cmFwcGVyIC5wcm9kdWN0cy10ZWFzZXItc2xpZGVyIC5zbGljay1wcmV2LCAucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lciAucHJvZHVjdHMtdGVhc2VyLXdyYXBwZXIgLnByb2R1Y3RzLXRlYXNlci1zbGlkZXIgLnNsaWNrLW5leHQge1xuICAgICAgbWFyZ2luLXRvcDogLTcuNSU7XG4gICAgICBiYWNrZ3JvdW5kOiAjYzljOWM5OyB9XG4gIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIC5wcm9kdWN0cy10ZWFzZXItd3JhcHBlciBoMyB7XG4gICAgaGVpZ2h0OiA0NHB4OyB9XG5cbi5kb3dubG9hZC1saXN0IGxpIHtcbiAgbWFyZ2luOiAxMHB4IDA7IH1cblxuLmRvd25sb2FkLWxpc3QgYSB7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5kb3dubG9hZC1saXN0IGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgLmRvd25sb2FkLWxpc3QgYTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogLTFweDtcbiAgICB3aWR0aDogMTlweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uLWRvd25sb2FkLXBkZi5zdmcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTlweCAyMnB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cblxuLmxpZ2h0Ym94LWNvbnRlbnQtbGluay5pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxuLmxvYWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgaGVpZ2h0OiAxMXB4O1xuICB3aWR0aDogMTFweDtcbiAgYW5pbWF0aW9uOiByb3RhdGUgMC44cyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMxZjg2YmQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRk9STVMgLSBDT01NT05cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBGaWVsZHNldHNcbiAqL1xuLmZpZWxkc2V0IHAge1xuICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cblxuLmZpZWxkc2V0IHAucmVxdWlyZWQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tdG9wOiAwcHg7IH1cblxuLmN1c3RvbWVyLWFkZHJlc3MtZm9ybSBwLnJlcXVpcmVkIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5maWVsZHNldCArIC5maWVsZHNldCB7XG4gIG1hcmdpbi10b3A6IDVweDsgfVxuXG5mb3JtIC5sZWdlbmQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA3cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogSW5wdXQgQm94XG4gKi9cbi5pbnB1dC1ib3gge1xuICBwYWRkaW5nLXRvcDogMnB4OyB9XG4gIC5pbnB1dC1ib3g6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbmxpLmNlbnRpbmVsLWxvZ29zIGRpdi5pbnB1dC1ib3ggaW1nIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qIEZvciBhZGphY2VudCBzZWxlY3QgaW5wdXRzLiAqL1xuLyogRXhhbXBsZTogY3JlZGl0IGNhcmQgZXhwaXJhdGlvbiBtb250aCBhbmQgeWVhci4gKi9cbi5pbnB1dC1ib3ggLnYtZml4IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIExhYmVsc1xuICovXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG5sYWJlbC5yZXF1aXJlZDphZnRlcixcbnNwYW4ucmVxdWlyZWQ6YWZ0ZXIge1xuICBjb250ZW50OiAnIConO1xuICBjb2xvcjogI0RGMjgwQTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IGxhYmVsLnJlcXVpcmVkOmFmdGVyLFxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHNwYW4ucmVxdWlyZWQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29sb3I6ICNERjI4MEE7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbmxhYmVsLnJlcXVpcmVkIGVtLFxuc3Bhbi5yZXF1aXJlZCBlbSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogSGludHNcbiAqL1xuLmlucHV0LWhpbnQge1xuICBjb2xvcjogIzViNWI1YTtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNlbGVjdFxuICovXG5zZWxlY3Qge1xuICBmb250LXNpemU6IDE0cHg7IH1cblxuc2VsZWN0ICsgc2VsZWN0IHtcbiAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuXG5zZWxlY3RbbXVsdGlwbGVdIHtcbiAgd2lkdGg6IDI3MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQzBDMEMwO1xuICBmb250LXNpemU6IDE3cHg7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUZXh0YXJlYVxuICovXG50ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuN2VtIDFlbTtcbiAgYmFja2dyb3VuZDogI0VDRUNFQztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIElucHV0c1xuICovXG4uaW5wdXQtdGV4dCB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiAjNWI1YjVhOyB9XG4gIC5pbnB1dC10ZXh0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG5cbi5pbnB1dC10ZXh0LnZhbGlkYXRpb24tZmFpbGVkIHtcbiAgYm9yZGVyLWNvbG9yOiAjREYyODBBOyB9XG5cbi5pbnB1dC10ZXh0LnZhbGlkYXRpb24tZmFpbGVkOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogdGludCgjREYyODBBLCA1MCUpOyB9XG5cbmlucHV0W3R5cGU9c2VhcmNoXSB7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogOXB4IDIwcHggN3B4IDIwcHg7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG5pbnB1dFt0eXBlPWVtYWlsXSxcbmlucHV0W3R5cGU9bnVtYmVyXSxcbmlucHV0W3R5cGU9cGFzc3dvcmRdLFxuaW5wdXRbdHlwZT10ZWxdLFxuaW5wdXRbdHlwZT10ZXh0XSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgaGVpZ2h0OiAzNXB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG4gIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbiAgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbiAgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi8qIE9ubHkgc2hvdyBvbiBpUGhvbmVzIChub3QgaVBhZHMgb3IgYW55IG90aGVyIGRldmljZSkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDU2OHB4KSBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgaW5wdXRbdHlwZT1zZWFyY2hdLFxuICBpbnB1dFt0eXBlPW51bWJlcl0sXG4gIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuICBpbnB1dFt0eXBlPXRlbF0sXG4gIGlucHV0W3R5cGU9dGV4dF0sXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIC8qIFByZXZlbnQgZnJvbSB6b29taW5nIG9uIGZvY3VzICovIH0gfVxuXG4uaWU4IC5pbnB1dC10ZXh0IHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIElucHV0cyAtIFF1YW50aXR5XG4gKi9cbmlucHV0W3R5cGU9bnVtYmVyXS5xdHksXG5pbnB1dFt0eXBlPXRleHRdLnF0eSB7XG4gIHdpZHRoOiAzZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQbGFjZWhvbGRlclxuICovXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzRjNGM0ZTsgfVxuXG5pbnB1dDotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM0YzRjNGU7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQ2hlY2tib3ggQW5kIFJhZGlvXG4gKi9cbi5jaGVja2JveCxcbi5yYWRpbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmNoZWNrYm94ICsgbGFiZWwsXG4ucmFkaW8gKyBsYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDg1JTtcbiAgcGFkZGluZzogMCAwIDAgOHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVmFsaWRhdGlvblxuICovXG5wLnJlcXVpcmVkLFxuLnZhbGlkYXRpb24tYWR2aWNlIHtcbiAgbWFyZ2luOiA1cHggMCAwO1xuICBjb2xvcjogI0RGMjgwQTtcbiAgZm9udC1zaXplOiAxM3B4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEZvcm0gTGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5mb3JtLWxpc3QgPiBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLmZvcm0tbGlzdCAuaW5wdXQtcmFuZ2UgLmlucHV0LXRleHQge1xuICB3aWR0aDogNzRweDsgfVxuXG4uZm9ybS1saXN0IC5maWVsZCxcbi5mb3JtLWxpc3QgLndpZGUsXG4uZm9ybS1saXN0IC5jb250cm9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5mb3JtLWxpc3QgLmZpZWxkcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgIC5mb3JtLWxpc3QgLmZpZWxkczphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuZm9ybS1saXN0IC5maWVsZHMuaGFzLWhhbGZzIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4OyB9XG4gICAgICAuZm9ybS1saXN0IC5maWVsZHMuaGFzLWhhbGZzIC5maWVsZCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAgICAgLmZvcm0tbGlzdCAuZmllbGRzLmhhcy1oYWxmcyAuZmllbGQuaGFsZiB7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgICAuZm9ybS1saXN0IC5maWVsZHMuaGFzLWhhbGZzIC5maWVsZC5xdWFydGVyIHtcbiAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAgIC5mb3JtLWxpc3QgLmZpZWxkcy5oYXMtaGFsZnMgLmZpZWxkLnRocmVlcXVhcnRlcnMge1xuICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAgICAgLmZvcm0tbGlzdCAuZmllbGRzLmhhcy1oYWxmcyAuZmllbGQgLmlucHV0LWJveCB7XG4gICAgICAgICAgbWFyZ2luOiAwIDVweDsgfSB9XG5cbiNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtICNzX21ldGhvZF90YWJsZXJhdGVfYmVzdHdheSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIGxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIGJ1dHRvbiwgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIFt0eXBlPXN1Ym1pdF0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogVHVybiB0aGUgbGFiZWwgb2YgY29udHJvbHMgKHJhZGlvL2NoZWNrYm94KSBpbnRvIGEgYnV0dG9uIHN0eWxlIHRoYXQgd3JhcHMgdGhlIGlucHV0ICovXG4uZm9ybS1saXN0IC5jb250cm9sLFxuLnNwLW1ldGhvZHMgZHQsXG4jY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kLWxvYWQgLnNwLW1ldGhvZHMgZGQsXG4jY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLnNwLW1ldGhvZHMgZGQsXG4ucHJvZHVjdC1vcHRpb25zIHVsLm9wdGlvbnMtbGlzdCB7XG4gIC8qIFdoZW4gYSBsYWJlbCBpcyBuZXh0IHRvIGFuIGlucHV0IHRoYXQgaXMgc2V0IHRvIG5vdCBkaXNwbGF5LCB3ZSBzaG91bGQgc3R5bGUgdGhlIGxhYmVsIGluIGEgbm9uLWNsaWNrYWJsZSBzdGF0ZSAqLyB9XG4gIC5mb3JtLWxpc3QgLmNvbnRyb2wgZGl2LmlucHV0LWJveCxcbiAgLnNwLW1ldGhvZHMgZHQgZGl2LmlucHV0LWJveCxcbiAgI2NoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZC1sb2FkIC5zcC1tZXRob2RzIGRkIGRpdi5pbnB1dC1ib3gsXG4gICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCBkaXYuaW5wdXQtYm94LFxuICAucHJvZHVjdC1vcHRpb25zIHVsLm9wdGlvbnMtbGlzdCBkaXYuaW5wdXQtYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuZm9ybS1saXN0IC5jb250cm9sIGRpdi5pbnB1dC1ib3g6YWZ0ZXIsXG4gICAgLnNwLW1ldGhvZHMgZHQgZGl2LmlucHV0LWJveDphZnRlcixcbiAgICAjY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kLWxvYWQgLnNwLW1ldGhvZHMgZGQgZGl2LmlucHV0LWJveDphZnRlcixcbiAgICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLnNwLW1ldGhvZHMgZGQgZGl2LmlucHV0LWJveDphZnRlcixcbiAgICAucHJvZHVjdC1vcHRpb25zIHVsLm9wdGlvbnMtbGlzdCBkaXYuaW5wdXQtYm94OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZvcm0tbGlzdCAuY29udHJvbCBpbnB1dC5yYWRpbyxcbiAgLmZvcm0tbGlzdCAuY29udHJvbCBpbnB1dC5jaGVja2JveCxcbiAgLnNwLW1ldGhvZHMgZHQgaW5wdXQucmFkaW8sXG4gIC5zcC1tZXRob2RzIGR0IGlucHV0LmNoZWNrYm94LFxuICAjY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kLWxvYWQgLnNwLW1ldGhvZHMgZGQgaW5wdXQucmFkaW8sXG4gICNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCBpbnB1dC5jaGVja2JveCxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIGlucHV0LnJhZGlvLFxuICAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLnNwLW1ldGhvZHMgZGQgaW5wdXQuY2hlY2tib3gsXG4gIC5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IGlucHV0LnJhZGlvLFxuICAucHJvZHVjdC1vcHRpb25zIHVsLm9wdGlvbnMtbGlzdCBpbnB1dC5jaGVja2JveCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNDBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gIC5mb3JtLWxpc3QgLmNvbnRyb2wgbGFiZWwsXG4gIC5zcC1tZXRob2RzIGR0IGxhYmVsLFxuICAjY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kLWxvYWQgLnNwLW1ldGhvZHMgZGQgbGFiZWwsXG4gICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCBsYWJlbCxcbiAgLnByb2R1Y3Qtb3B0aW9ucyB1bC5vcHRpb25zLWxpc3QgbGFiZWwge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmc6IDZweCAwIDZweCAyNXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmZvcm0tbGlzdCAuY29udHJvbCAubm8tZGlzcGxheSArIGxhYmVsLFxuICAuc3AtbWV0aG9kcyBkdCAubm8tZGlzcGxheSArIGxhYmVsLFxuICAjY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kLWxvYWQgLnNwLW1ldGhvZHMgZGQgLm5vLWRpc3BsYXkgKyBsYWJlbCxcbiAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIC5uby1kaXNwbGF5ICsgbGFiZWwsXG4gIC5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IC5uby1kaXNwbGF5ICsgbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgIC5mb3JtLWxpc3QgLmNvbnRyb2wgLm5vLWRpc3BsYXkgKyBsYWJlbDpob3ZlcixcbiAgICAuc3AtbWV0aG9kcyBkdCAubm8tZGlzcGxheSArIGxhYmVsOmhvdmVyLFxuICAgICNjaGVja291dC1zaGlwcGluZy1tZXRob2QtbG9hZCAuc3AtbWV0aG9kcyBkZCAubm8tZGlzcGxheSArIGxhYmVsOmhvdmVyLFxuICAgICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCAubm8tZGlzcGxheSArIGxhYmVsOmhvdmVyLFxuICAgIC5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IC5uby1kaXNwbGF5ICsgbGFiZWw6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnByb2R1Y3Qtb3B0aW9ucyB1bC5vcHRpb25zLWxpc3QgbGFiZWwsXG4uY29sMi1zZXQgLmZvcm0tbGlzdCAuY29udHJvbCBsYWJlbCB7XG4gIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uZm9ybS1saXN0IC5jb250cm9sLnJlbWVtYmVyLW1lLWJveCBsYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogaW5oZXJpdDsgfVxuXG4uZm9ybS1saXN0IC5jb250cm9sIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAuZm9ybS1saXN0IC5jb250cm9sIGxhYmVsIHtcbiAgICBmbG9hdDogbm9uZTsgfVxuICAuZm9ybS1saXN0IC5jb250cm9sIC5yYWRpbyxcbiAgLmZvcm0tbGlzdCAuY29udHJvbCAuY2hlY2tib3gge1xuICAgIG1hcmdpbi1yaWdodDogNnB4OyB9XG4gIC5mb3JtLWxpc3QgLmNvbnRyb2wgLmlucHV0LWJveCB7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7IH1cblxuKjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogcmVtb3ZlIHN0YW5kYXJkLXN0eWxlcyAqL1xuc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAxZW07XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qIHN0eWxpbmcgKi9cbnNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi1mb3JtLXNlbGVjdC1hcnJvdy1kb3duLnN2Zyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwcHggdG9wIDE2cHg7XG4gIGJhY2tncm91bmQtc2l6ZTogMTBweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTBweCB0b3AgMTRweDsgfSB9XG5cbnNlbGVjdFtkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAuNjtcbiAgY29sb3I6ICM4MDdlODI7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogVGFibGUgSGVscGVyc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5oaWRlLXRoIHtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRGF0YSBUYWJsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5kYXRhLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbi5kYXRhLXRhYmxlIHRkLFxuLmRhdGEtdGFibGUgdGgge1xuICBwYWRkaW5nOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5kYXRhLXRhYmxlLmNoZWNrb3V0LXJldmlldy10YWJsZSB7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC01cHg7IH1cbiAgLmRhdGEtdGFibGUuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoIHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuZGF0YS10YWJsZS5jaGVja291dC1yZXZpZXctdGFibGUgdGgsIC5kYXRhLXRhYmxlLmNoZWNrb3V0LXJldmlldy10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4OyB9XG4gIC5kYXRhLXRhYmxlLmNoZWNrb3V0LXJldmlldy10YWJsZSB0Zm9vdCB0aCwgLmRhdGEtdGFibGUuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5kYXRhLXRhYmxlIHRoIHtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uZGF0YS10YWJsZSB0ciwgdGZvb3Qge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZGF0YS10YWJsZSB0ci5kb3R0ZWQtYm9yZGVyIHRkIGRpdiB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuXG4uZGF0YS10YWJsZSB0Ym9keSB0ZCxcbi5kYXRhLXRhYmxlIHRmb290IHRkIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5kYXRhLXRhYmxlIHRib2R5IHRkIC5pdGVtLW9wdGlvbnMge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAuZGF0YS10YWJsZSB0Ym9keSB0ZCAuaXRlbS1vcHRpb25zIGR0OmFmdGVyIHtcbiAgICBjb250ZW50OiAnOic7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogR2VuZXJpYyBJbmZvIFRhYmxlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmluZm8tYm94IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0MwQzBDMDtcbiAgcGFkZGluZzogMTJweCAxNXB4O1xuICBtYXJnaW46IDAgMCAxNXB4OyB9XG4gIC5pbmZvLWJveCBoMiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9XG5cbi5pbmZvLXRhYmxlIHRoLFxuLmluZm8tdGFibGUgdGQge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5pbmZvLXRhYmxlIHRoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDRweCAyMHB4IDRweCAwOyB9XG5cbi5pbmZvLXRhYmxlIHRkIHtcbiAgcGFkZGluZzogNHB4IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogWmVicmEtU3RyaXBlIFRhYmxlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnplYnJhLXRhYmxlIHRyOmZpcnN0LWNoaWxkLFxuLnplYnJhLXRhYmxlIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDMEMwQzA7IH1cblxuLnplYnJhLXRhYmxlIHRkLFxuLnplYnJhLXRhYmxlIHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDMEMwQzA7XG4gIHBhZGRpbmc6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnplYnJhLXRhYmxlIHRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRURFRDsgfVxuXG4uemVicmEtdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjhGN0Y1OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIExpbmVhcml6ZSBUYWJsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmxpbmVhcml6ZS10YWJsZSB7XG4gICAgLyogSGVscGVycyAqLyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0cixcbiAgICAubGluZWFyaXplLXRhYmxlIHRoLFxuICAgIC5saW5lYXJpemUtdGFibGUgdGQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRoZWFkIHRoIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0aGVhZCB0aC5saW4taGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0aGVhZCB0aDpudGgtY2hpbGQoMW4rMikge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGJvZHkgdHIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRib2R5IHRkIHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweCA0cHg7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ZC5saW4taGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCBoMyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGJvZHkgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRib2R5IHRkW2RhdGEtcndkLWxhYmVsXTpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLXJ3ZC1sYWJlbCkgXCI6XCI7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRmb290IHRyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIHRmb290IHRyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGZvb3QgdGQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGZvb3QgdGQubGluLWhpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUgdGZvb3QgdGQ6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB3aWR0aDogNjAlOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSB0Zm9vdCB0ZDpudGgtY2hpbGQoZXZlbikge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHdpZHRoOiA0MCU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIC5saW5lYXJpemUtaGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZSAubGluZWFyaXplLXVucGFkIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAubGluZWFyaXplLXRhYmxlIC5saW5lYXJpemUtc2hvdyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB7XG4gICAgLyogSGVscGVycyAqLyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0cixcbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRoLFxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRoZWFkIHRoIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0aGVhZCB0aC5saW4taGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0aGVhZCB0aDpudGgtY2hpbGQoMW4rMikge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGJvZHkgdHIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRib2R5IHRkIHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweCA0cHg7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Ym9keSB0ZC5saW4taGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCBoMyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGJvZHkgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRib2R5IHRkW2RhdGEtcndkLWxhYmVsXTpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLXJ3ZC1sYWJlbCkgXCI6XCI7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRmb290IHRyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHRmb290IHRyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGZvb3QgdGQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGZvb3QgdGQubGluLWhpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UgdGZvb3QgdGQ6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB3aWR0aDogNjAlOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSB0Zm9vdCB0ZDpudGgtY2hpbGQoZXZlbikge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHdpZHRoOiA0MCU7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIC5saW5lYXJpemUtaGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZSAubGluZWFyaXplLXVucGFkIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIC5saW5lYXJpemUtc2hvdyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLmxpbmVhcml6ZS10YWJsZSAubGluZWFyaXplLWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogR2xvYmFsXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLndyYXBwZXIge1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4ud3JhcHBlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSGVhZGVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnBhZ2UtaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0YXRpYzsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5wYWdlLWhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cblxuLmhlYWRlci1sYW5ndWFnZS1jb250YWluZXIsXG4ucGFnZS1oZWFkZXIge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4uYWNjb3VudC1jYXJ0LXdyYXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTGFuZ3VhZ2Ugc3dpdGNoZXIgKyB3ZWxjb21lIG1lc3NhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZm9ybS1sYW5ndWFnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmZvcm0tbGFuZ3VhZ2Uge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9IH1cbiAgLmZvcm0tbGFuZ3VhZ2Ugc2VsZWN0OjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mb3JtLWxhbmd1YWdlOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi1sYW5nLXN3aXRjaC5zdmcpO1xuICAgIHdpZHRoOiAxMXB4O1xuICAgIGhlaWdodDogN3B4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDExcHg7XG4gICAgdG9wOiAxOHB4OyB9XG5cbiNzZWxlY3QtbGFuZ3VhZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4uaGVhZGVyLWxhbmd1YWdlLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgbWF4LXdpZHRoOiAxMzYwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLmhlYWRlci1sYW5ndWFnZS1jb250YWluZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi53ZWxjb21lLW1zZyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuXG4gICAgICAgIC53ZWxjb21lLW1zZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgfSovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBMb2dvXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmxvZ28td3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4OyB9XG4gIC5sb2dvLXdyYXBwZXIgLmxvZ28gaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAubG9nby13cmFwcGVyIC5sb2dvIGltZy5zbWFsbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAubG9nby13cmFwcGVyIC5sb2dvIGltZy5sYXJnZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLmxvZ28td3JhcHBlciB7XG4gICAgd2lkdGg6IDgwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5sb2dvLXdyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgICAubG9nby13cmFwcGVyIC5sb2dvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAgICAgLmxvZ28td3JhcHBlciAubG9nbyBpbWcuc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAubG9nby13cmFwcGVyIC5sb2dvIGltZy5sYXJnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNraXAgTGlua3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2tpcC1saW5rcyB7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAuc2tpcC1saW5rcyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMXB4KSB7XG4gIC5za2lwLWxpbmtzIHtcbiAgICB3aWR0aDogNzAlO1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCAtIExpbmtcbiAqL1xuLnNraXAtbGluaywgI3NlbGVjdC1sYW5ndWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0NHB4O1xuICBmb250LXNpemU6IDE3cHg7XG4gIGNvbG9yOiAjNGM0YzRlO1xuICBsaW5lLWhlaWdodDogNDJweDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLnNraXAtbGluaywgI3NlbGVjdC1sYW5ndWFnZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH0gfVxuICAuc2tpcC1saW5rIGltZywgI3NlbGVjdC1sYW5ndWFnZSBpbWcge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAuc2tpcC1saW5rOmhvdmVyLCAuc2tpcC1saW5rOmFjdGl2ZSwgLnNraXAtbGluazp2aXNpdGVkLCAjc2VsZWN0LWxhbmd1YWdlOmhvdmVyLCAjc2VsZWN0LWxhbmd1YWdlOmFjdGl2ZSwgI3NlbGVjdC1sYW5ndWFnZTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzRjNGM0ZSAhaW1wb3J0YW50O1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuYS5za2lwLWxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnNraXAtbGluayBpbWcuaW1hZ2UtaWNvbiB7XG4gIG1hcmdpbi10b3A6IC0zcHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCBMaW5rIC0gTGFiZWxcbiAqL1xuLnNraXAtbGluayAubGFiZWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnNraXAtbGluayAubGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNraXAgQ29udGVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5za2lwLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAxcHgpIHtcbiAgI2hlYWRlci1uYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDM1cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICNoZWFkZXItbmF2IHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9IH1cblxuLnNraXAtY29udGVudC5za2lwLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjRURFREVEOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdsb2JhbCBIZWFkZXIgTmF2aWdhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmFjY291bnQtY2FydC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTmF2IC0gU2tpcCBMaW5rXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNraXAtbmF2Om5vdCguc2tpcC1hY3RpdmUpOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5za2lwLW5hdiAubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxuLnNraXAtbmF2IC5pY29uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNHB4IDRweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMXB4KSB7XG4gIC5za2lwLW5hdiB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE5hdiBQcmltYXJ5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDFweCkge1xuICAubmF2LXByaW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBHZW5lcmFsIE5hdmlnYXRpb24gU3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm5hdi1wcmltYXJ5IGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLm5hdi1wcmltYXJ5IC5tZW51LWFjdGl2ZSA+IHVsLmxldmVsMCxcbi5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgbGkuc3ViLW1lbnUtYWN0aXZlID4gdWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubmF2LXByaW1hcnkgbGkubGV2ZWwwID4gYSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmFjdGl2ZSBhLmxldmVsMCB7XG4gIGNvbG9yOiAjMWY4NmJkOyB9XG5cbmEubGV2ZWwwLmFjdGl2ZSB7XG4gIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi5jbXMtaW5kZXgtaW5kZXggYS5sZXZlbDAuYWN0aXZlIHtcbiAgY29sb3I6ICMwMDNiNWY7IH1cbiAgLmNtcy1pbmRleC1pbmRleCBhLmxldmVsMC5hY3RpdmU6aG92ZXIge1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNtYWxsIFZpZXdwb3J0cyAtIEFjY29yZGlvbiBTdHlsZSBNZW51XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm1vYmlsZS1vbmx5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubW9iaWxlLW5hdi1jb250cm9scyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuc2tpcC1jYXJ0IGltZy5pbWFnZS1pY29uIHtcbiAgICB3aWR0aDogMjdweDtcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xuICBib2R5Lm5hdi1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5za2lwLWFjdGl2ZSAubW9iaWxlLW5hdi1jb250cm9scyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnNraXAtYWN0aXZlIC5tb2JpbGUtbmF2LWNvbnRyb2xzIC5mb3JtLWxhbmd1YWdlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgI2hlYWRlci1uYXYtY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2U7IH1cbiAgaW1nLmltYWdlLWljb24ubmF2LWNvbnRyb2wtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgZWFzZTsgfVxuICAgIGltZy5pbWFnZS1pY29uLm5hdi1jb250cm9sLWxlZnQuaXMtdmlzaWJsZSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgbmF2I25hdiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBzY3JvbGw7IH1cbiAgI2hlYWRlci1uYXYgdWwsICNoZWFkZXItbmF2IG9sIHtcbiAgICBwYWRkaW5nLXRvcDogOTVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgI2hlYWRlci1uYXYgdWwgbGksICNoZWFkZXItbmF2IG9sIGxpIHtcbiAgICAgIHBhZGRpbmc6IDAgMjBweDsgfVxuICAgICAgI2hlYWRlci1uYXYgdWwgbGkgYSwgI2hlYWRlci1uYXYgb2wgbGkgYSB7XG4gICAgICAgIHBhZGRpbmc6IDdweCAwIDVweCAwO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAgICAgI2hlYWRlci1uYXYgdWwgbGkudmlldy1hbGwgPiBhLCAjaGVhZGVyLW5hdiBvbCBsaS52aWV3LWFsbCA+IGEge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgI2hlYWRlci1uYXYgLm5hdi0xIHVsIGxpLmZpcnN0ID4gYSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gICNoZWFkZXItbmF2IGxpLm5hdi0xLmZpcnN0ID4gYSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gIC5uYXYtcHJpbWFyeSB1bC5sZXZlbDAsXG4gIC5uYXYtcHJpbWFyeSB1bC5sZXZlbDEsXG4gIC5uYXYtcHJpbWFyeSB1bC5sZXZlbDIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogOTk5OyB9XG4gIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgbGkuc3VwcG9ydC1ibG9jayB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnNraXAtYWN0aXZlIC5tb2JpbGUtbmF2LWNvbnRyb2xzIC5mb3JtLWxhbmd1YWdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgLnNraXAtYWN0aXZlIC5tb2JpbGUtbmF2LWNvbnRyb2xzIC5mb3JtLWxhbmd1YWdlICNzZWxlY3QtbGFuZ3VhZ2Uge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBjb2xvcjogI2E1YTVhNDsgfVxuICAgIC5za2lwLWFjdGl2ZSAubW9iaWxlLW5hdi1jb250cm9scyAuZm9ybS1sYW5ndWFnZTphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTGFyZ2UgVmlld3BvcnRzIC0gRHJvcGRvd24gTWVudVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAxcHgpIHtcbiAgLm5hdi1wcmltYXJ5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogRGVmYXVsdCBzdHlsZXMgZm9yIDErIGRyb3AtZG93biBtZW51cyAqL1xuICAgIC8qIExldmVsIDIrICovIH1cbiAgICAubmF2LXByaW1hcnkgbGkgYSB7XG4gICAgICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAubmF2LXByaW1hcnkgYS5sZXZlbDAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgICAubmF2LXByaW1hcnkgLnZpZXctYWxsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubmF2LXByaW1hcnkgLm1lbnUtYWN0aXZlIGEubGV2ZWwwLmhhcy1jaGlsZHJlbjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXEFcIjtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDAgMTVweCAxNXB4IDE1cHg7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHdoaXRlIHRyYW5zcGFyZW50O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtM3B4O1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCxcbiAgICAubmF2LXByaW1hcnkgYS5sZXZlbDAge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLm5hdi1wcmltYXJ5IGE6aG92ZXIsXG4gICAgLm5hdi1wcmltYXJ5IGxpOmhvdmVyID4gYSB7XG4gICAgICBjb2xvcjogIzFmODZiZDsgfVxuICAgIC5uYXYtcHJpbWFyeSAubWVudS1hY3RpdmUge1xuICAgICAgei1pbmRleDogMjAwOyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICAvKiBIZWlnaHQgb2YgXCIubmF2LXByaW1hcnkgYS5sZXZlbDBcIiAqL1xuICAgICAgcGFkZGluZzogMzVweCAwO1xuICAgICAgei1pbmRleDogOTk5O1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIC8qIEhpZGUgdW50aWwgZGlzcGxheWVkLiAqL1xuICAgICAgd2lkdGg6IDgwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDE4MHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCA+IGxpIGEge1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAjNWI1YjVhOyB9XG4gICAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgPiBsaSBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDNweCAyMHB4O1xuICAgICAgICBtYXJnaW46IDhweCAwIDdweCAwOyB9XG4gICAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgbGkuc3VwcG9ydC1ibG9jayB7XG4gICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgbGkgYSB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAgICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIGxpLnByb2R1Y3RmaW5kZXItbGluayB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMzVweDsgfVxuICAgICAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgbGkucHJvZHVjdGZpbmRlci1saW5rIGEge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCAuc3VwcG9ydC1ibG9jayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDM1cHggMjBweDtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICAgICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCAuc3VwcG9ydC1ibG9jayBzcGFuLnBob25lIHtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gICAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWwgLnN1cHBvcnQtYmxvY2sgLmxlZnQge1xuICAgICAgICAgIHdpZHRoOiA2NCU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IDk5OTsgfVxuICAgICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIC5zdXBwb3J0LWJsb2NrIGgzLCAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsIC5zdXBwb3J0LWJsb2NrIC5oMyB7XG4gICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgICAgICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMCB1bCAuc3VwcG9ydC1ibG9jayBpbWcge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgei1pbmRleDogOTk7IH1cbiAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgdWw6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICB6LWluZGV4OiA5OTk5OyB9XG4gICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwIHVsOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICB6LWluZGV4OiA5OTk5OyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi0xLmxldmVsMCB1bCxcbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTMubGV2ZWwwIHVsIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi0xLmxldmVsMCB1bCA+IGxpLmxldmVsMSB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi00LmxldmVsMCB1bCxcbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTUubGV2ZWwwIHVsIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubmF2LXByaW1hcnkgbGkubmF2LTQubGV2ZWwwID4gdWwsXG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi01LmxldmVsMCA+IHVsIHtcbiAgICAgIGxlZnQ6IGF1dG87IH1cbiAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwwID4gbGkge1xuICAgICAgd2lkdGg6IDMzLjMzMyU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi0xLmxldmVsMCA+IGxpLFxuICAgIC5uYXYtcHJpbWFyeSBsaS5uYXYtMy5sZXZlbDAgPiBsaSB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLm5hdi00LmxldmVsMCA+IGxpLFxuICAgIC5uYXYtcHJpbWFyeSBsaS5uYXYtNS5sZXZlbDAgPiBsaSB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgLm5hdi1wcmltYXJ5IGxpLmxldmVsMSB1bCB7XG4gICAgICBsZWZ0OiAzMy4zMzMlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDMzLjMzMyU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCAjODA3ZTgyOyB9XG4gICAgICAubmF2LXByaW1hcnkgbGkubGV2ZWwxIHVsIGxpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAgIC5uYXYtcHJpbWFyeSBsaS5sZXZlbDEgdWwgbGkgYSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5uYXYtcHJpbWFyeSAubmF2LTEgbGkubGV2ZWwxIHVsLFxuICAgIC5uYXYtcHJpbWFyeSAubmF2LTMgbGkubGV2ZWwxIHVsIHtcbiAgICAgIGxlZnQ6IDI1JTtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubmF2LXByaW1hcnkgLm5hdi0xIGxpLmxldmVsMiB1bCxcbiAgICAubmF2LXByaW1hcnkgLm5hdi0zIGxpLmxldmVsMiB1bCB7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubmF2LXByaW1hcnkgLm5hdi00IGxpLmxldmVsMSB1bCxcbiAgICAubmF2LXByaW1hcnkgLm5hdi01IGxpLmxldmVsMSB1bCB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogNTAlOyB9IH1cblxuLm5hdi1wcm9kdWN0LXRhcmdldHMgYSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTdweCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwM2I1ZiAhaW1wb3J0YW50OyB9XG4gIC5uYXYtcHJvZHVjdC10YXJnZXRzIGEgaW1nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5uYXYtcHJvZHVjdC10YXJnZXRzIGEuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLm5hdi1wcm9kdWN0LXRyaWdnZXJzIGEge1xuICBtYXJnaW4tYm90dG9tOiAxMXB4OyB9XG5cbi5uYXYtcHJpbWFyeSBsaS5tZW51LWFjdGl2ZSA+IHVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2VhcmNoIC0gU2tpcCBMaW5rXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2VhcmNoIC0gU2tpcCBDb250ZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNraXAtc2VhcmNoIC5pbWFnZS1pY29uIHtcbiAgbWFyZ2luLXRvcDogLTZweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLnNraXAtc2VhcmNoIC5pbWFnZS1pY29uIHtcbiAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgbWFyZ2luLXRvcDogLTJweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgI2hlYWRlci1zZWFyY2gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE0cHg7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIHdpZHRoOiA2NCU7XG4gICAgei1pbmRleDogOTk5O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICByaWdodDogMDsgfVxuICAgICNoZWFkZXItc2VhcmNoLnNraXAtYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5za2lwLXNlYXJjaCB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzcycHgpIHtcbiAgI2hlYWRlci1zZWFyY2gge1xuICAgIHdpZHRoOiA2MCU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5za2lwLXNlYXJjaCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9XG4gICNoZWFkZXItc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMDsgfVxuICAgICNoZWFkZXItc2VhcmNoIGlucHV0IHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogOHB4IDEwcHggNnB4IDEwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICB3aWR0aDogMTIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xNXMgZWFzZS1vdXQsIHdpZHRoIC4xNXMgZWFzZS1vdXQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICNoZWFkZXItc2VhcmNoIGlucHV0OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIHdpZHRoOiAyNjBweDsgfVxuICAgICNoZWFkZXItc2VhcmNoIC5zZWFyY2hfbWluaV9mb3JtIC5zZWFyY2gtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAjaGVhZGVyLXNlYXJjaCAuaW5wdXQtYm94IDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogIzRjNGM0ZTsgfVxuICAgICNoZWFkZXItc2VhcmNoIC5pbnB1dC1ib3ggOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgLyogRmlyZWZveCAxOC0gKi9cbiAgICAgIGNvbG9yOiAjNGM0YzRlOyB9XG4gICAgI2hlYWRlci1zZWFyY2ggLmlucHV0LWJveCA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgLyogRmlyZWZveCAxOSsgKi9cbiAgICAgIGNvbG9yOiAjNGM0YzRlOyB9XG4gICAgI2hlYWRlci1zZWFyY2ggLmlucHV0LWJveCA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjNGM0YzRlOyB9XG4gICAgI2hlYWRlci1zZWFyY2ggLmlucHV0LWJveDpiZWZvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLXNlYXJjaC5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgbWFyZ2luLXRvcDogLTEycHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggSW5wdXRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhcmNoX21pbmlfZm9ybSAuaW5wdXQtYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uc2VhcmNoX21pbmlfZm9ybSBsYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuI3NlYXJjaCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b24ge1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b246YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDI5cHg7XG4gIGhlaWdodDogMjlweDtcbiAgbWFyZ2luLXRvcDogLTE0cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLXNlYXJjaC1ibHVlLnN2Zyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cblxuLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b246YWN0aXZlOmJlZm9yZSB7XG4gIG1hcmdpbi10b3A6IC0xM3B4O1xuICBtYXJnaW4tbGVmdDogLTEzcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSGVhZGVyIC0gQWNjb3VudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNraXAgTGluayAtIEFjY291bnRcbiAqL1xuLnNraXAtYWNjb3VudDpub3QoLnNraXAtYWN0aXZlKTpob3ZlciAuaWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00NnB4IC00NHB4OyB9XG5cbi5za2lwLWFjY291bnQgLmljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0cHggLTQ0cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAuc2tpcC1hY2NvdW50IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAjaGVhZGVyLWFjY291bnQuc2tpcC1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNGQkZCRkI7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI0NDQ0NDQztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjAwO1xuICAgIHRvcDogNDBweDtcbiAgICByaWdodDogMTE1cHg7XG4gICAgd2lkdGg6IDIwMHB4OyB9XG4gICNoZWFkZXItYWNjb3VudCBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAjaGVhZGVyLWFjY291bnQgYTpob3ZlciB7XG4gICAgY29sb3I6ICMxZjg2YmQ7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBBY2NvdW50IExpbmtzXG4gKi9cbiNoZWFkZXItYWNjb3VudCB7XG4gIHBhZGRpbmc6IDVweCAwOyB9XG5cbiNoZWFkZXItYWNjb3VudCBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuI2hlYWRlci1hY2NvdW50IGE6aG92ZXIge1xuICBjb2xvcjogIzFmODZiZDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBIZWFkZXIgLSBDYXJ0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCBMaW5rIC0gQ2FydFxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5za2lwLWNhcnQge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICNoZWFkZXItY2FydC5za2lwLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI0ZCRkJGQjtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjQ0NDQ0NDO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgdG9wOiA0MHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAzMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNraXAgQ2FydCBOb3RpZmllclxuICovXG4uc2tpcC1jYXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5za2lwLWNhcnQgLmNvdW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogLTEycHg7XG4gIGxlZnQ6IDEycHg7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMxZjg2YmQ7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnNraXAtbGluay5za2lwLWFjdGl2ZSAuY291bnQge1xuICBjb2xvcjogd2hpdGU7IH1cblxuLnNraXAtY2FydC5uby1jb3VudCAuY291bnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLnNraXAtY2FydCAuY291bnQge1xuICAgIGxlZnQ6IDIwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5za2lwLWNhcnQ6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuc2tpcC1saW5rLnNraXAtYWN0aXZlIC5jb3VudCB7XG4gICAgY29sb3I6ICMxZjg2YmQ7IH0gfVxuXG4uc2tpcC1jYXJ0IC5jb3VudC5lbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTWluaSBDYXJ0IC0gRW1wdHlcbiAqL1xuLmNhcnQtbWVudSAuZW1wdHkge1xuICBwYWRkaW5nOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTWluaSBDYXJ0IC0gRnVsbFxuICovXG4vKiBBY3Rpb25zICovXG4uY2FydC1tZW51IC5hY3Rpb25zIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTVweDsgfVxuXG4uY2FydC1tZW51IC5hY3Rpb25zIC5idXR0b24ge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDQ4JTsgfVxuXG4uY2FydC1tZW51IC5hY3Rpb25zIC5idXR0b24gKyAuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDQlOyB9XG5cbi8qIFN1YnRvdGFsICovXG4uY2FydC1tZW51IC5zdWJ0b3RhbCB7XG4gIHBhZGRpbmc6IDAgMTVweCAxNXB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi8qIExpc3QgKi9cbi5taW5pLWNhcnQtbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4ubWluaS1jYXJ0LWxpc3QgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDkwcHg7XG4gIHBhZGRpbmc6IDE1cHggMTVweCAxNXB4IDkwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1OyB9XG5cbi5taW5pLWNhcnQtbGlzdCAucHJvZHVjdC1uYW1lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5taW5pLWNhcnQtbGlzdCAucHJvZHVjdC1pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTVweDtcbiAgdG9wOiAxNXB4OyB9XG5cbi5taW5pLWNhcnQtbGlzdCAucHJvZHVjdC1pbWFnZSBpbWcge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4OyB9XG5cbi5taW5pLWNhcnQtbGlzdCAuaGFzLW9wdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogIzViNWI1YTtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi8qIFRvbyBmdWxsIC0gYWRkaXRpb25hbCBpdGVtcyB3aWxsIGJlIHNob3duIGluIGNhcnQgKi9cbi5jYXJ0LW1lbnUgLmxhc3QtYWRkZWQge1xuICBwYWRkaW5nOiAxMHB4IDE1cHggMTVweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBGb290ZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBGb290ZXJcbiAqL1xuLmZvb3Rlci1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OyB9IH1cblxuLmZvb3RlciB7XG4gIGNsZWFyOiBib3RoO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBwYWRkaW5nLXRvcDogODBweDtcbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICAgICAqIFNvY2lhbCBpY29uc1xuICAgICAqLyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAuZm9vdGVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxNXB4OyB9IH1cbiAgLmZvb3RlciAuYmxvY2stdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgLmZvb3RlciAuYmxvY2stdGl0bGUgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAuZm9vdGVyIGg1IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cbiAgLmZvb3RlciAubGlua3Mge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgICAuZm9vdGVyIC5saW5rcyBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cbiAgICAuZm9vdGVyIC5saW5rcyBsaSB7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICAuZm9vdGVyIC5saW5rcy5wYXltZW50LW1ldGhvZHMgbGkge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODsgfVxuICAgIC5mb290ZXIgLmxpbmtzIGEge1xuICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICAgIC5mb290ZXIgLmxpbmtzIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzFmODZiZDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgLmZvb3RlciAuYmxvY2stc3Vic2NyaWJlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDMyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgLmZvb3RlciAubGlua3MsXG4gIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSB7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5mb290ZXIgLmZvcm0tc3Vic2NyaWJlLWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgZW0ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc29jaWFsX2ljb25zLnBuZyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB3aWR0aDogMTNweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDdweDsgfVxuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogNCAvIDIpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBlbSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NvY2lhbF9pY29uc0AyeC5wbmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA1MHB4IDEyNXB4OyB9IH1cbiAgLmZvb3RlciAubGlua3Muc29jaWFsLW1lZGlhIGVtLmZhY2Vib29rIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0wcHg7XG4gICAgaGVpZ2h0OiAxM3B4OyB9XG4gIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBhOmhvdmVyIGVtLmZhY2Vib29rIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjVweCAtMHB4OyB9XG4gIC5mb290ZXIgLmxpbmtzLnNvY2lhbC1tZWRpYSBlbS50d2l0dGVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yNHB4O1xuICAgIGhlaWdodDogMTNweDsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgYTpob3ZlciBlbS50d2l0dGVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjVweCAtMjRweDsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgZW0ueW91dHViZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDlweDtcbiAgICBoZWlnaHQ6IDEzcHg7IH1cbiAgLmZvb3RlciAubGlua3Muc29jaWFsLW1lZGlhIGE6aG92ZXIgZW0ueW91dHViZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI1cHggLTQ5cHg7IH1cbiAgLmZvb3RlciAubGlua3Muc29jaWFsLW1lZGlhIGVtLnBpbnRlcmVzdCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNzRweDtcbiAgICBoZWlnaHQ6IDE1cHg7IH1cbiAgLmZvb3RlciAubGlua3Muc29jaWFsLW1lZGlhIGE6aG92ZXIgZW0ucGludGVyZXN0IHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjVweCAtNzRweDsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgZW0ucnNzIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05OXB4O1xuICAgIGhlaWdodDogMTNweDsgfVxuICAuZm9vdGVyIC5saW5rcy5zb2NpYWwtbWVkaWEgYTpob3ZlciBlbS5yc3Mge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNXB4IC05OXB4OyB9XG4gIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSAuaW5wdXQtYm94IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNjUuNjI1JTtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAuZm9vdGVyIC5ibG9jay1zdWJzY3JpYmUgLmlucHV0LXRleHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuZm9vdGVyIC5ibG9jay1zdWJzY3JpYmUgLmJsb2NrLWNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiA3cHg7IH1cbiAgICAuZm9vdGVyIC5ibG9jay1zdWJzY3JpYmUgLmJsb2NrLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSAuYWN0aW9ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDM0LjM3NSU7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSAuYWN0aW9ucyAuYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmZvb3RlciAuYnVncyxcbiAgLmZvb3RlciBhZGRyZXNzIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuZm9vdGVyIC5idWdzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mb290ZXIgLmZvcm0tbGFuZ3VhZ2UsXG4gIC5mb290ZXIgLmN1cnJlbmN5LXN3aXRjaGVyLFxuICAuZm9vdGVyIC5zdG9yZS1zd2l0Y2hlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuZm9vdGVyIC5mb3JtLWxhbmd1YWdlLFxuICAuZm9vdGVyIC5jdXJyZW5jeS1zd2l0Y2hlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZm9vdGVyIGFkZHJlc3Mge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogIzViNWI1YTtcbiAgICBtYXJnaW4tdG9wOiAzNXB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1OTlweCkge1xuICAgICAgLmZvb3RlciBhZGRyZXNzIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4OyB9IH1cbiAgICAuZm9vdGVyIGFkZHJlc3MgYSB7XG4gICAgICBjb2xvcjogIzViNWI1YTsgfVxuICAgICAgLmZvb3RlciBhZGRyZXNzIGE6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuZm9vdGVyIC5saW5rcyB7XG4gICAgICB3aWR0aDogMjIuNjU2MjUlO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMy4xMjUlOyB9XG4gICAgLmZvb3RlciAubGlua3M6bnRoLWNoaWxkKDQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMzVweCBhdXRvOyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAgIC5mb290ZXIgLmZvcm0tbGFuZ3VhZ2UsXG4gICAgLmZvb3RlciAuY3VycmVuY3ktc3dpdGNoZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLmZvb3RlciAubGlua3Mge1xuICAgICAgd2lkdGg6IDQ4LjQzNzUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmZvb3RlciAubGlua3M6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzLjEyNSU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5mb290ZXIgLmJsb2NrLXN1YnNjcmliZSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmZvb3RlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBHZW5lcmFsIFByb2R1Y3QgTGlzdCBTdHlsZXMgKG5vdCBtb2R1bGUtc3BlY2lmaWMpXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcm9kdWN0IExpc3QgR2VuZXJhbFxuICovXG4uY2F0ZWdvcnktdGl0bGUgaDEsXG5ib2R5LmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IC5wYWdlLXRpdGxlIGgxIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5jYXRhbG9nc2VhcmNoLXJlc3VsdC1pbmRleCAucGFnZS10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDM1cHg7IH0gfVxuXG4uY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggLnBhZ2UtdGl0bGUgaDEge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IC5zaWRlYmFyIHtcbiAgICBtYXJnaW4tdG9wOiA3MHB4OyB9IH1cblxuLmNhdGVnb3J5LWltYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cblxuLnByb2R1Y3RzLWxpc3QgLmFjdGlvbiAuYnV0dG9uLFxuLnByb2R1Y3RzLWdyaWQgLmFjdGlvbnMgLmJ1dHRvbiB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJvZHVjdCBOYW1lXG4gKi9cbmgyLnByb2R1Y3QtbmFtZSxcbmgzLnByb2R1Y3QtbmFtZSxcbmg0LnByb2R1Y3QtbmFtZSxcbmg1LnByb2R1Y3QtbmFtZSxcbnAucHJvZHVjdC1uYW1lIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cbiAgaDIucHJvZHVjdC1uYW1lIGEsXG4gIGgzLnByb2R1Y3QtbmFtZSBhLFxuICBoNC5wcm9kdWN0LW5hbWUgYSxcbiAgaDUucHJvZHVjdC1uYW1lIGEsXG4gIHAucHJvZHVjdC1uYW1lIGEge1xuICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gICAgaDIucHJvZHVjdC1uYW1lIGE6aG92ZXIsXG4gICAgaDMucHJvZHVjdC1uYW1lIGE6aG92ZXIsXG4gICAgaDQucHJvZHVjdC1uYW1lIGE6aG92ZXIsXG4gICAgaDUucHJvZHVjdC1uYW1lIGE6aG92ZXIsXG4gICAgcC5wcm9kdWN0LW5hbWUgYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzFmODZiZDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1uYW1lLFxuLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtbmFtZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDE1cHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBmb250LXNpemU6IDE0cHg7IH1cbiAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtbmFtZSBhLFxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1uYW1lIGEge1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUHJvZHVjdCBHcmlkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnByb2R1Y3RzLWdyaWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnByb2R1Y3RzLWdyaWQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5wcm9kdWN0cy1ncmlkID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucHJvZHVjdHMtZ3JpZCA+IGxpOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uYmFkZ2UtbmV3LCAuYmFkZ2UtY3VzdG9tIHtcbiAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjNmNiMzE1O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBjb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5iYWRnZS1uZXcsIC5iYWRnZS1jdXN0b20ge1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgd2lkdGg6IDkwcHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogOTBweCAhaW1wb3J0YW50O1xuICAgICAgbGluZS1oZWlnaHQ6IDkwcHg7XG4gICAgICByaWdodDogMnB4O1xuICAgICAgYm90dG9tOiAxMHB4OyB9IH1cblxuLmJhZGdlLWN1c3RvbSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmJhZGdlLWN1c3RvbSB7XG4gICAgICBsZWZ0OiAycHg7XG4gICAgICB0b3A6IDEwcHg7IH0gfVxuXG4ubmF2LXByaW1hcnkgLmJhZGdlLW5ldywgLm5hdi1wcmltYXJ5IC5iYWRnZS1jdXN0b20ge1xuICB3aWR0aDogNjBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICM2Y2IzMTU7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLm5hdi1wcmltYXJ5IC5iYWRnZS1uZXcsIC5uYXYtcHJpbWFyeSAuYmFkZ2UtY3VzdG9tIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHdpZHRoOiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgICAgcmlnaHQ6IC0xMHB4O1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA2MHB4OyB9IH1cblxuLm5hdi1wcmltYXJ5IC5iYWRnZS1jdXN0b20ge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IC0xMHB4O1xuICB0b3A6IDA7IH1cblxuLmJhZGdlLWN1c3RvbSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRyYW5zZm9ybTogbm9uZTsgfVxuXG4ucHJvZHVjdC1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAucHJvZHVjdC1pbWFnZTpob3ZlciAuYmFkZ2UtbmV3IHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyAucHJvZHVjdC1jYXRlZ29yeSAucHJvZHVjdCAucHJvZHVjdC1pbWFnZSwgI2Jsb2NrLXByb2R1Y3RmaW5kZXIgLnByb2R1Y3QtaW1hZ2UsIC5ib3gtdXAtc2VsbC1zbGlkZXIgLnByb2R1Y3QtaW1hZ2UsIC5jYXRhbG9nc2VhcmNoLXJlc3VsdC1pbmRleCAucHJvZHVjdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDE1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlIGltZzpoaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLndpZGdldC1uZXctcHJvZHVjdHMgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2Uge1xuICB3aWR0aDogNzUlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBtYXJnaW4tbGVmdDogMTAlOyB9XG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWluZm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnByb2R1Y3RzLWdyaWQgLmFjdGlvbnMge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDBweDtcbiAgbWluLWhlaWdodDogODVweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnByb2R1Y3RzLWdyaWQgLnJhdGluZ3MgLnJhdGluZy1ib3gge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4ucHJvZHVjdHMtZ3JpZCAucmF0aW5ncyAuYW1vdW50IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdHMtZ3JpZCAucHJpY2UtYm94IHtcbiAgY29sb3I6ICM1YjViNWE7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbWFyZ2luOiAwIDAgNXB4OyB9XG5cbi5wcm9kdWN0cy1ncmlkIC5hZGQtdG8tbGlua3Mge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIENvbmZpZzogVHdvIGNvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbi5wcm9kdWN0cy1ncmlkID4gbGkge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDQ3LjcyNzI3JTtcbiAgbWFyZ2luLXJpZ2h0OiA0LjU0NTQ1JTsgfVxuXG4ucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgY2xlYXI6IGxlZnQ7IH1cblxuLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoZXZlbikge1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW1hZ2U6YmVmb3JlLCAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICB6LWluZGV4OiAyOyB9XG4gIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvb3BjLWFqYXgtbG9hZGVyLmdpZlwiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAzOyB9XG4gIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlLmxvYWRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlLmxvYWRpbmc6YmVmb3JlLCAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZS5sb2FkaW5nOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLyogQ29uZmlnOiBUaHJlZSBjb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gIC5wcm9kdWN0cy1ncmlkIHtcbiAgICAvKiBVbmRvIHR3by1jb2x1bW4gY29uZmlnICovXG4gICAgLyogU2V0IHRocmVlLWNvbHVtbiBjb25maWcgKi8gfVxuICAgIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMuNzczNTglOyB9XG4gICAgLnByb2R1Y3RzLWdyaWQgPiBsaSB7XG4gICAgICB3aWR0aDogMzAuODE3NjElO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzLjc3MzU4JTsgfVxuICAgIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBsZWZ0OyB9XG4gICAgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLyogQ29uZmlnOiBDb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gIC8qIFVuZG8gdGhyZWUtY29sdW1uIGNvbmZpZyAqL1xuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaTpudGgtY2hpbGQoM24pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gIC8qIFNldCBjb2x1bW4gY29uZmlnICovXG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wgPiBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sID4gbGkge1xuICAgIHdpZHRoOiAyMy4zMTQ2MSU7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sID4gbGk6bnRoLWNoaWxkKDRuKzEpIHtcbiAgICBjbGVhcjogbGVmdDsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sID4gbGk6bnRoLWNoaWxkKDRuKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC8qIENvbmZpZzogQ29sdW1ucyArIGZsZXhpYmxlIGd1dHRlciAqL1xuICAvKiBVbmRvIHRocmVlLWNvbHVtbiBjb25maWcgKi9cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbCA+IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGk6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGk6bnRoLWNoaWxkKDNuKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAvKiBTZXQgY29sdW1uIGNvbmZpZyAqL1xuICAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sID4gbGkge1xuICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbCA+IGxpIHtcbiAgICB3aWR0aDogMTguMjAyMjUlO1xuICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbCA+IGxpOm50aC1jaGlsZCg1bisxKSB7XG4gICAgY2xlYXI6IGxlZnQ7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbCA+IGxpOm50aC1jaGlsZCg1bikge1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAvKiBDb25maWc6IENvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgLyogVW5kbyB0aHJlZS1jb2x1bW4gY29uZmlnICovXG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNi1jb2wgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgLyogU2V0IGNvbHVtbiBjb25maWcgKi9cbiAgLnByb2R1Y3RzLWdyaWQtLW1heC02LWNvbCA+IGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNi1jb2wgPiBsaSB7XG4gICAgd2lkdGg6IDE0Ljc5NDAxJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNi1jb2wgPiBsaTpudGgtY2hpbGQoNm4rMSkge1xuICAgIGNsZWFyOiBsZWZ0OyB9XG4gIC5wcm9kdWN0cy1ncmlkLS1tYXgtNi1jb2wgPiBsaTpudGgtY2hpbGQoNm4pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQcm9kdWN0IExpc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucHJvZHVjdHMtbGlzdCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLnByb2R1Y3RzLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VERURFRDsgfVxuICAgIC5wcm9kdWN0cy1saXN0ID4gbGk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnByb2R1Y3RzLWxpc3QgPiBsaSAucHJvZHVjdC1pbWFnZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAgIC5wcm9kdWN0cy1saXN0ID4gbGkgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAucHJvZHVjdHMtbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDY2LjY2NjY3JTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnByb2R1Y3QtbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5yYXRpbmdzIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5yYXRpbmdzIC5yYXRpbmctYm94LFxuICAgIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnJhdGluZ3MgLnJhdGluZy1saW5rcyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogN3B4OyB9XG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucmF0aW5ncyAucmF0aW5nLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcmljZS1ib3gge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLmFjdGlvbiB7XG4gICAgbWFyZ2luOiA3cHggMDsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5kZXNjIHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7IH1cbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJvZHVjdC1wcmltYXJ5LFxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5kZXNjIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNjUlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJvZHVjdC1zZWNvbmRhcnkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMzUlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNsZWFyOiByaWdodDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LW5hbWUgYSB7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJvZHVjdC1wcmltYXJ5LFxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5kZXNjIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNjAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCAucHJvZHVjdC1zZWNvbmRhcnkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNDAlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5wcm9kdWN0LXByaW1hcnksXG4gIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnByb2R1Y3Qtc2Vjb25kYXJ5LFxuICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIC5kZXNjIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBNaW5pIFByb2R1Y3QgTGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5taW5pLXByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaW1hZ2Uge1xuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiA1MHB4OyB9XG5cbi5taW5pLXByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtZGV0YWlscyB7XG4gIG1hcmdpbi1sZWZ0OiA2MHB4OyB9XG5cbi5taW5pLXByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtZGV0YWlscyAucHJvZHVjdC1uYW1lIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7IH1cblxuLm1pbmktcHJvZHVjdHMtbGlzdCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNsZWFyOiBib3RoOyB9XG4gIC5taW5pLXByb2R1Y3RzLWxpc3QgbGk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5taW5pLXByb2R1Y3RzLWltYWdlcy1saXN0OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4ubWluaS1wcm9kdWN0cy1pbWFnZXMtbGlzdCBsaS5pdGVtIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCA1cHggMTBweCAwOyB9XG4gIC5taW5pLXByb2R1Y3RzLWltYWdlcy1saXN0IGxpLml0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogNXB4OyB9XG4gIC5taW5pLXByb2R1Y3RzLWltYWdlcy1saXN0IGxpLml0ZW0gLnByb2R1Y3QtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLm1pbmktcHJvZHVjdHMtaW1hZ2VzLWxpc3QgbGkuaXRlbSAucHJvZHVjdC1pbWFnZSBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2F0YWxvZyAtIExpc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY2F0ZWdvcnktaW1hZ2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBwYWRkaW5nOiAxMHB4OyB9XG4gIC5jYXRlZ29yeS1pbWFnZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC5jYXRlZ29yeS1pbWFnZSBpbWc6aGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTGF5ZXJlZCBOYXZpZ2F0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBwYWRkaW5nOiA3cHggMTBweCA3cHggMjRweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI0NDQ0NDQztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMxZjg2YmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjRjRGNEY0LCAzJSk7IH1cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50IC50b2dnbGUtdGFicyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgcGFkZGluZzogN3B4IDEwcHggN3B4IDI0cHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNDQ0NDQ0M7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjMWY4NmJkO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgbGVmdDogMTBweDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCA+IGRsID4gZHQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNGNEY0RjQsIDMlKTsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGRkIHtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItd2lkdGg6IDAgMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNDQ0NDQ0M7IH1cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMXB4OyB9XG5cbi5ibG9jay1sYXllcmVkLW5hdiBkbCBkZCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IGRsIGRkIG9sID4gbGkgPiBzcGFuLCAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgZGQgb2wgPiBsaSA+IGEge1xuICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5ibG9jay1sYXllcmVkLW5hdiBkbCBkZCBvbCA+IGxpID4gYSAuY291bnQge1xuICAgIGNvbG9yOiAjNWI1YjVhOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdDphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuc2lkZWJhciAuYmxvY2suYmxvY2stbGF5ZXJlZC1uYXYge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2LS1uby1maWx0ZXJzIC5ibG9jay10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7IH1cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGR0IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7IH1cbiAgICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCA+IGRsID4gZHQ6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzFmODZiZDsgfVxuICAgICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50ID4gZGwgPiBkdDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMWY4NmJkO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cbiAgICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCA+IGRsID4gZHQubGFzdCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudCA+IGRsID4gZGQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stY29udGVudC5hY2NvcmRpb24tb3BlbiA+IGRsID4gZHQuY3VycmVudCB7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IH1cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQuYWNjb3JkaW9uLW9wZW4gPiBkbCA+IGR0LmN1cnJlbnQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMxZjg2YmQ7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgbGVmdDogNnB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1jb250ZW50LmFjY29yZGlvbi1vcGVuID4gZGwgPiBkZC5jdXJyZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stc3VidGl0bGUtLWZpbHRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFmODZiZDtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stc3VidGl0bGUtLWZpbHRlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItdG9wOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNGRkZGRkY7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTVweDsgfVxuICAgIC5ibG9jay1sYXllcmVkLW5hdiAuYmxvY2stc3VidGl0bGUtLWZpbHRlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWI3NmE3O1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLXN1YnRpdGxlLS1maWx0ZXIuYWN0aXZlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjRkZGRkZGO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gICNuYXJyb3ctYnktbGlzdCxcbiAgI25hcnJvdy1ieS1saXN0MiB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLmJsb2NrLWxheWVyZWQtbmF2IGRsIG9sID4gbGkgPiBhLFxuICAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgb2wgPiBsaSA+IHNwYW4ge1xuICAgIHBhZGRpbmc6IDdweDtcbiAgICBtYXJnaW46IDVweDsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgb2wgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7IH1cbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgZGwgb2wgPiBsaSA+IGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogc2hhZGUoI0Y0RjRGNCwgMyUpOyB9IH1cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5jdXJyZW50bHkgLmJsb2NrLXN1YnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmN1cnJlbnRseSBvbCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmN1cnJlbnRseSBvbCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuYmxvY2stbGF5ZXJlZC1uYXYgLmN1cnJlbnRseSBvbCBsaSAubGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5ibG9jay1sYXllcmVkLW5hdiAuY3VycmVudGx5IG9sIGxpOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmFjdGlvbnMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG5cbi5jb2wxLWxheW91dC1zZWFyY2hyZXN1bHRzIC5jb2wtbWFpbiB7XG4gIGZsb2F0OiBub25lO1xuICBtYXgtd2lkdGg6IDY4MHB4O1xuICBtYXJnaW46IGF1dG87IH1cblxuLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAubWFpbi1jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4uY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3ICNoZWFkZXItbmF2IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfVxuXG4uY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5mb290ZXIge1xuICBib3JkZXItdG9wOiBub25lOyB9XG5cbi5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLmNvbC1tYWluIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1heC13aWR0aDogNjgwcHg7XG4gIG1hcmdpbjogYXV0bzsgfVxuXG4uY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5wcm9kdWN0LXJvdyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgcGFkZGluZzogMzVweDsgfVxuICAuY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5wcm9kdWN0LXJvdyBoMiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IC5wcm9kdWN0LWNvbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IC5wcm9kdWN0LWNvbC1pbWFnZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldyAucHJvZHVjdC1yb3cgLnByb2R1Y3QtY29sLWltYWdlIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgICAgd2lkdGg6IDgwJTtcbiAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5wcm9kdWN0LXJvdzphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5wcm9kdWN0LXJvdyAucHJvZHVjdC1jb2wsIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IC5wcm9kdWN0LWNvbC1pbWFnZSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IC5wcm9kdWN0LWNvbCB7XG4gICAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93IC5wcm9kdWN0LWNvbC1pbWFnZSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICAuY29sMS1sYXlvdXQtcHJvZHVjdG92ZXJ2aWV3IC5wcm9kdWN0LXJvdyAucHJvZHVjdC1jb2wtaW1hZ2UgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93Om50aC1jaGlsZChldmVuKSAucHJvZHVjdC1jb2wtaW1hZ2Uge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLnByb2R1Y3Qtcm93Om50aC1jaGlsZChldmVuKSAucHJvZHVjdC1jb2wge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbi5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcgLmZvb3RlciwgLmNhdGVnb3J5LWxpc3QgLmZvb3RlciB7XG4gIGJvcmRlci10b3A6IG5vbmU7IH1cblxuLmNhdGVnb3J5LXRpdGxlIHtcbiAgcGFkZGluZzogMzVweCAwO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5ODBweCkge1xuICAgIC5jYXRlZ29yeS10aXRsZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OyB9IH1cbiAgLmNhdGVnb3J5LXRpdGxlIC5jb2wtbWFpbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5ODBweCkge1xuICAgIC5jYXRlZ29yeS10aXRsZSAuY29sLW1haW4ge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gICAgLmNhdGVnb3J5LXRpdGxlIC5jb2wtcmlnaHQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciwgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyLCAuY2F0ZWdvcnktdGl0bGUgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay5kZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIsIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktdGl0bGUtd3JhcHBlciwgLmNhdGVnb3J5LXRpdGxlIC5saWdodGJveC1jb250ZW50LWxpbmsuZGVza3RvcCB7XG4gICAgICAgIGhlaWdodDogMjYwcHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIsIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktdGl0bGUtd3JhcHBlciwgLmNhdGVnb3J5LXRpdGxlIC5saWdodGJveC1jb250ZW50LWxpbmsuZGVza3RvcCB7XG4gICAgICAgIGhlaWdodDogMzQwcHg7IH0gfVxuICAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIgaDEgLnN1YmxpbmUsIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktdGl0bGUtd3JhcHBlciBoMSAuc3VibGluZSB7XG4gICAgY29sb3I6ICMxZjg2YmQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIgaW1nLCAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LXRpdGxlLXdyYXBwZXIgaW1nIHtcbiAgICAgIHdpZHRoOiA2MCU7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5jYXRlZ29yeS10aXRsZSAuY2F0ZWdvcnktaW1hZ2Utd3JhcHBlciwgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS1pbWFnZS13cmFwcGVyIGltZywgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS1pbWFnZS13cmFwcGVyIC5jYXRlZ29yeS10aXRsZS1pbm5lciwgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyIGltZywgLmNhdGVnb3J5LXRpdGxlIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyIC5jYXRlZ29yeS10aXRsZS1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuY2F0ZWdvcnktdGl0bGUgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIgaW1nIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC02MCUsIC01MCUpO1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICBtYXgtd2lkdGg6IDMwMHB4OyB9IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgIC5jYXRlZ29yeS10aXRsZSAubGlnaHRib3gtY29udGVudC1saW5rLm1vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNhdGVnb3J5LXRpdGxlIC5saWdodGJveC1jb250ZW50LWxpbmsuZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jYXRlZ29yeS10aXRsZSAubGlnaHRib3gtY29udGVudC1saW5rLmRlc2t0b3AgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay1pbm5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgLmNhdGVnb3J5LXRpdGxlIC5saWdodGJveC1jb250ZW50LWxpbmsuZGVza3RvcCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5jYXRlZ29yeS10aXRsZSAubGlnaHRib3gtY29udGVudC1saW5rIGEge1xuICAgIG1hcmdpbjogNXB4IDA7IH1cbiAgLmNhdGVnb3J5LXRpdGxlIGgxIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5jYXRlZ29yeS10aXRsZSBoMSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH0gfVxuXG4ucHJvZHVjdC1jb2xsZWN0aW9ucyB7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAucHJvZHVjdC1jb2xsZWN0aW9ucyAuc2lkZWJhciB7XG4gICAgcGFkZGluZy10b3A6IDM1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDM1cHg7IH1cbiAgICAucHJvZHVjdC1jb2xsZWN0aW9ucyAuc2lkZWJhciBoMywgLnByb2R1Y3QtY29sbGVjdGlvbnMgLnNpZGViYXIgaDQge1xuICAgICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAgIC5wcm9kdWN0LWNvbGxlY3Rpb25zIC5zaWRlYmFyIGgzLnN1cHBvcnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgICAucHJvZHVjdC1jb2xsZWN0aW9ucyAuc2lkZWJhciBwIGEge1xuICAgICAgY29sb3I6ICMwMDNiNWY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgLnByb2R1Y3QtY29sbGVjdGlvbnMgLnNpZGViYXIgcCBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMxZjg2YmQ7IH1cbiAgICAucHJvZHVjdC1jb2xsZWN0aW9ucyAuc2lkZWJhciAucGhvbmUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5wcm9kdWN0LWNhdGVnb3J5IHtcbiAgcGFkZGluZzogMzVweCAwOyB9XG4gIC5wcm9kdWN0LWNhdGVnb3J5IHVsIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfVxuICAgIC5wcm9kdWN0LWNhdGVnb3J5IHVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5wcm9kdWN0LWNhdGVnb3J5IHVsIGxpLnByb2R1Y3Qge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgdWwgbGkucHJvZHVjdCBpbWcucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5wcm9kdWN0LWNhdGVnb3J5IHVsIGxpLnByb2R1Y3QgLnByb2R1Y3QtdGl0bGUge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAgICAgICAucHJvZHVjdC1jYXRlZ29yeSB1bCBsaS5wcm9kdWN0IC5wcm9kdWN0LXRpdGxlIGEge1xuICAgICAgICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAgIC5wcm9kdWN0LWNhdGVnb3J5IHVsIGxpLnByb2R1Y3QgLnByb2R1Y3QtdGl0bGUgYTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzFmODZiZDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgLmNvbC1yaWdodCAuc2VhcmNoX21pbmlfZm9ybSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLmNhdGVnb3J5LW5hbWUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5wcm9kdWN0LXZpZXcgI2FqYXgtc2t1LCAucHJvZHVjdC12aWV3ICNoaWRkZW4tYWpheC1za3Uge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LXZpZXcgI2FqYXgtc2t1IHtcbiAgbWFyZ2luLXRvcDogNXB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgI2ltYWdlLW1haW4ge1xuICB3aWR0aDogMTIwJTtcbiAgbWF4LXdpZHRoOiAxMjAlO1xuICBtYXJnaW4tbGVmdDogLTEwJTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtY29sLWltZy1ib3gsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtaW5mb3JtYXRpb24ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtaW5mb3JtYXRpb24ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1jb2wtaW1nLWJveCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1jb2wtZGVzY3JpcHRpb24sIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtY29sLXByaWNlIHtcbiAgICB3aWR0aDogMzMuMzMlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWNvbC1kZXNjcmlwdGlvbiwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1jb2wtcHJpY2Uge1xuICAgIHBhZGRpbmctdG9wOiA2MHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAucHJvZHVjdC12aWV3IC5zaG9ydC1kZXNjcmlwdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWNvbC1kZXNjcmlwdGlvbiAucHJvZHVjdC1vcHRpb25zIGxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7IH1cblxuLnByb2R1Y3QtdmlldyAuc2FtcGxlLXJlcXVlc3Qge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAucHJvZHVjdC12aWV3IC5zYW1wbGUtcmVxdWVzdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9IH1cblxuLnByb2R1Y3QtdmlldyAuZ3JhZHVhdGVkLWxpbmsge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LW5hbWUge1xuICBjb2xvcjogIzAwOGJkMjsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1jb2wtaW1nLWJveCB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1jb2wtaW1nLWJveCAucHJvZHVjdC1zaGFyZSB7XG4gICAgbWFyZ2luLXRvcDogMzVweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LWNvbC1pbWctYm94IC5wcm9kdWN0LXNoYXJlIGltZyB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LWNvbC1pbWctYm94IC5wcm9kdWN0LXNoYXJlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDsgfSB9XG4gICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByb2R1Y3QtY29sLWltZy1ib3ggLnByb2R1Y3Qtc2hhcmUgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByb2R1Y3Qtdmlldy10b3Age1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHBhZGRpbmctdG9wOiAzNXB4OyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcm9kdWN0LXZpZXctdG9wOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByb2R1Y3Qtdmlldy10b3Age1xuICAgICAgcGFkZGluZy1ib3R0b206IDM1cHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1jb2wtcHJpY2Uge1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1jb2wtcHJpY2Uge1xuICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAuYWRkLXRvLWNhcnQgLnF0eS13cmFwcGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCBwLnJlcXVpcmVkIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1vcHRpb25zIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJvZHVjdC1vcHRpb25zIGRkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcmljZS1ib3ggLnByaWNlLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWVzc2VudGlhbCAucHJpY2UsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5jb25maWd1cmFibGUtcHJpY2UtZnJvbS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcmljZS1ib3gge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5hdmFpbGFiaWxpdHkuaW4tc3RvY2sge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3QtZXNzZW50aWFsIC5wcmljZS1pbmZvIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1lc3NlbnRpYWwgLnByaWNlLWluZm8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNzBweDtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyB7XG4gIG1hcmdpbjogMzVweCAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlsczphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LWNhdGVnb3J5LW5hdiwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIGgyLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyBoMywgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmgzLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyBoNCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcGFkZGluZzogMTBweCAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIGltZy5pbWFnZS1pY29uIHtcbiAgbWFyZ2luLXRvcDogLTNweDtcbiAgbWFyZ2luLXJpZ2h0OiA3cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICB3aWR0aDogNzUlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfSB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyB1bCB7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zbGlkZW91dCBoMiwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IGgzIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IGgyOmJlZm9yZSwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IGgzOmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMTZweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uLWFycm93LWFjY29yZGlvbi1kb3duLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDEwcHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc2xpZGVvdXQgaDIub3BlbjpiZWZvcmUsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zbGlkZW91dCBoMy5vcGVuOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uLWFycm93LWFjY29yZGlvbi11cC5zdmcpOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zbGlkZW91dCB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IHVsLm9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zbGlkZW91dCB1bCBsaSB7XG4gICAgdGV4dC1pbmRlbnQ6IC04cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgbWFyZ2luOiA0cHggMDsgfVxuICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zbGlkZW91dCB1bCBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCItIFwiOyB9XG4gICAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnNsaWRlb3V0IHVsIGxpLm5vLWRhc2g6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogOXB4OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zaG9wLWxpc3QgYcKgIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5kb3dubG9hZC1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdy5kb3dubG9hZC1zaG9wIC5hZGRpdGlvbmFsLXdyYXBwZXIgPiBkaXYge1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDM1cHggMDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtZGV0YWlscyAuYWRkaXRpb25hbC1yb3cgLnN1cHBvcnQtYmxvY2sge1xuICBwYWRkaW5nLXRvcDogMzVweDsgfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuc3VwcG9ydC1ibG9jayBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5pbnB1dC1ib3gge1xuICAgIG1heC13aWR0aDogMjYwcHg7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXJvdyAuaW5wdXQtdGV4dCB7XG4gIGJvcmRlcjogM3B4IHNvbGlkICMwMDNiNWY7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IC5zZWFyY2hfbWluaV9mb3JtIC5zZWFyY2gtYnV0dG9uOmJlZm9yZSB7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi1zZWFyY2gtZGFya2JsdWUuc3ZnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyNHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWRldGFpbHMgLmFkZGl0aW9uYWwtcm93IGlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzAwM2I1ZjsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXdyYXBwZXIgPiBkaXYge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1kZXRhaWxzIC5hZGRpdGlvbmFsLXdyYXBwZXIge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAucHJvZHVjdC1jYXRlZ29yeS1uYXYge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLnByb2R1Y3QtY2F0ZWdvcnktbmF2IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAyNSU7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuICAgIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5wcm9kdWN0LWNhdGVnb3J5LW5hdiB1bCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsIHtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsIHtcbiAgcGFkZGluZzogMjBweCAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbCB7XG4gICAgICBwYWRkaW5nOiAzNXB4IDE1cHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH0gfVxuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwgaDMsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCBoNCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsIGgzLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwgaDQge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbCBhOm5vdCgucHJvZHVjdC1pbWFnZSksIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbCBhOm5vdCgucHJvZHVjdC1pbWFnZSkge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAzYjVmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7IH1cbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwgYTpub3QoLnByb2R1Y3QtaW1hZ2UpOmhvdmVyLCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwgYTpub3QoLnByb2R1Y3QtaW1hZ2UpLmFjdGl2ZSwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsIGE6bm90KC5wcm9kdWN0LWltYWdlKTpob3ZlciwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsIGE6bm90KC5wcm9kdWN0LWltYWdlKS5hY3RpdmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICMxZjg2YmQ7XG4gICAgICBib3JkZXItY29sb3I6ICMxZjg2YmQ7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICB3aWR0aDogODAlO1xuICAgICAgbWFyZ2luOiBhdXRvOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwtc2xpZGVyIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsLXNsaWRlciwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciB7XG4gICAgcGFkZGluZzogMCA3MHB4OyB9IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsLXNsaWRlciAuc2xpY2stc2xpZGUsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbC1zbGlkZXIgLnNsaWNrLXNsaWRlIHtcbiAgbWFyZ2luOiAwIDE1cHg7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsLXNsaWRlciAuc2xpY2stbmV4dCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsLXNsaWRlciAuc2xpY2stcHJldiwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAuc2xpY2stbmV4dCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAuc2xpY2stcHJldiB7XG4gIGJhY2tncm91bmQ6ICNjOWM5Yzk7IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC11cC1zZWxsLXNsaWRlciAuc2xpY2stbmV4dCwgLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAuc2xpY2stbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtdXAtc2VsbC1zbGlkZXIgLnNsaWNrLXByZXYsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbC1zbGlkZXIgLnNsaWNrLXByZXYge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LXVwLXNlbGwtc2xpZGVyIC5wcm9kdWN0LW5hbWUsIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbC1zbGlkZXIgLnByb2R1Y3QtbmFtZSB7XG4gIG1hcmdpbi10b3A6IDVweDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LXZpZXctZGV0YWlscyAuYm94LWNyb3NzLXNlbGwtc2xpZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtdmlldy1kZXRhaWxzIC5ib3gtY3Jvc3Mtc2VsbC1zbGlkZXIgLm5vLXNsaWNrLXNsaWRlIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCAxNXB4OyB9IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC12aWV3LWRldGFpbHMgLmJveC1jcm9zcy1zZWxsLXNsaWRlciAubm8tc2xpY2stc2xpZGUuc2xpY2stc2xpZGUge1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhdGFsb2cgLSBNU1JQIE1BUCBQb3B1cFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jYXJ0LW1zcnAtdG90YWxzIHtcbiAgY29sb3I6IHJlZDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDEwcHggMTBweCAwO1xuICBwYWRkaW5nOiAxMHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubWFwLWNhcnQtc2lkZWJhci10b3RhbCB7XG4gIGNvbG9yOiByZWQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAycHggNXB4OyB9XG5cbi5tYXAtcG9wdXAge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IDVweCBzb2xpZCAjQ0NDQ0NDO1xuICBtYXJnaW46IDEycHggMCAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiA0NTBweDtcbiAgei1pbmRleDogMTAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAubWFwLXBvcHVwLm1hcC1wb3B1cC1yaWdodCB7XG4gICAgICBsZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7IH1cbiAgICAubWFwLXBvcHVwLm1hcC1wb3B1cC1sZWZ0IHtcbiAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gICAgLm1hcC1wb3B1cCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGxlZnQ6IDBweCAhaW1wb3J0YW50OyB9IH1cbiAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWhlYWRpbmcge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1oZWFkaW5nIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1oZWFkaW5nIGgzIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2xvc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogMHB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICB3aWR0aDogMzZweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jb250ZW50IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0VERURFRDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jb250ZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IHtcbiAgICBwYWRkaW5nOiAxMHB4IDA7IH1cbiAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgZm9ybTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAuYnV0dG9uIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIGNsZWFyOiBsZWZ0OyB9XG4gICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5hZGRpdGlvbmFsLWFkZHRvY2FydC1ib3gge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtaW4td2lkdGg6IDIxMHB4OyB9XG4gICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLmFkZGl0aW9uYWwtYWRkdG9jYXJ0LWJveCBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAucGF5cGFsLWxvZ28ge1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAucGF5cGFsLWxvZ28gYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGNsZWFyOiBsZWZ0OyB9XG4gICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLnBheXBhbC1sb2dvIC5wYXlwYWwtb3Ige1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAucGF5cGFsLWxvZ286YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLnBheXBhbC1sb2dvIC5ibWxfYnV0dG9uIGEge1xuICAgICAgICBjbGVhcjogbGVmdDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLmJ1dHRvbixcbiAgICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5hZGRpdGlvbmFsLWFkZHRvY2FydC1ib3gsXG4gICAgICAgIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1jaGVja291dCAucGF5cGFsLWxvZ28gYSxcbiAgICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5wYXlwYWwtbG9nbyAucGF5cGFsLW9yIHtcbiAgICAgICAgICBmbG9hdDogbm9uZTsgfVxuICAgICAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQgLmFkZGl0aW9uYWwtYWRkdG9jYXJ0LWJveCB7XG4gICAgICAgICAgbWluLXdpZHRoOiAwcHg7IH1cbiAgICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLWNoZWNrb3V0IC5wYXlwYWwtbG9nbyAucGF5cGFsLW9yIHtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9IH1cbiAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtY2hlY2tvdXQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1wcmljZSB7XG4gICAgcGFkZGluZzogMTBweCAwOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLXByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogMHB4OyB9IH1cbiAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtcHJpY2UgLnByaWNlLWJveCxcbiAgICAubWFwLXBvcHVwIC5tYXAtcG9wdXAtcHJpY2UgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLXByaWNlIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2UtbGluayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLXRleHQge1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cbiAgLm1hcC1wb3B1cCAubWFwLXBvcHVwLXRleHQsXG4gIC5tYXAtcG9wdXAgLm1hcC1wb3B1cC1vbmx5LXRleHQge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRURFREVEOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhdGFsb2cgLSBNU1JQIFByb2R1Y3QgTGlzdGluZ1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wcmljZS1ib3ggLm1hcC1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYXRhbG9nIC0gQ29tcGFyZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ibG9jay1jb21wYXJlIC5wcm9kdWN0LW5hbWU6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5jb21wYXJlLXRhYmxlIC5wcm9kdWN0LWltYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5jb21wYXJlLXRhYmxlIC5wcm9kdWN0LXNob3Atcm93LnRvcCB0ZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tOiAwOyB9XG5cbi5jb21wYXJlLXRhYmxlIC5wcm9kdWN0LXNob3Atcm93LmJvdHRvbSB0ZCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gTGF5b3V0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNhcnQgLmJ1dHRvbiB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuLmNhcnQgLnByb2R1Y3Qtc2FtcGxlIHtcbiAgY29sb3I6ICMxZjg2YmQ7XG4gIGZvbnQtc2l6ZTogMTdweDsgfVxuXG4uY2FydCAuY2FydC1zYW1wbGUtcXR5IHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5jYXJ0IC5zYW1wbGUtYWN0aW9ucyB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4uY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIGJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogM3B4IDEycHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgY29sb3I6ICMxZjg2YmQ7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4uY2FydC1mb3Jtcyxcbi5jcm9zc3NlbGwge1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IGxlZnQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5jYXJ0LWZvcm1zLFxuICAgIC5jcm9zc3NlbGwge1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDsgfSB9XG5cbi5jYXJ0LXRvdGFscy13cmFwcGVyIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5jYXJ0LWZvcm1zIC5kaXNjb3VudCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNhcnQtdGFibGUsXG4uY2FydC10b3RhbHMsXG4uY2FydC1mb3JtcyAuZGlzY291bnQsXG4uY2FydC1mb3JtcyAuZ2lmdGNhcmQsXG4uY2FydC1mb3JtcyAuc2hpcHBpbmcge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4ICNwb3N0Y29kZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LXRhYmxlIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LWZvcm1zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uZGlzcGxheS1ib3RoLXByaWNlcyAuY2FydC10b3RhbHMtd3JhcHBlcixcbi5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jcm9zc3NlbGwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLmRpc3BsYXktYm90aC1wcmljZXMgLmNhcnQtZm9ybXMsXG4uZGlzcGxheS1ib3RoLXByaWNlcyAuY2FydC10b3RhbHMtd3JhcHBlcixcbi5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jcm9zc3NlbGwge1xuICB3aWR0aDogNTAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jcm9zc3NlbGwge1xuICBjbGVhcjogcmlnaHQ7XG4gIGZsb2F0OiByaWdodDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC5kaXNwbGF5LXNpbmdsZS1wcmljZSAuY2FydC10YWJsZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jYXJ0LWZvcm1zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuZGlzcGxheS1zaW5nbGUtcHJpY2UgLmNhcnQtdG90YWxzLXdyYXBwZXIsXG4gIC5kaXNwbGF5LXNpbmdsZS1wcmljZSAuY3Jvc3NzZWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jYXJ0LWZvcm1zLFxuICAuZGlzcGxheS1zaW5nbGUtcHJpY2UgLmNhcnQtdG90YWxzLXdyYXBwZXIsXG4gIC5kaXNwbGF5LXNpbmdsZS1wcmljZSAuY3Jvc3NzZWxsIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jcm9zc3NlbGwge1xuICAgIGNsZWFyOiByaWdodDtcbiAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5wcm9kdWN0LWNhcnQtc2t1IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LWZvcm1zLFxuICAuZGlzcGxheS1ib3RoLXByaWNlcyAuY2FydC10b3RhbHMtd3JhcHBlcixcbiAgLmRpc3BsYXktYm90aC1wcmljZXMgLmNyb3Nzc2VsbCxcbiAgLmRpc3BsYXktc2luZ2xlLXByaWNlIC5jYXJ0LWZvcm1zLFxuICAuZGlzcGxheS1zaW5nbGUtcHJpY2UgLmNhcnQtdG90YWxzLXdyYXBwZXIsXG4gIC5kaXNwbGF5LXNpbmdsZS1wcmljZSAuY3Jvc3NzZWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5kaXNwbGF5LXNpbmdsZS1wcmljZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBDYXJ0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNhcnQgLnBhZ2UtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG4gIC5jYXJ0IC5wYWdlLXRpdGxlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuY2FydCAucGFnZS10aXRsZSBoMSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbi5jaGVja291dC10eXBlcyB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogV2UgYWx3YXlzIHdhbnQgdGhpcyBzaGlwcGluZyBtZXRob2QgdG8gZGlzcGxheSBvbiBpdHMgb3duIGxpbmUgKi8gfVxuICAuY2hlY2tvdXQtdHlwZXMgbGkge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luOiAwIDAgNXB4IDVweDsgfVxuICAgIC5jaGVja291dC10eXBlcyBsaTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAuY2hlY2tvdXQtdHlwZXMgbGkgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmNoZWNrb3V0LXR5cGVzIGxpOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuY2hlY2tvdXQtdHlwZXMgLm1ldGhvZC1jaGVja291dC1jYXJ0LW1ldGhvZHMtbXVsdGlzaGlwcGluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNoZWNrb3V0LXR5cGVzLnRvcCBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5jaGVja291dC10eXBlcy50b3AgLmJtbF9idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICAgLmNoZWNrb3V0LXR5cGVzLnRvcCAuYm1sX2J1dHRvbiBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNoZWNrb3V0LXR5cGVzLnRvcCAucGF5cGFsLWxvZ28gLnBheXBhbC1vciB7XG4gICAgbWFyZ2luLXRvcDogNXB4OyB9XG4gIC5jaGVja291dC10eXBlcy5ib3R0b20gLnBheXBhbC1sb2dvIGEsIC5jaGVja291dC10eXBlcy5taW5pY2FydCAucGF5cGFsLWxvZ28gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNoZWNrb3V0LXR5cGVzLmJvdHRvbSAucGF5cGFsLW9yLCAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQgLnBheXBhbC1vciB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzQxcHgpIHtcbiAgLmNoZWNrb3V0LXR5cGVzLmJvdHRvbSAucGF5cGFsLW9yIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MHB4OyB9IH1cblxuLmNhcnQtdG90YWxzIC5jaGVja291dC10eXBlcyAuYnRuLWNoZWNrb3V0IHtcbiAgbWFyZ2luLWJvdHRvbTogN3B4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgLmNoZWNrb3V0LXR5cGVzIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY2hlY2tvdXQtdHlwZXMuYm90dG9tIC5wYXlwYWwtb3IsIC5jaGVja291dC10eXBlcy5taW5pY2FydCAucGF5cGFsLW9yIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgLmNoZWNrb3V0LXR5cGVzIGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmJ0bi1jaGVja291dCB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uY2FydC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtcmVtb3ZlIHtcbiAgICB3aWR0aDogMzVweDsgfVxuICAuY2FydC10YWJsZSAuY2FydC10b3RhbC1oZWFkIHtcbiAgICBtYXgtd2lkdGg6IDcwcHg7IH1cbiAgLmNhcnQtdGFibGUgdGgsXG4gIC5jYXJ0LXRhYmxlIHRkLFxuICAuY2FydC10YWJsZSB0Ym9keSB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5jYXJ0LXRhYmxlIGgyIHtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2FydC10YWJsZSB0aGVhZCB0aCB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gIC5jYXJ0LXRhYmxlIHRoZWFkIHRoLFxuICAuY2FydC10YWJsZSB0Ym9keSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW5mbyxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW5mby5zYW1wbGUtcHJvZHVjdCxcbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMuc2FtcGxlLXByb2R1Y3Qge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvLnNhbXBsZS1wcm9kdWN0IC5xdHksXG4gICAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMuc2FtcGxlLXByb2R1Y3QgLnF0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW5mbyxcbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMsXG4gICAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9IH1cbiAgLmNhcnQtdGFibGUgdGJvZHkgdHIuZG90dGVkLWJvcmRlciB0ZCB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY2FydC10YWJsZSB0Zm9vdCB0ciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAuY2FydC10YWJsZSB0Zm9vdCB0ciA+IHRkOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuY2FydC10YWJsZSBzcGFuLm9yIHtcbiAgICBmb250LXNpemU6IDlweDtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW1hZ2UgLmNhcnQtbGlua3MsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW5mbyAuYnRuLXJlbW92ZSxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbWFnZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWltYWdlIC5wcm9kdWN0LWltYWdlIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW1hZ2UgYS5jYXJ0LWVkaXQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LXNrdSB7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIC5jYXJ0LXRhYmxlIC5idG4tZW1wdHkge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtdG90YWwsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtcHJpY2Uge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5jYXJ0LXRhYmxlIC5jYXJ0LXRheC10b3RhbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LXRheC10b3RhbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItdG9wOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCAjMDAzYjVmO1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDNweDtcbiAgICAgIHJpZ2h0OiAtMTFweDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LXRheC10b3RhbC5jYXJ0LXRheC10b3RhbC1leHBhbmRlZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wOiA2cHggc29saWQgIzAwM2I1ZjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB0b3A6IDZweDsgfVxuICAuY2FydC10YWJsZSAuY2FydC1saW5rcyA+IGxpIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIG1pbi13aWR0aDogNjVweDtcbiAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgICAuY2FydC10YWJsZSAuY2FydC1saW5rcyA+IGxpID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LWxpbmtzID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyB7XG4gICAgbWluLXdpZHRoOiA2MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAucXR5IHtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGJvcmRlci1jb2xvcjogI0MwQzBDMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMy4yZW07IH1cbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLmNhcnQtdGFibGUgLml0ZW0tb3B0aW9ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmNhcnQtdGFibGUgdGgge1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAuY2FydC10YWJsZSB0aCxcbiAgLmNhcnQtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDdweCA2cHg7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zID4gbGkge1xuICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OTlweCkge1xuICAuZGlzcGxheS1ib3RoLXByaWNlcyAuY2FydC10YWJsZSB0aGVhZCB0aC5jYXJ0LXRvdGFsLWhlYWQsXG4gIC5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LXRhYmxlIHRkLnByb2R1Y3QtY2FydC10b3RhbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNhcnQtdGFibGUgY29sZ3JvdXAsIC5jYXJ0LXRhYmxlIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jYXJ0LXRhYmxlIHRyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jYXJ0LXRhYmxlIHRyLmZpcnN0IHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4OyB9XG4gICAgLmNhcnQtdGFibGUgdHI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmNhcnQtdGFibGUgdHI6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYXJ0LXRhYmxlIHRmb290IHRyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuY2FydC10YWJsZSB0ZCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmNhcnQtdGFibGUgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDsgfVxuICAgICAgLmNhcnQtdGFibGUgdGRbZGF0YS1yd2QtbGFiZWxdIC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAgIC5jYXJ0LXRhYmxlIHRkW2RhdGEtcndkLWxhYmVsXTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtcndkLWxhYmVsKSBcIjpcIjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAgIC5jYXJ0LXRhYmxlIHRkLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5jYXJ0LXRhYmxlIC5jYXJ0LWxpbmtzIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LWxpbmtzID4gbGkge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmNhcnQtdGFibGUgLmNhcnQtbGlua3MgPiBsaSA+IGEge1xuICAgICAgICBwYWRkaW5nOiAycHggMHB4OyB9XG4gIC5jYXJ0LXRhYmxlIC5jYXJ0LXRheC1pbmZvIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LXRheC1pbmZvIC5wcmljZSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbWFnZSB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAgIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW1hZ2UgYS5jYXJ0LWVkaXQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW5mbyxcbiAgLmNhcnQtdGFibGUgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtcHJpY2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LXJlbW92ZSxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC10b3RhbCxcbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5jYXJ0LWxpbmtzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtaW5mbyAuYnRuLXJlbW92ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1pbmZvIC5idG4tcmVtb3ZlIHtcbiAgICBtYXJnaW46IC00cHggMHB4IDJweCA3cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMDsgfVxuICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuY2FydC10YWJsZSAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgLnF0eSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDdweDsgfVxuICAuY2FydC10YWJsZSAucHJpY2UsXG4gIC5jYXJ0LXRhYmxlIC5wcm9kdWN0LWNhcnQtcHJpY2U6YmVmb3JlIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLmNhcnQtdGFibGUgLmNhcnQtZm9vdGVyLWFjdGlvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jYXJ0LXRhYmxlIC5jYXJ0LWZvb3Rlci1hY3Rpb25zICNlbXB0eV9jYXJ0X2J1dHRvbiB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAuY2FydC10YWJsZSAuY2FydC1mb290ZXItYWN0aW9ucyAuYnRuLWNvbnRpbnVlIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmNhcnQtdGFibGUgLmNhcnQtZm9vdGVyLWFjdGlvbnMgLmJ0bi11cGRhdGUsXG4gICAgLmNhcnQtdGFibGUgLmNhcnQtZm9vdGVyLWFjdGlvbnMgc3Bhbi5vciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kaXNwbGF5LWJvdGgtcHJpY2VzIC5jYXJ0LXRhYmxlIHRkW2RhdGEtcndkLXRheC1sYWJlbF06YmVmb3JlIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtcndkLXRheC1sYWJlbCkgXCI6XCI7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIEVzdGltYXRlIFNoaXBwaW5nIGFuZCBUYXhcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2hpcHBpbmcgaDIge1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuLnNoaXBwaW5nIHAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5zaGlwcGluZyBzZWxlY3QudmFsaWRhdGlvbi1mYWlsZWQge1xuICBib3JkZXItY29sb3I6ICNERjI4MEE7IH1cblxuLnNoaXBwaW5nIGlucHV0W3R5cGU9ZW1haWxdLFxuLnNoaXBwaW5nIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5zaGlwcGluZyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5zaGlwcGluZyBpbnB1dFt0eXBlPXRlbF0sXG4uc2hpcHBpbmcgaW5wdXRbdHlwZT10ZXh0XSxcbi5zaGlwcGluZyBzZWxlY3Qge1xuICBjb2xvcjogIzgwN2U4MjsgfVxuICAuc2hpcHBpbmcgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuICAuc2hpcHBpbmcgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbiAgLnNoaXBwaW5nIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbiAgLnNoaXBwaW5nIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4gIC5zaGlwcGluZyBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbiAgLnNoaXBwaW5nIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjODA3ZTgyICFpbXBvcnRhbnQ7IH1cblxuLnNoaXBwaW5nIC5idXR0b24ge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5zaGlwcGluZyAuc3AtbWV0aG9kcyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHBhZGRpbmc6IDEwcHggMCAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5zaGlwcGluZyAuc3AtbWV0aG9kcyBkZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuc2hpcHBpbmcgLnNwLW1ldGhvZHMgbGFiZWwgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi5zaGlwcGluZyAjY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnNoaXBwaW5nICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuc3AtbWV0aG9kcyBkZCBsYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNGNEY0RjQsIDEwJSk7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuc2hpcHBpbmcgLnNoaXBwaW5nLWZvcm0gLmZvcm0tbGlzdCA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbm9uZTsgfVxuICAgIC5zaGlwcGluZyAuc2hpcHBpbmctZm9ybSAuZm9ybS1saXN0ID4gbGkgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuc2hpcHBpbmcgLnNoaXBwaW5nLWZvcm0gLmZvcm0tbGlzdCA+IGxpIGlucHV0LFxuICAgIC5zaGlwcGluZyAuc2hpcHBpbmctZm9ybSAuZm9ybS1saXN0ID4gbGkgc2VsZWN0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmNhcnQgLmNhcnQtdG90YWxzIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmNhcnQgLmNhcnQtdG90YWxzOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuY2FydCAuY2FydC10b3RhbHMgdGFibGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNhcnQgLmNhcnQtdG90YWxzIHRhYmxlIHRkIHtcbiAgICAgIHBhZGRpbmc6IDJweCAwcHg7IH1cbiAgICAuY2FydCAuY2FydC10b3RhbHMgdGFibGUgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgIG1pbi13aWR0aDogMTIwcHg7IH1cblxuLmRpc2NvdW50LWZvcm06YWZ0ZXIsXG4jZ2lmdGNhcmQtZm9ybTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuI2Rpc2NvdW50LWNvdXBvbi1mb3JtLFxuLmNhcnQgLmdpZnRjYXJkIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgI2Rpc2NvdW50LWNvdXBvbi1mb3JtIGgyLFxuICAuY2FydCAuZ2lmdGNhcmQgaDIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgI2Rpc2NvdW50LWNvdXBvbi1mb3JtIGxhYmVsLFxuICAuY2FydCAuZ2lmdGNhcmQgbGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtaW4td2lkdGg6IDEwNXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgI2Rpc2NvdW50LWNvdXBvbi1mb3JtIC5maWVsZC13cmFwcGVyLFxuICAuY2FydCAuZ2lmdGNhcmQgLmZpZWxkLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAjZGlzY291bnQtY291cG9uLWZvcm0gLnZhbGlkYXRpb24tYWR2aWNlLFxuICAuY2FydCAuZ2lmdGNhcmQgLnZhbGlkYXRpb24tYWR2aWNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgI2Rpc2NvdW50LWNvdXBvbi1mb3JtIC5idXR0b24td3JhcHBlcixcbiAgLmNhcnQgLmdpZnRjYXJkIC5idXR0b24td3JhcHBlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH1cbiAgICAjZGlzY291bnQtY291cG9uLWZvcm0gLmJ1dHRvbi13cmFwcGVyID4gYnV0dG9uLFxuICAgIC5jYXJ0IC5naWZ0Y2FyZCAuYnV0dG9uLXdyYXBwZXIgPiBidXR0b24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgI2Rpc2NvdW50LWNvdXBvbi1mb3JtIC5pbnB1dC10ZXh0LFxuICAuY2FydCAuZ2lmdGNhcmQgLmlucHV0LXRleHQge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbjogNHB4IDEwcHggMCAwO1xuICAgIHdpZHRoOiAxOTBweDsgfVxuXG4uY2FydCAuZ2lmdGNhcmQgcCB7XG4gIG1hcmdpbi1ib3R0b206IDdweDsgfVxuXG4uY2FydCAuZ2lmdGNhcmQgLmNoZWNrLWdjLXN0YXR1cyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAwcHg7IH1cbiAgLmNhcnQgLmdpZnRjYXJkIC5jaGVjay1nYy1zdGF0dXMgPiBzcGFuID4gc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi5zaGlwcGluZy1mb3JtIC5pbnB1dC10ZXh0I3JlZ2lvbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uc2hpcHBpbmctZm9ybSAuc2hpcHBpbmctcmVnaW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uc2hpcHBpbmctZm9ybSAjcmVnaW9uX2lkIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIENhcnQgQ3Jvc3Mgc2VsbFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jcm9zc3NlbGwgaDIge1xuICBjb2xvcjogIzFmODZiZDsgfVxuXG4uY3Jvc3NzZWxsIC5pdGVtIGEucHJvZHVjdC1pbWFnZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbGVmdDsgfVxuXG4vKiBDaGFuZ2UgdGhlIGxheW91dCB0byAyIGNvbHVtbnMgYXQgYSBicmVha3BvaW50IHRoYXQgaXMgaGlnaGVyIHRoYW4gYSAzIGNvbHVtbnMgbGF5b3V0IHdvdWxkIG5vcm1hbGx5IGJyZWFrICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC5jcm9zc3NlbGwge1xuICAgIC8qIFVuZG8gdGhyZWUtY29sdW1uIGNvbmZpZyAqLyB9XG4gICAgLmNyb3Nzc2VsbCAucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAuY3Jvc3NzZWxsIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKDNuKSxcbiAgICAuY3Jvc3NzZWxsIC5wcm9kdWN0cy1ncmlkID4gbGkge1xuICAgICAgd2lkdGg6IDQ3LjcyNzI3JTtcbiAgICAgIG1hcmdpbi1yaWdodDogNC41NDU0NSU7IH1cbiAgICAuY3Jvc3NzZWxsIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAuY3Jvc3NzZWxsIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5jcm9zc3NlbGwgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgY2xlYXI6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5jYXJ0LXRhYmxlIC5jYXJ0LXRheC10b3RhbDphZnRlciB7XG4gICAgcmlnaHQ6IC05cHg7IH1cbiAgLmNhcnQtdGFibGUgLmNhcnQtdGF4LXRvdGFsLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkOmFmdGVyIHtcbiAgICByaWdodDogLTEzcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XG4gIC5jcm9zc3NlbGwgdWwgLml0ZW0ge1xuICAgIHBhZGRpbmc6IDAgMHB4IDQwcHg7IH1cbiAgLmNyb3Nzc2VsbCB1bCAucHJvZHVjdC1kZXRhaWxzIC5jcm9zc3NlbGwtYWN0aW9ucyB7XG4gICAgcGFkZGluZzogMCA1cHg7IH0gfVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCAuY2FydC1lbXB0eSBhIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gT25lIFBhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLXJpZ2h0LFxuLmNoZWNrb3V0LW9uZXBhZ2UtaW5kZXggLmNvbC1sZWZ0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLW1haW4ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAuY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLW1haW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA2OC43NSU7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAuY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLXJpZ2h0LFxuICAuY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLWxlZnQge1xuICAgIHdpZHRoOiAzMS4yNSU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNoZWNrb3V0LW9uZXBhZ2UtaW5kZXggLmNvbC1yaWdodCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuLm9wYyBzZWxlY3Qge1xuICB3aWR0aDogMzY1cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2VjdGlvbiBTdHlsaW5nIC0gRGVmYXVsdFxuICovXG4ub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogM3B4IDA7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3c6bm90KC5hY3RpdmUpIC5zdGVwLXRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5vcGMgLnNlY3Rpb24uYWN0aXZlIC5zdGVwLXRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG5cbi5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGUgYSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdzpub3QoLmFjdGl2ZSkgLnN0ZXAtdGl0bGUgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDBweCAxMHB4OyB9XG5cbi5uby10b3VjaCAub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLm9wYyAuc2VjdGlvbiAuc3RlcC10aXRsZSAubnVtYmVyLFxuLm9wYyAuc2VjdGlvbi5hbGxvdy5hY3RpdmUgLnN0ZXAtdGl0bGUgLm51bWJlcixcbi5uby10b3VjaCAub3BjIC5zZWN0aW9uLmFsbG93OmhvdmVyIC5zdGVwLXRpdGxlIC5udW1iZXIge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZjg2YmQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAtMTNweDsgfVxuXG4ub3BjIC5zZWN0aW9uLmFsbG93IC5zdGVwLXRpdGxlIC5udW1iZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCMxZjg2YmQsIDUwJSk7IH1cblxuLm9wYyAuc2VjdGlvbi5hbGxvdyAuc3RlcC10aXRsZSBoMiB7XG4gIGNvbG9yOiAjNWI1YjVhOyB9XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3cgLnN0ZXAtdGl0bGU6aG92ZXIgaDIsXG4ub3BjIC5zZWN0aW9uLmFjdGl2ZSAuc3RlcC10aXRsZSBoMiB7XG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbi5vcGMgLnNlY3Rpb24gLnN0ZXAtdGl0bGUgaDIge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBweCA0cHggMHB4IDM1cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1OTlweCkge1xuICAub3BjIC5zZWN0aW9uIC5zdGVwIHtcbiAgICBwYWRkaW5nOiAyMHB4IDAgMzVweCAzNXB4OyB9IH1cblxuLm9wYyAuc2VjdGlvbiAuc3RlcDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAub3BjIC5zZWN0aW9uIC5zdGVwIHtcbiAgICBwYWRkaW5nOiAxMHB4OyB9IH1cblxuLm9wYyBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ub3BjIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4ub3BjIC5idXR0b25zLXNldCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm9wYyAuYnV0dG9ucy1zZXQgYnV0dG9uLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm9wYyAuYnV0dG9ucy1zZXQgcC5yZXF1aXJlZCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAub3BjIC5idXR0b25zLXNldCAuYmFjay1saW5rIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5vcGMgLmJ1dHRvbnMtc2V0IGEge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA1cHggNXB4IDVweCAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLm9wYyAuYnV0dG9ucy1zZXQgLmJ1dHRvbiArIC5idXR0b25zLXNldCAuYnV0dG9uLFxuICAucGF5cGFsLWV4cHJlc3MtcmV2aWV3IC5idXR0b25zLXNldCAuYnV0dG9uICsgLmJ1dHRvbnMtc2V0IC5idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuLm9wYyAjb3BjLWxvZ2luIGgyIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBtYXJnaW4tdG9wOiAtMjVweDsgfVxuXG4ub3BjICNvcGMtbG9naW4gLnN0ZXAge1xuICBwYWRkaW5nOiAwcHg7IH1cblxuLm9wYyAjb3BjLWxvZ2luIC5zdGVwLXRpdGxlIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5vcGMgI29wYy1sb2dpbiAuYnV0dG9ucy1zZXQge1xuICBib3JkZXItdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogNXB4OyB9XG5cbi5vcGMgI29wYy1sb2dpbiAjY2hlY2tvdXQtc3RlcC1sb2dpbiB7XG4gIG1hcmdpbi10b3A6IDM1cHg7IH1cblxuLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luIC5vcGMgI29wYy1sb2dpbiBoMiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5vcGMgI29wYy1sb2dpbiAuZGVzY3JpcHRpb24sXG4gIC5vcGMgI29wYy1sb2dpbiBwLnJlcXVpcmVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuI29wYy1wYXltZW50IC5ub3RlIHtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUaGlzIHNlY3Rpb24gaGlkZXMgZXZlcnl0aGluZyBidXQgdGhlIFwiQ2hlY2tvdXQgTWV0aG9kXCIgc3RlcCBvZiB0aGUgY2hlY2tvdXQgcHJvY2VzcyBhbmQgZmFkZXMgaW4gdGhlIGNvbnRlbnRcbiAqIG9uY2UgdGhlIGN1c3RvbWVyIHByb2dyZXNzZXMgdG8gdGhlIG5leHQgc3RlcC4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBzaW1wbGlmeSB3aGF0IHRoZSBjdXN0b21lciBoYXMgdG8gZm9jdXMgb24uXG4gKiBJdCBpcyBsaW1pdGVkIHRvIGxhcmdlciB2aWV3cG9ydHMgc2luY2Ugc21hbGxlciBkZXZpY2VzIGFyZSBpbmhlcmVudGx5IGdvaW5nIHRvIGJlIGZvY3VzZWQgc29sZWx5IG9uIHRoZVxuICogXCJDaGVja291dCBNZXRob2RcIiBzdGVwLlxuICovXG4ub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb246bm90KCNvcGMtbG9naW4pIC5zdGVwLXRpdGxlLFxuLm9wYy1ibG9jay1wcm9ncmVzcy1zdGVwLWxvZ2luIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7IH1cblxuLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uI29wYy1sb2dpbiAuc3RlcC10aXRsZSAubnVtYmVyIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggLjFzOyB9XG5cbi5vcGMub3BjLWZpcnN0c3RlcC1sb2dpbiAuc2VjdGlvbiNvcGMtbG9naW4gLnN0ZXAtdGl0bGUgaDIge1xuICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAuMXM7IH1cblxuLyogV2hlbiBhIHVzZXIgcHJvZ3Jlc3NlcyBmcm9tIHRoZSBcIkNoZWNrb3V0IE1ldGhvZFwiIHRvIFwiQmlsbGluZyBJbmZvcm1hdGlvblwiIGZvciB0aGUgZmlyc3QgdGltZSwgdGhlICAgICAgICAgICAgICAqL1xuLyogXCJvcGMtaGFzLXByb2dyZXNzZWQtZnJvbS1sb2dpblwiIGNsYXNzIGdldHMgYWRkZWQgdG8gdGhlIGJvZHkuIEFsc28sIHRoZSAub3BjIGVsZW1lbnQgd2lsbCBvbmx5IGhhdmUgdGhlICAgICAgICAgKi9cbi8qIFwib3BjLWZpcnN0c3RlcC1sb2dpblwiIGNsYXNzIGlmIHRoZSBmaXJzdCBzdGVwIG9mIHRoZSBjaGVja291dCBpcyB0aGUgXCJDaGVja291dCBNZXRob2RcIiAoZWcsIG5vdCB3aGVuIGxvZ2dlZCBpbikgKi9cbmJvZHk6bm90KC5vcGMtaGFzLXByb2dyZXNzZWQtZnJvbS1sb2dpbikgLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uOm5vdCgjb3BjLWxvZ2luKSAuc3RlcC10aXRsZSxcbmJvZHk6bm90KC5vcGMtaGFzLXByb2dyZXNzZWQtZnJvbS1sb2dpbikgLm9wYy1ibG9jay1wcm9ncmVzcy1zdGVwLWxvZ2luIHtcbiAgb3BhY2l0eTogMDsgfVxuXG5ib2R5Om5vdCgub3BjLWhhcy1wcm9ncmVzc2VkLWZyb20tbG9naW4pIC5vcGMub3BjLWZpcnN0c3RlcC1sb2dpbiAuc2VjdGlvbiNvcGMtbG9naW4gLnN0ZXAtdGl0bGUgLm51bWJlciB7XG4gIHdpZHRoOiAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuYm9keTpub3QoLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luKSAub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb24jb3BjLWxvZ2luIC5zdGVwLXRpdGxlIGgyIHtcbiAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTaGlwcGluZyBhbmQgUGF5bWVudCBtZXRob2RzXG4gKi9cbi5zcC1tZXRob2RzIHtcbiAgbWFyZ2luOiAwIDAgOHB4OyB9XG4gIC5zcC1tZXRob2RzIGR0IHtcbiAgICBtYXJnaW46IDEzcHggMCA1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAuc3AtbWV0aG9kcyBkdDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW46IDAgMCA1cHg7IH1cbiAgICAuc3AtbWV0aG9kcyBkdCBsYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuc3AtbWV0aG9kcyBkZCBsaSB7XG4gICAgbWFyZ2luOiA1cHggMDsgfVxuICAuc3AtbWV0aG9kcyBsYWJlbCBpbWcge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5zcC1tZXRob2RzIGxhYmVsIGEge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cbiAgLnNwLW1ldGhvZHMgLnByaWNlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuc3AtbWV0aG9kcyAuZm9ybS1saXN0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7IH1cbiAgICAuc3AtbWV0aG9kcyAuZm9ybS1saXN0IGxpIHtcbiAgICAgIG1hcmdpbjogMCAwIDhweDsgfVxuICAuc3AtbWV0aG9kcyBzZWxlY3QubW9udGgge1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgLnNwLW1ldGhvZHMgc2VsZWN0LnllYXIge1xuICAgIHdpZHRoOiA5NnB4OyB9XG4gIC5zcC1tZXRob2RzIGlucHV0LmN2diB7XG4gICAgd2lkdGg6IDRlbSAhaW1wb3J0YW50OyB9XG4gIC5zcC1tZXRob2RzICNhZHZpY2UtdmFsaWRhdGUtY2MtZXhwLWNjc2F2ZV9leHBpcmF0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDEzMHB4OyB9XG4gIC5zcC1tZXRob2RzIC5jaGVja21vLWxpc3QgbGkge1xuICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc3AtbWV0aG9kcyAuY2hlY2ttby1saXN0IGxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zcC1tZXRob2RzIC5jaGVja21vLWxpc3QgYWRkcmVzcyB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgIC5zcC1tZXRob2RzIC5jaGVja21vLWxpc3Qge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgICAuc3AtbWV0aG9kcyAuY2hlY2ttby1saXN0IGxhYmVsIHtcbiAgICAgICAgd2lkdGg6IDEzNXB4OyB9IH1cbiAgLnNwLW1ldGhvZHMgLnJlbGVhc2UtYW1vdW50cyB7XG4gICAgbWFyZ2luOiAwLjVlbSAwOyB9XG4gIC5zcC1tZXRob2RzIC5yZWxlYXNlLWFtb3VudHMgYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDVweCAxMHB4IDAgMDsgfVxuXG4vKiBPbmUgUGFnZSBDaGVja291dCAqL1xuI2NoZWNrb3V0LXN0ZXAtYmlsbGluZyB7XG4gIG1hcmdpbi10b3A6IDI1cHg7IH1cbiAgI2NoZWNrb3V0LXN0ZXAtYmlsbGluZyBwLnJlcXVpcmVkIHtcbiAgICBtYXJnaW4tdG9wOiAtMjVweDsgfVxuXG4uYmxvY2stcHJvZ3Jlc3Mge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gIC5ibG9jay1wcm9ncmVzcyAuYmxvY2stY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9XG4gIC5ibG9jay1wcm9ncmVzcyBkdCB7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGNvbG9yOiAjNWI1YjVhOyB9XG4gIC5ibG9jay1wcm9ncmVzcyBkdC5jb21wbGV0ZSB7XG4gICAgY29sb3I6ICMwMDNiNWY7IH1cbiAgLmJsb2NrLXByb2dyZXNzIGRkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAuYmxvY2stcHJvZ3Jlc3MgI3BheW1lbnQtcHJvZ3Jlc3Mtb3BjaGVja291dCAuc3VidGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDNweDsgfVxuICAuYmxvY2stcHJvZ3Jlc3MgLnBheW1lbnQtaW5mbyBkdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgMCAzcHggMDtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAgIC5ibG9jay1wcm9ncmVzcyAucGF5bWVudC1pbmZvIGR0OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICc6ICc7IH1cbiAgLmJsb2NrLXByb2dyZXNzIC5wYXltZW50LWluZm8gZGQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICBmb250LXNpemU6IDEzcHg7IH1cbiAgLmJsb2NrLXByb2dyZXNzIC5wYXltZW50LWluZm86YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qIHJldmlldyBzdGVwICovXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlIC5idG4tcmVtb3ZlIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuI2NoZWNrb3V0LXJldmlldy10YWJsZS13cmFwcGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuI3Jldmlldy1idXR0b25zLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gICNyZXZpZXctYnV0dG9ucy1jb250YWluZXIgLmJ0bi1jaGVja291dCB7XG4gICAgbWluLXdpZHRoOiAyMjBweDsgfVxuICAjcmV2aWV3LWJ1dHRvbnMtY29udGFpbmVyIC5wbGVhc2Utd2FpdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICNyZXZpZXctYnV0dG9ucy1jb250YWluZXIgLmYtbGVmdCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmxpbmVhcml6ZS10YWJsZS1sYXJnZS5jaGVja291dC1yZXZpZXctdGFibGUgdGhlYWQgdHI6bnRoLWNoaWxkKDFuKzIpIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubGluZWFyaXplLXRhYmxlLmNoZWNrb3V0LXJldmlldy10YWJsZSB0aGVhZCB0cjpudGgtY2hpbGQoMW4rMikge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiBzaG93L2hpZGUgXCJjaGFuZ2VcIiBsaW5rIGZvciBwcm9ncmVzcyBzdGVwIGRlcGVuZCBvbiBjb21wbGV0ZSBzdGF0dXNcbiAqIHNob3VsZCBiZSBwbGFjZWQgaW4gLmNzcyBmaWxlICovXG4ub3BjLWJsb2NrLXByb2dyZXNzIGR0LmNvbXBsZXRlIGEsXG4ub3BjLWJsb2NrLXByb2dyZXNzIGR0LmNvbXBsZXRlIC5zZXBhcmF0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxuLm9wYy1ibG9jay1wcm9ncmVzcyBkdCBhLFxuLm9wYy1ibG9jay1wcm9ncmVzcyBkdCAuc2VwYXJhdG9yIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBPbiBzbWFsbCBzY3JlZW5zLCB0aGUgcHJvZ3Jlc3MgcmV2aWV3IGNvbnRlbnQgd2lsbCBiZSBtb3ZlZCB0byB0aGUgcmV2aWV3IHN0ZXAgdmlhIEpTLiBTdHlsZWQgdmlhIHRoaXMgQ1NTOiAqL1xuI2NoZWNrb3V0LXN0ZXAtcmV2aWV3IC5vcGMtYmxvY2stcHJvZ3Jlc3Mge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICNjaGVja291dC1zdGVwLXJldmlldyAub3BjLWJsb2NrLXByb2dyZXNzIC5ibG9jay10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAjY2hlY2tvdXQtc3RlcC1yZXZpZXcgLm9wYy1ibG9jay1wcm9ncmVzcyAuYmxvY2stY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgI2NoZWNrb3V0LXN0ZXAtcmV2aWV3IC5vcGMtYmxvY2stcHJvZ3Jlc3MgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGRpdiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAjY2hlY2tvdXQtc3RlcC1yZXZpZXcgLm9wYy1ibG9jay1wcm9ncmVzcyAuYmxvY2stY29udGVudCA+IGRsID4gZGl2IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAjY2hlY2tvdXQtc3RlcC1yZXZpZXcgLm9wYy1ibG9jay1wcm9ncmVzcyAuYmxvY2stY29udGVudCAuY2hhbmdlbGluayB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgI2NoZWNrb3V0LXJldmlldy10YWJsZSB0aGVhZCA+IHRyID4gdGgge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAjY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAjY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4jY2hlY2tvdXQtc3RlcC1yZXZpZXcgLmNlbnRpbmVsID4gcCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuI2NoZWNrb3V0LXN0ZXAtcmV2aWV3IC5jZW50aW5lbCBpZnJhbWUge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNDAwcHg7IH1cblxuLyogR2lmdCBvcHRpb25zICovXG4uZ2lmdC1tZXNzYWdlcy1mb3JtIC5pdGVtIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luLXRvcDogMzVweDsgfVxuICAuZ2lmdC1tZXNzYWdlcy1mb3JtIC5pdGVtIGg1IHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuZ2lmdC1tZXNzYWdlcy1mb3JtIC5pdGVtIC5wcm9kdWN0LWltZy1ib3gge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH1cbiAgLmdpZnQtbWVzc2FnZXMtZm9ybSAuaXRlbSAuZGV0YWlscyB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmdpZnQtbWVzc2FnZS1mb3JtIC5pbm5lci1ib3ggPiBkaXYge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmdpZnQtbWVzc2FnZS1mb3JtIC5pbm5lci1ib3ggPiBkaXYuZXh0cmEtb3B0aW9ucy1jb250YWluZXIgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG4uZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtd3JhcHBpbmctZm9ybSBsYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4uZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtd3JhcHBpbmctZm9ybSBpbWcge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtd3JhcHBpbmctZm9ybSAuZ2lmdC13cmFwcGluZy1kZXNpZ24ge1xuICBoZWlnaHQ6IDc1cHg7IH1cbiAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LXdyYXBwaW5nLWZvcm0gLmdpZnQtd3JhcHBpbmctZGVzaWduOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtd3JhcHBpbmctZm9ybSAuZ2lmdC13cmFwcGluZy1kZXNpZ24gLmltYWdlLWJveCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cblxuLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW0ge1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNFQ0VDRUM7IH1cbiAgLmdpZnQtbWVzc2FnZS1mb3JtIC5naWZ0LWl0ZW06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC1pdGVtIC5wcm9kdWN0LWltZy1ib3gge1xuICAgIHdpZHRoOiAyMDBweDsgfVxuICAgIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC1pdGVtIC5wcm9kdWN0LWltZy1ib3ggLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC1pdGVtIC5wcm9kdWN0LWltZy1ib3ggLnByb2R1Y3QtbmFtZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZ2lmdC1tZXNzYWdlLWZvcm0gLmdpZnQtaXRlbSAuZmllbGRzZXQge1xuICAgIG1hcmdpbi1sZWZ0OiAyMDBweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdG1lc3NhZ2UtYXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC1pdGVtIC5wcm9kdWN0LWltZy1ib3gge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBub25lOyB9XG4gIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC1pdGVtIC5maWVsZHNldCB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuICAgIC5naWZ0LW1lc3NhZ2UtZm9ybSAuZ2lmdC1pdGVtIC5maWVsZHNldCB0ZXh0YXJlYSB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5vcGMtYmxvY2stcHJvZ3Jlc3MgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMwMDNiNWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgbXJhZ2luLWJvdHRvbTogMjBweDsgfVxuXG4jY2hlY2tvdXQtc3RlcC1yZXZpZXcgI2NoZWNrb3V0LWFncmVlbWVudHMge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gU3VjY2Vzc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jaGVja291dC1vbmVwYWdlLXN1Y2Nlc3MgLmNvbC1tYWluIHtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jaGVja291dC1vbmVwYWdlLXN1Y2Nlc3MgLmJ1dHRvbnMtc2V0IHtcbiAgbWFyZ2luOiAxMHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY2hlY2tvdXQtb25lcGFnZS1zdWNjZXNzIC5idXR0b25zLXNldCBidXR0b24ge1xuICAgIGZsb2F0OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENvbmZpZ3VyYWJsZSBTd2F0Y2hlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIENsZWFycyAqL1xuLmNsZWFyZml4OmFmdGVyLFxuLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdDphZnRlcixcbi5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtb3B0aW9ucyAuc3dhdGNoLWF0dHI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qIEdlbmVyYWwgU3dhdGNoIFN0eWxpbmcgKi9cbi5zd2F0Y2gtbGluayxcbi5zd2F0Y2gtbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLnN3YXRjaC1saW5rIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcbiAgbWFyZ2luOiAwIDAgM3B4OyB9XG4gIC5zd2F0Y2gtbGluayBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxuICAuc3dhdGNoLWxpbms6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnN3YXRjaC1saW5rIC54IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRleHQtaW5kZW50OiAtOTk5ZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnX3gucG5nKSBjZW50ZXIgbm8tcmVwZWF0IHRyYW5zcGFyZW50O1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIC5zd2F0Y2gtbGluay5oYXMtaW1hZ2UgLnN3YXRjaC1sYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zd2F0Y2gtbGluay5oYXMtaW1hZ2UgaW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLnN3YXRjaC1sYWJlbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZDogI0Y0RjRGNDsgfVxuXG4uY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gIHpvb206IDE7XG4gIGNsZWFyOiBib3RoO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpOyB9XG4gIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHpvb206IDE7XG4gICAgbWFyZ2luOiAwIDAgMCAzcHg7IH1cbiAgLnByb2R1Y3RzLWdyaWQgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgLm5vdC1hdmFpbGFibGUgLngge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgLm5vdC1hdmFpbGFibGUgLnN3YXRjaC1saW5rIHtcbiAgICBib3JkZXItY29sb3I6ICNFREVERUQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAubm90LWF2YWlsYWJsZSAuc3dhdGNoLWxpbmsuaGFzLWltYWdlIGltZyB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApOyB9XG4gIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgLm5vdC1hdmFpbGFibGUgLnN3YXRjaC1sYWJlbCB7XG4gICAgY29sb3I6ICNhYWE7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAuY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IC53aWRlLXN3YXRjaCAuc3dhdGNoLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAwIDZweDsgfVxuICAuY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IC5ub3QtYXZhaWxhYmxlIGE6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7IH1cblxuI25hcnJvdy1ieS1saXN0IGRkIC5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgbGkge1xuICBtYXJnaW46IDAgMCAwIDNweDtcbiAgd2lkdGg6IDQ3JTsgfVxuXG4jbmFycm93LWJ5LWxpc3QgZGQgLnN3YXRjaC1saW5rIHtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgI25hcnJvdy1ieS1saXN0IGRkIC5zd2F0Y2gtbGluay5oYXMtaW1hZ2Uge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG4gICNuYXJyb3ctYnktbGlzdCBkZCAuc3dhdGNoLWxpbms6aG92ZXIgLnN3YXRjaC1sYWJlbCB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMWY4NmJkOyB9XG5cbiNuYXJyb3ctYnktbGlzdCBkZCAuc3dhdGNoLWxhYmVsIHtcbiAgYmFja2dyb3VuZDogI0Y0RjRGNDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgbWFyZ2luOiAwIDVweCAwIDA7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgI25hcnJvdy1ieS1saXN0IGRkIC5zd2F0Y2gtbGFiZWwgaW1nIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG4jbmFycm93LWJ5LWxpc3QgZGQgLmhhcy1pbWFnZSAuc3dhdGNoLWxhYmVsIHtcbiAgcGFkZGluZzogMDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gICNuYXJyb3ctYnktbGlzdCBkZCAuY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgICBjbGVhcjogbGVmdDsgfSB9XG5cbi5jdXJyZW50bHkgLnN3YXRjaC1jdXJyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jdXJyZW50bHkgLnN3YXRjaC1jdXJyZW50IC5idG4tcmVtb3ZlIHtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiA1MCU7IH1cbiAgLmN1cnJlbnRseSAuc3dhdGNoLWN1cnJlbnQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmN1cnJlbnRseSAuc3dhdGNoLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAwIDAgM3B4OyB9XG4gIC5jdXJyZW50bHkgLnN3YXRjaC1saW5rOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICNDQ0NDQ0M7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qIE90aGVyIFN3YXRjaCBTdGF0ZXMgKi9cbi5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgLmhvdmVyIC5zd2F0Y2gtbGluayxcbi5jb25maWd1cmFibGUtc3dhdGNoLWxpc3QgLnNlbGVjdGVkIC5zd2F0Y2gtbGluayxcbi5zd2F0Y2gtbGluazpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzFmODZiZDsgfVxuXG4uY29uZmlndXJhYmxlLXN3YXRjaC1ib3gge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtYm94IHNlbGVjdC5zd2F0Y2gtc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jb25maWd1cmFibGUtc3dhdGNoLWJveCAudmFsaWRhdGlvbi1hZHZpY2Uge1xuICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjREYyODBBO1xuICAgIHBhZGRpbmc6IDJweCA1cHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4vKiBDVVNUT00gKi9cbi5hdmFpbGFiaWxpdHkub3V0LW9mLXN0b2NrIHNwYW4ge1xuICBjb2xvcjogIzViNWI1YTsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LW9wdGlvbnMgLnN3YXRjaC1hdHRyIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgYm9yZGVyOiAwOyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtb3B0aW9ucyAuc3dhdGNoLWF0dHIgbGFiZWwsXG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtb3B0aW9ucyAuc3dhdGNoLWF0dHIgLnNlbGVjdC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtb3B0aW9ucyAuc3dhdGNoLWF0dHIgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1vcHRpb25zIC5zd2F0Y2gtYXR0ciAuc2VsZWN0LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4ucHJvZHVjdC12aWV3IC5wcm9kdWN0LW9wdGlvbnMgZGQgLmlucHV0LWJveCB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1vcHRpb25zIC5zZWxlY3QtbGFiZWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LXZpZXcgLmFkZC10by1jYXJ0IGJ1dHRvbi5vdXQtb2Ytc3RvY2sge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMzYycHg7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDdXN0b21lclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5jb2wtbWFpbiBhOm5vdCguYnV0dG9uKSxcbi5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSAuY29sLW1haW4gYTpub3QoLmJ1dHRvbiksXG4uY3VzdG9tZXItYWNjb3VudC1mb3Jnb3RwYXNzd29yZCAuY29sLW1haW4gYTpub3QoLmJ1dHRvbiksXG4uY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLW1haW4gYTpub3QoLmJ1dHRvbikge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbC1tYWluIGE6bm90KC5idXR0b24pOmhvdmVyLFxuICAuY3VzdG9tZXItYWNjb3VudC1jcmVhdGUgLmNvbC1tYWluIGE6bm90KC5idXR0b24pOmhvdmVyLFxuICAuY3VzdG9tZXItYWNjb3VudC1mb3Jnb3RwYXNzd29yZCAuY29sLW1haW4gYTpub3QoLmJ1dHRvbik6aG92ZXIsXG4gIC5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtbWFpbiBhOm5vdCguYnV0dG9uKTpob3ZlciB7XG4gICAgY29sb3I6ICMxZjg2YmQ7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAuY3VzdG9tZXItYWNjb3VudCAuYmxvY2stYWNjb3VudCAuYmxvY2stdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5jdXN0b21lci1hY2NvdW50IC5ibG9jay1hY2NvdW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzNXB4ICFpbXBvcnRhbnQ7IH0gfVxuXG4uY3VzdG9tZXItYWNjb3VudC1lZGl0IC5maWVsZHNldCBwLnJlcXVpcmVkIHtcbiAgbWFyZ2luLXRvcDogLTI1cHggIWltcG9ydGFudDsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sLW1haW4ge1xuICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuc2NhZmZvbGQtZm9ybSBsYWJlbDpmaXJzdC1jaGlsZCB7XG4gIHdpZHRoOiAxMTVweDsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiBoMiB7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmJ1dHRvbnMtc2V0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLXRvcDogMDsgfVxuXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0xLFxuLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMSB1bCB7XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luOiAxMHB4IDAgMjBweCAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMSxcbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAuY3VzdG9tZXItYWNjb3VudC1sb2dpbiAuY29sMi1zZXQgLmNvbC0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gIC5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5jb2wyLXNldCAuY29sLTIge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcwcHgpIHtcbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMSB7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMSB7XG4gICAgcGFkZGluZy1ib3R0b206IDM1cHg7IH1cbiAgLmN1c3RvbWVyLWFjY291bnQtbG9naW4gLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgcGFkZGluZy10b3A6IDM1cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5jdXN0b21lci1hY2NvdW50LWxvZ2luIC5jb2wyLXNldCBwLnJlcXVpcmVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmN1c3RvbWVyLWFjY291bnQtY3JlYXRlIC5zY2FmZm9sZC1mb3JtIGxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDE0MHB4OyB9XG5cbi5yZW1lbWJlci1tZS1ib3ggYS5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucmVtZW1iZXItbWUtYm94IC5saW5rLXRpcCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG5cbi5yZW1lbWJlci1tZS1wb3B1cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucmVtZW1iZXItbWUtcG9wdXAuc2hvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnJlbWVtYmVyLW1lLXBvcHVwIHAge1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAucmVtZW1iZXItbWUtcG9wdXAgLnJlbWVtYmVyLW1lLXBvcHVwLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5yZW1lbWJlci1tZS1wb3B1cCAucmVtZW1iZXItbWUtcG9wdXAtY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSAuZmllbGRzZXQgLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmN1c3RvbWVyLWFjY291bnQtZm9yZ290cGFzc3dvcmQgLmNvbC1tYWluLFxuLmN1c3RvbWVyLWFjY291bnQtY3JlYXRlIC5jb2wtbWFpbiB7XG4gIG1heC13aWR0aDogNjgwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDM1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTXkgQWNjb3VudCBHbG9iYWwgU3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC5wYWdlLXRpdGxlIGgxIHtcbiAgYm9yZGVyOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC50aXRsZS1idXR0b25zIGgxIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyAuYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwOyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyBhLFxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMgc3Bhbi5zZXBhcmF0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC00MnB4OyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAuZmllbGRzZXQgaDIsXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IGgyLFxuYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC5vcmRlci1kZXRhaWxzIGgyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IGgzIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAuZmllbGRzZXQge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSB7XG4gIG1hcmdpbi10b3A6IDVweDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUgdGQgYSB7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSBzcGFuLm5vYnIge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUgc3Bhbi5ub2JyIGEge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUgdGQudmlldyBhIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUgLnNlcGFyYXRvciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLnNpZGViYXIgLmJsb2NrIG9sI2NvbXBhcmUtaXRlbXMgbGkge1xuICBtYXJnaW46IDEwcHggMDsgfVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLnNpZGViYXIgLmJsb2NrIC5ibG9jay1jb250ZW50IHAuYmxvY2stc3VidGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuc2lkZWJhciAuYmxvY2sgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAzNXB4OyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuc2lkZWJhciBvbCNjYXJ0LXNpZGViYXItcmVvcmRlciBsaSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5zaWRlYmFyIG9sI2NhcnQtc2lkZWJhci1yZW9yZGVyIHAucHJvZHVjdC1uYW1lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmJvZHkuY3VzdG9tZXItYWNjb3VudCAuc2lkZWJhciAuYmxvY2stY2FydCAuc3VtbWFyeSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuYm9keS5jdXN0b21lci1hY2NvdW50IC5zaWRlYmFyIC5ibG9jay1yZW9yZGVyIG9sI2NhcnQtc2lkZWJhci1yZW9yZGVyIGxpIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLnNpZGViYXIgLmJsb2NrLXJlb3JkZXIgb2wjY2FydC1zaWRlYmFyLXJlb3JkZXIgbGkgaW5wdXQge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLnNpZGViYXIgLmJsb2NrLXJlb3JkZXIgb2wjY2FydC1zaWRlYmFyLXJlb3JkZXIgcC5wcm9kdWN0LW5hbWUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvcm0tbGlzdCAuY3VzdG9tZXItZG9iIC5kb2ItbW9udGgsXG4uZm9ybS1saXN0IC5jdXN0b21lci1kb2IgLmRvYi1kYXkge1xuICB3aWR0aDogNDBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4uZm9ybS1saXN0IC5jdXN0b21lci1kb2IgLmRvYi15ZWFyIHtcbiAgd2lkdGg6IDgwcHg7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIERhc2hib2FyZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jdXN0b21lci1hY2NvdW50IC5iYWNrLWxpbmsgYSB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuY3VzdG9tZXItYWNjb3VudCAuYmFjay1saW5rIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi5kYXNoYm9hcmQgLmJveC1oZWFkIHtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgcGFkZGluZy1ib3R0b206IDdweDsgfVxuICAuZGFzaGJvYXJkIC5ib3gtaGVhZCBoMiB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmRhc2hib2FyZCAuYm94LWhlYWQgYSB7XG4gICAgcGFkZGluZzogMTBweDsgfVxuXG4uZGFzaGJvYXJkIC5ib3gtdGl0bGUgYSxcbi5kYXNoYm9hcmQgLmJveC1oZWFkIGEsXG4uZGFzaGJvYXJkIC5ib3gtY29udGVudCBhLFxuLmRhc2hib2FyZCAuYmFjay1saW5rIGEge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmRhc2hib2FyZCAuYm94LXRpdGxlIGE6aG92ZXIsXG4gIC5kYXNoYm9hcmQgLmJveC1oZWFkIGE6aG92ZXIsXG4gIC5kYXNoYm9hcmQgLmJveC1jb250ZW50IGE6aG92ZXIsXG4gIC5kYXNoYm9hcmQgLmJhY2stbGluayBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzFmODZiZDsgfVxuXG4uZGFzaGJvYXJkIC5ib3gtYWNjb3VudCB7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7IH1cbiAgLmRhc2hib2FyZCAuYm94LWFjY291bnQgcCxcbiAgLmRhc2hib2FyZCAuYm94LWFjY291bnQgYWRkcmVzcyB7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMSxcbi5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiB7XG4gIHBhZGRpbmctcmlnaHQ6IDEyLjA5Njc3JTtcbiAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0xIC5ib3gtdGl0bGUsXG4gIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiAuYm94LXRpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTEgLmJveC10aXRsZSBoMixcbiAgICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTEgLmJveC10aXRsZSBoMyxcbiAgICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTIgLmJveC10aXRsZSBoMixcbiAgICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTIgLmJveC10aXRsZSBoMyB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxNHB4OyB9XG4gICAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0xIC5ib3gtdGl0bGUgYSxcbiAgICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTIgLmJveC10aXRsZSBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOS42cHg7IH1cblxuLmRhc2hib2FyZCAuYm94LXJldmlld3MuYm94LWFjY291bnQge1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4uZGFzaGJvYXJkIC5ib3gtcmV2aWV3cyBsaSB7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFREVERUQ7IH1cbiAgLmRhc2hib2FyZCAuYm94LXJldmlld3MgbGk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLmRhc2hib2FyZCAuYm94LXJldmlld3MgbGkgLm51bWJlciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMjBweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAuZGFzaGJvYXJkIC5ib3gtcmV2aWV3cyBsaSAuZGV0YWlscyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cbiAgICAuZGFzaGJvYXJkIC5ib3gtcmV2aWV3cyBsaSAuZGV0YWlscyAucmF0aW5ncyB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAuZGFzaGJvYXJkIC5ib3gtcmV2aWV3cyBsaSAuZGV0YWlscyAucmF0aW5ncyBzdHJvbmcge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgICAgIC5kYXNoYm9hcmQgLmJveC1yZXZpZXdzIGxpIC5kZXRhaWxzIC5yYXRpbmdzIC5yYXRpbmctYm94IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogM3B4IDAgMCAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEFkZHJlc3MgQm9va1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgLmNvbC0xLFxuICAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgLmNvbC0yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgLml0ZW0ge1xuICAgIG1hcmdpbjogMCAwIDM1cHggMDsgfVxuICAgIC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCAuaXRlbSBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAgIC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCAuY29sLTEsXG4gICAgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IC5jb2wtMiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCAuY29sLTEgbGkuZW1wdHksXG4gICAgICAubXktYWNjb3VudCAuYWRkcmVzc2VzLWxpc3QgLmNvbC0yIGxpLmVtcHR5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IC5hZGRyZXNzZXMtYWRkaXRpb25hbCBwIGEge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIE9yZGVyIFZpZXdcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ub3JkZXItaW5mbyB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VERURFRDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgLm9yZGVyLWluZm8gZHQsXG4gIC5vcmRlci1pbmZvIGRkLFxuICAub3JkZXItaW5mbyB1bCxcbiAgLm9yZGVyLWluZm8gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAub3JkZXItaW5mbyBkdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XG4gIC5vcmRlci1pbmZvIGxpIHtcbiAgICBtYXJnaW46IDAgMCAwIDIwcHg7IH1cbiAgICAub3JkZXItaW5mbyBsaS5jdXJyZW50IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAub3JkZXItaW5mbyBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG4ub3JkZXItZGF0ZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5vcmRlci1pbmZvLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLm9yZGVyLWluZm8tYm94ICsgLm9yZGVyLWluZm8tYm94IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VERURFRDsgfVxuICAub3JkZXItaW5mby1ib3ggLmNvbC0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHdpZHRoOiA0OCU7IH1cbiAgLm9yZGVyLWluZm8tYm94IC5jb2wtMiB7XG4gICAgd2lkdGg6IDUyJTsgfVxuICAub3JkZXItaW5mby1ib3ggLmNvbC0xLFxuICAub3JkZXItaW5mby1ib3ggLmNvbC0yIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5vcmRlci1pbmZvLWJveCAuYm94LXRpdGxlIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5vcmRlci1pbmZvLWJveCAuYm94LXRpdGxlIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XG4gICAgICAub3JkZXItaW5mby1ib3ggLmJveC10aXRsZSBoMjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAub3JkZXItaW5mby1ib3ggLmJveC1jb250ZW50IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgICAub3JkZXItaW5mby1ib3ggLmJveC1jb250ZW50IHRkLFxuICAgIC5vcmRlci1pbmZvLWJveCAuYm94LWNvbnRlbnQgdGgge1xuICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAgIC5vcmRlci1pbmZvLWJveCAuYm94LWNvbnRlbnQgdGgge1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7IH1cbiAgICAub3JkZXItaW5mby1ib3ggLmJveC1jb250ZW50IHRkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfVxuICAgIC5vcmRlci1pbmZvLWJveCAuYm94LWNvbnRlbnQgc3Ryb25nIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuI215LW9yZGVycy10YWJsZSAub3B0aW9uLWxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4jbXktb3JkZXJzLXRhYmxlIC5vcHRpb24tdmFsdWUge1xuICBtYXJnaW4tbGVmdDogMjBweDsgfVxuXG4jbXktb3JkZXJzLXRhYmxlIHRyLmJ1bmRsZTpub3QoOmxhc3QtY2hpbGQpIHRkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTsgfVxuXG5vbCNjYXJ0LXNpZGViYXItcmVvcmRlciBsaSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgb2wjY2FydC1zaWRlYmFyLXJlb3JkZXIgbGkgaW5wdXQge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG5vbCNjYXJ0LXNpZGViYXItcmVvcmRlciBwLnByb2R1Y3QtbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICNteS1vcmRlcnMtdGFibGUgLm9wdGlvbi1sYWJlbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cbiAgI215LW9yZGVycy10YWJsZSAub3B0aW9uLXZhbHVlIHtcbiAgICBtYXJnaW4tbGVmdDogMzVweDsgfVxuICAjbXktb3JkZXJzLXRhYmxlIHRkW2RhdGEtcndkLWxhYmVsPVF0eV0gLm5vYnIgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgI215LW9yZGVycy10YWJsZSB0ZFtkYXRhLXJ3ZC1sYWJlbD1RdHldIC5ub2JyIHN0cm9uZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICNteS1vcmRlcnMtdGFibGUgdHIuYnVuZGxlIHtcbiAgICBib3JkZXItY29sb3I6ICNFREVERUQ7IH1cbiAgI215LW9yZGVycy10YWJsZSB0ci5idW5kbGUuY2hpbGQgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cbiAgI215LW9yZGVycy10YWJsZSB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgICAjbXktb3JkZXJzLXRhYmxlIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG4gICNteS1vcmRlcnMtdGFibGUgdGZvb3QgdHIuc2hpcHBpbmcge1xuICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4ub3JkZXItYWRkaXRpb25hbCB7XG4gIG1hcmdpbjogNDBweCAwOyB9XG5cbi5vcmRlci1naWZ0LW1lc3NhZ2UgZGQge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMSxcbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZSB0ZC52aWV3IGEge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyBzcGFuLnNlcGFyYXRvcixcbiAgICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMgYSB7XG4gICAgICB0b3A6IC0xMnB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUub3JkZXJzIHRoLnNoaXAsXG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZS5vcmRlcnMgdGQuc2hpcCxcbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5kYXRhLXRhYmxlLm9yZGVycyB0ZC5zdGF0dXMsXG4gIGJvZHkuY3VzdG9tZXItYWNjb3VudCAuZGF0YS10YWJsZS5vcmRlcnMgdGguc3RhdHVzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vcmRlci1pbmZvLWJveCAuYm94LWNvbnRlbnQge1xuICAgIGNsZWFyOiBsZWZ0OyB9XG4gIC5hZGRyZXNzZXMtbGlzdCAuaXRlbSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNXB4OyB9XG4gIC5vcmRlci1pbmZvIGR0IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kYXNoYm9hcmQgLnBhZ2UtdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgICAuZGFzaGJvYXJkIC5wYWdlLXRpdGxlIGgxIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmRhc2hib2FyZCAud2VsY29tZS1tc2cge1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAgIC5kYXNoYm9hcmQgLndlbGNvbWUtbXNnIC5oZWxsbyB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmRhc2hib2FyZCAuYm94LWFjY291bnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0xLFxuICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTIge1xuICAgIHdpZHRoOiA0OCU7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmRhc2hib2FyZCAuY29sMi1zZXQgLmNvbC0xIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQlOyB9XG4gIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLmZvcm0tbGlzdCAuY29udHJvbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnBhZ2UtdGl0bGUgaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCAubXktYWNjb3VudCAudGl0bGUtYnV0dG9ucyAuYnV0dG9uICsgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC5maWVsZHNldCBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLm9yZGVyLWRldGFpbHMgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC5idXR0b25zLXNldCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLmFkZHJlc3Nlcy1saXN0IC5pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgYm9keS5jdXN0b21lci1hY2NvdW50IC5teS1hY2NvdW50IC5hZGRyZXNzZXMtbGlzdCBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAub3JkZXItaW5mbyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAuZGF0YS10YWJsZS5vcmRlcnMgLmxpbmstcmVvcmRlcixcbiAgLmRhdGEtdGFibGUub3JkZXJzIC5kYXRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kYXRhLXRhYmxlLm9yZGVycyB0ZC52aWV3IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuZGFzaGJvYXJkIC5jb2wyLXNldCAuY29sLTEsXG4gIC5kYXNoYm9hcmQgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAub3JkZXItaW5mby1ib3gge1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5vcmRlci1pbmZvLWJveCAuY29sLTEsXG4gICAgLm9yZGVyLWluZm8tYm94IC5jb2wtMiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRURFREVEO1xuICAgICAgcGFkZGluZzogMTVweCAwOyB9XG4gICAgLm9yZGVyLWluZm8tYm94ICsgLm9yZGVyLWluZm8tYm94IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgI215LXJldmlld3MtdGFibGUgLm5vYnIge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBOZXdzbGV0dGVyIFN1YnNjcmlwdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5Lm5ld3NsZXR0ZXItbWFuYWdlLWluZGV4IC5teS1hY2NvdW50IC5maWVsZHNldCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuYm9keS5uZXdzbGV0dGVyLW1hbmFnZS1pbmRleCAubXktYWNjb3VudCAuZmllbGRzZXQgaDIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmJvZHkubmV3c2xldHRlci1tYW5hZ2UtaW5kZXggLm15LWFjY291bnQgLmZvcm0tbGlzdCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRURFREVEO1xuICBwYWRkaW5nLXRvcDogMTBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDb250YWN0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jb250YWN0cy1pbmRleC1pbmRleCAuYnV0dG9ucy1zZXQge1xuICBtYXJnaW4tbGVmdDogMzVweDtcbiAgbWF4LXdpZHRoOiA0MzVweDsgfVxuICAuY29udGFjdHMtaW5kZXgtaW5kZXggLmJ1dHRvbnMtc2V0IHAucmVxdWlyZWQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAuY29udGFjdHMtaW5kZXgtaW5kZXggLmJ1dHRvbnMtc2V0IHtcbiAgICAgIG1heC13aWR0aDogMzMwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLmNvbnRhY3RzLWluZGV4LWluZGV4IC5idXR0b25zLXNldCBidXR0b24ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuICAgICAgLmNvbnRhY3RzLWluZGV4LWluZGV4IC5idXR0b25zLXNldCBwLnJlcXVpcmVkIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUGF5UGFsXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NzBweCkgYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gIC5wYXlwYWwtcmV2aWV3LW9yZGVyIC5jb2wyLXNldCAuY29sLTEsXG4gIC5wYXlwYWwtcmV2aWV3LW9yZGVyIC5jb2wyLXNldCAuY29sLTIge1xuICAgIHBhZGRpbmc6IDBweDsgfSB9XG5cbi5wYXlwYWwtcmV2aWV3LW9yZGVyIC5pbmZvLXNldCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VERURFRDsgfVxuXG4ucGF5cGFsLXJldmlldy1vcmRlciAuYnV0dG9ucy1zZXQge1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG4gIGJvcmRlcjogMDsgfVxuICAucGF5cGFsLXJldmlldy1vcmRlciAuYnV0dG9ucy1zZXQgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLnBheXBhbC1yZXZpZXctb3JkZXIgLmNvbC0xIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAucGF5cGFsLXJldmlldy1vcmRlciAuZmllbGQuaW5hY3RpdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4udG9wLWNvbnRhaW5lciAuYm1sLWFkIHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudG9wLWNvbnRhaW5lciAuYm1sLWFkIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC50b3AtY29udGFpbmVyIC5ibWwtYWQgc3BhbiBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5ibWwtYWQge1xuICBkaXNwbGF5OiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuYm1sLWFkIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAwOyB9XG4gIC5ibWwtYWQgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuYm1sLWFkIGE6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNzsgfVxuICAuYm1sLWFkIGltZyB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5jYXJ0LXRvdGFscy13cmFwcGVyIC5ibWwtYWQubGFyZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5ibWwtYWQuc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAuYm1sLWFkLmxhcmdlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbmRpdi5wYXlwYWwtbG9nbyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxNXB4IDA7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBkaXYucGF5cGFsLWxvZ28gc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBkaXYucGF5cGFsLWxvZ28gc3BhbiBhIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgZGl2LnBheXBhbC1sb2dvIHNwYW4gYSBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgZGl2LnBheXBhbC1sb2dvIHNwYW4gPiBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNoZWNrb3V0LXR5cGVzIGRpdi5wYXlwYWwtbG9nbyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5ibWwtY2hlY2tvdXQtdHlwZSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG4uc2lkZWJhciAucGF5cGFsLWxvZ28ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG4gIC5zaWRlYmFyIC5wYXlwYWwtbG9nbyA+IGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAuc2lkZWJhciAucGF5cGFsLWxvZ28gPiBhOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuODsgfVxuICAgIC5zaWRlYmFyIC5wYXlwYWwtbG9nbyA+IGEgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zaWRlYmFyIC5wYXlwYWwtbG9nbyAubGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDRweDsgfVxuICAgIC5zaWRlYmFyIC5wYXlwYWwtbG9nbyAubGFiZWwgYSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFJldmlldyAtIEN1c3RvbWVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI2N1c3RvbWVyLXJldmlld3Mge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IG5vbmU7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1oZWFkaW5nIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0NDQ0NDQztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgICBwYWRkaW5nOiAxMHB4IDAgNXB4OyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1oZWFkaW5nOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctaGVhZGluZyBoMiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1oZWFkaW5nIC5wYWdlciB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyAucmV2aWV3LWhlYWRpbmcgLnBhZ2VyIC5jb3VudC1jb250YWluZXIgLmxpbWl0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAgICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctaGVhZGluZyAucGFnZXIgLmNvdW50LWNvbnRhaW5lciAubGltaXRlciBsYWJlbCB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctaGVhZGluZyAucGFnZXIgLmFtb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgaDIge1xuICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgaDIgc3BhbiB7XG4gICAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAjY3VzdG9tZXItcmV2aWV3cyBoMyB7XG4gICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICNjdXN0b21lci1yZXZpZXdzIGgzIHNwYW4ge1xuICAgICAgY29sb3I6ICMxZjg2YmQ7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IHtcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICB3aWR0aDogNDcwcHg7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgaDQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IGg0IGVtIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCAuZm9ybS1saXN0IHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHdpZHRoOiA0NzBweDsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IC5mb3JtLWxpc3QgLmlubGluZS1sYWJlbDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAgICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCAuZm9ybS1saXN0IGxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgLmZvcm0tbGlzdCB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgLmZvcm0tbGlzdCBpbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgICAgICAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IC5mb3JtLWxpc3QgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICNjdXN0b21lci1yZXZpZXdzIC5idXR0b25zLXNldCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogNDcwcHg7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgZGwge1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyBkbCBkdCB7XG4gICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAjY3VzdG9tZXItcmV2aWV3cyBkbCBkZCB7XG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtYXJnaW46IDEwcHggMDsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgZGwgZGQgLnJhdGluZ3MtdGFibGUge1xuICAgICAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAjY3VzdG9tZXItcmV2aWV3cyBkbCBkZCAucmF0aW5ncy10YWJsZSB0ciB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9XG4gICAgICAgICNjdXN0b21lci1yZXZpZXdzIGRsIGRkIC5yYXRpbmdzLXRhYmxlIC5yZXZpZXctbGFiZWwge1xuICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDcwJTsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgZGwgZGQgdGFibGUge1xuICAgICAgICBtYXJnaW46IDE1cHggMDsgfVxuICAgICAgI2N1c3RvbWVyLXJldmlld3MgZGwgZGQgLnJldmlldy1tZXRhIHtcbiAgICAgICAgY29sb3I6ICMxZjg2YmQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnJldmlldy1zdW1tYXJ5LXRhYmxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIG1hcmdpbjogMCAwIDEwcHg7IH1cbiAgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5yZXZpZXctc3VtbWFyeS10YWJsZSB0aGVhZCB0aCB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDE1cHggN3B4IDEwcHggOHB4OyB9XG4gIC5yZXZpZXctc3VtbWFyeS10YWJsZSB0Ym9keSB0aCB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHRib2R5IHRkIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAucmV2aWV3LXN1bW1hcnktdGFibGUgdGJvZHkgdGQgbGFiZWwge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDExcHggMDsgfVxuICAucmV2aWV3LXN1bW1hcnktdGFibGUgLnJhdGluZy1ib3ggLnJhdGluZy1udW1iZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucmV2aWV3LXN1bW1hcnktdGFibGUgLnJhdGluZy1ib3ggLnJhdGluZy1udW1iZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTk5cHg7XG4gICAgICB3aWR0aDogMTNweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDJweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBSYXRpbmdzIC0gR2xvYmFsXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnJhdGluZ3MtdGFibGUge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5yYXRpbmdzLXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gIC5yYXRpbmdzLXRhYmxlIC5yYXRpbmctYm94IHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02MTVweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgd2lkdGg6IDY1cHg7IH1cbiAgICAucmF0aW5ncy10YWJsZSAucmF0aW5nLWJveCAucmF0aW5nIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTYwMHB4O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIGJvZHkucmV2aWV3LXByb2R1Y3QtbGlzdCAucHJvZHVjdC12aWV3IC5wcm9kdWN0LXNob3AgLnByaWNlLWluZm8ge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICBib2R5LnJldmlldy1wcm9kdWN0LWxpc3QgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1zaG9wIC5leHRyYS1pbmZvIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1pbi13aWR0aDogODQlOyB9XG4gICAgYm9keS5yZXZpZXctcHJvZHVjdC1saXN0IC5wcm9kdWN0LXZpZXcgLnByb2R1Y3Qtc2hvcCAuZXh0cmEtaW5mbyAucmF0aW5ncy10YWJsZSB7XG4gICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBib2R5LnJldmlldy1wcm9kdWN0LWxpc3QgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1zaG9wIC5leHRyYS1pbmZvIC5yYXRpbmdzLXRhYmxlIHRyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MzVweCkge1xuICBib2R5LnJldmlldy1wcm9kdWN0LWxpc3QgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1zaG9wIC5leHRyYS1pbmZvIHtcbiAgICBtaW4td2lkdGg6IDA7IH1cbiAgICBib2R5LnJldmlldy1wcm9kdWN0LWxpc3QgLnByb2R1Y3QtdmlldyAucHJvZHVjdC1zaG9wIC5leHRyYS1pbmZvIC5yYXRpbmdzLXRhYmxlIHRyIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MjBweCkge1xuICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgLmZpZWxkc2V0IC5mb3JtLWxpc3Qge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICNjdXN0b21lci1yZXZpZXdzIC5maWVsZHNldCAuZm9ybS1saXN0IC5pbmxpbmUtbGFiZWwgbGFiZWwsXG4gICAgICAjY3VzdG9tZXItcmV2aWV3cyAuZmllbGRzZXQgLmZvcm0tbGlzdCAuaW5saW5lLWxhYmVsIC5pbnB1dC1ib3gge1xuICAgICAgICBmbG9hdDogbm9uZTsgfVxuICAjY3VzdG9tZXItcmV2aWV3cyAuYnV0dG9ucy1zZXQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctc3VtbWFyeS10YWJsZSB0aGVhZCB0aCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMHB4OyB9XG4gICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctc3VtbWFyeS10YWJsZSB0Ym9keSB0aCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMHB4OyB9XG4gICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctc3VtbWFyeS10YWJsZSB0Ym9keSB0ZCB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBwYWRkaW5nOiAwcHg7IH1cbiAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1zdW1tYXJ5LXRhYmxlIC5yYXRpbmctYm94IHtcbiAgICB0ZXh0LWluZGVudDogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGhlaWdodDogMTkuNnB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgI2N1c3RvbWVyLXJldmlld3MgLnJldmlldy1zdW1tYXJ5LXRhYmxlIC5yYXRpbmctYm94IC5yYXRpbmcge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICNjdXN0b21lci1yZXZpZXdzIC5yZXZpZXctc3VtbWFyeS10YWJsZSAucmF0aW5nLWJveCAucmF0aW5nLW51bWJlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ1MHB4KSB7XG4gICNjdXN0b21lci1yZXZpZXdzIGRsIGRkIC5yYXRpbmdzLXRhYmxlIHRyIHtcbiAgICBmbG9hdDogbm9uZTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFJldmlldyBWaWV3IFBhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucmV2aWV3LXByb2R1Y3QtdmlldyAucHJvZHVjdC1yZXZpZXcgLnByb2R1Y3QtZGV0YWlscyBoMiB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnJldmlldy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtcmV2aWV3IC5wcm9kdWN0LWltZy1ib3gge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLnJldmlldy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtcmV2aWV3IC5wcm9kdWN0LWltZy1ib3ggPiBhIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucmV2aWV3LXByb2R1Y3QtdmlldyAucHJvZHVjdC1yZXZpZXcgLnByb2R1Y3QtaW1nLWJveCAucHJvZHVjdC1pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAucmV2aWV3LXByb2R1Y3QtdmlldyAucHJvZHVjdC1yZXZpZXcgLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLW91dDsgfVxuICAuc2xpY2stc2xpZGVyLnNsaWNrLWluaXRpYWxpemVkIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1saXN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLCAuc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zbGljay10cmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stdHJhY2s6YmVmb3JlLCAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2sge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpY2stc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2xpY2stcHJldiwgLnNsaWNrLW5leHQge1xuICBiYWNrZ3JvdW5kOiAjMDAzYjVmO1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiA5cHggMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xN3B4O1xuICBsZWZ0OiAtNDBweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5zbGljay1wcmV2IGltZywgLnNsaWNrLW5leHQgaW1nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7IH1cblxuLnNsaWNrLW5leHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTQwcHg7IH1cbiAgLnNsaWNrLW5leHQgaW1nIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7IH1cblxuLnNsaWNrLWRvdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnNsaWNrLWRvdHMgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1kb3RzIGxpIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2I2YjZiNjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgN3B4O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gICAgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxZjg2YmQ7IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4ud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciB7XG4gIHBhZGRpbmctdG9wOiAxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDkwdmg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuZnVsbHNjcmVlbi1zbGlkZXIgLnNsaWNrLWxpc3QgLnNsaWNrLXRyYWNrIHtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stbmV4dCB7XG4gICAgcmlnaHQ6IDQwcHg7XG4gICAgbGVmdDogYXV0bztcbiAgICB6LWluZGV4OiAxMDsgfVxuICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stcHJldiB7XG4gICAgbGVmdDogNDBweDtcbiAgICByaWdodDogYXV0bztcbiAgICB6LWluZGV4OiAxMDsgfVxuICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzVweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1kb3RzIGxpIHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9XG4gICAgICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMWY4NmJkOyB9XG4gIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5jb250ZW50LXdyYXBwZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMTBweDsgfVxuICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stc2xpZGUge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stc2xpZGUuc2xpZGUxIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNBQUM1MDI7IH1cbiAgICAgIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZS5zbGlkZTEgLmhlYWRsaW5lIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MCUpO1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICAud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuIC5mdWxsc2NyZWVuLXNsaWRlciAuc2xpY2stc2xpZGUuc2xpZGUxIC5oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDY4cHg7IH0gfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MXB4KSB7XG4gICAgICAgICAgLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAuZnVsbHNjcmVlbi1zbGlkZXIgLnNsaWNrLXNsaWRlLnNsaWRlMSAuaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiA4OHB4OyB9IH1cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgICAgIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZS5zbGlkZTEgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwcHg7IH0gfVxuICAgIC53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZS5zbGlkZTIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hYm91dC1zbGlkZXIvc3RvY2suanBnKTsgfVxuXG4jYmxvY2stcHJvZHVjdGZpbmRlciAuc2xpY2stcHJldiwgI2Jsb2NrLXByb2R1Y3RmaW5kZXIgLnNsaWNrLW5leHQge1xuICBiYWNrZ3JvdW5kOiAjYzljOWM5O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fycm93LWxlZnQuc3ZnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHotaW5kZXg6IDEwMDtcbiAgdG9wOiAzMCU7IH1cblxuI2Jsb2NrLXByb2R1Y3RmaW5kZXIgLnNsaWNrLXByZXYge1xuICBsZWZ0OiAxNXB4OyB9XG5cbiNibG9jay1wcm9kdWN0ZmluZGVyIC5zbGljay1uZXh0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hcnJvdy1yaWdodC5zdmcpO1xuICByaWdodDogMTVweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTbGlkZXNob3dcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2xpZGVzaG93LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDEwcHggMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VERURFRDsgfVxuICAuc2xpZGVzaG93LWNvbnRhaW5lciAuc2xpZGVzaG93IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAxMHB4IHNvbGlkICNGRkZGRkY7IH1cbiAgICAuc2xpZGVzaG93LWNvbnRhaW5lciAuc2xpZGVzaG93ID4gbGkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuc2xpZGVzaG93LWNvbnRhaW5lciAuc2xpZGVzaG93ID4gbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB6LWluZGV4OiAxMDA7IH1cbiAgICAgIC5zbGlkZXNob3ctY29udGFpbmVyIC5zbGlkZXNob3cgPiBsaSBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5zbGlkZXNob3ctcGFnZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMTU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIHRvcDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLnNsaWRlc2hvdy1wYWdlciBzcGFuIHtcbiAgICBmb250LWZhbWlseTogYXJpYWw7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI0RERERERDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2xpZGVzaG93LXBhZ2VyIHNwYW46YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5zbGlkZXNob3ctcGFnZXIgc3Bhbjpob3ZlcjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFiNzZhNzsgfVxuICAgIC5zbGlkZXNob3ctcGFnZXIgc3Bhbi5jeWNsZS1wYWdlci1hY3RpdmU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxODY3OTE7IH1cbiAgLnNsaWRlc2hvdy1wYWdlciA+ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uc2xpZGVzaG93LXByZXYsXG4uc2xpZGVzaG93LW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDE1JTtcbiAgbWF4LXdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDAuNjtcbiAgei1pbmRleDogMTEwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5zbGlkZXNob3ctcHJldjpiZWZvcmUsXG4gIC5zbGlkZXNob3ctbmV4dDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTE1cHg7IH1cbiAgLnNsaWRlc2hvdy1wcmV2OmhvdmVyLFxuICAuc2xpZGVzaG93LW5leHQ6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnNsaWRlc2hvdy1wcmV2LmRpc2FibGVkLFxuICAuc2xpZGVzaG93LW5leHQuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IC41O1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4uc2xpZGVzaG93LXByZXYge1xuICBsZWZ0OiA4cHg7IH1cbiAgLnNsaWRlc2hvdy1wcmV2OmJlZm9yZSB7XG4gICAgYm9yZGVyLXdpZHRoOiAxNXB4IDE1cHggMTVweCAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI0ZGRkZGRiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAxMHB4OyB9XG4gIC5zbGlkZXNob3ctcHJldjpob3ZlcjpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzFiNzZhNyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpZGVzaG93LW5leHQge1xuICByaWdodDogOHB4OyB9XG4gIC5zbGlkZXNob3ctbmV4dDpiZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMTVweCAwIDE1cHggMTVweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNGRkZGRkY7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEwcHg7IH1cbiAgLnNsaWRlc2hvdy1uZXh0OmhvdmVyOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMWI3NmE3OyB9XG5cbi5jeWNsZS1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvdHRvbTogMTVweDtcbiAgcmlnaHQ6IDE1cHg7XG4gIHotaW5kZXg6IDExMDsgfVxuXG4uY3ljbGUtb3ZlcmxheSB7XG4gIGZvbnQtZmFtaWx5OiB0YWhvbWEsIGFyaWFsO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEyMDtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMTVweDtcbiAgb3BhY2l0eTogLjU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogV2lzaGxpc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4jd2lzaGxpc3QtdGFibGUgdGgge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuI3dpc2hsaXN0LXRhYmxlLmNsZWFuLXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgI3dpc2hsaXN0LXRhYmxlLmNsZWFuLXRhYmxlIHRoIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0MwQzBDMDsgfVxuICAjd2lzaGxpc3QtdGFibGUuY2xlYW4tdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAjd2lzaGxpc3QtdGFibGUuY2xlYW4tdGFibGUgdGhlYWQgdGgge1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbiN3aXNobGlzdC10YWJsZSAucHJvZHVjdC1uYW1lIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAjd2lzaGxpc3QtdGFibGUgLnByb2R1Y3QtbmFtZSBhIHtcbiAgICBjb2xvcjogIzFmODZiZDsgfVxuXG4jd2lzaGxpc3QtdGFibGUgLndpc2hsaXN0LXNrdSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogNXB4IDA7IH1cblxuI3dpc2hsaXN0LXRhYmxlIHRleHRhcmVhIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0MwQzBDMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDVweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRleHRhcmVhOi1tb3otcGxhY2Vob2xkZXIge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZXh0YXJlYTotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRleHRhcmVhOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWY4NmJkOyB9XG5cbiN3aXNobGlzdC10YWJsZSAuaXRlbS1tYW5hZ2Uge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWF4LXdpZHRoOiA0NTBweDtcbiAgcGFkZGluZy10b3A6IDVweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgLml0ZW0tbWFuYWdlIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nOiAzcHggNXB4OyB9XG5cbiN3aXNobGlzdC10YWJsZSAuY2FydC1jZWxsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbiN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgd2lkdGg6IDExM3B4OyB9XG5cbiN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5IHtcbiAgd2lkdGg6IDNlbTsgfVxuXG4jd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1wcmljZSB7XG4gIHdpZHRoOiAxMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbiN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICB3aWR0aDogMTUwcHg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQgLnRydW5jYXRlZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0ID4gcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IC5yZW1vdmUtd2hpc2hsaXN0LWl0ZW0ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IC5idG4tcmVtb3ZlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbiN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXJlbW92ZSB7XG4gIHdpZHRoOiAyMHB4OyB9XG5cbiN3aXNobGlzdC10YWJsZSB0ZCAuYnV0dG9uLFxuI3dpc2hsaXN0LXRhYmxlIHRkIGJ1dHRvbiB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuI3dpc2hsaXN0LXRhYmxlIC5wcmljZS1ib3gge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG4gICN3aXNobGlzdC10YWJsZSAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgY29sb3I6ICMwMDNiNWY7IH1cblxuI3dpc2hsaXN0LXRhYmxlIC5naWZ0cmVnaXN0eS1hZGQge1xuICBtYXJnaW4tdG9wOiA1cHg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIC5naWZ0cmVnaXN0eS1hZGQgLmNoYW5nZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAjd2lzaGxpc3QtdGFibGUgLmdpZnRyZWdpc3R5LWFkZCBsaSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgIG1hcmdpbi1ib3R0b206IDNweDsgfVxuXG4jd2lzaGxpc3QtdGFibGUgLnRydW5jYXRlZCAuZGV0YWlscyB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGNvbG9yOiAjMWY4NmJkOyB9XG5cbiN3aXNobGlzdC10YWJsZSB0ZFtkYXRhLXJ3ZC1sYWJlbF06YmVmb3JlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAjd2lzaGxpc3QtdGFibGUuY2xlYW4tdGFibGUgdGQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAjd2lzaGxpc3QtdGFibGUuY2xlYW4tdGFibGUgdGQge1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDsgfVxuICAgICN3aXNobGlzdC10YWJsZS5jbGVhbi10YWJsZSB0ZCB0ZXh0YXJlYSB7XG4gICAgICBoZWlnaHQ6IDEwMHB4OyB9XG4gICAgI3dpc2hsaXN0LXRhYmxlLmNsZWFuLXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgICB3aWR0aDogMTEwcHg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIC5wcm9kdWN0LW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMTNweDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgI3dpc2hsaXN0LXRhYmxlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuICAjd2lzaGxpc3QtdGFibGUgLnByb2R1Y3QtbmFtZSB7XG4gICAgZm9udC1zaXplOiAyMHB4OyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiA2OHB4O1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAjd2lzaGxpc3QtdGFibGUgLml0ZW0tbWFuYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAjd2lzaGxpc3QtdGFibGUgdHI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICB3aWR0aDogNzBweDsgfVxuICAgICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIGltZyB7XG4gICAgICB3aWR0aDogNzBweDtcbiAgICAgIGhlaWdodDogNzBweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCAucmVtb3ZlLXdoaXNobGlzdC1pdGVtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDRweDsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlLFxuICAjd2lzaGxpc3QtdGFibGUgdGguY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1pbWFnZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgI3dpc2hsaXN0LXRhYmxlIHRyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRoLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlLCAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1pbmZvLCAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSwgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcHJpY2UsICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGVtcHR5LWNlbGxzOiBoaWRlOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2UgYSB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0taW1hZ2UgYSBpbWcge1xuICAgICAgICB3aWR0aDogMTEzcHg7XG4gICAgICAgIGhlaWdodDogMTEzcHg7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcXVhbnRpdHksICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLXByaWNlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcXVhbnRpdHk6YmVmb3JlLCAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1wcmljZTpiZWZvcmUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cbiAgICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSAuY2FydC1jZWxsLCAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1wcmljZSAuY2FydC1jZWxsIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSAucHJpY2UtYm94LCAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1wcmljZSAucHJpY2UtYm94IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgI3dpc2hsaXN0LXRhYmxlIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCAuY2FydC1jZWxsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNDglOyB9XG4gICN3aXNobGlzdC10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQgPiBwIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDQ4JTsgfVxuICAjd2lzaGxpc3QtdGFibGUgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1yZW1vdmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE1cHg7XG4gICAgcmlnaHQ6IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgaGVpZ2h0OiAyMHB4OyB9XG4gICN3aXNobGlzdC10YWJsZS5jbGVhbi10YWJsZSB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogV2lzaGxpc3QgU2lkZWJhclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ibG9jay13aXNobGlzdCAubWluaS1wcm9kdWN0cy1saXN0ID4gbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7IH1cblxuLmJsb2NrLXdpc2hsaXN0IC5wcm9kdWN0LWRldGFpbHMgLnByb2R1Y3QtbmFtZSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLmJsb2NrLXdpc2hsaXN0IC5wcmljZS1ib3gge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5ibG9jay13aXNobGlzdCAucHJpY2UtYm94LFxuLmJsb2NrLXdpc2hsaXN0IC5wcmljZS1ib3ggLnByaWNlLFxuLmJsb2NrLXdpc2hsaXN0IC5saW5rLWNhcnQge1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLmJsb2NrLXdpc2hsaXN0IC5saW5rLWNhcnQge1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLXJpZ2h0OiA3cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDdweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0VERURFRDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIE1pbmkgY2FydFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5oZWFkZXItbWluaWNhcnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtbWVzc2FnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMTBweDsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5lbXB0eSB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtd3JhcHBlcjpiZWZvcmUsIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LXdyYXBwZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LXdyYXBwZXI6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgei1pbmRleDogMjsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LXdyYXBwZXI6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL29wYy1hamF4LWxvYWRlci5naWZcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgei1pbmRleDogMzsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LXdyYXBwZXIubG9hZGluZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LXdyYXBwZXIubG9hZGluZzpiZWZvcmUsIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LXdyYXBwZXIubG9hZGluZzphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLmJsb2NrLWNhcnQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmhlYWRlci1taW5pY2FydCAuYmxvY2stc3VidGl0bGUge1xuICAgIGNvbG9yOiAjNTBBNENGO1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5ibG9jay1zdWJ0aXRsZSAuY2xvc2Uge1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLThweDtcbiAgICAgIHJpZ2h0OiAtM3B4OyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLm1pbmktcHJvZHVjdHMtbGlzdCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogMHB4OyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaS1wcm9kdWN0cy1saXN0IGxpIHtcbiAgICAgIHBhZGRpbmc6IDhweCA1cHggOHB4IDExcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RERERERDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmhlYWRlci1taW5pY2FydCAubWluaS1wcm9kdWN0cy1saXN0IGxpLmxhc3Qge1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmktcHJvZHVjdHMtbGlzdCBsaSAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLnByb2R1Y3QtZGV0YWlscyAucHJvZHVjdC1uYW1lIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAucHJvZHVjdC1kZXRhaWxzIC5wcm9kdWN0LW5hbWUgYSB7XG4gICAgICBjb2xvcjogIzFmODZiZDsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5pbmZvLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAuaW5mby13cmFwcGVyIHRoIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAuaW5mby13cmFwcGVyIHRkIHtcbiAgICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgICAgY2xlYXI6IHJpZ2h0OyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAuaW5mby13cmFwcGVyIC5xdHktd3JhcHBlciB0ZCB7XG4gICAgICBoZWlnaHQ6IDMzcHg7XG4gICAgICBsaW5lLWhlaWdodDogMzNweDsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLmluZm8td3JhcHBlciAucXR5IHtcbiAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogNHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICB3aWR0aDogMy4yZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDMwcHg7IH1cbiAgICAuaGVhZGVyLW1pbmljYXJ0IC5pbmZvLXdyYXBwZXIgLnF1YW50aXR5LWJ1dHRvbiB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtczsgfVxuICAgICAgLmhlYWRlci1taW5pY2FydCAuaW5mby13cmFwcGVyIC5xdWFudGl0eS1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gICAgICAuaGVhZGVyLW1pbmljYXJ0IC5pbmZvLXdyYXBwZXIgLnF1YW50aXR5LWJ1dHRvbi52aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5zdWJ0b3RhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RERERERDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDJlbTsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLnN1YnRvdGFsIC5sYWJlbCB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAuc3VidG90YWwgLnByaWNlIHtcbiAgICAgIGNvbG9yOiAjMDAzYjVmOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICBtaW4td2lkdGg6IDE0NXB4OyB9XG4gICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2FydC1saW5rIHtcbiAgICAgIGhlaWdodDogMzNweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzOXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLnBheXBhbC1sb2dvIC5wYXlwYWwtb3Ige1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuICAuaGVhZGVyLW1pbmljYXJ0ICNtaW5pY2FydC1lcnJvci1tZXNzYWdlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IHJlZDtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgI21pbmljYXJ0LXN1Y2Nlc3MtbWVzc2FnZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiBncmVlbjtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLmpjYXJvdXNlbC1jb250cm9sLXByZXYsXG4gIC5oZWFkZXItbWluaWNhcnQgLmpjYXJvdXNlbC1jb250cm9sLW5leHQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmhlYWRlci1taW5pY2FydC5za2lwLWFjdGl2ZSAuYmxvY2stY2FydCxcbi5ibG9jay1jYXJ0LnNraXAtYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLmhlYWRlci1taW5pY2FydCBhLnNraXAtY2FydCB7XG4gICAgei1pbmRleDogMTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLmhlYWRlci1taW5pY2FydCAuc3VidG90YWwgLmxhYmVsIHtcbiAgICBjb2xvcjogIzAwM2I1ZjsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC13cmFwcGVyOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VERURFRDsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5xdWFudGl0eS1idXR0b24ge1xuICAgIGZsb2F0OiBub25lOyB9XG4gIC5oZWFkZXItbWluaWNhcnQgLmhlYWRlci1taW5pY2FydCAuYmxvY2stY2FydCB7XG4gICAgcGFkZGluZzogMTVweDsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5oZWFkZXItbWluaWNhcnQgLmJsb2NrLXN1YnRpdGxlIHtcbiAgICBwYWRkaW5nLXRvcDogNTlweDsgfVxuICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1hY3Rpb25zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzNweDsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLmNhcnQtbGluayB7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQgbGkgLnBheXBhbC1sb2dvID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgICAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQgbGkgLnBheXBhbC1sb2dvIC5ibWxfYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gICAgICAuaGVhZGVyLW1pbmljYXJ0IC5taW5pY2FydC1hY3Rpb25zIC5jaGVja291dC10eXBlcy5taW5pY2FydCBsaSAucGF5cGFsLWxvZ28gLnBheXBhbC1vciB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBtYXJnaW46IDAgMTBweCA1cHggMTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLmNhcnQtbGluayB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQgbGkgLnBheXBhbC1sb2dvIC5wYXlwYWwtb3IsXG4gIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IGxpIC5wYXlwYWwtbG9nbyAucGF5cGFsLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmhlYWRlci1taW5pY2FydCAubWluaWNhcnQtYWN0aW9ucyAuY2hlY2tvdXQtdHlwZXMubWluaWNhcnQgbGkgLnBheXBhbC1sb2dvIC5wYXlwYWwtb3Ige1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5oZWFkZXItbWluaWNhcnQgLm1pbmljYXJ0LWFjdGlvbnMgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggLSBBdXRvIFN1Z2dlc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTVweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyMDA7IH1cbiAgLnNlYXJjaC1hdXRvY29tcGxldGUgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzFmODZiZDtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnNlYXJjaC1hdXRvY29tcGxldGUgdWwgbGkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGNEY0RjQ7XG4gICAgICBjb2xvcjogIzFmODZiZDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHBhZGRpbmc6IDRweCA2cHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAuc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMWI3NmE3OyB9XG4gICAgICAuc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaS5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZjg2YmQ7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLnNlYXJjaC1hdXRvY29tcGxldGUgdWwgbGkgLmFtb3VudCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAgIC5zZWFyY2gtYXV0b2NvbXBsZXRlIHVsIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIC5zZWFyY2gtYXV0b2NvbXBsZXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCAjMWY4NmJkO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogLTdweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTZWFyY2ggLSBBZHZhbmNlZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hZHZhbmNlZC1zZWFyY2gge1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjRURFREVEO1xuICBwYWRkaW5nOiAzNXB4OyB9XG4gIC5hZHZhbmNlZC1zZWFyY2ggc2VsZWN0Lm11bHRpc2VsZWN0IG9wdGlvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFREVERUQ7XG4gICAgcGFkZGluZzogMnB4IDVweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5hZHZhbmNlZC1zZWFyY2gge1xuICAgIHBhZGRpbmc6IDE1cHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBBY2NvdW50IC0gUmV2aWV3c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wcm9kdWN0LXJldmlldyAucHJvZHVjdC1pbWctYm94IHAubGFiZWwge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQztcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnByb2R1Y3QtcmV2aWV3IC5wcm9kdWN0LWltZy1ib3ggLnJhdGluZy1ib3gge1xuICBtYXJnaW46IDE1cHggMDsgfVxuXG4ucHJvZHVjdC1yZXZpZXcgLnByb2R1Y3QtZGV0YWlscyBoMiB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBjb2xvcjogIzMzOTlDQztcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cblxuLnByb2R1Y3QtcmV2aWV3IC5yYXRpbmdzLXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgLnByb2R1Y3QtcmV2aWV3IC5yYXRpbmdzLXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gIC5wcm9kdWN0LXJldmlldyAucmF0aW5ncy10YWJsZSB0ciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5wcm9kdWN0LXJldmlldyAucmF0aW5ncy1kZXNjcmlwdGlvbiBkdCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnByb2R1Y3QtcmV2aWV3IC5yYXRpbmdzLWRlc2NyaXB0aW9uIGRkIHtcbiAgY29sb3I6ICM3MzczNzM7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAucHJvZHVjdC1yZXZpZXcgLnJhdGluZ3MtdGFibGUgdHIge1xuICAgIGZsb2F0OiBub25lOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTI2cHgpIHtcbiAgLnByb2R1Y3QtcmV2aWV3IC5yYXRpbmdzLXRhYmxlIHRyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XG4gIC5wcm9kdWN0LXJldmlldyAucmF0aW5ncy10YWJsZSB0ciB7XG4gICAgZmxvYXQ6IG5vbmU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDTVMgUGFnZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY21zLXBhZ2UtdmlldyAucGFnZS10aXRsZSBoMSxcbi5jbXMtcGFnZS12aWV3IC5wYWdlLXRpdGxlIGgzLFxuLmNtcy1wYWdlLXZpZXcgLnBhZ2UtaGVhZCBoMSxcbi5jbXMtcGFnZS12aWV3IC5wYWdlLWhlYWQgaDMsXG4uY21zLW5vLXJvdXRlIC5wYWdlLXRpdGxlIGgxLFxuLmNtcy1uby1yb3V0ZSAucGFnZS10aXRsZSBoMyxcbi5jbXMtbm8tcm91dGUgLnBhZ2UtaGVhZCBoMSxcbi5jbXMtbm8tcm91dGUgLnBhZ2UtaGVhZCBoMyB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY21zLXBhZ2UtdmlldyAuc3RkIGltZyxcbi5jbXMtbm8tcm91dGUgLnN0ZCBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmNtcy1wYWdlLXZpZXcgLnN0ZCBwLFxuLmNtcy1uby1yb3V0ZSAuc3RkIHAge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogIzMzMzMzMzsgfVxuXG4uY21zLXBhZ2UtdmlldyAuc3RkIGgxLFxuLmNtcy1uby1yb3V0ZSAuc3RkIGgxIHtcbiAgY29sb3I6ICMwMDNiNWY7IH1cblxuLmNtcy1wYWdlLXZpZXcgLnN0ZCBoMixcbi5jbXMtbm8tcm91dGUgLnN0ZCBoMiB7XG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbi5jbXMtcGFnZS12aWV3IC5zdGQgbGksXG4uY21zLW5vLXJvdXRlIC5zdGQgbGkge1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IDI0cHg7IH1cblxuLmNtcy1wYWdlLXZpZXcgLmNvbC1sZWZ0OmFmdGVyLFxuLmNtcy1uby1yb3V0ZSAuY29sLWxlZnQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5jbXMtbm8tcm91dGUgLnN0ZCBoMiB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAuY21zLW5vLXJvdXRlIC5zdGQgaDIge1xuICAgICAgZm9udC1zaXplOiA2OHB4OyB9IH1cblxuLmNtcy1uby1yb3V0ZSAuc3RkIGRpdi5sZWZ0IHtcbiAgbWF4LXdpZHRoOiA2ODBweDtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNtcy1uby1yb3V0ZSAuc3RkIGltZyB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jbXMtbm8tcm91dGUgLnN0ZCAuYW50NDA0IHtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5jbXMtcGFnZS12aWV3IC5zdGQgLm1lc3NhZ2VzLFxuLmNtcy1ob21lIC5zdGQgLm1lc3NhZ2VzLFxuLmNtcy1uby1yb3V0ZSAuc3RkIC5tZXNzYWdlcyB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgLmNtcy1wYWdlLXZpZXcgLnN0ZCAubWVzc2FnZXMgdWwsXG4gIC5jbXMtaG9tZSAuc3RkIC5tZXNzYWdlcyB1bCxcbiAgLmNtcy1uby1yb3V0ZSAuc3RkIC5tZXNzYWdlcyB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY21zLXBhZ2UtdmlldyAuc3RkIC5tZXNzYWdlcyBsaSxcbiAgLmNtcy1ob21lIC5zdGQgLm1lc3NhZ2VzIGxpLFxuICAuY21zLW5vLXJvdXRlIC5zdGQgLm1lc3NhZ2VzIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuI2FjY29yZGlvbiAudG9nZ2xlLXRhYnMge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbiNhY2NvcmRpb24gPiBkbCA+IGR0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBwYWRkaW5nOiA3cHggMTBweCA3cHggMjRweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI0NDQ0NDQztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAjYWNjb3JkaW9uID4gZGwgPiBkdDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjMWY4NmJkO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgbGVmdDogMTBweDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gICNhY2NvcmRpb24gPiBkbCA+IGR0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjRjRGNEY0LCAzJSk7IH1cblxuI2FjY29yZGlvbiA+IGRsID4gZGQge1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci13aWR0aDogMCAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI0NDQ0NDQzsgfVxuXG4jYWNjb3JkaW9uID4gZGwgPiBkZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMXB4OyB9XG5cbiNhY2NvcmRpb24gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgI2FjY29yZGlvbiBsaSAucGx1c2ltYWdlIGgyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuLnBhZ2Utc2l0ZW1hcCAubGlua3Mge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbjogMCAyMHB4IDAgMDsgfVxuICAucGFnZS1zaXRlbWFwIC5saW5rcyBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnBhZ2Utc2l0ZW1hcCAuc2l0ZW1hcCB7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgbWFyZ2luOiAxNXB4IDA7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuICAucGFnZS1zaXRlbWFwIC5zaXRlbWFwIGxpIHtcbiAgICBtYXJnaW46IDNweCAwOyB9XG5cbi5jb250YWN0cy1pbmRleC1pbmRleCBoMSB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4jY29udGFjdEZvcm0ge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH1cbiAgI2NvbnRhY3RGb3JtIGgyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICNjb250YWN0Rm9ybTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgI2NvbnRhY3RGb3JtIC5maWVsZHNldCAubGVnZW5kICsgLnJlcXVpcmVkIHtcbiAgICBtYXJnaW46IDA7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAjY29udGFjdEZvcm0ge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFByaWNpbmcgQ29uZGl0aW9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2UtbGluayAubGFiZWwge1xuICBjb2xvcjogI0NGNTA1MDtcbiAgZm9udC1mYW1pbHk6IFwiVWJ1bnR1VGl0bGluZy1Cb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubWFwLWluZm8ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAubWFwLWluZm8ge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAubWFwLWluZm8gPiBzcGFuIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAubWFwLWluZm8gLnByaWNlLWJveC5tYXAtaW5mbyA+IGEge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDb29raWVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm5vdGljZS1jb29raWUgLm5vdGljZS1pbm5lciB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5ub3RpY2UtY29va2llIC5ub3RpY2UtaW5uZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5ub3RpY2UtY29va2llIC5ub3RpY2UtdGV4dCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubm90aWNlLWNvb2tpZSAubm90aWNlLXRleHQgcCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE0LjVweDtcbiAgICBsaW5lLWhlaWdodDogMS4zOyB9XG5cbi5ub3RpY2UtY29va2llIC5hY3Rpb25zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLWJvdHRvbTogMTQuNXB4OyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLm5vdGljZS1jb29raWUgLm5vdGljZS10ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDg2JTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLm5vdGljZS1jb29raWUge1xuICAgIHBhZGRpbmc6IDAgMjBweDsgfVxuICAgIC5ub3RpY2UtY29va2llIC5ub3RpY2UtdGV4dCB7XG4gICAgICBtYXgtd2lkdGg6IDgyJTtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MjBweCkge1xuICAubm90aWNlLWNvb2tpZSB7XG4gICAgcGFkZGluZzogMCAyMHB4OyB9XG4gICAgLm5vdGljZS1jb29raWUgLm5vdGljZS1pbm5lciB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDEwcHg7IH1cbiAgICAgIC5ub3RpY2UtY29va2llIC5ub3RpY2UtaW5uZXI6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm5vdGljZS1jb29raWUgLm5vdGljZS10ZXh0IHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH1cbiAgICAubm90aWNlLWNvb2tpZSAuYWN0aW9ucyB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogVGFnc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiNhZGRUYWdGb3JtIGJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4jYWRkVGFnRm9ybSAuZm9ybS1hZGQge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5wcm9kdWN0LXRhZ3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogNXB4IDElIDEwcHg7XG4gIHdpZHRoOiA5OCU7IH1cblxuLnByb2R1Y3QtdGFncyBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cblxuLnByb2R1Y3QtdGFncyBsaS5sYXN0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7IH1cblxuLnRhZ3MtbGlzdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4udGFncy1saXN0ID4gbGkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG5cbi5ibG9jay10YWdzIC5hY3Rpb25zID4gYSB7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4ubXktdGFnLWVkaXQgLmJ1dHRvbi5idG4tcmVtb3ZlIHtcbiAgcGFkZGluZzogMDsgfVxuICAubXktdGFnLWVkaXQgLmJ1dHRvbi5idG4tcmVtb3ZlOmFmdGVyIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzBweCkge1xuICAudGFncy1saXN0ID4gbGksXG4gIC50YWdzLWxpc3Qge1xuICAgIGZsb2F0OiBub25lOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2FwdGNoYVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jYXB0Y2hhLW5vdGUge1xuICBjbGVhcjogbGVmdDtcbiAgcGFkZGluZy10b3A6IDVweDsgfVxuXG4uY2FwdGNoYS1pbWFnZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMjU4cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2I2YjZiNjtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnJlZ2lzdGVyZWQtdXNlcnMgLmNhcHRjaGEtaW1hZ2Uge1xuICBtYXJnaW46IDA7IH1cblxuLmNhcHRjaGEtcmVsb2FkIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnB4O1xuICByaWdodDogMnB4OyB9XG5cbi5jYXB0Y2hhLXJlbG9hZC5yZWZyZXNoaW5nIHtcbiAgYW5pbWF0aW9uOiByb3RhdGUgMS41cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGUgMS41cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiByb3RhdGUgMS41cyBpbmZpbml0ZSBsaW5lYXI7IH1cblxuLmN1c3RvbWVyLWFjY291bnQtY3JlYXRlIC5zY2FmZm9sZC1mb3JtIC5jYXB0Y2hhLWlucHV0LWNvbnRhaW5lciBsYWJlbDpmaXJzdC1jaGlsZCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jYXB0Y2hhLXJlbG9hZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDRweDtcbiAgdG9wOiA0cHg7IH1cblxuLmNhcHRjaGEtaW1nIHtcbiAgYm9yZGVyOiAyMHB4IHNvbGlkICNiYmI7IH1cblxuLmNhcHRjaGEtaW5wdXQtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uY29udHJvbC5uZXdzbGV0dGVyLWJveCwgLmNhcHRjaGEtaW5wdXQtY29udGFpbmVyLCAuY2FwdGNoYS1pbWctY29udGFpbmVyIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGNsZWFyOiBib3RoOyB9XG4gIC5jb250cm9sLm5ld3NsZXR0ZXItYm94OmFmdGVyLCAuY2FwdGNoYS1pbnB1dC1jb250YWluZXI6YWZ0ZXIsIC5jYXB0Y2hhLWltZy1jb250YWluZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IEJpbGxpbmcgRml4IHRvIHBsYWNlIHRoZSBDYXB0Y2hhIHByb3Blcmx5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI2NvLWJpbGxpbmctZm9ybSB1bC5mb3JtLWxpc3QgPiAuY29udHJvbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDAgMCA1cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEFjY291bnQgLSBPcmRlcnMsIEludm9pY2VzLCBDcmVkaXQgTWVtb3MuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuc2FsZXMtb3JkZXItaW52b2ljZSAuc3ViLXRpdGxlLFxuICAuc2FsZXMtb3JkZXItY3JlZGl0bWVtbyAuc3ViLXRpdGxlLFxuICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLnN1Yi10aXRsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuc2FsZXMtb3JkZXItaW52b2ljZSAub3JkZXItbGlua3MsXG4gIC5zYWxlcy1vcmRlci1jcmVkaXRtZW1vIC5vcmRlci1saW5rcyxcbiAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5vcmRlci1saW5rcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmVjdXJyaW5nIFByb2ZpbGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI3JlY3VycmluZ19wcm9maWxlX2xpc3RfdmlldyB0aCB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgI3JlY3VycmluZ19wcm9maWxlX2xpc3RfdmlldyB0aCBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICNyZWN1cnJpbmdfcHJvZmlsZV9saXN0X3ZpZXcge1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAgICNyZWN1cnJpbmdfcHJvZmlsZV9saXN0X3ZpZXcgYSB7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7IH1cbiAgICAjcmVjdXJyaW5nX3Byb2ZpbGVfbGlzdF92aWV3IHRoLFxuICAgICNyZWN1cnJpbmdfcHJvZmlsZV9saXN0X3ZpZXcgdGQge1xuICAgICAgcGFkZGluZzogMnB4OyB9IH1cblxuLnJlY3VycmluZy1wcm9maWxlcy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5yZWN1cnJpbmctcHJvZmlsZXMtdGl0bGUgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDdweDsgfVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMucmVjdXJyaW5nLXByb2ZpbGVzLXRpdGxlLWJ1dHRvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMucmVjdXJyaW5nLXByb2ZpbGVzLXRpdGxlLWJ1dHRvbnMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZmxvYXQ6IG5vbmU7IH0gfVxuICBib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMucmVjdXJyaW5nLXByb2ZpbGVzLXRpdGxlLWJ1dHRvbnMgLmJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHN0YXRpYzsgfVxuXG4ucmVjdXJyaW5nLXByb2ZpbGVzLW1lc3NhZ2VzOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4jcmVjdXJyaW5nX3N0YXJ0X2RhdGVfdHJpZyB7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBCaWxsaW5nIEFncmVlbWVudHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYmlsbGluZy1hZ3JlZW1lbnRzIC5pbmZvLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgLmJpbGxpbmctYWdyZWVtZW50cyAuaW5mby1ib3g6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5iaWxsaW5nLWFncmVlbWVudHMgLmluZm8tYm94IC5mb3JtLWxpc3Qge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmJpbGxpbmctYWdyZWVtZW50cyAuaW5mby1ib3ggLmJveC10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cbiAgLmJpbGxpbmctYWdyZWVtZW50cyAuaW5mby1ib3ggLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi10b3A6IDdweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAgIC5iaWxsaW5nLWFncmVlbWVudHMgLmluZm8tYm94IC5idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7IH0gfVxuXG4uYmlsbGluZy1hZ3JlZW1lbnRzICNwYXltZW50X21ldGhvZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1ib3R0b206IDdweDsgfVxuXG4uYmlsbGluZy1hZ3JlZW1lbnQtdmlldy1oZWFkZXItd3JhcHBlciAuaGVhZGluZyB7XG4gIG1heC13aWR0aDogODAlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAuYmlsbGluZy1hZ3JlZW1lbnQtdmlldy1oZWFkZXItd3JhcHBlciAuaGVhZGluZyB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuXG4uYmlsbGluZy1hZ3JlZW1lbnQtZGV0YWlscyB0ZCwgLmJpbGxpbmctYWdyZWVtZW50LWRldGFpbHMgdGgge1xuICBwYWRkaW5nOiAzLjVweDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC5iaWxsaW5nLWFncmVlbWVudHMgLmRhdGEtdGFibGUgLmNyZWF0ZWQtYXQsXG4gIC5iaWxsaW5nLWFncmVlbWVudHMgLmRhdGEtdGFibGUgLnVwZGF0ZWQtYXQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQb3B1bGFyIFNlYXJjaCBUZXJtcyBDbG91ZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jYXRhbG9nc2VhcmNoLXRlcm0tcG9wdWxhciAudGFncy1saXN0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jYXRhbG9nc2VhcmNoLXRlcm0tcG9wdWxhciAudGFncy1saXN0ID4gbGkge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDI1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogV2lkZ2V0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEFkZCB0byBjYXJ0IGJ5IFNLVVxuICovXG4uc2lkZWJhciAud2lkZ2V0LWFkZGJ5c2t1IC5za3UtdGFibGUgLmlucHV0LXRleHQ6bm90KC5xdHkpIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIC5zaWRlYmFyIC53aWRnZXQtYWRkYnlza3UgLnNrdS10YWJsZSAuaW5wdXQtdGV4dDpub3QoLnF0eSkge1xuICAgICAgbWF4LXdpZHRoOiAxMDBweDsgfSB9XG5cbi53aWRnZXQge1xuICBjbGVhcjogYm90aDsgfVxuXG4ud2lkZ2V0IC5wYWdlciB7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExOTlweCkge1xuICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCxcbiAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0LFxuICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQge1xuICAgIC8qIENvbmZpZzogQ29sdW1ucyArIGZsZXhpYmxlIGd1dHRlciAqL1xuICAgIC8qIFVuZG8gdGhyZWUtY29sdW1uIGNvbmZpZyAqL1xuICAgIC8qIFNldCBjb2x1bW4gY29uZmlnICovXG4gICAgLyogQ29uZmlnOiBDb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gICAgLyogVW5kbyB0aHJlZS1jb2x1bW4gY29uZmlnICovXG4gICAgLyogU2V0IGNvbHVtbiBjb25maWcgKi8gfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKG9kZCksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKG9kZCksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbisxKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24rMSksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24pLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24pLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpIHtcbiAgICAgIHdpZHRoOiAyMy4zMTQ2MSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNG4rMSksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDRuKzEpLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg0bisxKSB7XG4gICAgICBjbGVhcjogbGVmdDsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDRuKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNG4pLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg0bikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKzEpLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbisxKSxcbiAgICAuY29sMy1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbiksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbiksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKGV2ZW4pLFxuICAgIC5jb2wzLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wyLWxlZnQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGkge1xuICAgICAgd2lkdGg6IDE4LjIwMjI1JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg1bisxKSxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNW4rMSksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBsZWZ0OyB9XG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNW4pLFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCg1biksXG4gICAgLmNvbDMtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDVuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc3MHB4KSB7XG4gIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCB7XG4gICAgLyogQ29uZmlnOiBDb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gICAgLyogVW5kbyB0aHJlZS1jb2x1bW4gY29uZmlnICovXG4gICAgLyogU2V0IGNvbHVtbiBjb25maWcgKi9cbiAgICAvKiBDb25maWc6IENvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgICAvKiBVbmRvIHRocmVlLWNvbHVtbiBjb25maWcgKi9cbiAgICAvKiBTZXQgY29sdW1uIGNvbmZpZyAqLyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC00LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjI0NzE5JTsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTQtY29sLXdpZGdldCA+IGxpIHtcbiAgICAgIHdpZHRoOiAyMy4zMTQ2MSU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBsZWZ0OyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNC1jb2wtd2lkZ2V0ID4gbGk6bnRoLWNoaWxkKDRuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5jb2wxLWxheW91dCAuY29sLW1haW4gLndpZGdldCAucHJvZHVjdHMtZ3JpZC0tbWF4LTUtY29sLXdpZGdldCA+IGxpOm50aC1jaGlsZChldmVuKSxcbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuMjQ3MTklOyB9XG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbiAud2lkZ2V0IC5wcm9kdWN0cy1ncmlkLS1tYXgtNS1jb2wtd2lkZ2V0ID4gbGkge1xuICAgICAgd2lkdGg6IDE4LjIwMjI1JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMi4yNDcxOSU7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNW4rMSkge1xuICAgICAgY2xlYXI6IGxlZnQ7IH1cbiAgICAuY29sMS1sYXlvdXQgLmNvbC1tYWluIC53aWRnZXQgLnByb2R1Y3RzLWdyaWQtLW1heC01LWNvbC13aWRnZXQgPiBsaTpudGgtY2hpbGQoNW4pIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gTXVsdGlwbGUgQWRkcmVzc2VzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3Mge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3MgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogOHB4IDElIDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0NDQ0NDQztcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gICAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3MgPiBsaS5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0RERERERDsgfVxuICAgIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNoZWNrb3V0LXByb2dyZXNzID4gbGkubGFzdCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDBweDsgfVxuXG5ib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5wYWdlLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLnBhZ2UtdGl0bGUgaDEge1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIlOyB9XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLnBhZ2UtdGl0bGUgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLm11bHRpcGxlLWNoZWNrb3V0ID4gaDIge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLm1lc3NhZ2VzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNvbC0yLmNvbC13aWRlIHtcbiAgd2lkdGg6IDY2JTsgfVxuXG5ib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5jb2wtMS5jb2wtbmFycm93IHtcbiAgd2lkdGg6IDMwJTsgfVxuXG5ib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5hY3Rpb25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG5ib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5ncmFuZC10b3RhbCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gI2NoZWNrb3V0LXJldmlldy1zdWJtaXQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAjcmV2aWV3LWJ1dHRvbnMtY29udGFpbmVyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1hZGRyZXNzZXMgLmJ0bi1yZW1vdmUyIHtcbiAgdGV4dC1pbmRlbnQ6IC01NTU1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4OyB9XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5naWZ0LW1lc3NhZ2VzIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuZ2lmdC1tZXNzYWdlcy1mb3JtIHtcbiAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuZ2lmdC1tZXNzYWdlcy1mb3JtIGg0IHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuZ2lmdC1tZXNzYWdlcy1mb3JtIC5mb3JtLWxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuZ2lmdC1tZXNzYWdlcy1mb3JtIC5pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5jb2wtMSAuYm94LXRpdGxlIGgyLCAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTEgLmJveC10aXRsZSBoMywgLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctc2hpcHBpbmcgLmNvbC0xIC5ib3gtdGl0bGUgaDQsIC5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nIC5jb2wtMiAuYm94LXRpdGxlIGgyLCAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTIgLmJveC10aXRsZSBoMywgLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctc2hpcHBpbmcgLmNvbC0yIC5ib3gtdGl0bGUgaDQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMSAuYm94LXRpdGxlIGgyLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuY29sLTEgLmJveC10aXRsZSBoMyxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLWJpbGxpbmcgLmNvbC0xIC5ib3gtdGl0bGUgaDQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMiAuYm94LXRpdGxlIGgyLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuY29sLTIgLmJveC10aXRsZSBoMyxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLWJpbGxpbmcgLmNvbC0yIC5ib3gtdGl0bGUgaDQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1vdmVydmlldyAuY29sLTEgLmJveC10aXRsZSBoMixcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLW92ZXJ2aWV3IC5jb2wtMSAuYm94LXRpdGxlIGgzLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0xIC5ib3gtdGl0bGUgaDQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1vdmVydmlldyAuY29sLTIgLmJveC10aXRsZSBoMixcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLW92ZXJ2aWV3IC5jb2wtMiAuYm94LXRpdGxlIGgzLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0yIC5ib3gtdGl0bGUgaDQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0Y0RjRGNDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTEgPiBoNCwgLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctc2hpcHBpbmcgLmNvbC0yID4gaDQsXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1iaWxsaW5nIC5jb2wtMSA+IGg0LFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuY29sLTIgPiBoNCxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLW92ZXJ2aWV3IC5jb2wtMSA+IGg0LFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0yID4gaDQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0Y0RjRGNDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDQ0NDQ0M7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTEgLmJveC1jb250ZW50LCAuY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyAuY29sLTIgLmJveC1jb250ZW50LFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuY29sLTEgLmJveC1jb250ZW50LFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuY29sLTIgLmJveC1jb250ZW50LFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctb3ZlcnZpZXcgLmNvbC0xIC5ib3gtY29udGVudCxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLW92ZXJ2aWV3IC5jb2wtMiAuYm94LWNvbnRlbnQge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyAuc3AtbWV0aG9kcyBkdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTsgfVxuXG4jbXVsdGlzaGlwLWFkZHJlc3Nlcy10YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5hLWNlbnRlci5sYXN0ID4gYSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuI3Jldmlldy1vcmRlci1mb3JtID4gZGl2Om50aC1jaGlsZCgzKSA+IGRpdi5kaXZpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAuY2hlY2tvdXQtcHJvZ3Jlc3Mgc3BhbiB7XG4gICAgd29yZC1zcGFjaW5nOiAzMDBweDsgfVxuICAjcmV2aWV3LW9yZGVyLWZvcm0gLmNvbC0xLFxuICAjcmV2aWV3LW9yZGVyLWZvcm0gLmNvbC0yIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNoZWNrb3V0LXByb2dyZXNzIHNwYW4ge1xuICAgIHdpZHRoOiAxMnB4OyB9XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNoZWNrb3V0LXByb2dyZXNzIGxpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDMlO1xuICAgIGJvcmRlci1yaWdodDogMHB4OyB9XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmNoZWNrb3V0LXByb2dyZXNzIHNwYW4ge1xuICAgIHdvcmQtc3BhY2luZzogMXB4O1xuICAgIHdpZHRoOiAxMnB4OyB9XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmJveC10aXRsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAucGFnZS10aXRsZSAuYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0gLmxpbmVhcml6ZS10YWJsZSB0Zm9vdCB0ZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSAubGluZWFyaXplLXRhYmxlIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAyMDBweDsgfVxuICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5jb2wtMS5jb2wtbmFycm93LCBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5jb2wtMi5jb2wtd2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYWRkcmVzc2VzIC5saW5lYXJpemUtdGFibGUgdGJvZHkgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICBib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIC5idXR0b25zLXNldCAuYmFjay1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbmhyIHtcbiAgbWFyZ2luOiAyZW0gMDtcbiAgYm9yZGVyOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMCAwOyB9XG5cbmJvZHkuaXMtYmxvZyBpZnJhbWU6bm90KFt0aXRsZT1cInJlQ0FQVENIQS1XaWRnZXRcIl0pIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzAwcHg7IH1cblxuYm9keS5pcy1ibG9nIC5wYWdlLWxheW91dC0tbmFycm93IHtcbiAgbWF4LXdpZHRoOiA2ODBweDtcbiAgbWFyZ2luOiBhdXRvOyB9XG5cbmJvZHkuaXMtYmxvZyAucGFnZS1sYXlvdXQtLWZ1bGwge1xuICB3aWR0aDogMTAwJTsgfVxuXG4udGVzdC1kZXZpY2UtYmxvY2sge1xuICBtYXJnaW46IDEuNWVtIDA7IH1cblxuLndvcmRwcmVzcy1wYWdlLTc5IC5ibG9jay1ibG9nLW1lbnUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbiNoZWFkZXItbmF2IC5uYXYtMSAudmlldy1hbGwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5pcy1ibG9nICNoZWFkZXItbmF2IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG5cbi5pcy1ibG9nIC5jb2wtbWFpbiB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cblxuLndvcmRwcmVzcy1sYXlvdXQtZnVsbHNjcmVlbiAjaGVhZGVyLW5hdiwgLndvcmRwcmVzcy1pbmRleC1pbmRleCAjaGVhZGVyLW5hdiwgLndvcmRwcmVzcy1wb3N0LXZpZXcgI2hlYWRlci1uYXYge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5sYXlvdXQtbGFuZGluZ3BhZ2UgI2hlYWRlci1uYXYge1xuICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLmxheW91dC1sYW5kaW5ncGFnZSAuZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogbm9uZTsgfVxuXG4ubGF5b3V0LWxhbmRpbmdwYWdlIC5wb3N0LWVudHJ5IGhyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi53b3JkcHJlc3MtcG9zdC12aWV3IC5tYWluLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLnJlc2VsbGVycy5yb3c6bGFzdC1jaGlsZCwgLnBlb3BsZS5yb3c6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDcwcHg7IH1cblxuLndvcmRwcmVzcy1sYXlvdXQtY29sMi1yaWdodCAjaGVhZGVyLW5hdiwgLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4ICNoZWFkZXItbmF2IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBwYWRkaW5nLWJvdHRvbTogMzVweDsgfVxuXG5ib2R5LmlzLWJsb2cgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbWFpbixcbmJvZHkuaXMtYmxvZyAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1yaWdodCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuYm9keS5pcy1ibG9nIC5jb2wyLXNldCAuY29sLTEsXG5ib2R5LmlzLWJsb2cgLmNvbDItc2V0IC5jb2wtMiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuZm9ybSAucm93OmFmdGVyLCAuZm9ybS13cmFwcGVyIC5yb3c6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgZm9ybSAucm93LCAuZm9ybS13cmFwcGVyIC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4OyB9IH1cblxuZm9ybSAucm93IC5jb2wtaGFsZixcbmZvcm0gLnJvdyAuY29sLWZ1bGwsIC5mb3JtLXdyYXBwZXIgLnJvdyAuY29sLWhhbGYsXG4uZm9ybS13cmFwcGVyIC5yb3cgLmNvbC1mdWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHBhZGRpbmc6IDVweCAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgZm9ybSAucm93IC5jb2wtaGFsZixcbiAgICBmb3JtIC5yb3cgLmNvbC1mdWxsLCAuZm9ybS13cmFwcGVyIC5yb3cgLmNvbC1oYWxmLFxuICAgIC5mb3JtLXdyYXBwZXIgLnJvdyAuY29sLWZ1bGwge1xuICAgICAgcGFkZGluZzogMTBweDsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICBmb3JtIC5yb3cgLmNvbC1oYWxmLnN1Ym1pdCxcbiAgICBmb3JtIC5yb3cgLmNvbC1mdWxsLnN1Ym1pdCwgLmZvcm0td3JhcHBlciAucm93IC5jb2wtaGFsZi5zdWJtaXQsXG4gICAgLmZvcm0td3JhcHBlciAucm93IC5jb2wtZnVsbC5zdWJtaXQge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICBmb3JtIC5yb3cgLmNvbC1oYWxmLCAuZm9ybS13cmFwcGVyIC5yb3cgLmNvbC1oYWxmIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuZm9ybSAucm93IC5jb2wtZnVsbCwgLmZvcm0td3JhcHBlciAucm93IC5jb2wtZnVsbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zaWRlYmFyLWl0ZW1zIGgzIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlY2VudC1wb3N0cyAuYmxvY2stdGl0bGUsXG4uc2lkZWJhci1pdGVtcyAuYmxvY2stcmVsYXRlZC1wb3N0cyAuYmxvY2stdGl0bGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWNlbnQtcG9zdHMgLnBvc3RzLWxpc3QtaXRlbSxcbi5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWxhdGVkLXBvc3RzIC5wb3N0cy1saXN0LWl0ZW0ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctYm90dG9tOiAxZW07IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWNlbnQtcG9zdHMgLnBvc3RzLWxpc3QtaXRlbTpsYXN0LWNoaWxkLFxuICAgIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWxhdGVkLXBvc3RzIC5wb3N0cy1saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH0gfVxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2stcmVjZW50LXBvc3RzIC5wb3N0cy1saXN0LWl0ZW0gLmZlYXR1cmVkLWltYWdlLFxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2stcmVsYXRlZC1wb3N0cyAucG9zdHMtbGlzdC1pdGVtIC5mZWF0dXJlZC1pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWNlbnQtcG9zdHMgLnBvc3RzLWxpc3QtaXRlbSBhLFxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2stcmVsYXRlZC1wb3N0cyAucG9zdHMtbGlzdC1pdGVtIGEge1xuICAgIGNvbG9yOiAjMDAzYjVmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDc3MHB4KSB7XG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWNlbnQtcG9zdHMgLnNpZGViYXItcG9zdHMtbGlzdDphZnRlcixcbiAgLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlbGF0ZWQtcG9zdHMgLnNpZGViYXItcG9zdHMtbGlzdDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNpZGViYXItaXRlbXMgLmJsb2NrLXJlY2VudC1wb3N0cyAucG9zdHMtbGlzdC1pdGVtLFxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2stcmVsYXRlZC1wb3N0cyAucG9zdHMtbGlzdC1pdGVtIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuc2lkZWJhci1pdGVtcyAuYmxvY2stcmVjZW50LXBvc3RzIC5zaWRlYmFyLXBvc3RzLWxpc3QsXG4gIC5zaWRlYmFyLWl0ZW1zIC5ibG9jay1yZWxhdGVkLXBvc3RzIC5zaWRlYmFyLXBvc3RzLWxpc3Qge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4OyB9IH1cblxuLnNpZGViYXItaXRlbXMgLmxpbmstbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDVlbTsgfVxuICAuc2lkZWJhci1pdGVtcyAubGluay1saXN0IC5saW5rLWxpc3QtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVlbTsgfVxuXG4uc2lkZWJhci1pdGVtcyAuYmxvY2sgLmJsb2NrLXRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG5cbi5zaWRlYmFyLWl0ZW1zIC5ibG9jay5ibG9jay1ibG9nLW1lbnUgLmJsb2NrLWNvbnRlbnQgdWwge1xuICBtYXJnaW4tdG9wOiAycHg7IH1cbiAgLnNpZGViYXItaXRlbXMgLmJsb2NrLmJsb2NrLWJsb2ctbWVudSAuYmxvY2stY29udGVudCB1bCBsaS5pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogNHB4IDA7IH1cbiAgICAuc2lkZWJhci1pdGVtcyAuYmxvY2suYmxvY2stYmxvZy1tZW51IC5ibG9jay1jb250ZW50IHVsIGxpLml0ZW0gYSB7XG4gICAgICBjb2xvcjogIzAwM2I1ZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAuc2lkZWJhci1pdGVtcyAuYmxvY2suYmxvY2stYmxvZy1tZW51IC5ibG9jay1jb250ZW50IHVsIGxpLml0ZW0gYTpob3ZlciwgLnNpZGViYXItaXRlbXMgLmJsb2NrLmJsb2NrLWJsb2ctbWVudSAuYmxvY2stY29udGVudCB1bCBsaS5pdGVtIGEuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICMxZjg2YmQgIWltcG9ydGFudDsgfVxuXG4uc2lkZWJhci1pdGVtcyBmb3JtLnNlYXJjaF9taW5pX2Zvcm0ge1xuICBtYXJnaW46IDNlbSAwOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzcwcHgpIHtcbiAgLnNpZGViYXItc3BhY2VyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLnN1cHBvcnQtYmxvY2sgaDMge1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7IH1cblxuLnN1cHBvcnQtYmxvY2s6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyc7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5zdXBwb3J0LWJsb2NrIHNwYW4ucGhvbmUge1xuICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uc3VwcG9ydC1ibG9jayAubGVmdCwgLnN1cHBvcnQtYmxvY2sgLnJpZ2h0IHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uc3VwcG9ydC1ibG9jayAubGVmdCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5zdXBwb3J0LWJsb2NrIC5yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuICAuc3VwcG9ydC1ibG9jayAucmlnaHQgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuLnByb2R1Y3RmaW5kZXItaW5kZXgtaW5kZXggLnNpZGViYXIge1xuICBwYWRkaW5nLXRvcDogOHB4OyB9XG5cbi5zaWRlYmFyIGhyIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5zaWRlYmFyIHAgYSwgLnNpZGViYXItYmxvY2sgYSB7XG4gIGNvbG9yOiAjMDAzYjVmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuc2lkZWJhciBwIGE6aG92ZXIsIC5zaWRlYmFyLWJsb2NrIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMWY4NmJkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5zaWRlYmFyLWJsb2NrIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHBhZGRpbmc6IDE4cHggMDsgfVxuXG5ib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAuZm9vdGVyIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NzFweCkge1xuICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMjVweDsgfSB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5tYWluLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAyMHB4OyB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wYWdlLXRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5ib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAuZmVhdHVyZWQtaW1hZ2Uge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDsgfVxuXG5ib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAucG9zdC1saXN0IC5ob21lLXNsaWRlci1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG5cbmJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgdWwjcG9zdC1saXN0IGxpLml0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgdWwjcG9zdC1saXN0IGxpLml0ZW06bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgdWwjcG9zdC1saXN0IGxpLml0ZW0gLnBvc3QtbGlzdC1pdGVtIC5wb3N0LWVudHJ5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAyMHB4OyB9XG4gICAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCB1bCNwb3N0LWxpc3QgbGkuaXRlbSAucG9zdC1saXN0LWl0ZW0gLnBvc3QtZW50cnkucG9zdC1lbnRyeS13aXRoLWltYWdlIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgdWwjcG9zdC1saXN0IGxpLml0ZW0gLnBvc3QtbGlzdC1pdGVtIC5wb3N0LWVudHJ5IC5mZWF0dXJlZC1pbWFnZSBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgICBib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAucG9zdC1saXN0IHVsI3Bvc3QtbGlzdCBsaS5pdGVtIC5wb3N0LWxpc3QtaXRlbSAucG9zdC1lbnRyeSBoMiB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDM1cHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgdWwjcG9zdC1saXN0IGxpLml0ZW0gLnBvc3QtbGlzdC1pdGVtIC5wb3N0LWVudHJ5IGgyIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDsgfVxuICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgdWwjcG9zdC1saXN0IGxpLml0ZW0gLnBvc3QtbGlzdC1pdGVtIC5wb3N0LWVudHJ5IC5wb3N0LWV4Y2VycHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG5ib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAucG9zdC1saXN0IC5wYWdlciB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgYm9keS53b3JkcHJlc3MtaW5kZXgtaW5kZXggLnBvc3QtbGlzdCAucGFnZXIgLnBhZ2VzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgLnBhZ2VyIC5wYWdlcyBvbCBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGNvbG9yOiAjMWY4NmJkOyB9XG4gICAgICBib2R5LndvcmRwcmVzcy1pbmRleC1pbmRleCAucG9zdC1saXN0IC5wYWdlciAucGFnZXMgb2wgbGkuY3VycmVudCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY29sb3I6ICMwMDNiNWY7IH1cbiAgICAgIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgLnBhZ2VyIC5wYWdlcyBvbCBsaSBhLm5leHQsIGJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IC5wb3N0LWxpc3QgLnBhZ2VyIC5wYWdlcyBvbCBsaSBhLnByZXZpb3VzIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyB9XG5cbi53b3JkcHJlc3MtcG9zdC12aWV3IC5wb3N0LWVudHJ5IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLndvcmRwcmVzcy1wb3N0LXZpZXcgLnBvc3QtZW50cnkgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLndvcmRwcmVzcy1wb3N0LXZpZXcgLnBvc3QtZW50cnkgLmZlYXR1cmVkLWltYWdlIC5wb3N0LXNoYXJlIGltZyB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4OyB9XG5cbi53b3JkcHJlc3MtcG9zdC12aWV3IC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcgLnBvc3QtdGVhc2VyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcxcHgpIHtcbiAgICAud29yZHByZXNzLXBvc3QtdmlldyAucG9zdC10ZWFzZXIge1xuICAgICAgd2lkdGg6IDE0Ni4xMiU7IH0gfVxuXG4ud29yZHByZXNzLXBvc3QtdmlldyAuZmVhdHVyZWQtaW1hZ2Uge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwMDNiNWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAud29yZHByZXNzLXBvc3QtdmlldyAuZmVhdHVyZWQtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAud29yZHByZXNzLXBvc3QtdmlldyAuZmVhdHVyZWQtaW1hZ2UgLnBvc3Qtc2hhcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDE1cHg7IH1cbiAgICAud29yZHByZXNzLXBvc3QtdmlldyAuZmVhdHVyZWQtaW1hZ2UgLnBvc3Qtc2hhcmUgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG5cbi53b3JkcHJlc3MtcG9zdC12aWV3IC5wb3N0LXNoYXJlIGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcgLnBvc3QtbWV0YSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4ucG9zdC1lbnRyeSBociB7XG4gIG1hcmdpbjogLjVlbSAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IGRvdHRlZCAjMDAzYjVmO1xuICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDsgfVxuXG4ucG9zdC1lbnRyeSBoMSwgLnBvc3QtZW50cnkgLmgxLFxuLnBvc3QtZW50cnkgaDIsIC5wb3N0LWVudHJ5IC5oMixcbi5wb3N0LWVudHJ5IGgzLCAucG9zdC1lbnRyeSAuaDMge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zaXplOiAyNHB4OyB9XG5cbi5wb3N0LWVudHJ5IGgxLCAucG9zdC1lbnRyeSAuaDEge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5wb3N0LWVudHJ5IGE6bm90KC5idXR0b24pIHtcbiAgY29sb3I6ICMwMDNiNWY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5wb3N0LWVudHJ5IGE6bm90KC5idXR0b24pOmhvdmVyIHtcbiAgICBjb2xvcjogIzFmODZiZDsgfVxuICAucG9zdC1lbnRyeSBhOm5vdCguYnV0dG9uKS5iYWNrIHtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5wb3N0LWVudHJ5IGgzLCAucG9zdC1lbnRyeSAuaDMge1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuLnBvc3QtZW50cnkgaDEge1xuICBmb250LXNpemU6IDI0cHg7IH1cblxuLnBvc3QtZW50cnkgaDEgYSwgLnBvc3QtZW50cnkgaDIgYSwgLnBvc3QtZW50cnkgaDMgYSwgLnBvc3QtZW50cnkgaDQgYSwgLnBvc3QtZW50cnkgaDUgYSwgLnBvc3QtZW50cnkgaDYgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5wb3N0LWVudHJ5IGgxIGE6aG92ZXIsIC5wb3N0LWVudHJ5IGgyIGE6aG92ZXIsIC5wb3N0LWVudHJ5IGgzIGE6aG92ZXIsIC5wb3N0LWVudHJ5IGg0IGE6aG92ZXIsIC5wb3N0LWVudHJ5IGg1IGE6aG92ZXIsIC5wb3N0LWVudHJ5IGg2IGE6aG92ZXIge1xuICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblxuLnBvc3QtZW50cnkubGlnaHRib3gtY29udGVudC1saW5rIGE6bm90KC5iYWNrKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ucG9zdC1lbnRyeSAuc3BhY2VyIHtcbiAgaGVpZ2h0OiAzNXB4OyB9XG5cbi5wb3N0LXRpdGxlLmhhcy1zdWJ0aXRsZSB7XG4gIHBhZGRpbmctYm90dG9tOiA1ZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwM2I1ZjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gIC5wb3N0LXRpdGxlLmhhcy1zdWJ0aXRsZSAucGFnZS1zdWJ0aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAucG9zdC10aXRsZS5oYXMtc3VidGl0bGUgaDEge1xuICAgIGNvbG9yOiAjMWY4NmJkOyB9XG5cbi53b3JkcHJlc3MtcG9zdC12aWV3IGVtIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBcIlVidW50dVRpdGxpbmctQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFZlcmRhbmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi5wb3N0LW1ldGEuZGV0YWlscyB7XG4gIG1hcmdpbi10b3A6IDM1cHg7IH1cblxuLnBvc3QtZW50cnkgdWwsIC5saWdodGJveCB1bCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuICAucG9zdC1lbnRyeSB1bCBsaSwgLmxpZ2h0Ym94IHVsIGxpIHtcbiAgICB0ZXh0LWluZGVudDogLThweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBtYXJnaW46IDRweCAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAucG9zdC1lbnRyeSB1bCBsaTpiZWZvcmUsIC5saWdodGJveCB1bCBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCItIFwiOyB9XG5cbi5wb3N0LWVudHJ5IG9sLCAubGlnaHRib3ggb2wge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cbiAgLnBvc3QtZW50cnkgb2wgbGksIC5saWdodGJveCBvbCBsaSB7XG4gICAgbWFyZ2luOiA0cHggMDsgfVxuXG4ucGVvcGxlLnJvdywgLnJlc2VsbGVycy5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLnBlb3BsZS5yb3csIC5yZXNlbGxlcnMucm93IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuICAucGVvcGxlLnJvdzphZnRlciwgLnJlc2VsbGVycy5yb3c6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnBlb3BsZS5maXJzdCAucGVvcGxlLWl0ZW0sIC5wZW9wbGUuZmlyc3QgLnJlc2VsbGVyLWl0ZW0sIC5yZXNlbGxlcnMuZmlyc3QgLnBlb3BsZS1pdGVtLCAucmVzZWxsZXJzLmZpcnN0IC5yZXNlbGxlci1pdGVtIHtcbiAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH0gfVxuXG4ucGVvcGxlIC5jb2wtaGFsZiwgLnJlc2VsbGVycyAuY29sLWhhbGYge1xuICBtYXJnaW46IDAgMTVweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLnBlb3BsZSAuY29sLWhhbGYsIC5yZXNlbGxlcnMgLmNvbC1oYWxmIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgLnBlb3BsZSAuY29sLWhhbGYgLnBlb3BsZS1pdGVtLCAucGVvcGxlIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSwgLnJlc2VsbGVycyAuY29sLWhhbGYgLnBlb3BsZS1pdGVtLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAzYjVmOyB9XG4gICAgLnBlb3BsZSAuY29sLWhhbGYgLnBlb3BsZS1pdGVtIGltZywgLnBlb3BsZSAuY29sLWhhbGYgLnJlc2VsbGVyLWl0ZW0gaW1nLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucGVvcGxlLWl0ZW0gaW1nLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTk5cHgpIHtcbiAgICAgICAgLnBlb3BsZSAuY29sLWhhbGYgLnBlb3BsZS1pdGVtIGltZywgLnBlb3BsZSAuY29sLWhhbGYgLnJlc2VsbGVyLWl0ZW0gaW1nLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucGVvcGxlLWl0ZW0gaW1nLCAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBpbWcge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5wZW9wbGUgLmNvbC1oYWxmIC5wZW9wbGUtaXRlbSwgLnBlb3BsZSAuY29sLWhhbGYgLnJlc2VsbGVyLWl0ZW0sIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5wZW9wbGUtaXRlbSwgLnJlc2VsbGVycyAuY29sLWhhbGYgLnJlc2VsbGVyLWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsgfSB9XG4gIC5wZW9wbGUgLmNvbC1oYWxmIHAsIC5yZXNlbGxlcnMgLmNvbC1oYWxmIHAge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLnBlb3BsZS5maXJzdCAuY29sLWhhbGY6Zmlyc3QtY2hpbGQgLnBlb3BsZS1pdGVtLCAucGVvcGxlLmZpcnN0IC5jb2wtaGFsZjpmaXJzdC1jaGlsZCAucmVzZWxsZXItaXRlbSwgLnJlc2VsbGVycy5maXJzdCAuY29sLWhhbGY6Zmlyc3QtY2hpbGQgLnBlb3BsZS1pdGVtLCAucmVzZWxsZXJzLmZpcnN0IC5jb2wtaGFsZjpmaXJzdC1jaGlsZCAucmVzZWxsZXItaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgIzAwM2I1ZjsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5wZW9wbGU6bGFzdC1jaGlsZCAuY29sLWhhbGYgLnBlb3BsZS1pdGVtLCAucGVvcGxlOmxhc3QtY2hpbGQgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtLCAucmVzZWxsZXJzOmxhc3QtY2hpbGQgLmNvbC1oYWxmIC5wZW9wbGUtaXRlbSwgLnJlc2VsbGVyczpsYXN0LWNoaWxkIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfSB9XG5cbi5yZXNlbGxlcnMucm93Omxhc3QtY2hpbGQsXG4ucGVvcGxlLnJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogNzBweDsgfVxuXG4ucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBoMiB7XG4gIG1hcmdpbi10b3A6IDA7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtIGgyIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7IH0gfVxuICAucmVzZWxsZXJzIC5jb2wtaGFsZiAucmVzZWxsZXItaXRlbSBoMiBpbWcsIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtIGgyIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5yZXNlbGxlcnMgLmNvbC1oYWxmIC5yZXNlbGxlci1pdGVtIGgyIGltZyB7XG4gICAgaGVpZ2h0OiAxLjJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC4zZW07XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgLyogV2ViS2l0LCBCbGluaywgRWRnZSAqL1xuICBjb2xvcjogIzAwM2I1ZjsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gOi1tb3otcGxhY2Vob2xkZXIge1xuICAvKiBNb3ppbGxhIEZpcmVmb3ggNCB0byAxOCAqL1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgb3BhY2l0eTogMTsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgLyogTW96aWxsYSBGaXJlZm94IDE5KyAqL1xuICBjb2xvcjogIzAwM2I1ZjtcbiAgb3BhY2l0eTogMTsgfVxuXG5mb3JtLndwY2Y3LWZvcm0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIC8qIEludGVybmV0IEV4cGxvcmVyIDEwLTExICovXG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbmZvcm0ud3BjZjctZm9ybSA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIC8qIE1pY3Jvc29mdCBFZGdlICovXG4gIGNvbG9yOiAjMDAzYjVmOyB9XG5cbmZvcm0ud3BjZjctZm9ybSBkaXYud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0Y1MDUwO1xuICBjb2xvcjogd2hpdGU7IH1cblxuZm9ybS53cGNmNy1mb3JtIC50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuZm9ybS53cGNmNy1mb3JtIC5hamF4LWxvYWRlciB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbmZvcm0ud3BjZjctZm9ybSAuYWpheC1sb2FkZXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuZm9ybS53cGNmNy1mb3JtIC5pbnB1dHMgc3Bhbi53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSksXG5mb3JtLndwY2Y3LWZvcm0gLmlucHV0cyBzcGFuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHNlbGVjdCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQ0VDRUM7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMCAxZW07XG4gIGhlaWdodDogMzVweDtcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuICBmb3JtLndwY2Y3LWZvcm0gLmlucHV0cyBzcGFuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIGlucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdKTo6cGxhY2Vob2xkZXIsXG4gIGZvcm0ud3BjZjctZm9ybSAuaW5wdXRzIHNwYW4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAgc2VsZWN0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbmZvcm0ud3BjZjctZm9ybSAuaW5wdXRzIHNwYW4ud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gIGNvbG9yOiAjQ0Y1MDUwOyB9XG5cbmZvcm0ud3BjZjctZm9ybSAuc3VjY2VzcyB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIGZvcm0ud3BjZjctZm9ybSAuc3VjY2VzcyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07IH1cblxuZm9ybS53cGNmNy1mb3JtLnNlbnQgLmlucHV0cywgZm9ybS53cGNmNy1mb3JtLnNlbnQgLndwY2Y3LW1haWwtc2VudC1vayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5mb3JtLndwY2Y3LWZvcm0uc2VudCAuc3VjY2VzcyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbnNwYW4ud3BjZjctbGlzdC1pdGVtIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cblxuLmZvcm0td3JhcHBlciBmb3JtIGlucHV0LFxuLmZvcm0td3JhcHBlciBmb3JtIHNlbGVjdCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQ0VDRUM7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMCAxZW07XG4gIGhlaWdodDogMzVweDtcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuICAuZm9ybS13cmFwcGVyIGZvcm0gaW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAuZm9ybS13cmFwcGVyIGZvcm0gc2VsZWN0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICMwMDNiNWY7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbnVsLmRvd25sb2FkcyB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG4gIHVsLmRvd25sb2FkcyAuZG93bmxvYWQtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDJlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgdWwuZG93bmxvYWRzIC5kb3dubG9hZC1pdGVtLS1wZGY6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLWRvd25sb2FkLXBkZi5zdmdcIik7IH1cbiAgICB1bC5kb3dubG9hZHMgLmRvd25sb2FkLWl0ZW0tLXppcDpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tZG93bmxvYWQtemlwLnN2Z1wiKTsgfVxuICAgIHVsLmRvd25sb2FkcyAuZG93bmxvYWQtaXRlbTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0yZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uLWRvd25sb2FkLXBkZi5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxOXB4IDIycHg7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gICAgdWwuZG93bmxvYWRzIC5kb3dubG9hZC1pdGVtIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLmxpZ2h0Ym94LCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5OTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zO1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cbiAgLmxpZ2h0Ym94LmxvYWRpbmcsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkubG9hZGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsOyB9XG4gICAgLmxpZ2h0Ym94LmxvYWRpbmcgLnNwaW5uZXIsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkubG9hZGluZyAuc3Bpbm5lciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5saWdodGJveC5jb21wbGV0ZSwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheS5jb21wbGV0ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsOyB9XG4gICAgLmxpZ2h0Ym94LmNvbXBsZXRlIC5zcGlubmVyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5LmNvbXBsZXRlIC5zcGlubmVyIHtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAubGlnaHRib3guY29tcGxldGUgLmJveCwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheS5jb21wbGV0ZSAuYm94IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIC5saWdodGJveC5jb21wbGV0ZSAuYm94LCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5LmNvbXBsZXRlIC5ib3gge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9IH1cbiAgLmxpZ2h0Ym94LnNjcm9sbCAuYm94LCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5LnNjcm9sbCAuYm94IHtcbiAgICB0b3A6IDAgIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5saWdodGJveC5zY3JvbGwgLmJveCwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheS5zY3JvbGwgLmJveCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApICFpbXBvcnRhbnQ7IH0gfVxuICAubGlnaHRib3ggLnNwaW5uZXIsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLnNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGFuaW1hdGlvbjogcm90YXRlIDEuMnMgaW5maW5pdGUgbGluZWFyO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDsgfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cbiAgLmxpZ2h0Ym94IC5ib3gsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogNjBweCBhdXRvO1xuICAgIHdpZHRoOiA5NiU7XG4gICAgbWF4LXdpZHRoOiA2OTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMsIG9wYWNpdHkgMjAwbXM7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAubGlnaHRib3ggLmJveCwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNDUlKTsgfSB9XG4gICAgLmxpZ2h0Ym94IC5ib3ggb2wsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCBvbCB7XG4gICAgICBsaXN0LXN0eWxlOiBkZWNpbWFsIG91dHNpZGU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTsgfVxuICAgICAgLmxpZ2h0Ym94IC5ib3ggb2wgbGksIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCBvbCBsaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyZW07IH1cbiAgICAubGlnaHRib3ggLmJveCBoMSwgLmxpZ2h0Ym94IC5ib3ggaDMsIC5saWdodGJveCAuYm94IC5oMywgLmxpZ2h0Ym94IC5ib3ggaDIsIC5saWdodGJveCAuYm94IGgyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggaDEsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCBoMywgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IC5oMywgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IGgyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggaDIge1xuICAgICAgZm9udC1zaXplOiAyNHB4OyB9XG4gICAgLmxpZ2h0Ym94IC5ib3ggYSNyZXF1ZXN0LXNhbXBsZSwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IGEjcmVxdWVzdC1zYW1wbGUge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgIC5saWdodGJveCAuYm94IGgyLCAubGlnaHRib3ggLmJveCAuaDIsXG4gICAgLmxpZ2h0Ym94IC5ib3ggaDMsIC5saWdodGJveCAuYm94IC5oMywgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IGgyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggLmgyLFxuICAgIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCBoMywgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IC5oMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgLmxpZ2h0Ym94IC5ib3ggLmNsb3NlLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggLmNsb3NlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZjg2YmQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiA2MHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTE1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2xpZ2h0Ym94LWNsb3NlLnN2Zyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDExcHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtczsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAubGlnaHRib3ggLmJveCAuY2xvc2UsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCAuY2xvc2Uge1xuICAgICAgICAgIHRvcDogMDsgfSB9XG4gICAgICAubGlnaHRib3ggLmJveCAuY2xvc2U6aG92ZXIsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCAuY2xvc2U6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQ3ZGIwOyB9XG4gICAgLmxpZ2h0Ym94IC5ib3ggLmlubmVyLCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5IC5ib3ggLmlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDQwcHggMjBweCA2MHB4IDIwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIC5saWdodGJveCAuYm94IC5pbm5lciwgLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSAuYm94IC5pbm5lciB7XG4gICAgICAgICAgcGFkZGluZzogNDBweCAyMHB4OyB9IH1cbiAgICAgIC5saWdodGJveCAuYm94IC5pbm5lcjo6LXdlYmtpdC1zY3JvbGxiYXIsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCAuaW5uZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICAubGlnaHRib3ggLmJveCAuaW5uZXIsIC5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkgLmJveCAuaW5uZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDcwcHggNTBweDsgfSB9XG5cbmJvZHkubGlnaHRib3gtYWN0aXZlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi5zYW1wbGVyZXF1ZXN0LW92ZXJsYXkuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAuc2FtcGxlcmVxdWVzdC1vdmVybGF5LmFjdGl2ZSAuYm94IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cblxuLmZpbmRlci1mb3JtIHtcbiAgbWFyZ2luOiAzNXB4IDA7IH1cbiAgLmZpbmRlci1mb3JtIC5sZXZlbCB7XG4gICAgcGFkZGluZy10b3A6IDM1cHg7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cbiAgLmZpbmRlci1mb3JtIC5zZWxlY3Qtd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLmZpbmRlci1mb3JtIC5zZWxlY3Qtcm93IHtcbiAgICAgIG1hcmdpbjogMCAtNXB4OyB9XG4gICAgICAuZmluZGVyLWZvcm0gLnNlbGVjdC1yb3c6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmZpbmRlci1mb3JtIC5zZWxlY3Qtd3JhcHBlciB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgIC5maW5kZXItZm9ybSAuc2VsZWN0LXdyYXBwZXIgLnNlbGVjdC13cmFwcGVyLS1pbm5lciB7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7IH0gfVxuXG4jcHJvZHVjdFJlc3VsdCB7XG4gIG1hcmdpbi10b3A6IDM1cHg7IH1cblxuLmJsb2NrLXByb2R1Y3RmaW5kZXIgdWwgbGkucHJvZHVjdCAucHJvZHVjdC10aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgLmJsb2NrLXByb2R1Y3RmaW5kZXIgdWwgbGkucHJvZHVjdCAucHJvZHVjdC10aXRsZSBhIHtcbiAgICBmb250LWZhbWlseTogXCJVYnVudHVUaXRsaW5nLUJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAgIC5ibG9jay1wcm9kdWN0ZmluZGVyIHVsIGxpLnByb2R1Y3QgLnByb2R1Y3QtdGl0bGUgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuI2Jsb2NrLXByb2R1Y3RmaW5kZXIgLnNsaWNrLXNsaWRlIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4jYmxvY2stcHJvZHVjdGZpbmRlci5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5maW5kZXItbm90aWNlLCAuZmluZGVyLW5vcHJvZHVjdCB7XG4gIHBhZGRpbmctdG9wOiAzNXB4O1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICMwMDNiNWY7IH1cblxuLmZpbmRlci1ub3Byb2R1Y3Qge1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2FsZW5kYXIgc3R5bGVzIChyZXN0b3JlIHN0eWxlcyBmcm9tIC9qcy9jYWxlbmRhcilcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5kaXYuY2FsZW5kYXIgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyB9XG4gIGRpdi5jYWxlbmRhciB0YWJsZSB0ZC5idXR0b24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gQnJlYWtwb2ludFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRtcS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuJG1xLWZpeGVkLXZhbHVlOiAxMDI0cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBicCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gICAgLy8gU2V0IGdsb2JhbCBkZXZpY2UgcGFyYW1cbiAgICAkbWVkaWE6IG9ubHkgc2NyZWVuO1xuXG4gICAgLy8gTWVkaWEgcXVlcmllcyBzdXBwb3J0ZWRcbiAgICBAaWYgJG1xLXN1cHBvcnQgPT0gdHJ1ZSB7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhfSBhbmQgKCRmZWF0dXJlOiAkdmFsdWUpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWVkaWEgcXVlcmllcyBub3Qgc3VwcG9ydGVkXG4gICAgfSBAZWxzZSB7XG5cbiAgICAgICAgQGlmICRmZWF0dXJlID09ICdtaW4td2lkdGgnIHtcbiAgICAgICAgICAgIEBpZiAkdmFsdWUgPD0gJG1xLWZpeGVkLXZhbHVlIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZiAkZmVhdHVyZSA9PSAnbWF4LXdpZHRoJyB7XG4gICAgICAgICAgICBAaWYgJHZhbHVlID49ICRtcS1maXhlZC12YWx1ZSB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLypcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFVzYWdlIGV4YW1wbGU6XG4vLyBGb3IgSUUgc2V0ICRtcS1zdXBwb3J0IHRvIGZhbHNlLlxuLy8gU2V0IHRoZSBmaXhlZCB2YWx1ZS5cbi8vIFRoZW4gdXNlIG1peGlucyB0byB0ZXN0IHdoZXRoZXIgc3R5bGVzIHNob3VsZCBiZSBhcHBsaWVkLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbXEtc3VwcG9ydDogZmFsc2U7XG4kbXEtZml4ZWQtdmFsdWU6IDEwMjQ7XG5cbi8vIFJlbmRlcnMgYXQgZml4ZWQgdmFsdWVcbkBpbmNsdWRlIGJwIChtaW4td2lkdGgsIDMwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiMwMDA7IH1cbn1cblxuLy8gRG9lc24ndCByZW5kZXIgd2l0aG91dCBNUSBzdXBwb3J0XG5AaW5jbHVkZSBicCAobWluLXdpZHRoLCAxMjAwcHgpIHsgXG4gICAgZGl2IHsgY29sb3I6I0ZGRjsgfVxufVxuXG4vLyBEb2Vzbid0IHJlbmRlciB3aXRob3V0IE1RIHN1cHBvcnRcbkBpbmNsdWRlIGJwIChtYXgtd2lkdGgsIDMwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiM0NDQ7IH1cbn1cblxuLy8gUmVuZGVycyBhdCBmaXhlZCB2YWx1ZVxuQGluY2x1ZGUgYnAgKG1heC13aWR0aCwgMTIwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiM4ODg7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1VidW50dVRpdGxpbmctQm9sZCc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgIHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQudHRmJykgIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQuc3ZnI1VidW50dVRpdGxpbmctQm9sZCcpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdVYnVudHVUaXRsaW5nLUJvbGQnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksICB1cmwoJy4uL2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLnR0ZicpICBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLnN2ZyNVYnVudHVUaXRsaW5nLUJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gVHlwb2dyYXBoeVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBoMSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuN2VtO1xuICAgIGNvbG9yOiAkYy1oMTtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxufVxuXG5AbWl4aW4gaDIge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICBjb2xvcjogJGMtaDI7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIC8vdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuXG59XG5cbkBtaXhpbiBoMyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICRjLWgzO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuXG59XG5cbkBtaXhpbiBoNCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICRjLWg0O1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG59XG5cbkBtaXhpbiBoNSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICRjLWg1O1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG59XG5cbkBtaXhpbiBoNiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBjb2xvcjogJGMtaDY7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gXG59XG5cbkBtaXhpbiBwYWdlVGl0bGUoKSB7XG4gICBcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbn1cblxuQG1peGluIHVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYyLjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIENvcnJlY3RzIGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBDb3JyZWN0cyBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qXG4gKiBQcmV2ZW50cyBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMDtcbn1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsaW5nIGZvciBgaGlkZGVuYCBhdHRyaWJ1dGUgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNldHMgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudHMgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLypcbiAqIFJlbW92ZXMgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzZXMgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmE6Zm9jdXMge1xuICAgIG91dGxpbmU6IHRoaW4gZG90dGVkO1xufVxuXG4vKlxuICogSW1wcm92ZXMgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFR5cG9ncmFwaHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzZXMgYGgxYCBmb250IHNpemVzIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYCBpbiBGaXJlZm94IDQrLFxuICogU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLypcbiAqIEFkZHJlc3NlcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qXG4gKiBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG59XG5cblxuLypcbiAqIENvcnJlY3RzIGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLypcbiAqIEltcHJvdmVzIHJlYWRhYmlsaXR5IG9mIHByZS1mb3JtYXR0ZWQgdGV4dCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi8qXG4gKiBTZXRzIGNvbnNpc3RlbnQgcXVvdGUgdHlwZXMuXG4gKi9cblxucSB7XG4gICAgcXVvdGVzOiBcIlxcMjAxQ1wiIFwiXFwyMDFEXCIgXCJcXDIwMThcIiBcIlxcMjAxOVwiO1xufVxuXG4vKlxuICogQWRkcmVzc2VzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qXG4gKiBQcmV2ZW50cyBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlcyBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxuICovXG5cbmltZyB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4vKlxuICogQ29ycmVjdHMgb3ZlcmZsb3cgZGlzcGxheWVkIG9kZGx5IGluIElFIDkuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGaWd1cmVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkcmVzc2VzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1LlxuICovXG5cbmZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qXG4gKiAxLiBDb3JyZWN0cyBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLypcbiAqIDEuIENvcnJlY3RzIGZvbnQgZmFtaWx5IG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdHMgZm9udCBzaXplIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250LXNpemU6IDEwMCU7IC8qIDIgKi9cbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLypcbiAqIEFkZHJlc3NlcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0cyBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZXMgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qXG4gKiAxLiBBZGRyZXNzZXMgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qXG4gKiAxLiBBZGRyZXNzZXMgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzZXMgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLypcbiAqIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogb24gT1MgWC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKlxuICogUmVtb3ZlcyBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiAxLiBSZW1vdmVzIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS5cbiAqIDIuIEltcHJvdmVzIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bzsgLyogMSAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IC8qIDIgKi9cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmVzZXRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbmh0bWwge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogYmxhY2soMCk7IC8qIFByZXZlbnQgdGFwIGhpZ2hsaWdodCBvbiBpT1MvQW5kcm9pZCAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogUHJldmVudCBhdXRvbWF0aWMgc2NhbGluZyBvbiBpT1MgKi9cbn1cblxuYm9keSB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuaHRtbCxcbmJvZHksXG5pbWcsXG5maWVsZHNldCxcbmFiYnIsXG5hY3JvbnltIHtcbiAgICBib3JkZXI6IDA7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbnRoLFxuY29kZSxcbmNpdGUsXG5jYXB0aW9uIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5hZGRyZXNzIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmZpZWxkc2V0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG59XG5cbmltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbm9sLFxudWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbnE6YmVmb3JlLFxucTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG59XG5cbi8vIFN0YW5kYXJkIG91dGxpbmUtb2Zmc2V0IGluIENocm9tZSBhbmQgbWFrZSB0aGUgc2VhcmNoIGlucHV0IHNhbWUgYXMgdGV4dCBpbnB1dFxuaW5wdXQ6Zm9jdXMsXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzIHtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLy8gUmVzZXR0aW5nIE5vcm1hbGl6ZSBzbyB0aGF0IHNlYXJjaCBpbnB1dHMgYmVoYXZlIHRoZSBzYW1lIGFzIHRleHQgaW5wdXRzXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8qIDEgKi9cbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAyICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaWZyYW1lLGltZ3tcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZ1bmN0aW9uIC0gQmxhY2tcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZnVuY3Rpb24gYmxhY2sgKCRvcGFjaXR5KSB7XG4gICAgQHJldHVybiByZ2JhKDAsIDAsIDAsICRvcGFjaXR5KTtcbn1cblxuQGZ1bmN0aW9uIGJsYWNrLWZhbGxiYWNrICgkb3BhY2l0eSkge1xuICAgIEByZXR1cm4gbGlnaHRlbigjMDAwMDAwLCAoMSAtICRvcGFjaXR5KSk7XG59XG4iLCJcbi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBCYXNlIFN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQC1tcy12aWV3cG9ydCB7XG4gICAgd2lkdGg6IGRldmljZS13aWR0aDtcbn1cblxuQC1vLXZpZXdwb3J0IHtcbiAgICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuXG5Admlld3BvcnQge1xuICAgIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG59XG5cbi8vIFByZXZlbnQgMzAwbXMgZGVsYXkgaW4gSUUgb24gdG91Y2ggZGV2aWNlc1xuYSwgYnV0dG9uIHtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbmJvZHksXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRhYmxlLFxudGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGItbGluZS1oZWlnaHQ7XG59XG5cbmJvZHkge1xuICAgIGJhY2tncm91bmQ6ICNmZGZkZmQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9iZy5qcGcpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbmEge1xuICAgIGNvbG9yOiAkYy1saW5rO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYTpob3ZlciB7XG4gICAgLy9jb2xvcjogJGMtbGluay1ob3ZlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuYTpmb2N1cyB7XG4gICAgb3V0bGluZS1jb2xvcjogJGMtbGluay1hY3RpdmU7XG4gICAgY29sb3I6IGRhcmtlbigkYy1hY3Rpb24sIDMwJSk7XG59XG5cbm9sLFxudWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogVHlwb2dyYXBoeVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuaDEsIC5oMSB7IEBpbmNsdWRlIGgxOyB9XG5cbmgyLCAuaDIgeyBAaW5jbHVkZSBoMjsgfVxuXG5oMywgLmgzIHsgQGluY2x1ZGUgaDM7IH1cblxuaDQsIC5oNCB7IEBpbmNsdWRlIGg0OyB9XG5cbmg1LCAuaDUgeyBAaW5jbHVkZSBoNTsgfVxuXG5oNiwgLmg2IHsgQGluY2x1ZGUgaDY7IH1cblxuXG5cbnAge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2hhcmVkIENsYXNzZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5hZGRyZXNzLWxpc3QgYWRkcmVzcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4uYXZhaWxhYmlsaXR5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5hdmFpbGFiaWxpdHkgLmxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYXZhaWxhYmlsaXR5LmluLXN0b2NrIHtcbiAgICBjb2xvcjogJGMtc3VjY2Vzcztcbn1cblxuLmF2YWlsYWJpbGl0eS5hdmFpbGFibGUtc29vbixcbi5hdmFpbGFiaWxpdHkub3V0LW9mLXN0b2NrIHtcbiAgICBjb2xvcjogJGMtZGFuZ2VyO1xufVxuXG4uYXZhaWxhYmlsaXR5LW9ubHkge1xuICAgIGNvbG9yOiAkYy1kYW5nZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJveC1zcGFjaW5nO1xufVxuXG4uZy1yZWNhcHRjaGEge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQYWdlIFRpdGxlc1xuICovXG5cbi5wYWdlLXRpdGxlIGgxLFxuLnBhZ2UtdGl0bGUgLmgxLFxuLnBhZ2UtdGl0bGUgaDIsXG4ucGFnZS10aXRsZSAuaDIsXG4ucHJvZHVjdC1uYW1lIGgxLFxuLnByb2R1Y3QtbmFtZSAuaDEge1xuICAgIEBpbmNsdWRlIHBhZ2VUaXRsZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQmxvY2sgTW9kdWxlXG4gKi9cblxuLmJsb2NrLFxuLmNvbC1sZWZ0LWZpcnN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uY29sLWxlZnQtZmlyc3QgLmJsb2NrOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJsb2NrLXRpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTBweCAwIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cbiAgICBoMixcbiAgICBoMyxcbiAgICBzdHJvbmcge1xuICAgICAgICBAaW5jbHVkZSBoNDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICAgIHNtYWxsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIH1cbn1cblxuaW1nLmltYWdlLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuLy8gT24gYWNjb3VudCBwYWdlcywgZG9uJ3QgcmVtb3ZlIHRoZSB0b3AgYm9yZGVyIGluIG9yZGVyIHRvIGNyZWF0ZSBzZXBhcmF0aW9uIGJldHdlZW4gYmxvY2sgYW5kIC5ibG9jay1hY2NvdW50XG5ib2R5Om5vdCguY3VzdG9tZXItYWNjb3VudCkgLmJsb2NrOmZpcnN0LWNoaWxkIC5ibG9jay10aXRsZSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLmJsb2NrLXN1YnRpdGxlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZWxlbWVudC1zcGFjaW5nO1xufVxuXG4uYmxvY2stY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4uYmxvY2stY29udGVudC51bnBhZCB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLmJsb2NrLWNvbnRlbnQgbGkuaXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgJGJveC1zcGFjaW5nIDlweDtcbn1cblxuLmJsb2NrLWNvbnRlbnQgbGkuaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYmxvY2sgLmFjdGlvbnMge1xuICAgIG1hcmdpbjogJGJveC1zcGFjaW5nIDAgMDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxufVxuXG4uY29sLWxlZnQsXG4uY29sLXJpZ2h0IHtcbiAgICAvLyBBbGlnbiB0aGUgdmVydGljYWwgaGVpZ2h0IG9mIHRoZSBhbmNob3IgdG8gbGluZSB1cCB3aXRoIHRoZSBidXR0b25cbiAgICAuYmxvY2sgLmFjdGlvbnMgLmJ1dHRvbiB+IGEge1xuICAgICAgICBsaW5lLWhlaWdodDogMzNweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcblxuICAgIC5zaWRlYmFyIHtcbiAgICAgICAgLy8gRG9uJ3QgYXBwbHkgdG8gbGF5ZXJlZCBuYXYsIHNpbmNlIGl0IGdldHMgc3BlY2lhbCB0cmVhdG1lbnRcbiAgICAgICAgLmJsb2NrOm5vdCguYmxvY2stbGF5ZXJlZC1uYXYpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgIC5ibG9jay10aXRsZSB7XG5cbiAgICAgICAgICAgICAgICA+IHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFjY29yZGlvbkR0QmFzZSgncmlnaHQnLCAkYy1tb2R1bGUtYm9yZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICA+IHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY2NvcmRpb25EdEJhc2UoJ2Rvd24nLCAkYy1tb2R1bGUtYm9yZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTZWNvbmRhcnkgTmF2aWdhdGlvblxuICovXG5cbi5ibG9jay1hY2NvdW50LFxuLmJsb2NrLWNtcy1tZW51IHtcbiAgICAuYmxvY2stdGl0bGUge1xuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG5cbiAgICB9XG5cbiAgICBsaSB7XG5cblxuICAgICAgICBtYXJnaW46IDdweCAwO1xuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEJ1dHRvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFNlY29uZGFyeSBCdXR0b25zICovXG4uY2FydCAuYnV0dG9ucy1zZXQgLmJ1dHRvbixcbi5jYXJ0LXRhYmxlIC5idXR0b24sXG4uc2lkZWJhciAuYWN0aW9ucyAuYnV0dG9uLFxuLmJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1idXR0b24tc2Vjb25kYXJ5O1xuICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgIHBhZGRpbmc6IDdweCAxNXB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlO1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuLnNpZGViYXIgLmFjdGlvbnMgYnV0dG9uLmJ1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLyogUHJpbWFyeSBCdXR0b25zICovXG5cbi5idXR0b24sXG5idXR0b24sXG5bdHlwZT1zdWJtaXRdLFxuLmNhcnQtdGFibGUgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24sXG4jY28tc2hpcHBpbmctbWV0aG9kLWZvcm0gLmJ1dHRvbnMtc2V0IC5idXR0b24sXG4uZm9vdGVyIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICRjLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBhZGRpbmc6IDlweCAyNHB4IDhweCAyNHB4O1xuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsxKSB7XG4gICAgICAgcGFkZGluZzogOHB4IDI0cHggNnB4IDI0cHg7XG4gICAgfSAgIFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtdGV4dDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJ1dHRvbi1hY3RpdmU7XG4gICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIH1cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYnV0dG9uLWFjdGl2ZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgfVxuICAgICYub3Blbi1saWdodGJveCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM5ZDlkOWQgIWltcG9ydGFudDtcbiAgICAgICAgJjpob3ZlcsKge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCM5ZDlkOWQsIDUlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnNlY29uZGFyeSwmLm91dGxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkYy10ZXh0O1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBwYWRkaW5nOiA2cHggMjRweCA1cHggMjRweDtcbiAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsxKSB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAyNHB4IDRweCAyNHB4O1xuICAgICAgfSAgIFxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlYXJjaC1idXR0b24ge1xuICAgICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgfVxuICAgIC8vICYub3V0bGluZSB7XG4gICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvLyAgIGJvcmRlcjogM3B4IHNvbGlkICRjLWRhcmtibHVlO1xuICAgIC8vICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgIC8vICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgXG4gICAgLy8gICBwYWRkaW5nOiA2cHggMjRweCA1cHggMjRweDtcbiAgICAvLyAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsxKSB7XG4gICAgLy8gICAgIHBhZGRpbmc6IDVweCAyNHB4IDNweCAyNHB4O1xuICAgIC8vICAgfSAgIFxuICAgICAgXG5cbiAgICAvLyAgICY6aG92ZXIge1xuICAgIC8vICAgICBib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGMtZGFya2JsdWUsIDclKTtcbiAgICAvLyAgICAgY29sb3I6IGxpZ2h0ZW4oJGMtZGFya2JsdWUsIDclKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG59XG5cblxuXG5cblxuYS5idXR0b24ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYS5idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xufVxuXG4vKiBEaXNhYmxlZCAtIGNsYXNzIGZvciBhbmNob3IsIHN0YXRlIGZvciBmb3JtIGVsZW1lbnRzICovXG4uYnV0dG9uLmRpc2FibGVkLFxuLmJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogI0M4QzhDODtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ1dHRvbiwgYS5idXR0b24ge1xuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBnZXRzIGFwcGxpZWQgdG8gZWxlbWVudHMgdGhhdCBhcmUgb25seSBidXR0b25zIG9uIHNtYXJ0cGhvbmVzIChvciBzb21ldGltZXMgdGFibGV0cyksIHN1Y2ggYXMgbGF5ZXJlZFxuLy8gbmF2IGxpbmtzIG9yIGNoZWNrYm94IGxhYmVscy5cbi8vIEJ1aWxkaW5nIHRoaXMgYXMgYSBtaXhpbiAocmF0aGVyIHRoYW4gYW4gZXh0ZW5kYWJsZSBjbGFzcykgc2luY2UgaXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoaW4gbXEgYnJlYWtwb2ludHMsIGFuZFxuLy8gZXh0ZW5kaW5nIGRvZXNuJ3Qgd29yayB3aXRoaW4gbWVkaWEgcXVlcmllczogaHR0cDovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9maWxlLlNBU1NfUkVGRVJFTkNFLmh0bWwjX2luX2RpcmVjdGl2ZXNcbkBtaXhpbiB0b3VjaC1idXR0b24ge1xuICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xufVxuXG4uYnV0dG9uMiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJ1dHRvbjI6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5idXR0b24yIHNwYW4sXG4uYnV0dG9uMiBzcGFuIHNwYW4ge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRjLXN0aW11bHVzO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAuY29sMi1zZXQgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgLmJ1dHRvbjIge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuICAgICAgICAuYmFjay1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLnJlcXVpcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgIC5idXR0b25zLXNldCB7XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICAuYmFjay1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLnJlcXVpcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBheXBhbCBCdXR0b25cbiAqL1xuXG4ucGF5cGFsLWxvZ28ucGF5cGFsLWFmdGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLnBheXBhbC1hZnRlciAucGF5cGFsLW9yIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLnBheXBhbC1vciB7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gICAgbWFyZ2luOiAwcHggMTBweCA1cHg7XG59XG5cbi5wYXlwYWwtYWZ0ZXIgLnBheXBhbC1idXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4ucGF5cGFsLWJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDBweDtcbn1cblxuLnBheXBhbC1idXR0b24gaW1nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgNzQwcHgpIHtcbiAgICAucGF5cGFsLW9yIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgfVxuXG4gICAgLnBheXBhbC1sb2dvLFxuICAgIC5wYXlwYWwtb3IsXG4gICAgLnBheXBhbC1idXR0b24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBCdXR0b24gU2V0c1xuICovXG5cbi5idXR0b25zLXNldCB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luOiAkYm94LXNwYWNpbmcgMCAwO1xuICAgIHBhZGRpbmctdG9wOiAkYm94LXNwYWNpbmc7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICBwLnJlcXVpcmVkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgLmJhY2stbGluayB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgIH1cbiAgICBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIH1cbiAgICBidXR0b24uYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEljb25zXG4gKi9cblxuLmljb24tc3ByaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb25fc3ByaXRlLnBuZyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBAaW5jbHVkZSBpbWFnZS1yZXBsYWNlbWVudDtcbn1cblxuQGluY2x1ZGUgaWYtbWluLXJlc29sdXRpb24oMikge1xuICAgIC5pY29uLXNwcml0ZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbl9zcHJpdGVAMngucG5nKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDBweCAxMDAwcHg7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBCcmVhZGNydW1ic1xuICovXG5cbi5icmVhZGNydW1icyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IC0xNXB4IDAgMTVweDtcbn1cblxuLmJyZWFkY3J1bWJzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmJyZWFkY3J1bWJzIGEge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNvbG9yOiAkYy10ZXh0O1xufVxuXG4uYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgY29sb3I6ICRjLWFjdGlvbjtcbn1cblxuLmJyZWFkY3J1bWJzIHN0cm9uZyB7XG4gICAgY29sb3I6ICRjLXRleHQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmJyZWFkY3J1bWJzIHNwYW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgN3B4O1xufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcblxuICAgIC5icmVhZGNydW1icyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEJ1dHRvbiAtIFJlbW92ZSAvIFByZXZpb3VzXG4gKi9cblxuLmJ0bi1yZW1vdmUsXG4uYnRuLXByZXZpb3VzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIEhpZGUgdGV4dCAqL1xuICAgIGZvbnQ6IDAvMCBhO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbn1cblxuLmJ0bi1yZW1vdmUge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnWCc7XG4gICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgJGYtc3RhY2stc2FucztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICAgICY6aG92ZXI6YWZ0ZXIge1xuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLmJ0bi1yZW1vdmUyIHtcbiAgICBAZXh0ZW5kIC5pY29uLXNwcml0ZTtcbiAgICAvLyRpY29uLXBhZGRpbmc6IDNweDtcblxuICAgIGJhY2tncm91bmQ6ICNjNWM1YzU7XG4gICAgd2lkdGg6IDMzcHg7XG4gICAgaGVpZ2h0OiAzM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb24tY2FydC1yZW1vdmUuc3ZnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLy92ZXJ0aWNhbC1hbGlnbjogdG9wOyAvLyBBZGRpbmcgdGhpcyBzbyB0aGF0IHRoZSBidXR0b24gd2lsbCBzaG93IGF0IHRoZSB0b3Agb2YgdGhlIGNhcnQgcm93cywgcmF0aGVyIHRoYW4gYXQgdGhlIGJhc2VsaW5lXG5cblxuXG59XG5cbi5idG4tcHJldmlvdXMge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShsZWZ0LCA0cHgsICRjLWFjdGlvbik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgfVxuICAgICY6aG92ZXI6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShsZWZ0LCA0cHgsICNGRkZGRkYpO1xuICAgIH1cbn1cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5jdXJyZW50bHksXG4ubWluaS1wcm9kdWN0cy1saXN0LFxuI2NvbXBhcmUtaXRlbXMge1xuXG4gICAgLmJ0bi1yZW1vdmUsXG4gICAgLmJ0bi1wcmV2aW91cyB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIENoZWNrb3V0IEFncmVlbWVudHNcbiAqL1xuXG4uY2hlY2tvdXQtYWdyZWVtZW50cyBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmNoZWNrb3V0LWFncmVlbWVudHMgLmFncmVlbWVudC1jb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC13aWR0aDogNjcwcHg7XG4gICAgbWF4LWhlaWdodDogMTI1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGMtbW9kdWxlLWJhY2tncm91bmQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIENWViBTZWN1cml0eSBDb2RlXG4gKi9cblxuLmN2di13aGF0LWlzLXRoaXMge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDb250YWluZXJcbiAqL1xuXG4ubWFpbi1jb250YWluZXIsXG4uc3VwcG9ydC1jb250YWluZXIsXG4uaG9tZS1zbGlkZS13cmFwcGVyLFxuLnBhZ2UtaGVhZGVyLFxuLmhvbWUtc2xpZGVyLXNlYXJjaC1jb250YWluZXIsXG4ubGF0ZXN0LW5ld3MtY29udGFpbmVyLFxuLnByb2R1Y3RzLXRlYXNlci1jb250YWluZXIsXG4uZm9vdGVyLWNvbnRhaW5lcixcbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4gLnBhZ2UgLmZ1bGxzY3JlZW4tc2xpZGVyIC5zbGljay1zbGlkZSAuY29udGVudC13cmFwcGVye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6ICRtYXgtY29udGFpbmVyLXdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDE1cHg7XG5cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG59XG5cbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4ge1xuICAgIC5oZWFkZXItd3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTBcbiAgICB9XG59XG5cbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4ge1xuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG59XG5cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuXG4gICAgLm1haW4tY29udGFpbmVyLFxuICAgIC5zdXBwb3J0LWNvbnRhaW5lcixcbiAgICAucGFnZS1oZWFkZXIsXG4gICAgLmhvbWUtc2xpZGUtd3JhcHBlcixcbiAgICAuaG9tZS1zbGlkZXItc2VhcmNoLWNvbnRhaW5lcixcbiAgICAubGF0ZXN0LW5ld3MtY29udGFpbmVyLFxuICAgIC5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyLFxuICAgIC5mb290ZXItY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMzVweCAyNXB4O1xuICAgIH1cblxuICAgIC5sYXRlc3QtbmV3cy1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuaG9tZS1zbGlkZS13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogMjVweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgfVxuXG59XG5cbi5mb290ZXItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDb2x1bW4gTGF5b3V0c1xuICovXG5cbi5tYWluOmFmdGVyLFxuLmNvbC13cmFwcGVyOmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLmNvbC1sZWZ0LFxuLmNvbC1yaWdodCxcbi5jb2wtbWFpbiB7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5jb2wtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMjQwcHgvOTYwcHgpO1xuICAgIHBhZGRpbmctbGVmdDogMDsgLyogUmVtb3ZlIHRoZSAxNXB4IHBhZGRpbmcgKi9cbiAgICBjbGVhcjogbGVmdDtcblxuICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5jb2wtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICAvL3dpZHRoOiBwZXJjZW50YWdlKDI0MHB4Lzk2MHB4KTtcbiAgICB3aWR0aDogMzAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IC8qIFJlbW92ZSB0aGUgMTVweCBwYWRkaW5nICovXG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uY29sLW1haW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vd2lkdGg6IHBlcmNlbnRhZ2UoNzIwcHgvOTYwcHgpO1xuICAgIHdpZHRoOiA3MCU7XG59XG5cbi5jb2wxLWxheW91dCB7XG4gICAgLmNvbC1tYWluIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwOyAvKiBSZW1vdmUgdGhlIDE1cHggcGFkZGluZyAqL1xuICAgIH1cbn1cblxuLmNvbDItbGVmdC1sYXlvdXQge1xuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgLyogUmVtb3ZlIHRoZSAxNXB4IHBhZGRpbmcgKi9cbiAgICB9XG59XG5cbi5jb2wyLXJpZ2h0LWxheW91dCB7XG4gICAgLmNvbC1tYWluIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyAvKiBSZW1vdmUgdGhlIDE1cHggcGFkZGluZyAqL1xuICAgIH1cbn1cblxuLmNvbDMtbGF5b3V0IHtcbiAgICAuY29sLXJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMjAwcHgvOTYwcHgpO1xuICAgIH1cblxuICAgIC5jb2wtd3JhcHBlciB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogcGVyY2VudGFnZSg3NjBweC85NjBweCk7XG5cbiAgICAgICAgLmNvbC1tYWluIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDU2MHB4Lzc2MHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2wtbGVmdCB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgyMDBweC83NjBweCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgMTAwMHB4KSB7XG4gICAgLmNvbDMtbGF5b3V0IHtcbiAgICAgICAgLmNvbC1yaWdodCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDI0MHB4Lzk2MHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2wtd3JhcHBlciB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLmNvbC1tYWluIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoNzIwcHgvOTYwcHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLWxlZnQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDI0MHB4Lzk2MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgLmNvbC1sZWZ0LFxuICAgIC5jb2wtcmlnaHQsXG4gICAgLmNvbC1tYWluLFxuICAgIC5jb2wxLWxheW91dCAuY29sLWxlZnQsXG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtcmlnaHQsXG4gICAgLmNvbDEtbGF5b3V0IC5jb2wtbWFpbixcbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLWxlZnQsXG4gICAgLmNvbDItbGVmdC1sYXlvdXQgLmNvbC1yaWdodCxcbiAgICAuY29sMi1sZWZ0LWxheW91dCAuY29sLW1haW4sXG4gICAgLmNvbDItcmlnaHQtbGF5b3V0IC5jb2wtbGVmdCxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1yaWdodCxcbiAgICAuY29sMi1yaWdodC1sYXlvdXQgLmNvbC1tYWluLFxuICAgIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIgLmNvbC1sZWZ0LFxuICAgIC5jb2wzLWxheW91dCAuY29sLXJpZ2h0LFxuICAgIC5jb2wzLWxheW91dCAuY29sLXdyYXBwZXIgLmNvbC1tYWluIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgLy8gU2luY2UgY29sdW1ucyBhcmUgc3RhY2tlZCwgd2Ugd2FudCB0aGVyZSB0byBiZSB2ZXJ0aWNhbCBzcGFjaW5nXG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAuY29sMy1sYXlvdXQgLmNvbC13cmFwcGVyIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAuY29sLW1haW4gLmNvbC1sZWZ0IHtcbiAgICAgICAgcGFkZGluZzogMDsgLyogT24gcHJvZHVjdCBsaXN0aW5nIHBhZ2VzLCB0aGUgbGVmdCBjb2x1bW4gZ2V0cyBtb3ZlZCBpbnNpZGUgY29sLW1haW4gb24gc21hbGwgdmlld3BvcnRzICovXG4gICAgfVxufVxuXG4vKiBDb250ZW50IENvbHVtbnMgKi9cblxuLmNvbDItc2V0IHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5jb2wtMSxcbiAgICAuY29sLTIge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmctbGFyZ2U7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sLTEge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5jb2wtMiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAuY29sLTEsXG4gICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uYXJyb3cge1xuICAgICAgICB3aWR0aDogMzMlO1xuICAgIH1cblxuICAgIC53aWRlIHtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG5ib2R5ID4gLndyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVG9wIENvbnRhaW5lclxuICovXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgLnRvcC1jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6ICRtYXgtY29udGFpbmVyLXdpZHRoO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAkdHJpbTtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEdsb2JhbCBTaXRlIE5vdGljZVxuICovXG5cbi5nbG9iYWwtc2l0ZS1ub3RpY2Uge1xuICAgIGJhY2tncm91bmQ6ICRjLWJsdWU7XG4gICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm5vdGljZS1pbm5lciB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMzYwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJvbW90aW9uYWwgTWVzc2FnZSBCYW5uZXJcbiAqL1xuXG4ucHJvbW8tbXNnIHtcbiAgICBjb2xvcjogJGMtdGV4dC1wcmltYXJ5O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46ICRib3gtc3BhY2luZztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBHcmlkXG4gKi9cblxuLmdyaWQ6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBNZXNzYWdlc1xuICovXG4uc3VjY2VzcyB7XG4gICAgY29sb3I6ICRjLXN1Y2Nlc3M7XG59XG5cbi5lcnJvciB7XG4gICAgY29sb3I6ICRjLWRhbmdlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm5vdGljZSB7XG4gICAgY29sb3I6ICRjLXdhcm47XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIE1lc3NhZ2VzXG4gKi9cblxuLm1lc3NhZ2VzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG4ubWVzc2FnZXMgbGkgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbn1cblxuLm1lc3NhZ2VzIGxpIGxpOmJlZm9yZSB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xufVxuXG4ubWVzc2FnZXMgLmVycm9yLW1zZyBsaSB7XG4gICAgY29sb3I6ICRjLWRhbmdlcjtcblxufVxuXG5cbi5tZXNzYWdlcyAubm90aWNlLW1zZyBsaSB7XG4gICAgY29sb3I6ICRjLXdhcm47XG59XG5cbi5tZXNzYWdlcyAuc3VjY2Vzcy1tc2cgbGkge1xuICAgIGNvbG9yOiAkYy1zdWNjZXNzO1xufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsIDkxNXB4KSB7XG5cbiAgICAub3JkZXItbGlzdC1ncmlkIC5jb2wtMSB7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgfVxuXG4gICAgLm9yZGVyLWxpc3QtZ3JpZCAuY29sLTIge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIH1cblxuICAgIC5vcmRlci1saXN0LWdyaWQgLmNvbC0zIHtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQYWdlIFBvcHVwXG4gKi9cblxuLnBhZ2UtcG9wdXAge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi5wYWdlLXBvcHVwIGgxIHtcbiAgICBtYXJnaW46IDAgMCAwLjVlbTtcbiAgICBmb250LXNpemU6IDM2cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFBheW1lbnQgTWV0aG9kc1xuICovXG5cbi5wYXltZW50LW1ldGhvZHMge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wYXltZW50LW1ldGhvZHMgZHQge1xuICAgIHBhZGRpbmc6IDVweCAwO1xufVxuXG4ucGF5bWVudC1tZXRob2RzIGRkIHtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuLnBheW1lbnQtbWV0aG9kcyAuZm9ybS1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDVweCAxNXB4IDE1cHg7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xufVxuXG4ucGF5bWVudC1tZXRob2RzIC5mb3JtLWxpc3Q6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSB0cmlhbmdsZSh1cCwgMTBweCwgJGMtbW9kdWxlLWJvcmRlcik7XG4gICAgdG9wOiAtMTFweDtcbiAgICBsZWZ0OiAzMHB4O1xufVxuXG4ucGF5bWVudC1tZXRob2RzIC5mb3JtLWxpc3Q6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHVwLCAxMHB4LCAkYy1tb2R1bGUtYmFja2dyb3VuZCk7XG4gICAgdG9wOiAtMTBweDtcbiAgICBsZWZ0OiAzMHB4O1xufVxuXG4ucGF5bWVudC1tZXRob2RzIC5mb3JtLWxpc3QgbGk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUGxlYXNlIFdhaXQgKExvYWRpbmcgSW5kaWNhdG9yKVxuICovXG5cbi5wbGVhc2Utd2FpdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogUHJldmVudCB0aGUgbGluZWJyZWFrIGluIHRoZSBIVE1MIGZyb20gY2F1c2luZyBsYXlvdXQgaXNzdWVzICovXG5cbiAgICBpbWcge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIHdpZHRoOiAyNHB4OyAvLyBBY3R1YWwgaW1hZ2UgaXMgNDhweCwgdGhlcmVieSBzdXBwb3J0aW5nIGhpLXJlcyBzY3JlZW5zXG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcmljZSBCb3ggLSBTdGFuZGFyZFxuICovXG5cbi5wcmljZS1ib3gge1xuICAgIG1hcmdpbjogJGVsZW1lbnQtc3BhY2luZyAwO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xufVxuXG4ucHJpY2UtYm94IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5wcmljZS1ub3RpY2Uge1xuICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG59XG5cbi5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBjb2xvcjogJGMtdGV4dC1wcmltYXJ5O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbn1cblxuLnByaWNlLWJveCAucHJpY2UsXG4ucHJpY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xufVxuXG4ucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xufVxuXG4ucHJpY2UtYm94IC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgIGNvbG9yOiAkYy10ZXh0LXByaW1hcnk7XG4gICAgZGlzcGxheTogYmxvY2s7IC8qIFdlIHdhbnQgdGhpcyB0byBzaG93IG9uIGl0cyBvd24gbGluZSwgb3RoZXJ3aXNlIHRoZSBsYXlvdXQgbG9va3MgZnVua3kgKi9cblxuICAgIC5sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcmljZSBCb3ggLSBTcGVjaWFsXG4gKi9cblxuLnByaWNlLWJveCAub2xkLXByaWNlLFxuLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuXG4ucHJpY2UtYm94IC5vbGQtcHJpY2Uge1xuICAgIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cbn1cblxuLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcblxuICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjRDg0RDNDO1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJpY2UgQm94IC0gVGF4ZXNcbiAqL1xuXG4ucHJpY2UtYm94IC5wcmljZS1leGNsdWRpbmctdGF4LFxuLnByaWNlLWJveCAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbnNwYW4ud2VlZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRpZXIgUHJpY2VzXG4gKi9cblxuLnByb2R1Y3QtcHJpY2luZyxcbi50aWVyLXByaWNlcyxcbi50aWVyLXByaWNlcy1ncm91cGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjRkJGNERFO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFMkQ0Qzc7XG4gICAgbWFyZ2luLXRvcDogJGVsZW1lbnQtc3BhY2luZztcblxuICAgIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgIH1cbiAgICAuYmVuZWZpdCB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gICAgLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBJdGVtIE9wdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5pdGVtLW9wdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICBkdCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnOiAnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW46IDAgMCA2cHg7XG4gICAgfVxufVxuXG4udHJ1bmNhdGVkLFxuLnRydW5jYXRlZCBhLmRvdHMge1xuICAgIGN1cnNvcjogaGVscDtcbn1cblxuLnRydW5jYXRlZCBhLmRldGFpbHMge1xuICAgIGN1cnNvcjogaGVscDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLnRydW5jYXRlZCAudHJ1bmNhdGVkX2Z1bGxfdmFsdWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzMDA7XG59XG5cbi50cnVuY2F0ZWQgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIC5pdGVtLW9wdGlvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDMwMDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLWFjdGlvbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xuICAgIHRvcDogMjFweDtcbiAgICBsZWZ0OiAtMTAwcHg7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUodXAsIDdweCwgJGMtYWN0aW9uKTtcbiAgICAgICAgbGVmdDogKDEwMHB4ICsgLTNweCk7XG4gICAgICAgIHRvcDogLTdweDtcbiAgICB9XG59XG5cbi50cnVuY2F0ZWQgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIC5pdGVtLW9wdGlvbnMgPiBwIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLnRydW5jYXRlZCAuc2hvdyAuaXRlbS1vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG5cbiAgICAudHJ1bmNhdGVkIHtcbiAgICAgICAgY3Vyc29yOiBpbmhlcml0O1xuXG4gICAgICAgIGEuZGV0YWlscyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRydW5jYXRlZF9mdWxsX3ZhbHVlIHtcbiAgICAgICAgICAgIC5pdGVtLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByaW50ZXIgRnJpZW5kbHkgUGFnZVxuICovXG5cbi5wYWdlLXByaW50IHtcbiAgICB3aWR0aDogNi41aW47XG4gICAgbWFyZ2luOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEFkZCB0byBsaW5rc1xuICovXG5cbi5hZGQtdG8tbGlua3Mge1xuICAgIG1hcmdpbjogJGVsZW1lbnQtc3BhY2luZyAwO1xuXG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMHB4IDNweCAzcHg7XG4gICAgfVxufVxuXG4uYWRkLXRvLWxpbmtzIC5zZXBhcmF0b3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTdGFuZGFyZCBGb3JtYXR0ZWQgVGV4dCBCbG9ja1xuICovXG5cbi5zdGQgcCB7XG4gICAgbWFyZ2luOiAwIDAgJGItbWFyZ2luLWJvdHRvbTtcbn1cblxuLnN0ZCBvbCB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbCBvdXRzaWRlO1xuICAgIG1hcmdpbi1ib3R0b206ICRiLW1hcmdpbi1ib3R0b207XG59XG5cbi5zdGQgb2wgbGkge1xuICAgIG1hcmdpbi1sZWZ0OiAyZW07XG59XG5cbi5zdGQgdWwge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2Mgb3V0c2lkZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkYi1tYXJnaW4tYm90dG9tO1xufVxuXG4uc3RkIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogMmVtO1xufVxuXG4uc3RkIC5ub3RlIHtcbiAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUYWJzXG4gKi9cblxuLnRhYnMge1xuICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVG9vbGJhclxuICovXG5cbi50b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAkYm94LXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkYy1tb2R1bGUtYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiA1cHggMTBweCAwcHggMTBweDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG59XG5cbi5wYWdlci1uby10b29sYmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmc7XG59XG5cbi8vIFRoaXMgd2lsbCBhcHBseSB0byB0aGUgYm90dG9tIHRvb2xiYXJcbi5wYWdlci1uby10b29sYmFyIH4gLnBhZ2VyLW5vLXRvb2xiYXIge1xuICAgIG1hcmdpbi10b3A6ICRib3gtc3BhY2luZztcbn1cblxuLnRvb2xiYXIsXG4ucGFnZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbn1cblxuLnRvb2xiYXIgbGFiZWwsXG4ucGFnZXItbm8tdG9vbGJhciBsYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4kdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0OiA4cHg7XG5cbi5zb3J0ZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc29ydGVyID4gLnNvcnQtYnkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGhlaWdodDogMzBweDtcblxuICAgIC5zb3J0LWJ5LXN3aXRjaGVyIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBAZXh0ZW5kIC5pY29uLXNwcml0ZTtcbiAgICB9XG4gICAgLnNvcnQtYnktc3dpdGNoZXItLWFzYyB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDArNHB4ICgtNTUwcHgrJHRvb2xiYXItaWNvbi1wYWRkaW5nLW9mZnNldCk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHgrNHB4ICgtNTUwcHgrJHRvb2xiYXItaWNvbi1wYWRkaW5nLW9mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNvcnQtYnktc3dpdGNoZXItLWRlc2Mge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwKzRweCAoLTU3NXB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQpO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4KzRweCAoLTU3NXB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc29ydGVyID4gLnZpZXctbW9kZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgLmdyaWQsXG4gICAgLmxpc3Qge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgfVxuICAgIC5ncmlkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQgKC01MDBweCskdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0KTtcbiAgICB9XG4gICAgc3Ryb25nLmdyaWQsXG4gICAgYS5ncmlkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHgrJHRvb2xiYXItaWNvbi1wYWRkaW5nLW9mZnNldCAoLTUwMHB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQpO1xuICAgIH1cbiAgICAubGlzdCB7XG4gICAgICAgIC8vIFdlIHdhbnQgdGhlIGljb24gdG8gbGluZSB1cCB3aXRoIHRoZSBjb250YWluZXIgd2lkdGgsIHNvIHdlIGFyZSBhZGRpbmcgM3B4XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQrM3B4ICgtNTI1cHgrJHRvb2xiYXItaWNvbi1wYWRkaW5nLW9mZnNldCk7XG4gICAgfVxuICAgIHN0cm9uZy5saXN0LFxuICAgIGEubGlzdDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4KyR0b29sYmFyLWljb24tcGFkZGluZy1vZmZzZXQrM3B4ICgtNTI1cHgrJHRvb2xiYXItaWNvbi1wYWRkaW5nLW9mZnNldCk7XG4gICAgfVxufVxuXG4ucGFnZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAkdHJpbS1zO1xuXG4gICAgLmFtb3VudCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbWFyZ2luOiAwIDE1cHggMCAwO1xuICAgIH1cblxuICAgIC5saW1pdGVyIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG5cbiAgICAgICAgJiA+IGxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFtb3VudCxcbiAgICAubGltaXRlcixcbiAgICAucGFnZXMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgb2wge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG59XG5cbi5wYWdlcyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzdHJvbmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnBhZ2VzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLnBhZ2VzIGEsXG4ucGFnZXMgLmN1cnJlbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJGMtZGFya2JsdWU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgJi5uZXh0LCAmLnByZXZpb3VzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5wYWdlcyAuY3VycmVudCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgIH1cbn1cblxuLy8gLnBhZ2VzIC5jdXJyZW50LFxuLy8gLnBhZ2VzIC5jdXJyZW50OmhvdmVyIHtcbi8vICAgICBjb2xvcjogJGMtdGV4dDtcbi8vICAgICB3aWR0aDogMzBweDtcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuLy8gICAgIGN1cnNvcjogZGVmYXVsdDtcbi8vIH1cblxuLnBhZ2VzIC5uZXh0LFxuLnBhZ2VzIC5wcmV2aW91cyB7XG4gICAgLy8gTmV3IEhQNUJQIHRlY2huaXF1ZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N2M5ZTAzZGRhNGU0NjNmYjBkNGRiNWE1ZjgyZDdcbiAgICBmb250OiAwLzAgYTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLWFjdGlvbjtcbiAgICB9XG59XG5cbi5wYWdlcyAubmV4dCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShyaWdodCwgNHB4LCAkYy1hY3Rpb24pO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICB9XG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShyaWdodCwgNHB4LCAkYy1zdGltdWx1cyk7XG4gICAgfVxufVxuXG4ucGFnZXMgLnByZXZpb3VzIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKGxlZnQsIDRweCwgJGMtYWN0aW9uKTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgfVxuICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUobGVmdCwgNHB4LCAkYy1zdGltdWx1cyk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAvLyBPbmx5IGhpZGUgdGhlIFwiYW1vdW50XCIgZWxlbWVudCBpZiBwYWdlIGhhcyBwYWdpbmF0aW9uIEFORCBpcyBpbnNpZGUgb2YgdG9vbGJhciAoc2luY2Ugd2Ugb25seSB3YW50IGl0IGhpZGluZyBvbiBwcm9kdWN0IGxpc3RpbmcpXG4gICAgLy8gT3RoZXJ3aXNlIHNob3cgdGhlIGFtb3VudCBzaW5jZSB0aGVyZSBpcyBwbGVudHkgb2Ygc3BhY2VcbiAgICAucGFnZXIgLmFtb3VudC0taGFzLXBhZ2VzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucGFnZXMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZXJlIGFyZSA1KyBwYWdlcywgaXQgaXMgaW1wb3J0YW50IHRvIGhpZGUgdGhpcyBsYWJlbCBpbiBvcmRlciB0byBub3QgYnJlYWsgdG8gdGhyZWUgbGluZXNcbiAgICAubGltaXRlciBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAvLyBPbmUgb25lIGNvbHVtbiBsYXlvdXRzLCB0aGUgdG9vbGJhciBkb2Vzbid0IGhhdmUgdG8gYnJlYWsgdW50aWwgYSBzbWFsbGVyIHZpZXdwb3J0XG4gICAgLmNvbDEtbGF5b3V0IHtcbiAgICAgICAgLnNvcnRlcixcbiAgICAgICAgLnBhZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2VyIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgICAgIC5wYWdlcyB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb3VudC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbGFyZ2UpIHtcblxuICAgIC5jb2wyLWxlZnQtbGF5b3V0LFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCxcbiAgICAuY29sMy1sYXlvdXQge1xuICAgICAgICAuc29ydGVyLFxuICAgICAgICAucGFnZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucGFnZXIge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcblxuICAgICAgICAgICAgLnBhZ2VzIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvdW50LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDEyNzlweCkge1xuXG4gICAgLnRvb2xiYXIgLnZpZXctbW9kZSA+IGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFRheCAtIEZ1bGwgVGF4IFN1bW1hcnlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiNjaGVja291dC1yZXZpZXctdGFibGUsXG4jc2hvcHBpbmctY2FydC10b3RhbHMtdGFibGUsXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLmRhdGEtdGFibGUge1xuICAgIC5zdW1tYXJ5LWNvbGxhcHNlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoZG93biwgN3B4LCAkYy1ibHVlKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmlhbmdsZShkb3duLCA3cHgsICRjLXN0aW11bHVzKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaG93LWRldGFpbHMge1xuICAgICAgICAuc3VtbWFyeS1jb2xsYXBzZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUodXAsIDdweCwgJGMtYmx1ZSk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUodXAsIDdweCwgJGMtc3RpbXVsdXMpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBDZW50ZXIgdGhlIGFycm93LCBhcyB0aGUgZm9udCBpcyBsYXJnZXIgaW4gdGZvb3RcbiNzaG9wcGluZy1jYXJ0LXRvdGFscy10YWJsZSB0Zm9vdCB0ZCAuc3VtbWFyeS1jb2xsYXBzZSB7XG4gICAgJjpiZWZvcmUsXG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBNYWdlbnRvIEhlbHBlcnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5hLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYS1yaWdodCxcbi5hbGlnbi1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5uby1kaXNwbGF5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5ub2JyLFxuLm5vd3JhcCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLndpZHRoLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDdXN0b20gSGVscGVyc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUHJpbnQgU3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucGFnZS1wcmludCAucHJpbnQtaGVhZCB7XG4gICAgbWFyZ2luOiAwIDAgMTVweDtcbn1cblxuLnBhZ2UtcHJpbnQgLnByaW50LWhlYWQgLmxvZ28ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cblxuXG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBIb21lIFBhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLmhvbWUtc2xpZGVyLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogJHRyaW0tcztcblxuICAgIC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTBweCA4MHB4O1xuXG4gICAgICAgICAgICBoMSxcbiAgICAgICAgICAgIGgxLmhvbWUtc2xpZGUtdGl0bGUsXG4gICAgICAgICAgICBoMi5ob21lLXNsaWRlLXRpdGxlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyNXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltLXM7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiA5JTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MiU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuXG5cblxuICAgICAgICAuaG9tZS1zbGlkZS1jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6MTA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MyU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01JTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgIC5zaGFyZS1idXR0b25zIHtcblxuXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXM7XG5cbiAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTcwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEwMHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAuODtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltIC0gMTU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkdHJpbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTM2cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0NHB4O1xuICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0tcyAtIDU7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICBoMiwgLmgyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcm9kdWN0LW5hbWUge1xuXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxODAlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTgwJTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHRyaW0tcztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA5MHB4O1xuICAgICAgICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1sYXJnZSAtIDEwMCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTI1JTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNSU7XG5cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zbGlkZTIge1xuXG4gICAgICAgICAgICAuaG9tZS1zbGlkZS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1OSU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhvbWUtc2xpZGUtY29udGVudCB7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaGVhZGxpbmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA3MnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTYwJTtcblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEzMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTMwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuc2xpZGUzIHtcbiAgICAgICAgICAgIC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDU2JTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA2MHB4O1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaG9tZS1zbGlkZS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNzJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxODAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC04MCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMTZweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTQ1JTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNDUlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc2xpZGU0IHtcbiAgICAgICAgICAgIC5ob21lLXNsaWRlLWltYWdlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAyNiU7XG4gICAgICAgICAgICAgICAgICAgICY6bGFuZyhlbil7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDM1JTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDU2JTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxNjBweDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAmOmxhbmcoZW4pe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAzMjBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgLm1lZGl1bSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7IC5zbWFsbCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7IC5tZWRpdW0geyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG4uaXMtYmxvZyB7XG4gICAgLmhvbWUtc2xpZGVyLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgICYud29yZHByZXNzLXBvc3QtdmlldyB7XG4gICAgICAgIC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTE1cHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaG9tZS1zbGlkZXItc2VhcmNoIHtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaG9tZS1zbGlkZXItc2VhcmNoLWZvcm13cmFwcGVyIHtcbiAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAuc2VhcmNoX21pbmlfZm9ybSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQzJTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAtMTQwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG59XG4ucHJvZHVjdHMtdGVhc2VyLWNvbnRhaW5lcixcbi5zdXBwb3J0LWNvbnRhaW5lcixcbi5wcm9kdWN0LWNhdGVnb3J5LW5hdixcbi5ib3gtY3Jvc3Mtc2VsbCxcbi5zaG9wLWxpc3Qge1xuICAgIHVsIGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLXRleHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgJjpob3ZlciwgJi5hY3RpdmUge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICB9XG59XG4uc3VwcG9ydC1jb250YWluZXIge1xuICAgIGEuYWN0aXZlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYy10ZXh0O1xuICAgIH1cbn1cbi5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIHtcbiAgICBhIHtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5sYXRlc3QtbmV3cy1jb250YWluZXIsIC5zdXBwb3J0LWNvbnRhaW5lciB7XG4gICAgLnN1cHBvcnQtd3JhcHBlciwgLmxhdGVzdC1uZXdzLXdyYXBwZXIge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLXRleHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1saWdodGJsdWU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICAubGlua3MsIC5hYm91dCB7XG5cbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgICBwYWRkaW5nOiAkdHJpbSAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgLnN1cHBvcnQge1xuICAgICAgICAgICAgcGFkZGluZzogJHRyaW0gMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3VwcG9ydC1wZXJzb24ucG5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogODBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gICAgICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbSAqIDEuMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5udW1iZXIge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtZGFya2JsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5hYm91dCwgLnN1cHBvcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN1cHBvcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuXG4gICAgLnN1cHBvcnQtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG5cblxuXG5cbi5sYXRlc3QtbmV3cy1jb250YWluZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC5sYXRlc3QtbmV3cy13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJHRyaW0gMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgICAgLmxhdGVzdC1uZXdzLXNsaWRlciB7XG4gICAgICAgICAgICBtYXJnaW46ICR0cmltLXMgLTE1cHggMCAtMTVweDtcblxuICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLWw7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtZGFya2JsdWU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMjNweCAwIDE4cHggMDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNsaWNrLXByZXYsIC5zbGljay1uZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtNy41JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5wcm9kdWN0cy10ZWFzZXItY29udGFpbmVyIHtcbiAgICAucHJvZHVjdHMtdGVhc2VyLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkdHJpbSAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy10ZXh0O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAucHJvZHVjdHMtdGVhc2VyLXNsaWRlciB7XG4gICAgICAgICAgICBtYXJnaW46ICgkdHJpbSArIDIwKSAtMTVweCAwIC0xNXB4O1xuXG4gICAgICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxNXB4O1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiA1cHggYXV0bztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2xpY2stcHJldiwgLnNsaWNrLW5leHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC03LjUlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNjOWM5Yzk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4uZG93bmxvYWQtbGlzdCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB9XG4gICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxOXB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi1kb3dubG9hZC1wZGYuc3ZnKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxOXB4IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cblxuLmxpZ2h0Ym94LWNvbnRlbnQtbGluayB7XG4gICAgJi5pbmxpbmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4vLyBMb2FkZXJcblxuLmxvYWRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBoZWlnaHQ6IDExcHg7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgYW5pbWF0aW9uOiByb3RhdGUgMC44cyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGMtYWN0aW9uO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDAlICAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tcGFzcyBEZWZhdWx0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJvcmRlciBSYWRpdXNcblxuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNXB4O1xuXG4vLyBUcmFuc2l0aW9uXG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xuJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbjogbGluZWFyO1xuJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheTogMDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQcmltYXJ5IEJyZWFrIFBvaW50c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFRoZXNlIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIGJwIChtYXgtd2lkdGgsIHh4KSBtaXhpblxuLy8gd2hlcmUgYSBtaW4td2lkdGggaXMgdXNlZCwgcmVtZW1iZXIgdG8gKzEgdG8gYnJlYWsgY29ycmVjdGx5LlxuLy8gSWYgdGhlc2UgYXJlIGNoYW5nZWQsIHRoZXkgbXVzdCBhbHNvIGJlIHVwZGF0ZWQgaW4gYXBwLmpzXG5cblxuJGJwLXh4c21hbGw6IDM3MnB4O1xuJGJwLXhzbWFsbDogNDc5cHg7XG4kYnAtc21hbGw6IDU5OXB4O1xuJGJwLW1lZGl1bTogNzcwcHg7XG4kYnAtbGFyZ2U6IDk3OXB4O1xuJGJwLXhsYXJnZTogMTE5OXB4O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgVmFsdWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU3BhY2luZ1xuXG4kZ2FwOiAxMHB4O1xuXG4kdHJpbTogMzVweDtcbiR0cmltLXM6IDIwcHg7XG4kdHJpbS14czogMTBweDtcbi8vIFRoaXMgd2lsbCBnZXQgYXBwbGllZCBvbiB2aWV3cG9ydHMgc21hbGxlciB0aGFuIDQ4MHB4XG4kdHJpbS1zbWFsbDogMTVweDtcblxuLy8gUGFkZGluZyB0aGF0IHdpbGwgZ2V0IGFwcGxpZWQgdG8gY29udGVudCBhcmVhc1xuJGJveC1zcGFjaW5nLWxhcmdlOiAyMHB4O1xuXG4vLyBTdGFuZGFyZCBwYWRkaW5nIGFyb3VuZCBib3ggZWxlbWVudHMgc3VjaCBhcyBiYW5uZXIgbWVzc2FnZXMsIGV0Y1xuJGJveC1zcGFjaW5nOiAxMHB4O1xuXG4vLyBTdGFuZGFyZCBzcGFjaW5nIGJldHdlZW4gZWxlbWVudHMgd2l0aGluIGEgYm94LCBzdWNoIGFzIFwiQWRkIHRvIGNhcnRcIiwgXCJQcmljZSBib3hcIiwgZXRjXG4kZWxlbWVudC1zcGFjaW5nOiA3cHg7XG5cbi8vIERpbWVuc2lvbnNcblxuJG1heC1jb250ZW50LXdpZHRoOiA5NjBweDtcbiRtYXgtY29udGFpbmVyLXdpZHRoOiAkbWF4LWNvbnRlbnQtd2lkdGg7XG4kbWF4LXN0ZC1mb3JtYXR0ZWQtd2lkdGg6IDUwZW07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQnJhbmQgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVXN1YWxseSBub3QgdXNlZCBkaXJlY3RseSBpbiBTYXNzIHBhcnRpYWxzLlxuLy8gT25seSB1c2VkIHRvIGRlZmluZSBjb250ZXh0LWJhc2VkIGNvbG9yIHZhcnMgaW4gdGhpcyBmaWxlLlxuXG4vLyBQZXRlciBFbGVjdHJvbmljXG5cbiRjLWRhcmtibHVlOiAjMDAzYjVmO1xuJGMtbGlnaHRibHVlOiAjMDA4YmQyO1xuJGMtYmx1ZTogIzFmODZiZDtcblxuXG4vLyBNYWdlbnRvXG5cbiRjLWdyZWVuOiAjMTFCNDAwO1xuJGMtcGluazogI0Q4NTM3ODtcbiRjLW9yYW5nZTogI0YzNzkzQjtcbiRjLXJlZDogI0NGNTA1MDtcbiRjLXllbGxvdzogI0ZGREQxNTtcbiRjLWJsYWNrOiAjMDAwMDAwO1xuJGMtZ3JheTogIzMzMzMzMztcblxuJGMtYWNjZW50OiAjNmNiMzE1O1xuXG5cblxuXG5cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVGV4dFxuXG4kYy10ZXh0OiAjMDAzYjVmO1xuJGMtdGV4dC1ncmF5OiAjNWI1YjVhO1xuJGMtdGV4dC1saWdodGdyYXk6ICM4MDdlODI7XG4kYy10ZXh0LXdoaXRlOiAjRTZFNkU2O1xuLy8gUHJpbWFyeSBmb250IGNvbG9yIGZvciBoZWFkaW5ncyBhbmQgb3RoZXIgbm9uLWxpbmsgdGV4dFxuJGMtdGV4dC1wcmltYXJ5OiAkYy10ZXh0O1xuXG5cbi8vIEludGVyYWN0aW9uXG5cbiRjLWFjdGlvbjogJGMtYmx1ZTtcdFxuJGMtc3RpbXVsdXM6IGRhcmtlbigkYy1ibHVlLCAxNSUpO1xuJGMtc3VidGxlOiAjQTBBMEEwO1xuXG4vLyBOb3RpZmljYXRpb25zXG5cbiRjLWRhbmdlcjogI0RGMjgwQTtcbiRjLWRhbmdlci1iYWNrZ3JvdW5kOiAjRkFFQkU3O1xuXG4kYy1zdWNjZXNzOiAkYy1ncmVlbjtcbiRjLXN1Y2Nlc3MtYmFja2dyb3VuZDogI0VGRjVFQTtcblxuJGMtd2FybjogI0UyNjcwMztcbiRjLXdhcm4tYmFja2dyb3VuZDogI0Y5RUJFNjtcblxuJGMtZGFyazogIzY3NjE1NztcblxuLy8gR2xvYmFsIEVsZW1lbnRzXG5cbiRjLWRpdmlkZXItYm9yZGVyOiAjRUNFQ0VDO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVsZW1lbnQgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQnV0dG9uc1xuXG4kYy1idXR0b246ICRjLWJsdWU7XG4kYy1idXR0b24taG92ZXI6IGRhcmtlbigkYy1ibHVlLCA1JSk7XG4kYy1idXR0b24tYWN0aXZlOiBkYXJrZW4oJGMtYmx1ZSwgMTAlKTtcblxuLy8gU2Vjb25kYXJ5IEJ1dHRvbnNcblxuJGMtYnV0dG9uLXNlY29uZGFyeTogI0RERERERDtcbiRjLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXI6IGRhcmtlbigjRERERERELCA1JSk7XG4kYy1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZTogZGFya2VuKCNEREREREQsIDEwJSk7XG5cbiRjLWJ1dHRvbi1zdWJ0bGU6ICNFQ0VDRUM7XG5cbi8vIEZvcm1zXG5cbiRjLWlucHV0LWJvcmRlcjogI0MwQzBDMDtcbiRjLWlucHV0LWJvcmRlci1mb2N1czogJGMtYmx1ZTtcblxuJGMtaW5wdXQtcGxhY2Vob2xkZXI6ICRjLXRleHQtZ3JheTtcbiRjLWlucHV0LXRleHQ6ICRjLXRleHQ7XG5cbiRjLWZpZWxkc2V0LWJvcmRlcjogI0NDQ0NDQztcbiRjLWZpZWxkc2V0LWJvcmRlci1saWdodDogI0VERURFRDtcblxuLy8gSGVhZGluZ3NcblxuJGMtaDE6ICRjLXRleHQ7XG4kYy1oMjogJGMtdGV4dDtcbiRjLWgzOiAkYy10ZXh0O1xuJGMtaDQ6ICRjLXRleHQ7XG4kYy1oNTogJGMtdGV4dDtcbiRjLWg2OiAkYy10ZXh0O1xuXG4vLyBMaW5rXG4kYy1saW5rOiAkYy1hY3Rpb247XG4kYy1saW5rLWhvdmVyOiBkYXJrZW4oJGMtYWN0aW9uLCA1JSk7XG4kYy1saW5rLWZvY3VzOiAkYy1hY3Rpb247XG4kYy1saW5rLWFjdGl2ZTogZGFya2VuKCRjLWFjdGlvbiwgKDUlIC8gMikpO1xuXG4vLyBNb2R1bGUgKGdlbmVyaWMpXG5cbiRjLW1vZHVsZS1iYWNrZ3JvdW5kOiAjRjRGNEY0O1xuJGMtbW9kdWxlLWJhY2tncm91bmQtaG92ZXI6IHNoYWRlKCRjLW1vZHVsZS1iYWNrZ3JvdW5kLCAzJSk7XG4kYy1tb2R1bGUtYmFja2dyb3VuZC1zZWNvbmRhcnk6ICNFQUY4RkY7XG4kYy1tb2R1bGUtYmFja2dyb3VuZC1kYXJrOiAjQUFBQUFBO1xuLy8gVGhpcyBzaG91bGQgYmUgYXBwbGllZCB3aGVuZXZlciB0aGUgYm9yZGVyIGlzIHN1cnJvdW5kaW5nIGEgd2hpdGUgZWxlbWVudCBhbmQvb3IgaXMgZGlyZWN0bHkgc2hvd2luZyBvbiB3aGl0ZS5cbiRjLW1vZHVsZS1ib3JkZXI6ICNDQ0NDQ0M7XG4vLyBUaGlzIHNob3VsZCBiZSBhcHBsaWVkIHdoZW5ldmVyIHRoZSBib3JkZXIgaXMgd3JhcHBpbmcgYW4gZWxlbWVudCB3aXRoICRjLW1vZHVsZS1iYWNrZ3JvdW5kXG4kYy1tb2R1bGUtYm9yZGVyLWxpZ2h0OiAjRURFREVEO1xuJGMtbW9kdWxlLWJvcmRlci1kYXJrOiAjNzc3Nzc3O1xuJGMtbW9kdWxlLWJvcmRlci1oaWdobGlnaHQ6ICRjLWJsdWU7XG5cblxuLy8gVGFibGVcblxuJGMtdGFibGUtYmFja2dyb3VuZDogI0Y0RjRGNDtcbiRjLXRhYmxlLWJvcmRlcjogI0MwQzBDMDtcblxuJGMtdGFibGUtemVicmEtb2RkOiAjRjhGN0Y1O1xuJGMtdGFibGUtemVicmEtZXZlbjogI0VFRURFRDtcblxuLy8gVGFic1xuXG4kYy10YWJzLWJhY2tncm91bmQ6ICNGMEYwRjA7XG5cbi8vIEVtYWlsXG4kYy1lbWFpbC1iYWNrZ3JvdW5kOiAjRUJFQkVCO1xuJGMtZW1haWwtYmFja2dyb3VuZC1zZWNvbmRhcnk6ICNFMUYwRjg7XG4kYy1lbWFpbC1ib3JkZXI6ICNDM0NFRDQ7XG4kYy1lbWFpbC1hY3Rpb246ICMzNjk2QzI7XG4kYy1lbWFpbC1jZWxsOiAjRjFGMUYxO1xuJGMtZW1haWwtaGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogI0ZGRkREOTtcbiRjLWVtYWlsLWhpZ2hsaWdodGVkLWJvcmRlcjogI0ZGRjc0QztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUeXBvZ3JhcGh5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR29vZ2xlIFdlYiBGb250IHN0eWxlc2hlZXQgaXMgaW5jbHVkZWQgdmlhIGxheW91dCBYTUxcblxuLy8gRm9udCBTdGFja3NcblxuJGYtc3RhY2stc2FuczogQXJpYWwsIHNhbnMtc2VyaWY7XG4kZi1zdGFjay1zZXJpZjogQXJpYWwsIHNhbnMtc2VyaWY7XG4kZi1zdGFjay1zcGVjaWFsOiAnVWJ1bnR1VGl0bGluZy1Cb2xkJywgJ0hlbHZldGljYSBOZXVlJywgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiRmLXN0YWNrLWRlZmF1bHQ6ICRmLXN0YWNrLXNhbnM7XG5cbi8vIEZvbnQgU2l6ZXNcbiRmLXNpemUteHh4bDogMzJweDtcbiRmLXNpemUteHhsOiAyNHB4O1xuJGYtc2l6ZS14bDogMjBweDtcbiRmLXNpemUtbDogMTdweDtcblxuJGYtc2l6ZTogMTRweDtcblxuJGYtc2l6ZS1zOiAxM3B4O1xuJGYtc2l6ZS14czogMTJweDtcbiRmLXNpemUteHhzOiAxMXB4O1xuXG4vLyBCYXNlIE1lYXN1cmVzXG5cbiRiLWxpbmUtaGVpZ2h0OiAxLjU7XG4kYi1tYXJnaW4tYm90dG9tOiAxLjVlbTtcbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNaXhpbiAtIENsZWFyZml4XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVGhpcyBtaXhpbiBpcyBpbnRlbmRlZCB0byBiZSBhcHBsaWVkIHRvIGFuIDphZnRlciBwc2V1ZG8tY2xhc3MuIEV4YW1wbGU6XG4vLyAgJjphZnRlciB7XG4vLyAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8gIH1cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW4gLSBOb3QgU2VsZWN0YWJsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBub3Qtc2VsZWN0YWJsZSB7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuQG1peGluIHRhYnMoKSB7XG4gICAgLnRvZ2dsZS10YWJzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG5vdC1zZWxlY3RhYmxlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICR0cmltO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpLmN1cnJlbnQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaS5jdXJyZW50IHNwYW4sXG4gICAgICAgIGxpOmhvdmVyIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gZGwge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICA+IGR0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IGRkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gZGQuY3VycmVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGFjY29yZGlvbkR0QmFzZSgkYXJyb3ctZGlyZWN0aW9uOiAnZG93bicsICRib3JkZXItY29sb3I6ICRjLW1vZHVsZS1ib3JkZXIpIHtcbiAgICBAaW5jbHVkZSBoNDtcbiAgICBAaW5jbHVkZSBub3Qtc2VsZWN0YWJsZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBwYWRkaW5nOiA3cHggMTBweCA3cHggMjRweDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGMtbW9kdWxlLWJhY2tncm91bmQ7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoI3skYXJyb3ctZGlyZWN0aW9ufSwgNHB4LCAkYy1hY3Rpb24pO1xuICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtbW9kdWxlLWJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxufVxuXG5AbWl4aW4gYWNjb3JkaW9uKCkge1xuICAgIC50b2dnbGUtdGFicyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgPiBkbCB7XG4gICAgICAgID4gZHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uRHRCYXNlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICA+IGRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAxcHg7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgID4gZGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4IDFweCAxcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhY2NvcmRpb25Db2xsYXBzZSgpIHtcbiAgICA+IGRsIHtcbiAgICAgICAgPiBkdCB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUocmlnaHQsIDRweCwgJGMtYWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubGFzdCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBkZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5hY2NvcmRpb24tb3BlbiB7XG4gICAgICAgID4gZGwge1xuICAgICAgICAgICAgPiBkdCB7XG4gICAgICAgICAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuY3VycmVudDphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKGRvd24sIDRweCwgJGMtYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gZGQuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW4gLSBUcmlhbmdsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiB0cmlhbmdsZSgkZGlyZWN0aW9uOiB1cCwgJHNpemU6IDVweCwgJGNvbG9yOiAjMDAwMDAwKSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgJGNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgJGNvbG9yO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNaXhpbiAtIEltYWdlIFJlcGxhY2VtZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gaHR0cDovL3d3dy56ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50L1xuLy8gaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL2Fub3RoZXItY3NzLWltYWdlLXJlcGxhY2VtZW50LXRlY2huaXF1ZS9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2lzc3Vlcy8xMDA1I2lzc3VlY29tbWVudC00OTQ3NzAyXG5cbkBtaXhpbiBpbWFnZS1yZXBsYWNlbWVudCB7XG4gICAgLy8gTm90ZTogdGhpcyB0ZWNobmlxdWUgaGFzIGlzc3VlcyBvbiBBbmRyb2lkIDMueFxuICAgIC8vIEFuIGFsdGVybmF0aXZlIHRoYXQgcmVxdWlyZXMgdGhlIDpiZWZvcmUgZ2VuZXJhdGVkIGNvbnRlbnQgd2FzIGFkZGVkIHRvIEg1QlBcbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL2Nzcy9tYWluLmNzc1xuXG4gICAgLy9jb2xvcjp0cmFuc3BhcmVudDsgZm9udDowLzAgYTsgdGV4dC1zaGFkb3c6bm9uZTsgdmVydGljYWwtYWxpZ246bWlkZGxlO1xuXG4gICAgLy8gVGhlIHNpbXBsZXN0IG9wdGlvbiByZW1haW5zIHVzaW5nIHRleHQtaW5kZW50Oi05OTk5cHggZGVzcGl0ZSB0aGUgcGVyZm9ybWFuY2UgZHJhd2JhY2tcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLy8gVW5kbyB0aGUgcmVwbGFjZW1lbnQgZm9yIGNoaWxkIGVsZW1lbnRzXG5cbkBtaXhpbiBpbWFnZS1yZXBsYWNlbWVudC1vdmVycmlkZSB7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW4gLSBJZi1SZXNvbHV0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gRnJvbSBodHRwOi8vYmxvZy4xNGlzbGFuZHMuY29tL3Bvc3QvMzcyNTk2MDMyNDYvc2Fzcy1yZXNvbHV0aW9uLW1peGluXG5cbkBtaXhpbiBpZi1taW4tcmVzb2x1dGlvbigkZHBweCkge1xuICAgIEBpbmNsdWRlIGlmLXJlc29sdXRpb24obWluLCAkZHBweCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBpZi1tYXgtcmVzb2x1dGlvbigkZHBweCkge1xuICAgIEBpbmNsdWRlIGlmLXJlc29sdXRpb24obWF4LCAkZHBweCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBpZi1yZXNvbHV0aW9uKCRwcmVmaXgsICRkcHB4KSB7XG4gICAgLy8gMXB4ID0gOTZkcGlcbiAgICAkZHBpOiAkZHBweCAqIDk2O1xuICAgIEBtZWRpYVxuICAgICgtd2Via2l0LSN7JHByZWZpeH0tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRkcHB4fSksXG4gICAgKCAgICN7JHByZWZpeH0tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JGRwcHh9KSxcbiAgICAoICAgICAtby0jeyRwcmVmaXh9LWRldmljZS1waXhlbC1yYXRpbzogI3skZHBweCoyfS8yKSxcbiAgICAoICAgICAgICAjeyRwcmVmaXh9LWRldmljZS1waXhlbC1yYXRpbzogI3skZHBweH0pLFxuICAgICggICAgICAgICAgICAgICAgI3skcHJlZml4fS1yZXNvbHV0aW9uOiAjeyRkcGl9ZHBpKSxcbiAgICAoICAgICAgICAgICAgICAgICN7JHByZWZpeH0tcmVzb2x1dGlvbjogI3skZHBweH1kcHB4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVXNhZ2UgZXhhbXBsZTpcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vLyBSZW5kZXJzIG9uIHNjcmVlbnMgd2l0aCA+PSAyIHJlc29sdXRpb25cbi8vQGluY2x1ZGUgaWYtbWluLXJlc29sdXRpb24gKDIpIHtcbi8vICAgIGRpdiB7IGNvbG9yOiMwMDA7IH1cbi8vfVxuLy9cbi8vLy8gUmVuZGVycyBvbiBzY3JlZW5zIHdpdGggPj0gMS41IHJlc29sdXRpb25cbi8vQGluY2x1ZGUgaWYtbWluLXJlc29sdXRpb24gKDEuNSkge1xuLy8gICAgZGl2IHsgY29sb3I6IzAwMDsgfVxuLy99XG4vL1xuLy8vLyBSZW5kZXJzIG9uIHNjcmVlbnMgd2l0aCA8PSAxLjUgcmVzb2x1dGlvblxuLy9AaW5jbHVkZSBpZi1tYXgtcmVzb2x1dGlvbiAoMS41KSB7XG4vLyAgICBkaXYgeyBjb2xvcjojMDAwOyB9XG4vL31cbi8vXG4vLy8vIFJlbmRlcnMgb24gc2NyZWVucyB3aXRoIDw9IDIgcmVzb2x1dGlvblxuLy9AaW5jbHVkZSBpZi1tYXgtcmVzb2x1dGlvbiAoMikge1xuLy8gICAgZGl2IHsgY29sb3I6IzAwMDsgfVxuLy99XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBGT1JNUyAtIENPTU1PTlxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogRmllbGRzZXRzXG4gKi9cblxuLmZpZWxkc2V0IHtcblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZWxlbWVudC1zcGFjaW5nO1xuICAgIH1cblxuICAgIHAucmVxdWlyZWQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgfVxufVxuXG4uY3VzdG9tZXItYWRkcmVzcy1mb3JtIHtcbiAgICBwLnJlcXVpcmVkIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmZpZWxkc2V0ICsgLmZpZWxkc2V0IHtcbiAgICBtYXJnaW4tdG9wOiAoJGdhcCAvIDIpO1xufVxuXG5mb3JtIC5sZWdlbmQge1xuICAgIEBpbmNsdWRlIGgzO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDdweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogSW5wdXQgQm94XG4gKi9cblxuLmlucHV0LWJveCB7XG4gICAgcGFkZGluZy10b3A6IDJweDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG59XG5cbmxpLmNlbnRpbmVsLWxvZ29zIGRpdi5pbnB1dC1ib3ggIHtcbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG5cbi8qIEZvciBhZGphY2VudCBzZWxlY3QgaW5wdXRzLiAqL1xuLyogRXhhbXBsZTogY3JlZGl0IGNhcmQgZXhwaXJhdGlvbiBtb250aCBhbmQgeWVhci4gKi9cbi5pbnB1dC1ib3ggLnYtZml4IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBMYWJlbHNcbiAqL1xuXG5sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICBAaW5jbHVkZSBub3Qtc2VsZWN0YWJsZTtcbn1cblxubGFiZWwucmVxdWlyZWQ6YWZ0ZXIsXG5zcGFuLnJlcXVpcmVkOmFmdGVyIHtcbiAgICBjb250ZW50OiAnIConO1xuICAgIGNvbG9yOiAkYy1kYW5nZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG59XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgbGFiZWwucmVxdWlyZWQ6YWZ0ZXIsXG4gICAgc3Bhbi5yZXF1aXJlZDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBjb2xvcjogJGMtZGFuZ2VyO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgIH1cbn1cblxubGFiZWwucmVxdWlyZWQgZW0sXG5zcGFuLnJlcXVpcmVkIGVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBIaW50c1xuICovXG5cbi5pbnB1dC1oaW50IHtcbiAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2VsZWN0XG4gKi9cblxuc2VsZWN0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbnNlbGVjdCArIHNlbGVjdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuc2VsZWN0W211bHRpcGxlXSB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLWlucHV0LWJvcmRlcjtcbiAgICBmb250LXNpemU6ICRmLXNpemUtbDtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFRleHRhcmVhXG4gKi9cblxudGV4dGFyZWEgeyBcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAuN2VtIDFlbTtcbiAgICBiYWNrZ3JvdW5kOiAjRUNFQ0VDO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG59XG5cblxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIElucHV0c1xuICovXG5cbi5pbnB1dC10ZXh0IHtcbiAgIFxuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLWw7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuXG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbn1cblxuLmlucHV0LXRleHQudmFsaWRhdGlvbi1mYWlsZWQge1xuICAgIGJvcmRlci1jb2xvcjogJGMtZGFuZ2VyO1xufVxuXG4vLyBDb2xvciB0aGUgb3V0bGluZSBmb3IgZm9jdXNlZCBmaWVsZHMgaW4gQ2hyb21lLCBvciBlbHNlIHRoZSBkZWZhdWx0IGJsdWUgZHJvd25zIG91dCB0aGUgMXB4IHJlZCBib3JkZXJcbi5pbnB1dC10ZXh0LnZhbGlkYXRpb24tZmFpbGVkOmZvY3VzIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB0aW50KCRjLWRhbmdlciwgNTAlKTtcbn1cblxuaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogOXB4IDIwcHggN3B4IDIwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5cbmlucHV0W3R5cGU9ZW1haWxdLFxuaW5wdXRbdHlwZT1udW1iZXJdLFxuaW5wdXRbdHlwZT1wYXNzd29yZF0sXG5pbnB1dFt0eXBlPXRlbF0sXG5pbnB1dFt0eXBlPXRleHRdIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXJ7XG4gICAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgICAgICB9XG59XG5cbi8qIE9ubHkgc2hvdyBvbiBpUGhvbmVzIChub3QgaVBhZHMgb3IgYW55IG90aGVyIGRldmljZSkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDU2OHB4KSBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICAgIGlucHV0W3R5cGU9ZW1haWxdLFxuICAgIGlucHV0W3R5cGU9c2VhcmNoXSxcbiAgICBpbnB1dFt0eXBlPW51bWJlcl0sXG4gICAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gICAgaW5wdXRbdHlwZT10ZWxdLFxuICAgIGlucHV0W3R5cGU9dGV4dF0sXG4gICAgc2VsZWN0IHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4OyAvKiBQcmV2ZW50IGZyb20gem9vbWluZyBvbiBmb2N1cyAqL1xuICAgIH1cbn1cblxuLmllOCAuaW5wdXQtdGV4dCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBJbnB1dHMgLSBRdWFudGl0eVxuICovXG5cbmlucHV0W3R5cGU9bnVtYmVyXS5xdHksXG5pbnB1dFt0eXBlPXRleHRdLnF0eSB7XG4gICAgd2lkdGg6IDNlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUGxhY2Vob2xkZXJcbiAqL1xuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjNGM0YzRlO1xuXG59XG5cbmlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjNGM0YzRlO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBDaGVja2JveCBBbmQgUmFkaW9cbiAqL1xuXG4uY2hlY2tib3gsXG4ucmFkaW8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY2hlY2tib3ggKyBsYWJlbCxcbi5yYWRpbyArIGxhYmVsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDg1JTtcbiAgICBwYWRkaW5nOiAwIDAgMCA4cHg7XG4gICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogVmFsaWRhdGlvblxuICovXG5cbnAucmVxdWlyZWQsXG4udmFsaWRhdGlvbi1hZHZpY2Uge1xuICAgIG1hcmdpbjogNXB4IDAgMDtcbiAgICBjb2xvcjogJGMtZGFuZ2VyO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBGb3JtIExpc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWxpc3Qge1xuXG4gICAgJiA+IGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJveC1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5pbnB1dC1yYW5nZSAuaW5wdXQtdGV4dCB7XG4gICAgICAgIHdpZHRoOiA3NHB4O1xuICAgIH1cblxuICAgIC5maWVsZCxcbiAgICAud2lkZSxcbiAgICAuY29udHJvbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRib3gtc3BhY2luZztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgLmZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICYuaGFzLWhhbGZzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC01cHg7XG5cbiAgICAgICAgICAgICAgICAuZmllbGQge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAmLmhhbGYge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYucXVhcnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi50aHJlZXF1YXJ0ZXJzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuaW5wdXQtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNjby1zaGlwcGluZy1tZXRob2QtZm9ybSB7XG4gICAgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgICBcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgfVxuXG4gICAgI3NfbWV0aG9kX3RhYmxlcmF0ZV9iZXN0d2F5IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAuc3AtbWV0aG9kcyBkZCBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJ1dHRvbiwgW3R5cGU9c3VibWl0XSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgfVxufVxuXG5cbi8qIFR1cm4gdGhlIGxhYmVsIG9mIGNvbnRyb2xzIChyYWRpby9jaGVja2JveCkgaW50byBhIGJ1dHRvbiBzdHlsZSB0aGF0IHdyYXBzIHRoZSBpbnB1dCAqL1xuLmZvcm0tbGlzdCAuY29udHJvbCxcbi5zcC1tZXRob2RzIGR0LFxuI2NoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZC1sb2FkIC5zcC1tZXRob2RzIGRkLFxuI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkLFxuLnByb2R1Y3Qtb3B0aW9ucyB1bC5vcHRpb25zLWxpc3Qge1xuXG4gICAgZGl2LmlucHV0LWJveCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQucmFkaW8sXG4gICAgaW5wdXQuY2hlY2tib3gge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgLy9tYXJnaW4tbGVmdDogMTVweDtcbiAgICB9XG5cblxuICAgIGxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdG91Y2gtYnV0dG9uO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBwYWRkaW5nOiA2cHggMCA2cHggMjVweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAvKiBXaGVuIGEgbGFiZWwgaXMgbmV4dCB0byBhbiBpbnB1dCB0aGF0IGlzIHNldCB0byBub3QgZGlzcGxheSwgd2Ugc2hvdWxkIHN0eWxlIHRoZSBsYWJlbCBpbiBhIG5vbi1jbGlja2FibGUgc3RhdGUgKi9cbiAgICAubm8tZGlzcGxheSArIGxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5wcm9kdWN0LW9wdGlvbnMgdWwub3B0aW9ucy1saXN0IGxhYmVsLFxuLmNvbDItc2V0IC5mb3JtLWxpc3QgLmNvbnRyb2wgbGFiZWwge1xuICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5mb3JtLWxpc3QgLmNvbnRyb2wucmVtZW1iZXItbWUtYm94IHtcbiAgICBsYWJlbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5mb3JtLWxpc3QgLmNvbnRyb2wge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbiAgICAucmFkaW8sXG4gICAgLmNoZWNrYm94IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgfVxuICAgIC5pbnB1dC1ib3gge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cblxuKjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuXG5cblxuLyogcmVtb3ZlIHN0YW5kYXJkLXN0eWxlcyAqL1xuc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjpub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDFlbTtcbiAgd2lkdGg6IDEwMCU7XG59IFxuXG5cbi8qIHN0eWxpbmcgKi9cbnNlbGVjdCB7XG4gIHdpZHRoOjEwMCU7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vaW1hZ2VzL2ljb24tZm9ybS1zZWxlY3QtYXJyb3ctZG93bi5zdmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMHB4IHRvcCAxNnB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKzEpIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwcHggdG9wIDE0cHg7XG4gICAgfVxufVxuXG5zZWxlY3RbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAuNjtcbiAgICBjb2xvcjogJGMtdGV4dC1saWdodGdyYXk7XG59XG5cbnNlbGVjdDpob3ZlciB7XG4gIC8vYmFja2dyb3VuZDogZGFya2VuKCNlYWVhZWEsNSUpO1xufVxuXG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFRhYmxlIEhlbHBlcnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5oaWRlLXRoIHtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRGF0YSBUYWJsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmRhdGEtdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwXG5cblxufVxuXG5cbi5kYXRhLXRhYmxlIHRkLFxuLmRhdGEtdGFibGUgdGgge1xuICAgIHBhZGRpbmc6IDA7IFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgXG5cbn1cblxuLmRhdGEtdGFibGUuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHtcbiAgICBcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC01cHg7XG5cbiAgICB0aCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIHRoLCB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDVweDsgXG4gICAgfVxuXG4gICAgdGZvb3Qge1xuICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMDsgXG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59XG5cblxuLmRhdGEtdGFibGUgdGgge1xuICAgIFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRhdGEtdGFibGUgdHIsIHRmb290IHtcbiAgICB3aWR0aDogMTAwJTsgICAgXG59XG5cbi5kYXRhLXRhYmxlIHRyLmRvdHRlZC1ib3JkZXIgdGQgZGl2IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xufVxuXG4uZGF0YS10YWJsZSB0Ym9keSB0ZCxcbi5kYXRhLXRhYmxlIHRmb290IHRkIHtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG59XG5cblxuLmRhdGEtdGFibGUgdGJvZHkgdGQgLml0ZW0tb3B0aW9ucyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgIGR0OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogR2VuZXJpYyBJbmZvIFRhYmxlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uaW5mby1ib3gge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLXRhYmxlLWJvcmRlcjtcbiAgICBwYWRkaW5nOiAxMnB4IDE1cHg7XG4gICAgbWFyZ2luOiAwIDAgMTVweDtcblxuICAgIGgyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG59XG5cbi5pbmZvLXRhYmxlIHRoLFxuLmluZm8tdGFibGUgdGQge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5pbmZvLXRhYmxlIHRoIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiA0cHggMjBweCA0cHggMDtcbn1cblxuLmluZm8tdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDRweCAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBaZWJyYS1TdHJpcGUgVGFibGVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi56ZWJyYS10YWJsZSB7XG4gICAgdHI6Zmlyc3QtY2hpbGQsXG4gICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGMtdGFibGUtYm9yZGVyO1xuICAgIH1cblxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLXRhYmxlLWJvcmRlcjtcbiAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICB0ciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXRhYmxlLXplYnJhLWV2ZW47XG4gICAgfVxuXG4gICAgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy10YWJsZS16ZWJyYS1vZGQ7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBMaW5lYXJpemUgVGFibGVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtaXhpbiBsaW5lYXJpemUtdGFibGUge1xuXG4gICAgdHIsXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgdGhlYWQgdGgubGluLWhpZGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIHRoZWFkIHRoOm50aC1jaGlsZCgxbisyKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdGJvZHkgdHIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIH1cblxuICAgIHRib2R5IHRkIHtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4IDRweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHRib2R5IHRkLmxpbi1oaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIH1cblxuICAgIHRib2R5IHRkOmZpcnN0LWNoaWxkLFxuICAgIHRib2R5IHRkOmZpcnN0LWNoaWxkIGgzIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgdGJvZHkgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIH1cblxuICAgIHRib2R5IHRkW2RhdGEtcndkLWxhYmVsXTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtcndkLWxhYmVsKSBcIjpcIjtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIHRmb290IHRyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIHRmb290IHRyOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICB9XG5cbiAgICB0Zm9vdCB0ZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICB0Zm9vdCB0ZC5saW4taGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdGZvb3QgdGQ6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMy81KTtcbiAgICB9XG5cbiAgICB0Zm9vdCB0ZDpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgyLzUpO1xuICAgIH1cblxuICAgIC8qIEhlbHBlcnMgKi9cblxuICAgIC5saW5lYXJpemUtaGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmxpbmVhcml6ZS11bnBhZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmxpbmVhcml6ZS1zaG93IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAubGluZWFyaXplLXRhYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgbGluZWFyaXplLXRhYmxlO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAubGluZWFyaXplLXRhYmxlLWxhcmdlIHtcbiAgICAgICAgQGluY2x1ZGUgbGluZWFyaXplLXRhYmxlO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgLmxpbmVhcml6ZS10YWJsZSAubGluZWFyaXplLWNvbGxhcHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEdsb2JhbFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuaHRtbCxcbmJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLndyYXBwZXIge1xuICAgIG1pbi13aWR0aDogMzIwcHg7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLndyYXBwZXI6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBIZWFkZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5wYWdlLWhlYWRlciB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuXG4gICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxufVxuXG4uaGVhZGVyLWxhbmd1YWdlLWNvbnRhaW5lcixcbi5wYWdlLWhlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG59XG5cblxuLmFjY291bnQtY2FydC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBMYW5ndWFnZSBzd2l0Y2hlciArIHdlbGNvbWUgbWVzc2FnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tbGFuZ3VhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICB9XG5cbiAgICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLWxhbmctc3dpdGNoLnN2Zyk7XG4gICAgICAgICAgICB3aWR0aDogMTFweDtcbiAgICAgICAgICAgIGhlaWdodDogN3B4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDExcHg7XG4gICAgICAgICAgICB0b3A6IDE4cHg7XG5cbiAgICAgICAgfVxufVxuXG4gICAgI3NlbGVjdC1sYW5ndWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgfVxuXG5cblxuXG4gICAgLmhlYWRlci1sYW5ndWFnZS1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiAxNXB4OyBcbiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBtYXgtd2lkdGg6ICRtYXgtY29udGVudC13aWR0aCArIDQwMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndlbGNvbWUtbXNnIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgIC8qIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcblxuICAgICAgICAud2VsY29tZS1tc2cge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgIH0qL1xuXG5cblxuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTG9nb1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4gICAgLmxvZ28td3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICB0b3A6IDE1cHg7XG4gICAgICAgICBcblxuICAgICAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYubGFyZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG5cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgLmxvZ28td3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuXG4gICAgLmxvZ28td3JhcHBlciB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuXG4gICAgICAgIC5sb2dvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgIGltZyB7XG5cbiAgICAgICAgICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5sYXJnZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2tpcCBMaW5rc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNraXAtbGlua3Mge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgfVxufVxuXG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEzMSkge1xuXG4gICAgLnNraXAtbGlua3Mge1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCAtIExpbmtcbiAqL1xuXG4uc2tpcC1saW5rLCAjc2VsZWN0LWxhbmd1YWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1sO1xuICAgIGNvbG9yOiAjNGM0YzRlO1xuICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuXG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICM0YzRjNGUgIWltcG9ydGFudDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbmEuc2tpcC1saW5rIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cblxuXG5cbi5za2lwLWxpbmsge1xuICAgIGltZy5pbWFnZS1pY29uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICB9XG5cbn1cblxuXG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCBMaW5rIC0gTGFiZWxcbiAqL1xuXG4uc2tpcC1saW5rIC5sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICArIDEpIHtcblxuICAgIC5za2lwLWxpbmsgLmxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTa2lwIENvbnRlbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5za2lwLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSAgKyAxMzEpIHtcbiAgICAjaGVhZGVyLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSAgKyAxKSB7XG4gICAgICNoZWFkZXItbmF2IHtcbiAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgIH1cbn1cblxuLnNraXAtY29udGVudC5za2lwLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogI0VERURFRDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogR2xvYmFsIEhlYWRlciBOYXZpZ2F0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cbi5hY2NvdW50LWNhcnQtd3JhcHBlciB7XG5cblxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogTmF2IC0gU2tpcCBMaW5rXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2tpcC1uYXYge1xuXG5cbiAgICAmOm5vdCguc2tpcC1hY3RpdmUpOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLnNraXAtbmF2IC5sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uc2tpcC1uYXYgLmljb24ge1xuICAgIEBleHRlbmQgLmljb24tc3ByaXRlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDArNHB4ICgkdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0LzIpO1xufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxMzEpIHtcblxuICAgIC5za2lwLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG59XG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBOYXYgUHJpbWFyeVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICArIDEzMSkge1xuICAgIC5uYXYtcHJpbWFyeSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cblxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBHZW5lcmFsIE5hdmlnYXRpb24gU3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kbmF2LXByaW1hcnktaGVpZ2h0OiAzMHB4O1xuXG4ubmF2LXByaW1hcnkge1xuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICBsaW5lLWhlaWdodDogJG5hdi1wcmltYXJ5LWhlaWdodDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICAvL3Bvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbn1cblxuLy8gU2hvdyBzdWItbWVudXMgd2hlbiBKUyBhZGRzIHRoZSBhcHByb3ByaWF0ZSBjbGFzc2VzXG4ubmF2LXByaW1hcnkgLm1lbnUtYWN0aXZlID4gdWwubGV2ZWwwLFxuLm5hdi1wcmltYXJ5IGxpLmxldmVsMCBsaS5zdWItbWVudS1hY3RpdmUgPiB1bCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5uYXYtcHJpbWFyeSBsaS5sZXZlbDAgPiBhIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uYWN0aXZlIHtcbiAgICBhLmxldmVsMCB7XG4gICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgfVxufVxuXG5cblxuICAgIGEubGV2ZWwwIHsgXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgIH1cbiAgICB9XG4uY21zLWluZGV4LWluZGV4IHtcbiAgICBhLmxldmVsMCB7IFxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBTbWFsbCBWaWV3cG9ydHMgLSBBY2NvcmRpb24gU3R5bGUgTWVudVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuIC5tb2JpbGUtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTsgXG4gfVxuXG4ubW9iaWxlLW5hdi1jb250cm9scyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG5cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAuc2tpcC1jYXJ0IHtcbiAgICAgICAgaW1nLmltYWdlLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDI3cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0gKyAxMzApIHtcblxuICAgIGJvZHkubmF2LW9wZW4ge1xuICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2tpcC1hY3RpdmUge1xuICAgICAgICAubW9iaWxlLW5hdi1jb250cm9scyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAuZm9ybS1sYW5ndWFnZSAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjaGVhZGVyLW5hdi1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlO1xuICAgIH1cblxuICAgIGltZy5pbWFnZS1pY29uLm5hdi1jb250cm9sLWxlZnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cyBlYXNlO1xuXG4gICAgICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuYXYjbmF2IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIH1cblxuICAgICNoZWFkZXItbmF2IHtcblxuICAgICAgICB1bCwgb2wge1xuXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogOTVweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgIFxuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuXG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDAgNXB4IDA7IFxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgJi52aWV3LWFsbCA+IGEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gJi5sZXZlbDAgPiBhIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgZm9udC1zaXplOiAzNnB4O1xuICAgICAgICAgICAgICAgIC8vICAgICBwYWRkaW5nOiAxN3B4IDAgMTNweCAwOyBcbiAgICAgICAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYtMSB7XG4gICAgICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgICAgICAgJi5maXJzdCA+IGEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICAgICBsaS5uYXYtMSB7XG4gICAgICAgICAgICAgICAgJi5maXJzdCA+IGEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG5cbiAgICB9XG5cbiAgICAubmF2LXByaW1hcnkgdWwubGV2ZWwwLFxuICAgIC5uYXYtcHJpbWFyeSB1bC5sZXZlbDEsXG4gICAgLm5hdi1wcmltYXJ5IHVsLmxldmVsMiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgfVxuXG5cblxuICAgIC5uYXYtcHJpbWFyeSB7XG5cbiAgICAgICAgbGkubGV2ZWwwIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGxpLnN1cHBvcnQtYmxvY2sge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuXG4gICAgLnNraXAtYWN0aXZlIHtcbiAgICAgICAgLm1vYmlsZS1uYXYtY29udHJvbHMge1xuXG4gICAgICAgICAgICAuZm9ybS1sYW5ndWFnZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICNzZWxlY3QtbGFuZ3VhZ2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYTVhNWE0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBMYXJnZSBWaWV3cG9ydHMgLSBEcm9wZG93biBNZW51XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cblxuXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEzMSkge1xuXG4gICAgLm5hdi1wcmltYXJ5IHtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGEubGV2ZWwwIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjhweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW0teHM7XG5cblxuICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICAudmlldy1hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZW51LWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICBhLmxldmVsMC5oYXMtY2hpbGRyZW46YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OlwiXFxBXCI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMTVweCAxNXB4IDE1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB3aGl0ZSB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtM3B4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaS5sZXZlbDAsXG4gICAgICAgIGEubGV2ZWwwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG5cbiAgICAgICAgYTpob3ZlcixcbiAgICAgICAgbGk6aG92ZXIgPiBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICAubWVudS1hY3RpdmUge1xuICAgICAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogRGVmYXVsdCBzdHlsZXMgZm9yIDErIGRyb3AtZG93biBtZW51cyAqL1xuICAgICAgICBsaS5sZXZlbDAgdWwge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6ICRuYXYtcHJpbWFyeS1oZWlnaHQgKyAkdHJpbS14czsgLyogSGVpZ2h0IG9mIFwiLm5hdi1wcmltYXJ5IGEubGV2ZWwwXCIgKi9cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcGFkZGluZzogJHRyaW0gMDtcblxuICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogSGlkZSB1bnRpbCBkaXNwbGF5ZWQuICovXG5cblxuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE4MHB4O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgJiA+IGxpIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1sO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggJHRyaW0tcztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDhweCAwIDdweCAwO1xuXG4gICAgICAgICAgICAgICAgJi5zdXBwb3J0LWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYucHJvZHVjdGZpbmRlci1saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zdXBwb3J0LWJsb2NrIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJHRyaW0gJHRyaW0tcztcbiAgICAgICAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgc3Bhbi5waG9uZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDY0JTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaDMsIC5oMyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1sO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHRyaW07XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0cmltO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIFxuICAgICAgICBsaS5uYXYtMS5sZXZlbDAgdWwsXG4gICAgICAgIGxpLm5hdi0zLmxldmVsMCB1bCB7XG4gICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIH1cblxuICAgICAgICBsaS5uYXYtMS5sZXZlbDAgdWwgPiBsaS5sZXZlbDEge1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpLm5hdi00LmxldmVsMCB1bCxcbiAgICAgICAgbGkubmF2LTUubGV2ZWwwIHVsIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIGxpLm5hdi00LmxldmVsMCA+IHVsLFxuICAgICAgICBsaS5uYXYtNS5sZXZlbDAgPiB1bCB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkubGV2ZWwwID4gbGkge1xuICAgICAgICAgICAgd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgbGkubmF2LTEubGV2ZWwwID4gbGksXG4gICAgICAgIGxpLm5hdi0zLmxldmVsMCA+IGxpIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGxpLm5hdi00LmxldmVsMCA+IGxpLFxuICAgICAgICBsaS5uYXYtNS5sZXZlbDAgPiBsaSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICBcblxuICAgICAgICAvKiBMZXZlbCAyKyAqL1xuICAgICAgICBsaS5sZXZlbDEgdWwge1xuICAgICAgICAgICAgbGVmdDogMzMuMzMzJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAzMy4zMzMlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggZG90dGVkICRjLXRleHQtbGlnaHRncmF5O1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi0xLFxuICAgICAgICAubmF2LTMge1xuICAgICAgICAgICAgbGkubGV2ZWwxIHVsIHsgXG4gICAgICAgICAgICAgICAgbGVmdDogMjUlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaS5sZXZlbDIgdWwgeyBcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICB9ICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgLm5hdi00LFxuICAgICAgICAubmF2LTUge1xuICAgICAgICAgICAgbGkubGV2ZWwxIHVsIHsgXG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICB9ICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgICBcblxuXG4gICAgfVxufVxuXG4ubmF2LXByb2R1Y3QtdGFyZ2V0cyB7XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1sICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLXZpc2libGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5uYXYtcHJvZHVjdC10cmlnZ2VycyB7XG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDExcHg7XG4gICAgfVxufVxuXG4ubmF2LXByaW1hcnkgbGkubWVudS1hY3RpdmUge1xuICAgID4gdWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNlYXJjaCAtIFNraXAgTGlua1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2VhcmNoIC0gU2tpcCBDb250ZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLnNraXAtc2VhcmNoIHtcbiAgICAuaW1hZ2UtaWNvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcblxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHsgXG4gICAgI2hlYWRlci1zZWFyY2gge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICB3aWR0aDogNjQlO1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICYuc2tpcC1hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNraXAtc2VhcmNoIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXh4c21hbGwpIHsgXG4gICAgI2hlYWRlci1zZWFyY2gge1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgIH0gXG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgIC5za2lwLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxuXG4gICAgI2hlYWRlci1zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIEZvcmNlIHZpc2liaWxpdHlcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgcGFkZGluZzogOHB4IDEwcHggNnB4IDEwcHg7XG4gICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjE1cyBlYXNlLW91dCwgd2lkdGggLjE1cyBlYXNlLW91dDtcbiAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI2MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dC1ib3gge1xuICAgICAgICAgICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiM0YzRjNGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDotbW96LXBsYWNlaG9sZGVyIHsgLyogRmlyZWZveCAxOC0gKi9cbiAgICAgICAgICAgIGNvbG9yOiM0YzRjNGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDo6LW1vei1wbGFjZWhvbGRlciB7ICAvKiBGaXJlZm94IDE5KyAqL1xuICAgICAgICAgICAgY29sb3I6IzRjNGM0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjojNGM0YzRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi1zZWFyY2guc3ZnKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTEycHg7XG5cbiAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2VhcmNoIElucHV0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2VhcmNoX21pbmlfZm9ybSAuaW5wdXQtYm94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5zZWFyY2hfbWluaV9mb3JtIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jc2VhcmNoIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG59XG5cbi5zZWFyY2hfbWluaV9mb3JtIC5zZWFyY2gtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBpbWFnZS1yZXBsYWNlbWVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAyOXB4O1xuICAgIGhlaWdodDogMjlweDtcbiAgICBtYXJnaW4tdG9wOiAtMTRweDtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLXNlYXJjaC1ibHVlLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLnNlYXJjaF9taW5pX2Zvcm0gLnNlYXJjaC1idXR0b246YWN0aXZlOmJlZm9yZSB7XG4gICAgbWFyZ2luLXRvcDogLTE1cHggKyAycHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4ICsgMnB4O1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBIZWFkZXIgLSBBY2NvdW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBTa2lwIExpbmsgLSBBY2NvdW50XG4gKi9cblxuLnNraXAtYWNjb3VudCB7XG5cbiAgICAmOm5vdCguc2tpcC1hY3RpdmUpOmhvdmVyIHtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHgrNHB4ICgtNTBweCArICgkdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0LzIpICsgMnB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0wcHgrNHB4ICgtNTBweCArICgkdG9vbGJhci1pY29uLXBhZGRpbmctb2Zmc2V0LzIpICsgMnB4KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG5cbiAgICAuc2tpcC1hY2NvdW50IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAuc2tpcC1hY2NvdW50OmhvdmVyIHtcbiAgICB9XG5cbiAgICAjaGVhZGVyLWFjY291bnQuc2tpcC1hY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBtZW51O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgIHRvcDogNDBweDtcbiAgICAgICAgcmlnaHQ6IDExNXB4O1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgfVxuXG4gICAgI2hlYWRlci1hY2NvdW50IGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICBsaW5lLWhlaWdodDogMjtcbiAgICB9XG5cbiAgICAjaGVhZGVyLWFjY291bnQgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgfVxuXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIEFjY291bnQgTGlua3NcbiAqL1xuXG4jaGVhZGVyLWFjY291bnQge1xuICAgIHBhZGRpbmc6IDVweCAwO1xufVxuXG4jaGVhZGVyLWFjY291bnQgYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OjIzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jaGVhZGVyLWFjY291bnQgYTpob3ZlciB7XG4gICAgY29sb3I6ICRjLWFjdGlvbjtcbn1cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gTWVudVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBtZW51IHtcbiAgICBiYWNrZ3JvdW5kOiAjRkJGQkZCO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRjLW1vZHVsZS1ib3JkZXI7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEhlYWRlciAtIENhcnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNraXAgTGluayAtIENhcnRcbiAqL1xuXG5cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuXG4gICAgLnNraXAtY2FydCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC5za2lwLWNhcnQ6aG92ZXIge1xuICAgIH1cblxuICAgICNoZWFkZXItY2FydC5za2lwLWFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDIwMDtcbiAgICAgICAgdG9wOiA0MHB4O1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB9XG5cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2tpcCBDYXJ0IE5vdGlmaWVyXG4gKi9cblxuLnNraXAtY2FydCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2tpcC1jYXJ0IC5jb3VudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAtMTJweDtcbiAgICBsZWZ0OiAxMnB4O1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRjLWFjdGlvbjtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy9mb250LWZhbWlseTogJGYtc3RhY2stc2Fucztcbn1cbi5za2lwLWxpbmsuc2tpcC1hY3RpdmUgLmNvdW50IHtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi8vIFVzaW5nIGV4dHJhIC5za2lwLWxpbmsgc2VsZWN0b3IgdG8gaW5jcmVhc2Ugc3BlY2lmaWNpdHlcbi5za2lwLWxpbmsuc2tpcC1jYXJ0IC5jb3VudCB7XG59XG5cbi5za2lwLWNhcnQubm8tY291bnQgLmNvdW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgIC5za2lwLWNhcnQgLmNvdW50IHtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICB9XG59XG5cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgIC5za2lwLWNhcnQge1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICB9XG4gICAgLnNraXAtbGluay5za2lwLWFjdGl2ZSAuY291bnQge1xuICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgIH1cbn1cblxuLnNraXAtY2FydCAuY291bnQuZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIE1pbmkgQ2FydCAtIEVtcHR5XG4gKi9cblxuLmNhcnQtbWVudSAuZW1wdHkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBNaW5pIENhcnQgLSBGdWxsXG4gKi9cblxuLyogQWN0aW9ucyAqL1xuXG4uY2FydC1tZW51IC5hY3Rpb25zIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG5cbi5jYXJ0LW1lbnUgLmFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDQ4JTtcbn1cblxuLmNhcnQtbWVudSAuYWN0aW9ucyAuYnV0dG9uICsgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDQlO1xufVxuXG4vKiBTdWJ0b3RhbCAqL1xuXG4uY2FydC1tZW51IC5zdWJ0b3RhbCB7XG4gICAgcGFkZGluZzogMCAxNXB4IDE1cHg7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi8qIExpc3QgKi9cblxuLm1pbmktY2FydC1saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5taW5pLWNhcnQtbGlzdCBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6ICgxNXB4ICsgNjBweCArIDE1cHgpO1xuICAgIHBhZGRpbmc6IDE1cHggMTVweCAxNXB4ICgxNXB4ICsgNjBweCArIDE1cHgpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuXG4ubWluaS1jYXJ0LWxpc3QgLnByb2R1Y3QtbmFtZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubWluaS1jYXJ0LWxpc3QgLnByb2R1Y3QtaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxNXB4O1xuICAgIHRvcDogMTVweDtcbn1cblxuLm1pbmktY2FydC1saXN0IC5wcm9kdWN0LWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xufVxuXG4vLy5taW5pLWNhcnQtbGlzdCAuZGV0YWlscyB7IH1cblxuLm1pbmktY2FydC1saXN0IC5oYXMtb3B0aW9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbn1cblxuLyogVG9vIGZ1bGwgLSBhZGRpdGlvbmFsIGl0ZW1zIHdpbGwgYmUgc2hvd24gaW4gY2FydCAqL1xuLmNhcnQtbWVudSAubGFzdC1hZGRlZCB7XG4gICAgcGFkZGluZzogMTBweCAxNXB4IDE1cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIEZvb3RlclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogRm9vdGVyXG4gKi9cblxuLmZvb3Rlci1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG5cbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxufVxuXG5cbi5mb290ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtdGV4dDtcbiAgICBwYWRkaW5nLXRvcDogODBweDtcblxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW0tc21hbGw7XG4gICAgfVxuXG4gICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYmxvY2stdGl0bGUgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICB9XG5cbiAgICBoNSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB9XG5cbiAgICAubGlua3Mge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGdhcDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG5cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgIH1cblxuXG4gICAgICAgICYucGF5bWVudC1tZXRob2RzIHtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay1zdWJzY3JpYmUge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gICAgfVxuXG4gICAgLmxpbmtzLFxuICAgIC5ibG9jay1zdWJzY3JpYmUge1xuICAgICAgIFxuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgfVxuXG4gICAgLmZvcm0tc3Vic2NyaWJlLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICAgICAqIFNvY2lhbCBpY29uc1xuICAgICAqL1xuXG4gICAgLmxpbmtzLnNvY2lhbC1tZWRpYSBlbSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc29jaWFsX2ljb25zLnBuZyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGlmLW1pbi1yZXNvbHV0aW9uKDIpIHtcbiAgICAgICAgLmxpbmtzLnNvY2lhbC1tZWRpYSBlbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NvY2lhbF9pY29uc0AyeC5wbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA1MHB4IDEyNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1peGluIGZvb3Rlci1zb2NpYWwtaWNvbigkY2xhc3MsICR5LCAkaGVpZ2h0OiAxMykge1xuICAgICAgICAubGlua3Muc29jaWFsLW1lZGlhIGVtLiN7JGNsYXNzfSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0jeyR5fXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAjeyRoZWlnaHR9cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGlua3Muc29jaWFsLW1lZGlhIGE6aG92ZXIgZW0uI3skY2xhc3N9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNXB4IC0jeyR5fXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZm9vdGVyLXNvY2lhbC1pY29uKGZhY2Vib29rLCAwKTtcbiAgICBAaW5jbHVkZSBmb290ZXItc29jaWFsLWljb24odHdpdHRlciwgMjQpO1xuICAgIEBpbmNsdWRlIGZvb3Rlci1zb2NpYWwtaWNvbih5b3V0dWJlLCA0OSk7XG4gICAgQGluY2x1ZGUgZm9vdGVyLXNvY2lhbC1pY29uKHBpbnRlcmVzdCwgNzQsIDE1KTtcbiAgICBAaW5jbHVkZSBmb290ZXItc29jaWFsLWljb24ocnNzLCA5OSk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC5ibG9jay1zdWJzY3JpYmUgLmlucHV0LWJveCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgyMTBweC8zMjBweCk7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIC5ibG9jay1zdWJzY3JpYmUgLmlucHV0LXRleHQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5ibG9jay1zdWJzY3JpYmUgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogN3B4O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stc3Vic2NyaWJlIC5hY3Rpb25zIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDExMHB4LzMyMHB4KTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5ibG9jay1zdWJzY3JpYmUgLmFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5idWdzLFxuICAgIGFkZHJlc3Mge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuYnVncyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfSBcblxuICAgIC5mb3JtLWxhbmd1YWdlLFxuICAgIC5jdXJyZW5jeS1zd2l0Y2hlcixcbiAgICAuc3RvcmUtc3dpdGNoZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICB9XG5cbiAgICAuZm9ybS1sYW5ndWFnZSxcbiAgICAuY3VycmVuY3ktc3dpdGNoZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGFkZHJlc3Mge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICAgICAgfVxuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14bGFyZ2UpIHtcbiAgICAgICAgJGxpbmtzLXRyaW06IHBlcmNlbnRhZ2UoMzBweCAvIDk2MHB4KTtcbiAgICAgICAgJGxpbmtzLXdpZHRoOiAoMTAwIC0gKCRsaW5rcy10cmltICogMykpIC8gNDtcblxuICAgICAgICAubGlua3Mge1xuICAgICAgICAgICAgd2lkdGg6ICRsaW5rcy13aWR0aDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRsaW5rcy10cmltO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmtzOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stc3Vic2NyaWJlIHtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAkdHJpbSBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgICAgIC5mb3JtLWxhbmd1YWdlLFxuICAgICAgICAuY3VycmVuY3ktc3dpdGNoZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAkbGlua3MtdHJpbTogcGVyY2VudGFnZSgxNXB4IC8gNDgwcHgpO1xuICAgICAgICAkbGlua3Mtd2lkdGg6ICgxMDAgLSAkbGlua3MtdHJpbSkgLyAyO1xuXG4gICAgICAgIC5saW5rcyB7XG4gICAgICAgICAgICB3aWR0aDogJGxpbmtzLXdpZHRoO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmtzOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGxpbmtzLXRyaW07XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1zdWJzY3JpYmUge1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIC5mb290ZXIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbn1cblxuXG5cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBHZW5lcmFsIFByb2R1Y3QgTGlzdCBTdHlsZXMgKG5vdCBtb2R1bGUtc3BlY2lmaWMpXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByb2R1Y3QgTGlzdCBHZW5lcmFsXG4gKi9cblxuLmNhdGVnb3J5LXRpdGxlIGgxLFxuYm9keS5jYXRhbG9nc2VhcmNoLXJlc3VsdC1pbmRleCAucGFnZS10aXRsZSBoMSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IHtcbiAgICAucGFnZS10aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpIHsgXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW07XG4gICAgICAgIH1cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAuc2lkZWJhciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbSAqIDI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXRlZ29yeS1pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGItbWFyZ2luLWJvdHRvbTtcbn1cblxuLy8gUHJldmVudCBidXR0b24gb3ZlcmxhcHBpbmcgd2hlbiBidXR0b25zIGhhdmUgbG9uZyB0ZXh0LCBzdWNoIGFzIG5vbi1FbmdsaXNoIHRyYW5zbGF0aW9uc1xuLnByb2R1Y3RzLWxpc3QgLmFjdGlvbiAuYnV0dG9uLFxuLnByb2R1Y3RzLWdyaWQgLmFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogUHJvZHVjdCBOYW1lXG4gKi9cblxuaDIucHJvZHVjdC1uYW1lLFxuaDMucHJvZHVjdC1uYW1lLFxuaDQucHJvZHVjdC1uYW1lLFxuaDUucHJvZHVjdC1uYW1lLFxucC5wcm9kdWN0LW5hbWUge1xuICAgIEBpbmNsdWRlIGgyO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1uYW1lLFxuLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtbmFtZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICBmb250LXNpemU6ICRmLXNpemU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgICAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgXG4gICAgICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUHJvZHVjdCBHcmlkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kcHJvZHVjdC1jb2x1bW4tc3BhY2luZzogMjBweDtcblxuLnByb2R1Y3RzLWdyaWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnByb2R1Y3RzLWdyaWQ6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4ucHJvZHVjdHMtZ3JpZCA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtY29sdW1uLXNwYWNpbmc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbn1cblxuLmJhZGdlLW5ldywgLmJhZGdlLWN1c3RvbSB7XG4gICAgd2lkdGg6IDYwcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogJGMtYWNjZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTtcblxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpIHsgXG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgd2lkdGg6IDkwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA5MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA5MHB4O1xuICAgICAgICByaWdodDogMnB4O1xuICAgICAgICBib3R0b206IDEwcHg7XG4gICAgfVxuXG59XG5cbi5iYWRnZS1jdXN0b20ge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKSB7IFxuICAgICAgICBsZWZ0OiAycHg7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICB9XG59XG5cbi5uYXYtcHJpbWFyeSB7XG4gICAgLmJhZGdlLW5ldywgLmJhZGdlLWN1c3RvbSB7XG4gICAgICAgIHdpZHRoOiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYWNjZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSkgeyBcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgICAgICAgICAgcmlnaHQ6IC0xMHB4O1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgdG9wOiA2MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJhZGdlLWN1c3RvbSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgbGVmdDogLTEwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cblxufVxuXG4uYmFkZ2UtY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4ucHJvZHVjdC1pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLmJhZGdlLW5ldyB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgLnByb2R1Y3QtY2F0ZWdvcnkgLnByb2R1Y3QsICNibG9jay1wcm9kdWN0ZmluZGVyLCAuYm94LXVwLXNlbGwtc2xpZGVyLCAuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXgge1xuICAgIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMTUlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxufVxuXG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlIHtcblxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgJjpoaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLndpZGdldC1uZXctcHJvZHVjdHMge1xuICAgIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgICB9XG59XG5cbi8vIElmIHRoZSBoZWlnaHQgb2YgdGhlIC5wcm9kdWN0LWluZm8gZWxlbWVudCBjaGFuZ2VzLCB0aGlzIHZhbHVlIHNob3VsZCBiZSBhZGp1c3RlZFxuJHByb2R1Y3RzR3JpZEFjdGlvbkhlaWdodDogODVweDtcblxuLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaW5mbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucHJvZHVjdHMtZ3JpZCAuYWN0aW9ucyB7XG4gICAgcGFkZGluZy10b3A6ICRib3gtc3BhY2luZztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgbWluLWhlaWdodDogJHByb2R1Y3RzR3JpZEFjdGlvbkhlaWdodDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnByb2R1Y3RzLWdyaWQgLnJhdGluZ3MgLnJhdGluZy1ib3gge1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucHJvZHVjdHMtZ3JpZCAucmF0aW5ncyAuYW1vdW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucHJvZHVjdHMtZ3JpZCAucHJpY2UtYm94IHtcbiAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgIG1hcmdpbjogMCAwIDVweDtcbn1cblxuLnByb2R1Y3RzLWdyaWQgLmFkZC10by1saW5rcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qIENvbmZpZzogVHdvIGNvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cblxuLy8gQ29udGFpbmVyOiA0ODAgLSAoMiAqIDIwIHRyaW0pID0gNDQwXG4vLyBNYXRoOiAoNDQwIC0gKDIwIGd1dHRlcikpIC8gMiBpdGVtcyA9IDIxMFxuXG4ucHJvZHVjdHMtZ3JpZCA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgyMTAgLyA0NDApO1xuICAgIG1hcmdpbi1yaWdodDogcGVyY2VudGFnZSgyMCAvIDQ0MCk7XG59XG5cbi5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgIGNsZWFyOiBsZWZ0O1xufVxuXG4ucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZChldmVuKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgQGluY2x1ZGUgbG9hZGluZ092ZXJsYXkoKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXhzbWFsbCArIDEpIHtcbiAgICAvKiBDb25maWc6IFRocmVlIGNvbHVtbnMgKyBmbGV4aWJsZSBndXR0ZXIgKi9cbiAgICAvLyBDb250YWluZXI6IDYwMCAtICgyICogMzAgdHJpbSB3aWRlKSA9IDU0MFxuICAgICRjb2x1bW4tY291bnQ6IDM7XG4gICAgJGNvbHVtbi1ndXR0ZXJzOiAyO1xuICAgICRjb250YWluZXI6IDYwMCAtICgyICogJHRyaW0pO1xuXG4gICAgLy8gTWF0aDogKDU0MCAtICgyICogMzAgZ3V0dGVyKSkgLyAzIGl0ZW1zID0gMTYwXG4gICAgJGNvbHVtbi13aWR0aDogKCRjb250YWluZXIgLSAoJGNvbHVtbi1ndXR0ZXJzICogJHByb2R1Y3QtY29sdW1uLXNwYWNpbmcpKSAvICRjb2x1bW4tY291bnQ7XG5cbiAgICAucHJvZHVjdHMtZ3JpZCB7XG4gICAgICAgIC8qIFVuZG8gdHdvLWNvbHVtbiBjb25maWcgKi9cbiAgICAgICAgPiBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICA+IGxpOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHBlcmNlbnRhZ2UoJHByb2R1Y3QtY29sdW1uLXNwYWNpbmcgLyAkY29udGFpbmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFNldCB0aHJlZS1jb2x1bW4gY29uZmlnICovXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbi13aWR0aCAvICRjb250YWluZXIpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKCRwcm9kdWN0LWNvbHVtbi1zcGFjaW5nIC8gJGNvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICAgICAgPiBsaTpudGgtY2hpbGQoI3skY29sdW1uLWNvdW50fW4rMSkge1xuICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgPiBsaTpudGgtY2hpbGQoI3skY29sdW1uLWNvdW50fW4pIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBvdXRwdXRzIHRoZSBzdHlsZXMgdG8gYWxsb3cgZm9yIGdyaWRzIHdpdGggbW9yZSB0aGFuIDMgY29sdW1uc1xuQG1peGluIHByb2R1Y3QtZ3JpZCgkY29sdW1uLWNvdW50LCAkY29udGFpbmVyLXdpZHRoLCAkY2xhc3MtYXBwZW5kOlwiXCIpIHtcblxuICAgIC8vIEFsbG93IHRoaXMgbWl4aW4gdG8gYmUgdXNlZCBmb3IgbW9yZSBzcGVjaWZpYyBwdXJwb3Nlcywgc3VjaCBhcyBncmlkcyBjb250YWluZWQgd2l0aGluIHdpZGdldHNcbiAgICBAaWYgJGNsYXNzLWFwcGVuZCAhPSBcIlwiIHtcbiAgICAgICAgJGNsYXNzLWFwcGVuZDogLSN7JGNsYXNzLWFwcGVuZH07XG4gICAgfVxuXG4gICAgLyogQ29uZmlnOiBDb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gICAgJGNvbHVtbi1ndXR0ZXJzOiAoJGNvbHVtbi1jb3VudCkgLSAxO1xuICAgICRjb250YWluZXI6ICRjb250YWluZXItd2lkdGggLSAoMiAqICR0cmltKTtcbiAgICAkY29sdW1uLXdpZHRoOiAoJGNvbnRhaW5lciAtICgkY29sdW1uLWd1dHRlcnMgKiAkcHJvZHVjdC1jb2x1bW4tc3BhY2luZykpIC8gJGNvbHVtbi1jb3VudDtcblxuICAgIC8qIFVuZG8gdGhyZWUtY29sdW1uIGNvbmZpZyAqL1xuICAgIC5wcm9kdWN0cy1ncmlkLS1tYXgtI3skY29sdW1uLWNvdW50fS1jb2wjeyRjbGFzcy1hcHBlbmR9ID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG4gICAgLnByb2R1Y3RzLWdyaWQtLW1heC0jeyRjb2x1bW4tY291bnR9LWNvbCN7JGNsYXNzLWFwcGVuZH0gPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG4gICAgLnByb2R1Y3RzLWdyaWQtLW1heC0jeyRjb2x1bW4tY291bnR9LWNvbCN7JGNsYXNzLWFwcGVuZH0gPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gICAgLnByb2R1Y3RzLWdyaWQtLW1heC0jeyRjb2x1bW4tY291bnR9LWNvbCN7JGNsYXNzLWFwcGVuZH0gPiBsaTpudGgtY2hpbGQoM24pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKCRwcm9kdWN0LWNvbHVtbi1zcGFjaW5nIC8gJGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyogU2V0IGNvbHVtbiBjb25maWcgKi9cbiAgICAucHJvZHVjdHMtZ3JpZC0tbWF4LSN7JGNvbHVtbi1jb3VudH0tY29sI3skY2xhc3MtYXBwZW5kfSA+IGxpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKCRwcm9kdWN0LWNvbHVtbi1zcGFjaW5nIC8gJGNvbnRhaW5lcik7XG4gICAgfVxuICAgIC5wcm9kdWN0cy1ncmlkLS1tYXgtI3skY29sdW1uLWNvdW50fS1jb2wjeyRjbGFzcy1hcHBlbmR9ID4gbGkge1xuICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1uLXdpZHRoIC8gJGNvbnRhaW5lcik7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcGVyY2VudGFnZSgkcHJvZHVjdC1jb2x1bW4tc3BhY2luZyAvICRjb250YWluZXIpO1xuICAgIH1cbiAgICAucHJvZHVjdHMtZ3JpZC0tbWF4LSN7JGNvbHVtbi1jb3VudH0tY29sI3skY2xhc3MtYXBwZW5kfSA+IGxpOm50aC1jaGlsZCgjeyRjb2x1bW4tY291bnR9bisxKSB7XG4gICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cbiAgICAucHJvZHVjdHMtZ3JpZC0tbWF4LSN7JGNvbHVtbi1jb3VudH0tY29sI3skY2xhc3MtYXBwZW5kfSA+IGxpOm50aC1jaGlsZCgjeyRjb2x1bW4tY291bnR9bikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCA5NjBweCkge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JpZCg0LCA5NjApO1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JpZCg1LCA5NjApO1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JpZCg2LCA5NjApO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQcm9kdWN0IExpc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5wcm9kdWN0cy1saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAmID4gbGkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvMyk7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYgPiBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxufVxuXG4ucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMi8zKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkYm94LXNwYWNpbmcgKiAyKTtcblxuICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICAucmF0aW5ncyB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAucmF0aW5nLWJveCxcbiAgICAgICAgLnJhdGluZy1saW5rcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGVsZW1lbnQtc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICAucmF0aW5nLWxpbmtzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucHJpY2UtYm94IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgLnByaWNlLWJveCAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgIH1cbiAgICAuYWN0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAkZWxlbWVudC1zcGFjaW5nIDA7XG4gICAgfVxuICAgIC5kZXNjIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGVsZW1lbnQtc3BhY2luZztcbiAgICB9XG5cbiAgICAucHJvZHVjdC1wcmltYXJ5LFxuICAgIC5kZXNjIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICAgIC5wcm9kdWN0LXNlY29uZGFyeSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGNsZWFyOiByaWdodDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXhzbWFsbCArIDEpIHtcbiAgICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1uYW1lIGEge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAxMjc5cHgpIHtcbiAgICAucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1zaG9wIHtcbiAgICAgICAgLnByb2R1Y3QtcHJpbWFyeSxcbiAgICAgICAgLmRlc2Mge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1zZWNvbmRhcnkge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCA2MDBweCkge1xuICAgIC5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LXNob3AgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3Qtc2hvcCB7XG4gICAgICAgIC5wcm9kdWN0LXByaW1hcnksXG4gICAgICAgIC5wcm9kdWN0LXNlY29uZGFyeSxcbiAgICAgICAgLmRlc2Mge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBNaW5pIFByb2R1Y3QgTGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLm1pbmktcHJvZHVjdHMtbGlzdCB7XG5cbiAgICAucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtaW4td2lkdGg6IDUwcHg7XG4gICAgfVxuICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjBweDtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbGx5IGNlbnRlciBwcm9kdWN0IG5hbWVcbiAgICAucHJvZHVjdC1kZXRhaWxzIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1pbmktcHJvZHVjdHMtaW1hZ2VzLWxpc3Qge1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIGxpLml0ZW0ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDVweCAxMHB4IDA7XG5cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYXRhbG9nIC0gTGlzdFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNhdGVnb3J5LWltYWdlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6aGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIExheWVyZWQgTmF2aWdhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyIHtcbiAgICAvLyBXaWxsIGJlIHNob3duIGF0IHNtYWxsZXIgdmlld3BvcnRzXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb25EdEJhc2U7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQge1xuICAgIC8vIEFjY29yZGlvbnMgYXJlIGZ1bGx5IGV4cGFuZGVkIHVudGlsIGEgc21hbGxlciByZXNvbHV0aW9uLlxuICAgIEBpbmNsdWRlIGFjY29yZGlvbjtcbn1cblxuLmJsb2NrLWxheWVyZWQtbmF2IGRsIGRkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmc7XG4gICAgbWFyZ2luLXRvcDogJGJveC1zcGFjaW5nO1xuXG4gICAgb2wgPiBsaSA+IHNwYW4sIG9sID4gbGkgPiBhIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICBvbCA+IGxpID4gYSAuY291bnQge1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtKzEpIHtcbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQgPiBkbCA+IGR0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgLnNpZGViYXIgLmJsb2NrLmJsb2NrLWxheWVyZWQtbmF2IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBXZSBkb24ndCB3YW50IFwiU2hvcCBCeVwiIHRvIHNob3cgd2hlbiB0aGVyZSBhcmUgbm8gZmlsdGVycyBhcHBsaWVkLCBhcyB0aGUgXCJGaWx0ZXJcIiBsaW5rIHdpbGwgc3VmZmljZVxuICAgIC5ibG9jay1sYXllcmVkLW5hdi0tbm8tZmlsdGVycyAuYmxvY2stdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgdG9wIHBhZGRpbmcgYW5kIHJlLWFkZCBpdCBhcyBtYXJnaW4tdG9wIHNvIHRoYXQgdGhlIG1hcmdpbiB3aWxsIGNvbGxhcHNlIHdpdGggZWxlbWVudHMgYWJvdmUgaXRcbiAgICAuYmxvY2stbGF5ZXJlZC1uYXYgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uQ29sbGFwc2U7XG4gICAgfVxuXG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IC5ibG9jay1zdWJ0aXRsZS0tZmlsdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHJpZ2h0LCA0cHgsICNGRkZGRkYpO1xuICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJ1dHRvbi1ob3ZlcjtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoZG93biwgNHB4LCAjRkZGRkZGKTtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI25hcnJvdy1ieS1saXN0LFxuICAgICNuYXJyb3ctYnktbGlzdDIge1xuICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuXG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IGRsIG9sID4gbGkgPiBhLFxuICAgIC5ibG9jay1sYXllcmVkLW5hdiBkbCBvbCA+IGxpID4gc3BhbiB7XG4gICAgICAgIHBhZGRpbmc6IDdweDtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgfVxuXG4gICAgLmJsb2NrLWxheWVyZWQtbmF2IGRsIG9sID4gbGkgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgdG91Y2gtYnV0dG9uO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGMtbW9kdWxlLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ibG9jay1sYXllcmVkLW5hdiAuY3VycmVudGx5IHtcbiAgICAuYmxvY2stc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgaDQ7XG4gICAgfVxuXG4gICAgb2wge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJveC1zcGFjaW5nO1xuICAgIH1cbiAgICBvbCBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmxvY2stbGF5ZXJlZC1uYXYgLmFjdGlvbnMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRlbGVtZW50LXNwYWNpbmc7XG59XG5cbi5jb2wxLWxheW91dC1zZWFyY2hyZXN1bHRzIHtcbiAgICAuY29sLW1haW4ge1xuICAgICAgICAvL3BhZGRpbmc6ICR0cmltIDA7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuXG59XG5cbi5jb2wxLWxheW91dC1wcm9kdWN0b3ZlcnZpZXcge1xuICAgIC5tYWluLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAjaGVhZGVyLW5hdiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbTtcbiAgICB9XG5cbiAgICAuZm9vdGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG5cbiAgICAuY29sLW1haW4ge1xuICAgICAgICAvL3BhZGRpbmc6ICR0cmltIDA7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuXG4gICAgLnByb2R1Y3Qtcm93IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgcGFkZGluZzogJHRyaW07XG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zO1xuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LWNvbCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3QtY29sLWltYWdlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucHJvZHVjdC1jb2wsIC5wcm9kdWN0LWNvbC1pbWFnZSAge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDsgXG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICR0cmltLXhzO1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucHJvZHVjdC1jb2wge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA5MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucHJvZHVjdC1jb2wtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbil7XG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtY29sLWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1jb2wge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxufVxuLmNvbDEtbGF5b3V0LXByb2R1Y3RvdmVydmlldywgLmNhdGVnb3J5LWxpc3Qge1xuICAgIC5mb290ZXIge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbn1cblxuLmNhdGVnb3J5LXRpdGxlIHtcbiAgICBwYWRkaW5nOiAkdHJpbSAwO1xuICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgIC5jb2wtbWFpbiB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxuICAgIC5jb2wtcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgIFxuICAgIC5jYXRlZ29yeS1pbWFnZS13cmFwcGVyLCAuY2F0ZWdvcnktdGl0bGUtd3JhcHBlciwgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay5kZXNrdG9wIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgIGhlaWdodDogMjYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsIDEwMjRweCkge1xuICAgICAgICAgICAgaGVpZ2h0OiAzNDBweDtcbiAgICAgICAgfVxuXG4gICAgfVxuICAgXG4gICAgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIsIC5jYXRlZ29yeS10aXRsZS13cmFwcGVyIHtcblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICAuc3VibGluZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvOyBcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgICAgIGltZywgLmNhdGVnb3J5LXRpdGxlLWlubmVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG4gICAgLmNhdGVnb3J5LWltYWdlLXdyYXBwZXIge1xuICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgIFxuICAgICAgICAgICAgaW1nIHtcblxuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNjAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxpZ2h0Ym94LWNvbnRlbnQtbGluayB7IFxuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlICsxKSB7XG4gICAgICAgICAgICAmLm1vYmlsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH0gIFxuICAgICAgICB9XG5cblxuICAgICAgICBcblxuICAgICAgICAmLmRlc2t0b3Age1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgLmxpZ2h0Ym94LWNvbnRlbnQtbGluay1pbm5lciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgXG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbGFyZ2UgKzEpIHtcbiAgICAgICAgICAgICYuZGVza3RvcCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9ICBcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbWFyZ2luOiA1cHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgIFxuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXh4eGw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHsgXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuXG59XG5cbi5wcm9kdWN0LWNvbGxlY3Rpb25zIHtcbiAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG4gICAgLnNpZGViYXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbTtcblxuICAgICAgICBoMywgaDQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgIH1cblxuICAgICAgICBoMy5zdXBwb3J0IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgICAgICAvL21hcmdpbi1ib3R0b206ICR0cmltLXM7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW0teHM7XG4gICAgICAgIH1cblxuICAgICAgICBwIGEge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBob25lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXhzO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5wcm9kdWN0LWNhdGVnb3J5IHtcbiAgICBwYWRkaW5nOiAkdHJpbSAwO1xuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICAgICAgbGkucHJvZHVjdCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7IFxuICAgICAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgaW1nLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAucHJvZHVjdC10aXRsZSB7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBcblxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgIC5jYXRhbG9nLWNhdGVnb3J5LXZpZXcge1xuICAgICAgICAuY29sLXJpZ2h0IC5zZWFyY2hfbWluaV9mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH0gIFxuICAgIH1cbn1cblxuXG5cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG5AbWl4aW4gbG9hZGluZ092ZXJsYXkoJG9wYWNpdHk6IDAuOCkge1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OicnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICAgIHotaW5kZXg6MjtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvb3BjLWFqYXgtbG9hZGVyLmdpZicpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6MztcbiAgICB9XG5cbiAgICAmLmxvYWRpbmcge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIucHJvZHVjdC12aWV3IHtcblxuICAgIC5jYXRlZ29yeS1uYW1lIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gICAgI2FqYXgtc2t1LCAjaGlkZGVuLWFqYXgtc2t1IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAjYWpheC1za3Uge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxuXG4gICAgI2ltYWdlLW1haW4ge1xuICAgICAgICB3aWR0aDogMTIwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXtcbiAgICAgICAgLnByb2R1Y3QtY29sLWltZy1ib3gsIC5wcm9kdWN0LWluZm9ybWF0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9IFxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSsxKXsgXG4gICAgICAgIC5wcm9kdWN0LWluZm9ybWF0aW9uIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LWNvbC1pbWctYm94LCAucHJvZHVjdC1jb2wtZGVzY3JpcHRpb24sIC5wcm9kdWN0LWNvbC1wcmljZSB7XG4gICAgICAgICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wcm9kdWN0LWNvbC1kZXNjcmlwdGlvbiwgLnByb2R1Y3QtY29sLXByaWNlIHtcbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSl7IFxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNob3J0LWRlc2NyaXB0aW9uIHtcbiAgICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKXsgXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LWNvbC1kZXNjcmlwdGlvbiB7XG4gICAgICAgIC5wcm9kdWN0LW9wdGlvbnMge1xuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNhbXBsZS1yZXF1ZXN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSsxKXsgXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zICogMjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZ3JhZHVhdGVkLWxpbmsge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cbiAgICAucHJvZHVjdC1lc3NlbnRpYWwge1xuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1saWdodGJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3QtY29sLWltZy1ib3gge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAucHJvZHVjdC1zaGFyZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpeyBcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMnB4OyBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSl7IFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3Qtdmlldy10b3Age1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICR0cmltO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXsgXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LWNvbC1wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpeyBcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltLXM7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3Qtb3B0aW9ucy1ib3R0b20gLmFkZC10by1jYXJ0IC5xdHktd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIHAucmVxdWlyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1vcHRpb25zIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkdHJpbS1zO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0tcztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cbiAgICAgICAgICAgIGRkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5wcmljZS1ib3ggLnByaWNlLCAucHJpY2UsIC5jb25maWd1cmFibGUtcHJpY2UtZnJvbS1sYWJlbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICB9XG4gICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cbiAgICAgICAgLmF2YWlsYWJpbGl0eS5pbi1zdG9jayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5wcmljZS1pbmZvIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OyAgICBcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpe1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDcwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDsgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5wcm9kdWN0LXZpZXctZGV0YWlscyB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICAgICAgbWFyZ2luOiAkdHJpbSAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBwYWRkaW5nOiAkdHJpbS1zIDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSsxKXtcbiAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcnktbmF2LCAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wcm9kdWN0LXZpZXctZGV0YWlscyB7XG4gICAgICAgIGgyLCBoMywgLmgzLCBoNCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgICAgICBwYWRkaW5nOiAkdHJpbS14cyAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBpbWcuaW1hZ2UtaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0rMSl7XG4gICAgICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYWRkaXRpb25hbC1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpe1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zbGlkZW91dCB7XG4gICAgICAgICAgICAgICAgICAgIGgyLCBoMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uLWFycm93LWFjY29yZGlvbi1kb3duLnN2Zyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbi1hcnJvdy1hY2NvcmRpb24tdXAuc3ZnKTsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLm9wZW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC04cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiA0cHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCItIFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYubm8tZGFzaDpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuc2hvcC1saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgYcKge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5kb3dubG9hZC1saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuZG93bmxvYWQtc2hvcCB7XG4gICAgICAgICAgICAgICAgICAgLmFkZGl0aW9uYWwtd3JhcHBlciAge1xuICAgICAgICAgICAgICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkdHJpbSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbS1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnN1cHBvcnQtYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW07XG4gICAgICAgICAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmlucHV0LWJveCB7XG4gICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpe1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaW5wdXQtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRjLXRleHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc2VhcmNoX21pbmlfZm9ybSAuc2VhcmNoLWJ1dHRvbjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjdweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOXB4OyAgIFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb24tc2VhcmNoLWRhcmtibHVlLnN2Zyk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlucHV0Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYWRkaXRpb25hbC13cmFwcGVyID4gZGl2IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwrMSl7XG4gICAgICAgICAgICAgICAgLmFkZGl0aW9uYWwtd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRyaW0tc21hbGw7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1jYXRlZ29yeS1uYXYgeyBcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtKzEpe1xuICAgICAgICAgICAgLnByb2R1Y3QtY2F0ZWdvcnktbmF2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHRyaW0tc21hbGw7XG5cbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXhzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYm94LXVwLXNlbGwge1xuICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAuYm94LXVwLXNlbGwsIC5ib3gtY3Jvc3Mtc2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkdHJpbS1zIDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkdHJpbSAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaDMsIGg0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGE6bm90KC5wcm9kdWN0LWltYWdlKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLXRleHQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAuYm94LXVwLXNlbGwge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpe1xuICAgICAgICAgICAgICAgIC5zbGljay1zbGlkZSBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpe1xuICAgICAgICAgICAgLmJveC11cC1zZWxsLXNsaWRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmJveC11cC1zZWxsLXNsaWRlciwgLmJveC1jcm9zcy1zZWxsLXNsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICR0cmltKjI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDE1cHg7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2xpY2stbmV4dCwgLnNsaWNrLXByZXYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNjOWM5Yzk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1uYW1lIHsgXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgLmJveC1jcm9zcy1zZWxsLXNsaWRlciB7IFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCsxKXtcblxuICAgICAgICAgICAgICAgIC5uby1zbGljay1zbGlkZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5uby1zbGljay1zbGlkZS5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICB9XG59XG5cblxuXG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENhdGFsb2cgLSBNU1JQIE1BUCBQb3B1cFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNhcnQtbXNycC10b3RhbHMge1xuICAgIGNvbG9yOiByZWQ7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiAxMHB4IDEwcHggMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5tYXAtY2FydC1zaWRlYmFyLXRvdGFsIHtcbiAgICBjb2xvcjogcmVkO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG59XG5cbi5tYXAtcG9wdXAge1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgYm9yZGVyOiA1cHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBtYXJnaW46IDEycHggMCAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdpZHRoOiA0NTBweDtcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgICAgICYubWFwLXBvcHVwLXJpZ2h0IHtcbiAgICAgICAgICAgIGxlZnQ6ICRnYXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWFwLXBvcHVwLWxlZnQge1xuICAgICAgICAgICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcmlnaHQ6ICRnYXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm1hcC1wb3B1cC1oZWFkaW5nIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYXAtcG9wdXAtY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5tYXAtcG9wdXAtY29udGVudCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYXAtcG9wdXAtY2hlY2tvdXQge1xuICAgICAgICBwYWRkaW5nOiAkZ2FwIDA7XG5cbiAgICAgICAgZm9ybTphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmFkZGl0aW9uYWwtYWRkdG9jYXJ0LWJveCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjEwcHg7IC8vIGZpeCBmb3IgYSB3ZWIta2l0IGJveC1tb2RlbCBkaXNwbGF5IGJ1Z1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBheXBhbC1sb2dvIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wYXlwYWwtb3Ige1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICAgICAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5ibWxfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIC5idXR0b24sXG4gICAgICAgICAgICAuYWRkaXRpb25hbC1hZGR0b2NhcnQtYm94LFxuICAgICAgICAgICAgLnBheXBhbC1sb2dvIGEsXG4gICAgICAgICAgICAucGF5cGFsLWxvZ28gLnBheXBhbC1vciB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hZGRpdGlvbmFsLWFkZHRvY2FydC1ib3gge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucGF5cGFsLWxvZ28gLnBheXBhbC1vciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFwLXBvcHVwLXByaWNlIHtcbiAgICAgICAgcGFkZGluZzogJGdhcCAwO1xuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtYm94LFxuICAgICAgICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1hcC1wb3B1cC10ZXh0IHtcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgIC5tYXAtcG9wdXAtdGV4dCxcbiAgICAubWFwLXBvcHVwLW9ubHktdGV4dCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2F0YWxvZyAtIE1TUlAgUHJvZHVjdCBMaXN0aW5nXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucHJpY2UtYm94IC5tYXAtbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYXRhbG9nIC0gQ29tcGFyZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJsb2NrLWNvbXBhcmUgLnByb2R1Y3QtbmFtZTphZnRlciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5jb21wYXJlLXRhYmxlIC5wcm9kdWN0LWltYWdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5jb21wYXJlLXRhYmxlIHtcbiAgICAucHJvZHVjdC1zaG9wLXJvdyB7XG4gICAgICAgICYudG9wIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYm90dG9tIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIExheW91dFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4uY2FydCAuYnV0dG9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4uY2FydCB7XG4gICAgLnByb2R1Y3Qtc2FtcGxlIHtcbiAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLWw7XG4gICAgfVxuXG4gICAgLmNhcnQtc2FtcGxlLXF0eSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgIH1cblxuICAgIC5zYW1wbGUtYWN0aW9ucyB7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5jYXJ0LXRhYmxlIHtcbiAgICAucHJvZHVjdC1jYXJ0LWFjdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FydC1hY3Rpb25zIGJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgIH1cbn1cblxuLmNhcnQtZm9ybXMsXG4uY3Jvc3NzZWxsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbGVmdDtcblxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIH1cbn1cblxuLmNhcnQtdG90YWxzLXdyYXBwZXIge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLmNhcnQtZm9ybXMgLmRpc2NvdW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2FydC10YWJsZSxcbi5jYXJ0LXRvdGFscyxcbi5jYXJ0LWZvcm1zIC5kaXNjb3VudCxcbi5jYXJ0LWZvcm1zIC5naWZ0Y2FyZCxcbi5jYXJ0LWZvcm1zIC5zaGlwcGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJveC1zcGFjaW5nLWxhcmdlO1xufVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCB7XG4gICAgI3Bvc3Rjb2RlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG5AbWl4aW4gb25lQ29sdW1uQ2FydEl0ZW1zIHtcbiAgICAuY2FydC10YWJsZSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY2FydC1mb3JtcyB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYm94LXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAuY2FydC10b3RhbHMtd3JhcHBlcixcbiAgICAuY3Jvc3NzZWxsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkYm94LXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmNhcnQtZm9ybXMsXG4gICAgLmNhcnQtdG90YWxzLXdyYXBwZXIsXG4gICAgLmNyb3Nzc2VsbCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLmNyb3Nzc2VsbCB7XG4gICAgICAgIGNsZWFyOiByaWdodDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLmRpc3BsYXktYm90aC1wcmljZXMge1xuICAgIEBpbmNsdWRlIG9uZUNvbHVtbkNhcnRJdGVtcztcbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbGFyZ2UpIHtcbiAgICAuZGlzcGxheS1zaW5nbGUtcHJpY2Uge1xuICAgICAgICBAaW5jbHVkZSBvbmVDb2x1bW5DYXJ0SXRlbXM7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDU5OXB4KSB7XG4gICAgLnByb2R1Y3QtY2FydC1za3Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5kaXNwbGF5LWJvdGgtcHJpY2VzLFxuICAgIC5kaXNwbGF5LXNpbmdsZS1wcmljZSB7XG4gICAgICAgIC5jYXJ0LWZvcm1zLFxuICAgICAgICAuY2FydC10b3RhbHMtd3JhcHBlcixcbiAgICAgICAgLmNyb3Nzc2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGlzcGxheS1zaW5nbGUtcHJpY2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIENhcnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jYXJ0IC5wYWdlLXRpdGxlIHtcblxuICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbiAgICBoMSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG59XG5cbi5jaGVja291dC10eXBlcyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIGxpIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBtYXJnaW46IDAgMCA1cHggNXB4O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICAgIC8qIFdlIGFsd2F5cyB3YW50IHRoaXMgc2hpcHBpbmcgbWV0aG9kIHRvIGRpc3BsYXkgb24gaXRzIG93biBsaW5lICovXG4gICAgLm1ldGhvZC1jaGVja291dC1jYXJ0LW1ldGhvZHMtbXVsdGlzaGlwcGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYudG9wIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJtbF9idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXlwYWwtbG9nbyAucGF5cGFsLW9yIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYm90dG9tLFxuICAgICYubWluaWNhcnQge1xuICAgICAgICAucGF5cGFsLWxvZ28ge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnBheXBhbC1vciB7XG4gICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsIDc0MXB4KSB7XG4gICAgLmNoZWNrb3V0LXR5cGVzLmJvdHRvbSB7XG4gICAgICAgIC5wYXlwYWwtb3Ige1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA3MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2FydC10b3RhbHMgLmNoZWNrb3V0LXR5cGVzIC5idG4tY2hlY2tvdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDdweDtcbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCA3NDBweCkge1xuICAgIC5jaGVja291dC10eXBlcyB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJi5ib3R0b20sXG4gICAgICAgICYubWluaWNhcnQge1xuICAgICAgICAgICAgLnBheXBhbC1vciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtdHlwZXMgbGkge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAuYnRuLWNoZWNrb3V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uY2FydC10YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG5cbiAgICAucHJvZHVjdC1jYXJ0LXJlbW92ZSB7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgIH1cblxuICAgIC5jYXJ0LXRvdGFsLWhlYWQge1xuICAgICAgICBtYXgtd2lkdGg6IDcwcHg7XG4gICAgfVxuXG5cblxuICAgIHRoLFxuICAgIHRkLFxuICAgIHRib2R5IHRkIHtcbiAgICAgICAgLy8gQWRkaW5nIHRib2R5IGZvciBleHRyYSBzZWxlY3RvciB3ZWlnaHRcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGNvbG9yOiAkYy1oMjtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHRoZWFkIHRoIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICB0aGVhZCB0aCxcbiAgICB0Ym9keSB0ZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWNhcnQtaW5mbyxcbiAgICAucHJvZHVjdC1jYXJ0LWFjdGlvbnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG5cbiAgICAgICAgJi5zYW1wbGUtcHJvZHVjdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAucXR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgLnByb2R1Y3QtY2FydC1pbmZvLFxuICAgICAgICAucHJvZHVjdC1jYXJ0LWFjdGlvbnMsXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtcHJpY2Uge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgXG5cbiAgICB0Ym9keSB0ci5kb3R0ZWQtYm9yZGVyIHRkIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgIFxuXG4gICAgdGZvb3Qge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIgPiB0ZDphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ub3Ige1xuICAgICAgICBmb250LXNpemU6IDlweDtcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWNhcnQtaW1hZ2UgLmNhcnQtbGlua3MsXG4gICAgLnByb2R1Y3QtY2FydC1pbmZvIC5idG4tcmVtb3ZlLFxuICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1jYXJ0LWltYWdlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIC5wcm9kdWN0LWltYWdlIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEuY2FydC1lZGl0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1jYXJ0LXNrdSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuXG4gICAgfVxuXG4gICAgLmJ0bi1lbXB0eSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5wcm9kdWN0LWNhcnQtdG90YWwsXG4gICAgLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC5jYXJ0LXRheC10b3RhbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUobGVmdCwgNnB4LCAkYy10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgICAgICByaWdodDogLTExcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKGRvd24sIDZweCwgJGMtdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICByaWdodDogLTE1cHg7XG4gICAgICAgICAgICAgICAgdG9wOiA2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydC1saW5rcyA+IGxpIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBtaW4td2lkdGg6IDY1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtY2FydC1hY3Rpb25zIHtcbiAgICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgLnF0eSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMy4yZW07XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pdGVtLW9wdGlvbnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAuY2FydC10YWJsZSB7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweCA2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1jYXJ0LWFjdGlvbnMgPiBsaSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCA2OTlweCkge1xuICAgIC5kaXNwbGF5LWJvdGgtcHJpY2VzIHtcbiAgICAgICAgLmNhcnQtdGFibGUge1xuICAgICAgICAgICAgdGhlYWQgdGguY2FydC10b3RhbC1oZWFkLFxuICAgICAgICAgICAgdGQucHJvZHVjdC1jYXJ0LXRvdGFsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDU5OXB4KSB7XG5cbiAgICAuY2FydC10YWJsZSB7XG4gICAgICAgIGNvbGdyb3VwLCB0aGVhZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJi5maXJzdCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHRyaW0tcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRmb290IHRyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICZbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuXG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1yd2QtbGFiZWwpIFwiOlwiO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWxpbmtzIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cbiAgICAgICAgICAgID4gbGkge1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC10YXgtaW5mbyB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1jYXJ0LWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvNCk7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICAgICAgICBhLmNhcnQtZWRpdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FydC1pbmZvLFxuICAgICAgICB0ZFtkYXRhLXJ3ZC1sYWJlbF0ge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMy80KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyxcbiAgICAgICAgLnByb2R1Y3QtY2FydC1wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FydC1yZW1vdmUsXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtdG90YWwsXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyAuY2FydC1saW5rcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtY2FydC1pbmZvIC5idG4tcmVtb3ZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBlbGVtZW50IHdpbGwgYmUgZGlzcGxheWVkIHZpYSBKUyBvbmNlIHRoZSByZWxhdGVkIGlucHV0IGlzIGZvY3VzZWRcbiAgICAgICAgLnByb2R1Y3QtY2FydC1hY3Rpb25zIC5idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtaW5mbyB7XG5cbiAgICAgICAgICAgIC5idG4tcmVtb3ZlIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIG1hcmdpbjogLTRweCAwcHggMnB4IDdweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAucXR5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UsXG4gICAgICAgIC5wcm9kdWN0LWNhcnQtcHJpY2U6YmVmb3JlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWZvb3Rlci1hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAjZW1wdHlfY2FydF9idXR0b24ge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ0bi1jb250aW51ZSB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idG4tdXBkYXRlLFxuICAgICAgICAgICAgc3Bhbi5vciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRpc3BsYXktYm90aC1wcmljZXMge1xuICAgICAgICAuY2FydC10YWJsZSB7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgJltkYXRhLXJ3ZC10YXgtbGFiZWxdIHtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXJ3ZC10YXgtbGFiZWwpIFwiOlwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIEVzdGltYXRlIFNoaXBwaW5nIGFuZCBUYXhcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zaGlwcGluZyB7XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgICB9XG5cbiAgICBzZWxlY3QudmFsaWRhdGlvbi1mYWlsZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjLWRhbmdlcjtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgICBpbnB1dFt0eXBlPW51bWJlcl0sXG4gICAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gICAgaW5wdXRbdHlwZT10ZWxdLFxuICAgIGlucHV0W3R5cGU9dGV4dF0sXG4gICAgc2VsZWN0IHtcblxuICAgICAgICBjb2xvcjogJGMtdGV4dC1saWdodGdyYXk7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbS14cztcbiAgICB9XG5cblxuICAgXG5cbiAgICAuc3AtbWV0aG9kcyB7XG4gICAgICAgIG1hcmdpbi10b3A6ICR0cmltLXM7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIGRkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNjby1zaGlwcGluZy1tZXRob2QtZm9ybSAuYnV0dG9ucy1zZXQgLmJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gICAgI2NvLXNoaXBwaW5nLW1ldGhvZC1mb3JtIC5zcC1tZXRob2RzIGRkIGxhYmVsIHtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCRjLW1vZHVsZS1iYWNrZ3JvdW5kLCAxMCUpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuXG4gICAgLnNoaXBwaW5nIC5zaGlwcGluZy1mb3JtIC5mb3JtLWxpc3QgPiBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0LFxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVG90YWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmNhcnQgLmNhcnQtdG90YWxzIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICBcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIFxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHggMHB4O1xuICAgICAgICB9XG4gICAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCxcbiAgICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB0aCB7XG4gICAgICAgICAgICAvL3BhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgXG4gICAgfVxufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRGlzY291bnQgY29kZXMgYW5kIGdpZnQgY2FyZHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uZGlzY291bnQtZm9ybTphZnRlcixcbiNnaWZ0Y2FyZC1mb3JtOmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuI2Rpc2NvdW50LWNvdXBvbi1mb3JtLFxuLmNhcnQgLmdpZnRjYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGgyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1pbi13aWR0aDogMTA1cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgIC5maWVsZC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC52YWxpZGF0aW9uLWFkdmljZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbiAgICAuYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cbiAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5wdXQtdGV4dCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgbWFyZ2luOiA0cHggMTBweCAwIDA7XG4gICAgICAgIHdpZHRoOiAxOTBweDtcbiAgICB9XG59XG5cbi5jYXJ0IC5naWZ0Y2FyZCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZWxlbWVudC1zcGFjaW5nO1xufVxuXG4uY2FydCAuZ2lmdGNhcmQgLmNoZWNrLWdjLXN0YXR1cyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogMHB4O1xuXG4gICAgPiBzcGFuID4gc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG4uc2hpcHBpbmctZm9ybSB7XG4gICAuaW5wdXQtdGV4dCNyZWdpb24ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgXG4gICAgfVxuICAgIC5zaGlwcGluZy1yZWdpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH0gXG5cbiAgICAjcmVnaW9uX2lkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG5cbn1cblxuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBDYXJ0IENyb3NzIHNlbGxcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jcm9zc3NlbGwge1xuICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICRjLWJsdWU7XG4gICAgfVxuXG4gICAgLml0ZW0gYS5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLyogQ2hhbmdlIHRoZSBsYXlvdXQgdG8gMiBjb2x1bW5zIGF0IGEgYnJlYWtwb2ludCB0aGF0IGlzIGhpZ2hlciB0aGFuIGEgMyBjb2x1bW5zIGxheW91dCB3b3VsZCBub3JtYWxseSBicmVhayAqL1xuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbGFyZ2UpIHtcbiAgICAuY3Jvc3NzZWxsIHtcbiAgICAgICAgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoZXZlbiksXG4gICAgICAgIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKDNuKSxcbiAgICAgICAgLnByb2R1Y3RzLWdyaWQgPiBsaSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgyMTAgLyA0NDApO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKDIwIC8gNDQwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0cy1ncmlkID4gbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdHMtZ3JpZCA+IGxpOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBVbmRvIHRocmVlLWNvbHVtbiBjb25maWcgKi9cbiAgICAgICAgLnByb2R1Y3RzLWdyaWQgPiBsaTpudGgtY2hpbGQoM24rMSkge1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLmNhcnQtdGFibGUge1xuICAgICAgICAuY2FydC10YXgtdG90YWwge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC05cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0xM3B4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAzMjBweCkge1xuICAgIC5jcm9zc3NlbGwge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwcHggNDBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtZGV0YWlscyAuY3Jvc3NzZWxsLWFjdGlvbnMge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCB7XG4gICAgLmNhcnQtZW1wdHkge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gT25lIFBhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtcmlnaHQsXG4uY2hlY2tvdXQtb25lcGFnZS1pbmRleCAuY29sLWxlZnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jaGVja291dC1vbmVwYWdlLWluZGV4IC5jb2wtbWFpbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLWxhcmdlKzEpIHtcbiAgICAuY2hlY2tvdXQtb25lcGFnZS1pbmRleCB7XG4gICAgICAgIC5jb2wtbWFpbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDY2MHB4Lzk2MHB4KTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLXJpZ2h0LFxuICAgICAgICAuY29sLWxlZnQge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMzAwcHgvOTYwcHgpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLXJpZ2h0IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm9wYyB7XG4gICAgc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6ICgyMzBweCArIDEzNXB4KTtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFNlY3Rpb24gU3R5bGluZyAtIERlZmF1bHRcbiAqL1xuXG4ub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogM3B4IDA7XG4gICAgQGluY2x1ZGUgbm90LXNlbGVjdGFibGU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG4ub3BjIC5zZWN0aW9uLmFsbG93Om5vdCguYWN0aXZlKSAuc3RlcC10aXRsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5cbi5vcGMgLnNlY3Rpb24uYWN0aXZlIC5zdGVwLXRpdGxlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xufVxuXG4ub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIGEge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3c6bm90KC5hY3RpdmUpIC5zdGVwLXRpdGxlIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMHB4IDEwcHg7XG59XG5cbi5uby10b3VjaCAub3BjIC5zZWN0aW9uIC5zdGVwLXRpdGxlIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm9wYyAuc2VjdGlvbiAuc3RlcC10aXRsZSAubnVtYmVyLFxuLm9wYyAuc2VjdGlvbi5hbGxvdy5hY3RpdmUgLnN0ZXAtdGl0bGUgLm51bWJlcixcbi5uby10b3VjaCAub3BjIC5zZWN0aW9uLmFsbG93OmhvdmVyIC5zdGVwLXRpdGxlIC5udW1iZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYWN0aW9uO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLTEzcHg7XG59XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3cgLnN0ZXAtdGl0bGUgLm51bWJlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgkYy1hY3Rpb24sIDUwJSk7XG59XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3cgLnN0ZXAtdGl0bGUgaDIge1xuICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG59XG5cbi5vcGMgLnNlY3Rpb24uYWxsb3cgLnN0ZXAtdGl0bGU6aG92ZXIgaDIsXG4ub3BjIC5zZWN0aW9uLmFjdGl2ZSAuc3RlcC10aXRsZSBoMiB7XG4gICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbn1cblxuLm9wYyAuc2VjdGlvbiAuc3RlcC10aXRsZSBoMiB7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMHB4IDRweCAwcHggMzVweDtcbn1cblxuLm9wYyAuc2VjdGlvbiAuc3RlcCB7XG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgcGFkZGluZzogJHRyaW0tcyAwICR0cmltICR0cmltO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgfVxufVxuXG4ub3BjIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5vcGMgaDMge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5vcGMgLmJ1dHRvbnMtc2V0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBwLnJlcXVpcmVkIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICAuYmFjay1saW5rIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA1cHggNXB4IDVweCAwO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgLm9wYyxcbiAgICAucGF5cGFsLWV4cHJlc3MtcmV2aWV3IHtcbiAgICAgICAgLmJ1dHRvbnMtc2V0IC5idXR0b24gKyAuYnV0dG9ucy1zZXQgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cbi5vcGMgI29wYy1sb2dpbiB7XG5cblxuXG4gICAgaDIge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMjVweDtcbiAgICB9XG4gICAgXG4gICBcblxuICAgIC5zdGVwIHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cblxuICAgIC5zdGVwLXRpdGxlIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIC5idXR0b25zLXNldCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgfVxuXG4gICAgI2NoZWNrb3V0LXN0ZXAtbG9naW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICB9XG59XG5cbiAub3BjLWhhcy1wcm9ncmVzc2VkLWZyb20tbG9naW4ge1xuICAgIFxuICAgIC5vcGMgI29wYy1sb2dpbiB7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIFxuICAgIH1cblxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAub3BjICNvcGMtbG9naW4gLmRlc2NyaXB0aW9uLFxuICAgIC5vcGMgI29wYy1sb2dpbiBwLnJlcXVpcmVkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbiNvcGMtcGF5bWVudCAubm90ZSB7XG4gICAgcGFkZGluZzogJGJveC1zcGFjaW5nO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBUaGlzIHNlY3Rpb24gaGlkZXMgZXZlcnl0aGluZyBidXQgdGhlIFwiQ2hlY2tvdXQgTWV0aG9kXCIgc3RlcCBvZiB0aGUgY2hlY2tvdXQgcHJvY2VzcyBhbmQgZmFkZXMgaW4gdGhlIGNvbnRlbnRcbiAqIG9uY2UgdGhlIGN1c3RvbWVyIHByb2dyZXNzZXMgdG8gdGhlIG5leHQgc3RlcC4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBzaW1wbGlmeSB3aGF0IHRoZSBjdXN0b21lciBoYXMgdG8gZm9jdXMgb24uXG4gKiBJdCBpcyBsaW1pdGVkIHRvIGxhcmdlciB2aWV3cG9ydHMgc2luY2Ugc21hbGxlciBkZXZpY2VzIGFyZSBpbmhlcmVudGx5IGdvaW5nIHRvIGJlIGZvY3VzZWQgc29sZWx5IG9uIHRoZVxuICogXCJDaGVja291dCBNZXRob2RcIiBzdGVwLlxuICovXG5cbi5vcGMub3BjLWZpcnN0c3RlcC1sb2dpbiAuc2VjdGlvbjpub3QoI29wYy1sb2dpbikgLnN0ZXAtdGl0bGUsXG4ub3BjLWJsb2NrLXByb2dyZXNzLXN0ZXAtbG9naW4ge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xufVxuXG4ub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb24jb3BjLWxvZ2luIC5zdGVwLXRpdGxlIC5udW1iZXIge1xuICAgIHRyYW5zaXRpb246IHdpZHRoIC4xcztcbn1cblxuLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uI29wYy1sb2dpbiAuc3RlcC10aXRsZSBoMiB7XG4gICAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgLjFzO1xufVxuXG4vKiBXaGVuIGEgdXNlciBwcm9ncmVzc2VzIGZyb20gdGhlIFwiQ2hlY2tvdXQgTWV0aG9kXCIgdG8gXCJCaWxsaW5nIEluZm9ybWF0aW9uXCIgZm9yIHRoZSBmaXJzdCB0aW1lLCB0aGUgICAgICAgICAgICAgICovXG4vKiBcIm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luXCIgY2xhc3MgZ2V0cyBhZGRlZCB0byB0aGUgYm9keS4gQWxzbywgdGhlIC5vcGMgZWxlbWVudCB3aWxsIG9ubHkgaGF2ZSB0aGUgICAgICAgICAqL1xuLyogXCJvcGMtZmlyc3RzdGVwLWxvZ2luXCIgY2xhc3MgaWYgdGhlIGZpcnN0IHN0ZXAgb2YgdGhlIGNoZWNrb3V0IGlzIHRoZSBcIkNoZWNrb3V0IE1ldGhvZFwiIChlZywgbm90IHdoZW4gbG9nZ2VkIGluKSAqL1xuYm9keTpub3QoLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luKSAub3BjLm9wYy1maXJzdHN0ZXAtbG9naW4gLnNlY3Rpb246bm90KCNvcGMtbG9naW4pIC5zdGVwLXRpdGxlLFxuYm9keTpub3QoLm9wYy1oYXMtcHJvZ3Jlc3NlZC1mcm9tLWxvZ2luKSAub3BjLWJsb2NrLXByb2dyZXNzLXN0ZXAtbG9naW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbmJvZHk6bm90KC5vcGMtaGFzLXByb2dyZXNzZWQtZnJvbS1sb2dpbikgLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uI29wYy1sb2dpbiAuc3RlcC10aXRsZSAubnVtYmVyIHtcbiAgICB3aWR0aDogMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJvZHk6bm90KC5vcGMtaGFzLXByb2dyZXNzZWQtZnJvbS1sb2dpbikgLm9wYy5vcGMtZmlyc3RzdGVwLWxvZ2luIC5zZWN0aW9uI29wYy1sb2dpbiAuc3RlcC10aXRsZSBoMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogU2hpcHBpbmcgYW5kIFBheW1lbnQgbWV0aG9kc1xuICovXG5cbi5zcC1tZXRob2RzIHtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG5cbiAgICBkdCB7XG4gICAgICAgIG1hcmdpbjogMTNweCAwIDVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgICAgIH1cbiAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRkIGxpIHtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcbiAgICB9XG4gICAgbGFiZWwgaW1nIHsgLy8gVGhpcyBhcHBsaWVzIHRvIHRoZSBQYXlwYWwgRXhwcmVzcyBsYWJlbFxuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gICAgbGFiZWwgYSB7IC8vIFRoaXMgYXBwbGllcyB0byB0aGUgUGF5cGFsIEV4cHJlc3MgbGFiZWxcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICAgIC5mb3JtLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIHNlbGVjdC5tb250aCB7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgICBzZWxlY3QueWVhciB7XG4gICAgICAgIHdpZHRoOiA5NnB4O1xuICAgIH1cbiAgICBpbnB1dC5jdnYge1xuICAgICAgICB3aWR0aDogNGVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICNhZHZpY2UtdmFsaWRhdGUtY2MtZXhwLWNjc2F2ZV9leHBpcmF0aW9uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMzBweDtcbiAgICB9XG5cbiAgICAuY2hlY2ttby1saXN0IHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgNXB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIC8vd2lkdGg6IDE2NXB4O1xuICAgICAgICAgICAgLy9wYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgLy90ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIC8vZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgYWRkcmVzcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEzNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlbGVhc2UtYW1vdW50cyB7XG4gICAgICAgIG1hcmdpbjogMC41ZW0gMDtcbiAgICB9XG4gICAgLnJlbGVhc2UtYW1vdW50cyBidXR0b24ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiA1cHggMTBweCAwIDA7XG4gICAgfVxufVxuXG5cblxuLyogT25lIFBhZ2UgQ2hlY2tvdXQgKi9cblxuI2NoZWNrb3V0LXN0ZXAtYmlsbGluZyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICAgICAgcC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMjVweDsgXG4gICAgICAgIH1cbn1cblxuLmJsb2NrLXByb2dyZXNzIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcblxuICAgIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgfVxuICAgIGR0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDZweDtcbiAgICAgICAgQGluY2x1ZGUgaDQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICB9XG5cbiAgICBkdC5jb21wbGV0ZSB7XG4gICAgICAgIGNvbG9yOiAkYy1oNDtcbiAgICB9XG4gICAgZGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG4gICAgfVxuXG4gICAgI3BheW1lbnQtcHJvZ3Jlc3Mtb3BjaGVja291dCAuc3VidGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgfVxuXG4gICAgLnBheW1lbnQtaW5mbyB7XG5cbiAgICAgICAgZHQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDNweCAwO1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJzogJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRkIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8qIHJldmlldyBzdGVwICovXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHtcbiAgICAuYnRuLXJlbW92ZSB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jY2hlY2tvdXQtcmV2aWV3LXRhYmxlLXdyYXBwZXIge1xuICAgIGNsZWFyOiBib3RoOyAvLyBGaXggdGFibGUgY2xlYXJpbmcgaXNzdWUgaW4gRmlyZWZveFxufVxuXG4jcmV2aWV3LWJ1dHRvbnMtY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbiAgICAuYnRuLWNoZWNrb3V0IHtcbiAgICAgICAgbWluLXdpZHRoOiAyMjBweDtcbiAgICB9XG4gICAgLnBsZWFzZS13YWl0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG4gICAgLmYtbGVmdCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG59XG5cbi8vIEhpZGUgYWxsIGJ1dCB0aGUgZmlyc3QgdHIgaW5zaWRlIG9mIHRoZWFkXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgIC5saW5lYXJpemUtdGFibGUtbGFyZ2UuY2hlY2tvdXQtcmV2aWV3LXRhYmxlIHRoZWFkIHRyOm50aC1jaGlsZCgxbisyKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBIaWRlIGFsbCBidXQgdGhlIGZpcnN0IHRyIGluc2lkZSBvZiB0aGVhZFxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgLmxpbmVhcml6ZS10YWJsZS5jaGVja291dC1yZXZpZXctdGFibGUgdGhlYWQgdHI6bnRoLWNoaWxkKDFuKzIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8qIHNob3cvaGlkZSBcImNoYW5nZVwiIGxpbmsgZm9yIHByb2dyZXNzIHN0ZXAgZGVwZW5kIG9uIGNvbXBsZXRlIHN0YXR1c1xuICogc2hvdWxkIGJlIHBsYWNlZCBpbiAuY3NzIGZpbGUgKi9cbi5vcGMtYmxvY2stcHJvZ3Jlc3MgZHQuY29tcGxldGUgYSxcbi5vcGMtYmxvY2stcHJvZ3Jlc3MgZHQuY29tcGxldGUgLnNlcGFyYXRvciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ub3BjLWJsb2NrLXByb2dyZXNzIGR0IGEsXG4ub3BjLWJsb2NrLXByb2dyZXNzIGR0IC5zZXBhcmF0b3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuXG4vKiBPbiBzbWFsbCBzY3JlZW5zLCB0aGUgcHJvZ3Jlc3MgcmV2aWV3IGNvbnRlbnQgd2lsbCBiZSBtb3ZlZCB0byB0aGUgcmV2aWV3IHN0ZXAgdmlhIEpTLiBTdHlsZWQgdmlhIHRoaXMgQ1NTOiAqL1xuI2NoZWNrb3V0LXN0ZXAtcmV2aWV3IC5vcGMtYmxvY2stcHJvZ3Jlc3Mge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgIC5ibG9jay10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgLy8gT3ZlcnJpZGUgdGhlIG5vLWRpc3BsYXlcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmID4gZGwgPiBkaXYge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgICAgICAmID4gZGwgPiBkaXYge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNoYW5nZWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgI2NoZWNrb3V0LXJldmlldy10YWJsZSB0aGVhZCA+IHRyID4gdGgge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgI2NoZWNrb3V0LXJldmlldy10YWJsZSB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbiNjaGVja291dC1zdGVwLXJldmlldyAuY2VudGluZWwge1xuICAgICY+IHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmc7XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgIH1cbn1cblxuLyogR2lmdCBvcHRpb25zICovXG4uZ2lmdC1tZXNzYWdlcy1mb3JtIHtcbiAgICAuaXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcblxuICAgICAgICBoNSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWltZy1ib3gge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGV0YWlscyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmdpZnQtbWVzc2FnZS1mb3JtIHtcbiAgICAuaW5uZXItYm94IHtcbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYuZXh0cmEtb3B0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ2lmdC13cmFwcGluZy1mb3JtIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYm94LXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZ2lmdC13cmFwcGluZy1kZXNpZ24ge1xuICAgICAgICAgICAgaGVpZ2h0OiA3NXB4O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmltYWdlLWJveCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ2lmdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRnYXA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkYy1kaXZpZGVyLWJvcmRlcjtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaW1nLWJveCB7XG4gICAgICAgICAgICB3aWR0aDogMjAwcHg7XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWltYWdlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAoJ21heC13aWR0aCcsICRicC1tZWRpdW0pIHtcbiAgICAuZ2lmdC1tZXNzYWdlLWZvcm0ge1xuXG4gICAgICAgIC5naWZ0bWVzc2FnZS1hcmVhe1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmdpZnQtaXRlbSB7XG4gICAgICAgICAgICAucHJvZHVjdC1pbWctYm94IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuXG4gICAgICAgICAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLm9wYy1ibG9jay1wcm9ncmVzc3tcbiAgICAuYmxvY2stdGl0bGUgc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgbXJhZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgICB9XG59XG5cbiNjaGVja291dC1zdGVwLXJldmlldyB7XG4gICAgI2NoZWNrb3V0LWFncmVlbWVudHMge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2hlY2tvdXQgLSBTdWNjZXNzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2hlY2tvdXQtb25lcGFnZS1zdWNjZXNzIHtcbiAgICAuY29sLW1haW4ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgbWFyZ2luOiAkZ2FwIDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENvbmZpZ3VyYWJsZSBTd2F0Y2hlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQ2xlYXJzICovXG4uY2xlYXJmaXgsXG4uY29uZmlndXJhYmxlLXN3YXRjaC1saXN0LFxuLnByb2R1Y3QtdmlldyAucHJvZHVjdC1vcHRpb25zIC5zd2F0Y2gtYXR0ciB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbn1cblxuLyogR2VuZXJhbCBTd2F0Y2ggU3R5bGluZyAqL1xuLnN3YXRjaC1saW5rLFxuLnN3YXRjaC1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cyAtIDI7XG4gICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJGMtaDQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4uc3dhdGNoLWxpbmsge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgbWFyZ2luOiAwIDAgM3B4O1xuXG4gICAgaW1nIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cyAtIDM7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC54IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTllbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmdfeC5wbmcpIGNlbnRlciBuby1yZXBlYXQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cblxuICAgICYuaGFzLWltYWdlIHtcbiAgICAgICAgLnN3YXRjaC1sYWJlbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN3YXRjaC1sYWJlbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBiYWNrZ3JvdW5kOiAkYy1tb2R1bGUtYmFja2dyb3VuZDtcbn1cblxuLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgem9vbTogMTtcbiAgICBjbGVhcjogYm90aDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpO1xuXG4gICAgbGkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgem9vbTogMTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAzcHg7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RzLWdyaWQgJiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICAubm90LWF2YWlsYWJsZSB7XG4gICAgICAgIC54IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN3YXRjaC1saW5rIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtbW9kdWxlLWJvcmRlci1saWdodDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJi5oYXMtaW1hZ2UgaW1nIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTQwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zd2F0Y2gtbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICNhYWE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndpZGUtc3dhdGNoIC5zd2F0Y2gtbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiAwIDZweDtcbiAgICB9XG5cbiAgICAubm90LWF2YWlsYWJsZSBhOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICB9XG59XG5cbiNuYXJyb3ctYnktbGlzdCBkZCB7XG4gICAgLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCBsaSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgM3B4O1xuICAgICAgICB3aWR0aDogNDclO1xuICAgIH1cblxuICAgIC5zd2F0Y2gtbGluayB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmLXNpemUgKyAxMXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAmLmhhcy1pbWFnZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgLnN3YXRjaC1sYWJlbCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjLW1vZHVsZS1ib3JkZXItaGlnaGxpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN3YXRjaC1sYWJlbCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIC0gMjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgICAgICBwYWRkaW5nOiAxcHggNXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cyAtIDJweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhhcy1pbWFnZSAuc3dhdGNoLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC8vIFByZXZlbnQgb2RkIHdyYXBwaW5nIGlzc3VlIHdoZW4gc3dhdGNoZXMgaGF2ZSBib3RoIHRleHQgYW5kIGltYWdlc1xuICAgICNuYXJyb3ctYnktbGlzdCBkZCAuY29uZmlndXJhYmxlLXN3YXRjaC1saXN0IGxpOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxufVxuXG4uY3VycmVudGx5IHtcbiAgICAuc3dhdGNoLWN1cnJlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmJ0bi1yZW1vdmUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN3YXRjaC1saW5rIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAwIDNweDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogT3RoZXIgU3dhdGNoIFN0YXRlcyAqL1xuLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAuaG92ZXIgLnN3YXRjaC1saW5rLFxuLmNvbmZpZ3VyYWJsZS1zd2F0Y2gtbGlzdCAuc2VsZWN0ZWQgLnN3YXRjaC1saW5rLFxuLnN3YXRjaC1saW5rOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICRjLW1vZHVsZS1ib3JkZXItaGlnaGxpZ2h0O1xufVxuXG4uY29uZmlndXJhYmxlLXN3YXRjaC1ib3gge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIHNlbGVjdC5zd2F0Y2gtc2VsZWN0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAudmFsaWRhdGlvbi1hZHZpY2Uge1xuICAgICAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWRhbmdlcjtcbiAgICAgICAgcGFkZGluZzogMnB4IDVweCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzIC0gMjtcbiAgICB9XG59XG5cbi8qIENVU1RPTSAqL1xuLmF2YWlsYWJpbGl0eS5vdXQtb2Ytc3RvY2sgc3BhbiB7XG4gICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbn1cblxuLnByb2R1Y3QtdmlldyB7XG4gICAgLnByb2R1Y3Qtb3B0aW9ucyB7XG4gICAgICAgIC5zd2F0Y2gtYXR0ciB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG5cbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgLnNlbGVjdC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlbGVjdC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRkIC5pbnB1dC1ib3gge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0LWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWRkLXRvLWNhcnQgYnV0dG9uLm91dC1vZi1zdG9jayB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0zNjJweDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ3VzdG9tZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAuY3VzdG9tZXItYWNjb3VudC1sb2dpbixcbiAuY3VzdG9tZXItYWNjb3VudC1jcmVhdGUsXG4gLmN1c3RvbWVyLWFjY291bnQtZm9yZ290cGFzc3dvcmQsXG4gLmNoZWNrb3V0LW9uZXBhZ2UtaW5kZXgge1xuICAgIC5jb2wtbWFpbiB7XG5cbiAgICAgICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gfVxuXG4gLmN1c3RvbWVyLWFjY291bnQge1xuICAgIC5ibG9jay1hY2NvdW50IHtcbiAgICAgICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgIH1cbiAgICB9XG4gfVxuXG4uY3VzdG9tZXItYWNjb3VudC1lZGl0IHtcbiAgICAuZmllbGRzZXQgcC5yZXF1aXJlZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yNXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uY3VzdG9tZXItYWNjb3VudC1sb2dpbiB7XG5cbiAgICAuY29sLW1haW4ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW07XG4gICAgfVxuXG4gICAgLnNjYWZmb2xkLWZvcm0ge1xuICAgICAgICBsYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogMTE1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICB9XG5cbiAgICAuY29sMi1zZXQge1xuICAgICAgICAuYnV0dG9ucy1zZXQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAgICAgfVxuICAgICAgICAuY29sLTEsXG4gICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbC0xIHtcbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46ICRnYXAgMCAkZ2FwICogMiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIC5jb2wyLXNldCB7XG4gICAgICAgICAgICAuY29sLTEsXG4gICAgICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wtMSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAgICAgLmNvbDItc2V0IHtcbiAgICAgICAgICAgIC5jb2wtMSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAuY29sMi1zZXQge1xuICAgICAgICAgICAgLmNvbC0xIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICR0cmltO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgICAgIC5jb2wyLXNldCBwLnJlcXVpcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSB7XG4gICAgLnNjYWZmb2xkLWZvcm0ge1xuICAgICAgICBsYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogMTQwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5yZW1lbWJlci1tZS1ib3gge1xuICAgIGEuaGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5saW5rLXRpcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRnYXA7XG4gICAgfVxufVxuXG4ucmVtZW1iZXItbWUtcG9wdXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5zaG93IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1kZWZhdWx0O1xuICAgIH1cblxuICAgIC5yZW1lbWJlci1tZS1wb3B1cC1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogJGJveC1zcGFjaW5nO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgfVxuXG4gICAgLnJlbWVtYmVyLW1lLXBvcHVwLWNsb3NlLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY3VzdG9tZXItYWNjb3VudC1jcmVhdGUge1xuXG5cbiAgICAuZmllbGRzZXQgLmhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG59XG5cbi5jdXN0b21lci1hY2NvdW50LWZvcmdvdHBhc3N3b3JkLCAgXG4uY3VzdG9tZXItYWNjb3VudC1jcmVhdGV7XG4gICAgLmNvbC1tYWluIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2ODBweDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW07XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBNeSBBY2NvdW50IEdsb2JhbCBTdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5LmN1c3RvbWVyLWFjY291bnQge1xuICAgIC5teS1hY2NvdW50IHtcbiAgICAgICAgLnBhZ2UtdGl0bGUge1xuICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlLWJ1dHRvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhLFxuICAgICAgICAgICAgc3Bhbi5zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC00MnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkc2V0IGgyLFxuICAgICAgICAuYWRkcmVzc2VzLWxpc3QgaDIsXG4gICAgICAgIC5vcmRlci1kZXRhaWxzIGgyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFkZHJlc3Nlcy1saXN0IGgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kYXRhLXRhYmxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3Bhbi5ub2JyIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZC52aWV3IHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpZGViYXIge1xuICAgICAgICAuYmxvY2sge1xuICAgICAgICAgICAgb2wjY29tcGFyZS1pdGVtcyB7XG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICRib3gtc3BhY2luZyAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHAuYmxvY2stc3VidGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR0cmltO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG9sI2NhcnQtc2lkZWJhci1yZW9yZGVyIHtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkYm94LXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLWNhcnQge1xuICAgICAgICAgICAgLnN1bW1hcnkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLXJlb3JkZXIge1xuICAgICAgICAgICAgb2wjY2FydC1zaWRlYmFyLXJlb3JkZXIge1xuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJGJveC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvcm0tbGlzdCB7XG4gICAgLmN1c3RvbWVyLWRvYiB7XG4gICAgICAgIC5kb2ItbW9udGgsXG4gICAgICAgIC5kb2ItZGF5IHtcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5kb2IteWVhciB7XG4gICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBEYXNoYm9hcmRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jdXN0b21lci1hY2NvdW50IHtcbiAgICAuYmFjay1saW5rIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRhc2hib2FyZCB7XG4gICAgLmJveC1oZWFkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3gtdGl0bGUsXG4gICAgLmJveC1oZWFkLFxuICAgIC5ib3gtY29udGVudCxcbiAgICAuYmFjay1saW5rIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWFjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3gtYWNjb3VudCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuXG4gICAgICAgIHAsXG4gICAgICAgIGFkZHJlc3Mge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNlcmlmO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sMi1zZXQge1xuICAgICAgICAuY29sLTEsXG4gICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBwZXJjZW50YWdlKDc1LzYyMCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgLmJveC10aXRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICAgICAgICAgaDIsXG4gICAgICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogKDEuNCAqICRmLXNpemUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3gtcmV2aWV3cyB7XG4gICAgICAgICYuYm94LWFjY291bnQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmcgMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubnVtYmVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4O1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcblxuICAgICAgICAgICAgICAgIC5yYXRpbmdzIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnJhdGluZy1ib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDNweCAwIDAgMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQWRkcmVzcyBCb29rXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubXktYWNjb3VudCB7XG4gICAgLmFkZHJlc3Nlcy1saXN0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNlcmlmO1xuXG4gICAgICAgIC5jb2wtMSxcbiAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJHRyaW0gMDtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJGJveC1zcGFjaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICAuY29sLTEsXG4gICAgICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgbGkuZW1wdHkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAgICAgLmFkZHJlc3Nlcy1hZGRpdGlvbmFsIHtcbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBPcmRlciBWaWV3XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ub3JkZXItaW5mbyB7XG4gICAgcGFkZGluZy1ib3R0b206ICRib3gtc3BhY2luZztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlci1saWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcblxuICAgIGR0LFxuICAgIGRkLFxuICAgIHVsLFxuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgIGR0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAoJGJveC1zcGFjaW5nKjIpO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAoJGJveC1zcGFjaW5nKjIpO1xuXG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm9yZGVyLWRhdGUge1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5vcmRlci1pbmZvLWJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgKyAub3JkZXItaW5mby1ib3gge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgfVxuXG4gICAgLmNvbC0xIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICB9XG5cbiAgICAuY29sLTIge1xuICAgICAgICB3aWR0aDogNTIlO1xuICAgIH1cblxuICAgIC5jb2wtMSxcbiAgICAuY29sLTIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmJveC10aXRsZSB7XG4gICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGJveC1zcGFjaW5nO1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemU7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJveC1jb250ZW50IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zZXJpZjtcblxuICAgICAgICB0ZCxcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNlcmlmO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkYm94LXNwYWNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR0cmltLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNteS1vcmRlcnMtdGFibGUge1xuICAgIC5vcHRpb24tbGFiZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGJveC1zcGFjaW5nO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuXG4gICAgLm9wdGlvbi12YWx1ZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYm94LXNwYWNpbmcgKiAyO1xuICAgIH1cblxuICAgIHRyLmJ1bmRsZTpub3QoOmxhc3QtY2hpbGQpIHRkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG59XG5cbm9sI2NhcnQtc2lkZWJhci1yZW9yZGVyIHtcbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRib3gtc3BhY2luZztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgI215LW9yZGVycy10YWJsZSB7XG4gICAgICAgIC5vcHRpb24tbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAub3B0aW9uLXZhbHVlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGRbZGF0YS1yd2QtbGFiZWw9UXR5XSAubm9iciB7XG4gICAgICAgICAgICBiciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyLmJ1bmRsZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0ci5idW5kbGUuY2hpbGQge1xuICAgICAgICAgICAgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3QgdHIuc2hpcHBpbmcge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm9yZGVyLWFkZGl0aW9uYWwge1xuICAgIG1hcmdpbjogNDBweCAwO1xufVxuXG4ub3JkZXItZ2lmdC1tZXNzYWdlIHtcbiAgICBkZCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRib3gtc3BhY2luZztcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhsYXJnZSkge1xuICAgIC5kYXNoYm9hcmQge1xuICAgICAgICAuY29sMi1zZXQge1xuICAgICAgICAgICAgLmNvbC0xLFxuICAgICAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdHJpbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCB7XG4gICAgICAgIC5kYXRhLXRhYmxlIHtcbiAgICAgICAgICAgIHRkLnZpZXcgYSB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbGFyZ2UpIHtcbiAgICBib2R5LmN1c3RvbWVyLWFjY291bnQge1xuICAgICAgICAubXktYWNjb3VudCB7XG4gICAgICAgICAgICAudGl0bGUtYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgIHNwYW4uc2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IC0xMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgYm9keS5jdXN0b21lci1hY2NvdW50IHtcbiAgICAgICAgLmRhdGEtdGFibGUge1xuICAgICAgICAgICAgJi5vcmRlcnMge1xuICAgICAgICAgICAgICAgIHRoLnNoaXAsXG4gICAgICAgICAgICAgICAgdGQuc2hpcCxcbiAgICAgICAgICAgICAgICB0ZC5zdGF0dXMsXG4gICAgICAgICAgICAgICAgdGguc3RhdHVzIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3JkZXItaW5mby1ib3gge1xuICAgICAgICAuYm94LWNvbnRlbnQge1xuICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWRkcmVzc2VzLWxpc3Qge1xuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdHJpbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vcmRlci1pbmZvIHtcbiAgICAgICAgZHQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kYXNoYm9hcmQge1xuICAgICAgICAucGFnZS10aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC53ZWxjb21lLW1zZyB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG5cbiAgICAgICAgICAgIC5oZWxsbyB7XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJveC1hY2NvdW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbDItc2V0IHtcbiAgICAgICAgICAgIC5jb2wtMSxcbiAgICAgICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC0xIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDQlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICBib2R5LmN1c3RvbWVyLWFjY291bnQge1xuICAgICAgICAubXktYWNjb3VudCB7XG4gICAgICAgICAgICAuZm9ybS1saXN0IHtcbiAgICAgICAgICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgIGJvZHkuY3VzdG9tZXItYWNjb3VudCB7XG4gICAgICAgIC5teS1hY2NvdW50IHtcbiAgICAgICAgICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50aXRsZS1idXR0b25zIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXNtYWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICsgLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAub3JkZXItZGV0YWlscyBoMiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tc21hbGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b25zLXNldCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFkZHJlc3Nlcy1saXN0IHtcbiAgICAgICAgICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3JkZXItaW5mbyB7XG4gICAgICAgIG1hcmdpbi10b3A6ICR0cmltLXNtYWxsO1xuICAgIH1cblxuICAgIC5kYXRhLXRhYmxlIHtcbiAgICAgICAgJi5vcmRlcnMge1xuICAgICAgICAgICAgLmxpbmstcmVvcmRlcixcbiAgICAgICAgICAgIC5kYXRlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZC52aWV3IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kYXNoYm9hcmQge1xuICAgICAgICAuY29sMi1zZXQge1xuICAgICAgICAgICAgLmNvbC0xLFxuICAgICAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vcmRlci1pbmZvLWJveCB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAuY29sLTEsXG4gICAgICAgIC5jb2wtMiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogJHRyaW0tc21hbGwgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICsgLm9yZGVyLWluZm8tYm94IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI215LXJldmlld3MtdGFibGUge1xuICAgICAgICAubm9iciB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBOZXdzbGV0dGVyIFN1YnNjcmlwdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmJvZHkubmV3c2xldHRlci1tYW5hZ2UtaW5kZXggLm15LWFjY291bnQge1xuICAgIC5maWVsZHNldCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLmZpZWxkc2V0IGgyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuZm9ybS1saXN0IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLWZpZWxkc2V0LWJvcmRlci1saWdodDtcbiAgICAgICAgcGFkZGluZy10b3A6ICRnYXA7XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDb250YWN0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNvbnRhY3RzLWluZGV4LWluZGV4IHtcbiAgICAuYnV0dG9ucy1zZXQge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHRyaW07XG4gICAgICAgIG1heC13aWR0aDogNDM1cHg7XG5cbiAgICAgICAgcC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcC5yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQYXlQYWxcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5wYXlwYWwtcmV2aWV3LW9yZGVyIHtcbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0gKyAxMDApIHtcbiAgICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgICAgICAgICAgLmNvbDItc2V0IHtcbiAgICAgICAgICAgICAgICAuY29sLTEsXG4gICAgICAgICAgICAgICAgLmNvbC0yIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbmZvLXNldCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtZmllbGRzZXQtYm9yZGVyLWxpZ2h0O1xuICAgIH1cblxuICAgIC5idXR0b25zLXNldCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG4gICAgICAgIC5jb2wtMSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC5pbmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi50b3AtY29udGFpbmVyIC5ibWwtYWQge1xuICAgIG1hcmdpbi10b3A6ICRlbGVtZW50LXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ibWwtYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgYTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IC8vIE92ZXJyaWRlIGlubGluZSBzdHlsZVxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4vLyBQcmV2ZW50IHNtYWxsIDJweCBzcGFjZSBvbiByaWdodCBzaWRlIG9mIGltYWdlXG4uY2FydC10b3RhbHMtd3JhcHBlciAuYm1sLWFkLmxhcmdlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAuYm1sLWFkLnNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgLmJtbC1hZC5sYXJnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuZGl2LnBheXBhbC1sb2dvIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAkdHJpbS1zbWFsbCAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3BhbiA+IGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtdHlwZXMge1xuICAgIGRpdi5wYXlwYWwtbG9nbyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxuLmJtbC1jaGVja291dC10eXBlIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5zaWRlYmFyIHtcbiAgICAucGF5cGFsLWxvZ28ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBSZXZpZXcgLSBDdXN0b21lclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuI2N1c3RvbWVyLXJldmlld3Mge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuXG4gICAgLnJldmlldy1oZWFkaW5nIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICBwYWRkaW5nOiAkZ2FwIDAgNXB4O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2VyIHtcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgICAgIC5jb3VudC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIC5saW1pdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hbW91bnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGNvbG9yOiAkYy1ibHVlO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1ibHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDI1cHg7XG4gICAgICAgIHdpZHRoOiA0NzBweDtcblxuICAgICAgICBoNCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICBlbSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWxpc3Qge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbWFyZ2luOiAkZ2FwIDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgd2lkdGg6IDQ3MHB4O1xuXG4gICAgICAgICAgICAuaW5saW5lLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmlucHV0LWJveCB7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgICAgICAgICAmW3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiA0NzBweDtcbiAgICB9XG5cbiAgICBkbCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG5cbiAgICAgICAgZHQge1xuICAgICAgICAgICAgbWFyZ2luOiAkZ2FwIDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZGQge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAkZ2FwIDA7XG5cbiAgICAgICAgICAgIC5yYXRpbmdzLXRhYmxlIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucmV2aWV3LWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDE1cHggMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJldmlldy1tZXRhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYmx1ZTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucmV2aWV3LXN1bW1hcnktdGFibGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIG1hcmdpbjogMCAwICRnYXA7XG5cbiAgICB0aGVhZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMTVweCA3cHggMTBweCA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Ym9keSB7XG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgICAgIH1cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDExcHggMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yYXRpbmctYm94IHtcbiAgICAgICAgLnJhdGluZy1udW1iZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01OTlweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRmLXNpemU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdG9wOiAycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmF0aW5ncyAtIEdsb2JhbFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnJhdGluZ3MtdGFibGUge1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgdGgge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgIC5yYXRpbmctYm94IHtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTYxNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgIHdpZHRoOiA2NXB4O1xuXG4gICAgICAgIC5yYXRpbmcge1xuICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1zcHJpdGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02MDBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICBib2R5LnJldmlldy1wcm9kdWN0LWxpc3Qge1xuICAgICAgICAucHJvZHVjdC12aWV3IHtcbiAgICAgICAgICAgIC5wcm9kdWN0LXNob3Age1xuICAgICAgICAgICAgICAgIC5wcmljZS1pbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5leHRyYS1pbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA4NCU7XG5cbiAgICAgICAgICAgICAgICAgICAgLnJhdGluZ3MtdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkZ2FwIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgNTM1cHgpIHtcbiAgICBib2R5LnJldmlldy1wcm9kdWN0LWxpc3Qge1xuICAgICAgICAucHJvZHVjdC12aWV3IHtcbiAgICAgICAgICAgIC5wcm9kdWN0LXNob3Age1xuICAgICAgICAgICAgICAgIC5leHRyYS1pbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5yYXRpbmdzLXRhYmxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDUyMHB4KSB7XG4gICAgI2N1c3RvbWVyLXJldmlld3Mge1xuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5mb3JtLWxpc3Qge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgLmlubGluZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAuaW5wdXQtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbnMtc2V0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJldmlldy1zdW1tYXJ5LXRhYmxlIHtcblxuICAgICAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucmF0aW5nLWJveCB7XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRmLXNpemUgKiAxLjQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAucmF0aW5nIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnJhdGluZy1udW1iZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDQ1MHB4KSB7XG4gICAgI2N1c3RvbWVyLXJldmlld3MgZGwgZGQgLnJhdGluZ3MtdGFibGUgdHIge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFJldmlldyBWaWV3IFBhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucmV2aWV3LXByb2R1Y3QtdmlldyB7XG4gICAgLnByb2R1Y3QtcmV2aWV3IHtcbiAgICAgICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWltZy1ib3gge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcblxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicCgnbWF4LXdpZHRoJywgJGJwLW1lZGl1bSkge1xuICAgIC5yZXZpZXctcHJvZHVjdC12aWV3IHtcbiAgICAgICAgLnByb2R1Y3QtcmV2aWV3IHtcbiAgICAgICAgICAgIC5wcm9kdWN0LWltZy1ib3gge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2Utb3V0O1xuXG4gICAgJi5zbGljay1pbml0aWFsaXplZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjaywgLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG5cbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4uc2xpY2stcHJldiwgLnNsaWNrLW5leHQge1xuICAgIGJhY2tncm91bmQ6ICRjLXRleHQ7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogOXB4IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTE3cHg7XG4gICAgbGVmdDogLTQwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICB9XG59XG4uc2xpY2stbmV4dCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTQwcHg7XG5cbiAgICBpbWcge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xuICAgIH1cbn1cbi5zbGljay1kb3RzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBidXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNiNmI2YjY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCA3cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0tcztcblxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYy1hY3Rpb247XG4gICAgICAgIH1cbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIG91dGxpbmU6IG5vbmVcbn1cbi53b3JkcHJlc3MtbGF5b3V0LWZ1bGxzY3JlZW4ge1xuICAgIC5mdWxsc2NyZWVuLXNsaWRlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDkwdmg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcblxuICAgICAgICAuc2xpY2stbGlzdCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgIC5zbGljay10cmFjayB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgICAgIHJpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB9XG4gICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IDQwcHg7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB9XG4gICAgICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogJHRyaW07XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJi5zbGljay1hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYy1hY3Rpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAgICAgICAgICYuc2xpZGUxIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQUFDNTAyO1xuXG4gICAgICAgICAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MCUpO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA2OHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogODhweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1sYXJnZSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnNsaWRlMiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hYm91dC1zbGlkZXIvc3RvY2suanBnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2Jsb2NrLXByb2R1Y3RmaW5kZXIge1xuICAgIC5zbGljay1wcmV2LCAuc2xpY2stbmV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNjOWM5Yzk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYXJyb3ctbGVmdC5zdmcpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICB0b3A6IDMwJTtcbiAgICB9XG5cbiAgICAuc2xpY2stcHJldiB7XG4gICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgfVxuXG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fycm93LXJpZ2h0LnN2Zyk7XG4gICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgIH1cbn0iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFNsaWRlc2hvd1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNsaWRlc2hvdy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46ICRnYXAgMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuXG4gICAgLnNsaWRlc2hvdyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkICNGRkZGRkY7XG4gICAgICAgICYgPiBsaSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIC8vIGluIGNhc2Ugc2NyaXB0IGRvZXMgbm90IGxvYWRcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNsaWRlc2hvdy1wYWdlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDExNTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgdG9wOiBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgQGluY2x1ZGUgbm90LXNlbGVjdGFibGU7XG5cbiAgICBzcGFuIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsO1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAjREREREREO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICRwYWdlci1zaXplOiAxNnB4O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHBhZ2VyLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwYWdlci1zaXplO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogKC0kcGFnZXItc2l6ZS8yKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICgtJHBhZ2VyLXNpemUvMik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYnV0dG9uLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jeWNsZS1wYWdlci1hY3RpdmU6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJ1dHRvbi1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gKiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbi5zbGlkZXNob3ctcHJldixcbi5zbGlkZXNob3ctbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTUlO1xuICAgIG1heC13aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHotaW5kZXg6IDExMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgbm90LXNlbGVjdGFibGUoKTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuLnNsaWRlc2hvdy1wcmV2IHtcbiAgICBsZWZ0OiA4cHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMTVweCAxNXB4IDE1cHggMDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjRkZGRkZGIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGMtYnV0dG9uLWhvdmVyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLnNsaWRlc2hvdy1uZXh0IHtcbiAgICByaWdodDogOHB4O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDE1cHggMCAxNXB4IDE1cHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0ZGRkZGRjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkYy1idXR0b24taG92ZXI7XG4gICAgfVxufVxuXG4uY3ljbGUtY2FwdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3R0b206IDE1cHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgei1pbmRleDogMTEwO1xufVxuXG4uY3ljbGUtb3ZlcmxheSB7XG4gICAgZm9udC1mYW1pbHk6IHRhaG9tYSwgYXJpYWw7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxMjA7XG4gICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgb3BhY2l0eTogLjU7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFdpc2hsaXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4jd2lzaGxpc3QtdGFibGUge1xuICAgIHRoIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYuY2xlYW4tdGFibGUge1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtdGFibGUtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB0aCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhsO1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1saW5rO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndpc2hsaXN0LXNrdSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eHM7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICBtYXJnaW46IDVweCAwO1xuICAgIH1cblxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGMtaW5wdXQtYm9yZGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA0NXB4O1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHhzO1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcblxuICAgICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pdGVtLW1hbmFnZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBtYXgtd2lkdGg6IDQ1MHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXh4cztcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydC1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHRkIHtcbiAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMTNweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSB7XG4gICAgICAgICAgICB3aWR0aDogM2VtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLXByaWNlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcblxuICAgICAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IDVweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRydW5jYXRlZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucmVtb3ZlLXdoaXNobGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idG4tcmVtb3ZlIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLXJlbW92ZSB7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24sXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAucHJpY2UtYm94IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcblxuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ2lmdHJlZ2lzdHktYWRkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuXG4gICAgICAgIC5jaGFuZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudHJ1bmNhdGVkIHtcbiAgICAgICAgLmRldGFpbHMge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZFtkYXRhLXJ3ZC1sYWJlbF06YmVmb3JlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14bGFyZ2UpIHtcbiAgICAjd2lzaGxpc3QtdGFibGUge1xuICAgICAgICAmLmNsZWFuLXRhYmxlIHtcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYm94LXNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgICN3aXNobGlzdC10YWJsZSB7XG4gICAgICAgICYuY2xlYW4tdGFibGUgdGQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cbiAgICAgICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDExMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgICN3aXNobGlzdC10YWJsZSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgIGhlaWdodDogNjhweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pdGVtLW1hbmFnZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1pbWFnZSB7XG4gICAgICAgICAgICB3aWR0aDogNzBweDtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnJlbW92ZS13aGlzaGxpc3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWNhcnQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgI3dpc2hsaXN0LXRhYmxlIHtcbiAgICAgICAgdGQuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1xdWFudGl0eSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0ZC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlLFxuICAgICAgICB0aC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAjd2lzaGxpc3QtdGFibGUge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICB0aC5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLWltYWdlLFxuICAgICAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLWluZm8sXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcXVhbnRpdHksXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tcHJpY2UsXG4gICAgICAgICAgICAmLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgZW1wdHktY2VsbHM6IGhpZGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDExM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMTNweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLXF1YW50aXR5LFxuICAgICAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLXByaWNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkdHJpbS1zbWFsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY2FydC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuY3VzdG9tZXItd2lzaGxpc3QtaXRlbS1jYXJ0IHtcbiAgICAgICAgICAgICAgICAuY2FydC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jdXN0b21lci13aXNobGlzdC1pdGVtLXJlbW92ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgICAgICAgICByaWdodDogMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmNsZWFuLXRhYmxlIHtcbiAgICAgICAgICAgIHRkLmN1c3RvbWVyLXdpc2hsaXN0LWl0ZW0tY2FydCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFdpc2hsaXN0IFNpZGViYXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5ibG9jay13aXNobGlzdCB7XG5cbiAgICAubWluaS1wcm9kdWN0cy1saXN0ID4gbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtZGV0YWlscyAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAucHJpY2UtYm94IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAucHJpY2UtYm94LFxuICAgIC5wcmljZS1ib3ggLnByaWNlLFxuICAgIC5saW5rLWNhcnQge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG4gICAgfVxuXG4gICAgLmxpbmstY2FydCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogN3B4O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyLWxpZ2h0O1xuICAgIH1cblxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDaGVja291dCAtIE1pbmkgY2FydFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmhlYWRlci1taW5pY2FydCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLm1pbmljYXJ0LW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogJGJveC1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5lbXB0eSB7XG4gICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbG9hZGluZ092ZXJsYXkoKTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuYmxvY2stY2FydCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5ibG9jay1zdWJ0aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjNTBBNENGO1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcblxuICAgICAgICAuY2xvc2Uge1xuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLThweDtcbiAgICAgICAgICAgIHJpZ2h0OiAkYm94LXNwYWNpbmcgLSAxM3B4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5taW5pLXByb2R1Y3RzLWxpc3Qge1xuICAgICAgICBwYWRkaW5nOiAkYm94LXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDVweCA4cHggMTFweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREREREREO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmLmxhc3Qge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmluZm8td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ2FwO1xuICAgICAgICB9XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0LXByaW1hcnk7XG4gICAgICAgICAgICBjbGVhcjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAucXR5LXdyYXBwZXIge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzNweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5xdHkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICAgICAgIHdpZHRoOiAzLjJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5xdWFudGl0eS1idXR0b24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcztcblxuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnZpc2libGUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3VidG90YWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREREREREO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyZW07XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0LXByaW1hcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWluaWNhcnQtYWN0aW9ucyB7XG4gICAgICAgIHBhZGRpbmc6ICRib3gtc3BhY2luZztcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTQ1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC1saW5rIHtcbiAgICAgICAgICAgIGhlaWdodDogMzNweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzOXB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS1zO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBheXBhbC1sb2dvIHtcbiAgICAgICAgICAgIC5wYXlwYWwtb3Ige1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbWluaWNhcnQtZXJyb3ItbWVzc2FnZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAjbWluaWNhcnQtc3VjY2Vzcy1tZXNzYWdlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogZ3JlZW47XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLy9oaWRlIGpjYXJvdXNlbCBjb250cm9scyB1bnRpbCBjYXJvdXNlbCBpcyBwcm9wZXJseSBpbnRlZ3JhdGVkIHdpdGggZGVzaWduXG4gICAgLmpjYXJvdXNlbC1jb250cm9sLXByZXYsXG4gICAgLmpjYXJvdXNlbC1jb250cm9sLW5leHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmhlYWRlci1taW5pY2FydC5za2lwLWFjdGl2ZSAuYmxvY2stY2FydCxcbi5ibG9jay1jYXJ0LnNraXAtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtbWVkaXVtICsgMSkge1xuICAgIC5jaGVja291dC10eXBlcy5taW5pY2FydCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAuaGVhZGVyLW1pbmljYXJ0IGEuc2tpcC1jYXJ0IHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC5oZWFkZXItbWluaWNhcnQge1xuICAgICAgICAuc3VidG90YWwge1xuICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0VERURFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5xdWFudGl0eS1idXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLW1pbmljYXJ0IC5ibG9jay1jYXJ0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0cmltLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlci1taW5pY2FydCAuYmxvY2stc3VidGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICR0cmltLXNtYWxsICsgNDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5taW5pY2FydC1hY3Rpb25zIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzM3B4O1xuXG4gICAgICAgICAgICAuY2FydC1saW5rIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRib3gtc3BhY2luZztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jaGVja291dC10eXBlcy5taW5pY2FydCB7XG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgLnBheXBhbC1sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuYm1sX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wYXlwYWwtb3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMTBweCA1cHggMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCA3NDBweCkge1xuICAgIC5oZWFkZXItbWluaWNhcnQge1xuICAgICAgICAubWluaWNhcnQtYWN0aW9ucyB7XG4gICAgICAgICAgICAuY2FydC1saW5rIHtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNoZWNrb3V0LXR5cGVzLm1pbmljYXJ0IHtcbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIC5wYXlwYWwtbG9nbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAucGF5cGFsLW9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgLnBheXBhbC1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAucGF5cGFsLW9yIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgIC5oZWFkZXItbWluaWNhcnQge1xuICAgICAgICAubWluaWNhcnQtYWN0aW9ucyB7XG4gICAgICAgICAgICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2VhcmNoIC0gQXV0byBTdWdnZXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAyMDA7XG5cbiAgICB1bCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItaGlnaGxpZ2h0O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBjb2xvcjogJGMtbGluaztcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14cztcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCA2cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtbGluay1ob3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYWN0aW9uO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFtb3VudCB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKHVwLCA3cHgsICRjLWFjdGlvbik7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAtN3B4O1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogU2VhcmNoIC0gQWR2YW5jZWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5hZHZhbmNlZC1zZWFyY2gge1xuICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgcGFkZGluZzogJHRyaW07XG5cbiAgICBzZWxlY3QubXVsdGlzZWxlY3Qge1xuICAgICAgICBvcHRpb24ge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHggNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC14c21hbGwpIHtcbiAgICAuYWR2YW5jZWQtc2VhcmNoIHtcbiAgICAgICAgcGFkZGluZzogJHRyaW0tc21hbGw7XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBBY2NvdW50IC0gUmV2aWV3c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnByb2R1Y3QtcmV2aWV3IHtcbiAgICAucHJvZHVjdC1pbWctYm94IHtcbiAgICAgICAgcC5sYWJlbCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yYXRpbmctYm94IHtcbiAgICAgICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICMzMzk5Q0M7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yYXRpbmdzLXRhYmxlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGdhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yYXRpbmdzLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgZHQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogJGdhcCAwO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRkIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNzM3MzczO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtcztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSArIDEpIHtcbiAgICAucHJvZHVjdC1yZXZpZXcge1xuICAgICAgICAucmF0aW5ncy10YWJsZSB7XG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsIDExMjZweCkge1xuICAgIC5wcm9kdWN0LXJldmlldyB7XG4gICAgICAgIC5yYXRpbmdzLXRhYmxlIHtcbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDMyMHB4KSB7XG4gICAgLnByb2R1Y3QtcmV2aWV3IHtcbiAgICAgICAgLnJhdGluZ3MtdGFibGUge1xuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDTVMgUGFnZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnRlbnQgZm9yIHN0YXRpYyBwYWdlc1xuXG4uY21zLXBhZ2Utdmlldyxcbi5jbXMtbm8tcm91dGUge1xuICAgIC5wYWdlLXRpdGxlLFxuICAgIC5wYWdlLWhlYWQge1xuICAgICAgICBoMSxcbiAgICAgICAgaDMge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN0ZCB7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2VyaWY7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1ncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgY29sb3I6ICRjLXRleHQtcHJpbWFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0LXByaW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zZXJpZjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbC1sZWZ0IHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNtcy1uby1yb3V0ZSB7XG4gICAgLnN0ZCB7XG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDY4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGl2LmxlZnQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2ODBweDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAuYW50NDA0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jbXMtcGFnZS12aWV3IC5zdGQsXG4uY21zLWhvbWUgLnN0ZCxcbi5jbXMtbm8tcm91dGUgLnN0ZCB7XG4gICAgLm1lc3NhZ2VzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJveC1zcGFjaW5nO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQWNjb3JkaXRpb25cblxuI2FjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uO1xuXG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLnBsdXNpbWFnZSBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNpdGVtYXBcblxuLnBhZ2Utc2l0ZW1hcCB7XG4gICAgLmxpbmtzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBtYXJnaW46IDAgMjBweCAwIDA7XG5cbiAgICAgICAgYSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIH1cblxuICAgIC5zaXRlbWFwIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBtYXJnaW46IDE1cHggMDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbjogM3B4IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnRhY3QgcGFnZVxuXG4uY29udGFjdHMtaW5kZXgtaW5kZXgge1xuICAgIGgxIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbn1cblxuI2NvbnRhY3RGb3JtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cbiAgICBoMiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5maWVsZHNldCAubGVnZW5kICsgLnJlcXVpcmVkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbWVkaXVtKSB7XG5cbiAgICAjY29udGFjdEZvcm0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBQcmljaW5nIENvbmRpdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5wcmljZS1ib3gge1xuICAgIC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRjLXJlZDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXhzO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1hcC1pbmZvIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIC5tYXAtaW5mbyB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlLWJveC5tYXAtaW5mbyA+IGEge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENvb2tpZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5ub3RpY2UtY29va2llIHtcbiAgICAubm90aWNlLWlubmVyIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RpY2UtdGV4dCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAoNDBweCAtICRmLXNpemUteHhzKSAvIDI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAoNDBweCAtICRmLXNpemUteHhzKSAvIDI7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbGFyZ2UpIHtcbiAgICAubm90aWNlLWNvb2tpZSB7XG4gICAgICAgIC5ub3RpY2UtdGV4dCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDg2JTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuXG4gICAgLm5vdGljZS1jb29raWUge1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgICAgICAgLm5vdGljZS10ZXh0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogODIlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsIDYyMHB4KSB7XG5cbiAgICAubm90aWNlLWNvb2tpZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcblxuICAgICAgICAubm90aWNlLWlubmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMTBweDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubm90aWNlLXRleHQge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIFRhZ3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiNhZGRUYWdGb3JtIGJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4jYWRkVGFnRm9ybSAuZm9ybS1hZGQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ucHJvZHVjdC10YWdzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1tb2R1bGUtYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZzogNXB4IDElIDEwcHg7XG4gICAgd2lkdGg6IDk4JTtcbn1cbi5wcm9kdWN0LXRhZ3MgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbn1cbi5wcm9kdWN0LXRhZ3MgbGkubGFzdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG4udGFncy1saXN0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLnRhZ3MtbGlzdCA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4uYmxvY2stdGFncyAuYWN0aW9ucyA+IGEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5teS10YWctZWRpdCB7XG4gICAgLmJ1dHRvbi5idG4tcmVtb3ZlIHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbkBpbmNsdWRlIGJwIChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgICAudGFncy1saXN0ID4gbGksXG4gICAgLnRhZ3MtbGlzdCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2FwdGNoYVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jYXB0Y2hhLW5vdGUge1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG59XG4uY2FwdGNoYS1pbWFnZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDI1OHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uY2FwdGNoYS1pbWFnZSAuY2FwdGNoYS1pbWcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNmI2YjY7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB3aWR0aDogMTAwJTtcbn1cbi5yZWdpc3RlcmVkLXVzZXJzIC5jYXB0Y2hhLWltYWdlIHsgbWFyZ2luOiAwIH1cbi5jYXB0Y2hhLXJlbG9hZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDJweDtcbiAgICByaWdodDogMnB4O1xufVxuLmNhcHRjaGEtcmVsb2FkLnJlZnJlc2hpbmcge1xuICAgIGFuaW1hdGlvbjogcm90YXRlIDEuNXMgaW5maW5pdGUgbGluZWFyO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGUgMS41cyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgLW1vei1hbmltYXRpb246IHJvdGF0ZSAxLjVzIGluZmluaXRlIGxpbmVhcjtcbn1cbi5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSAuc2NhZmZvbGQtZm9ybSAuY2FwdGNoYS1pbnB1dC1jb250YWluZXIgbGFiZWw6Zmlyc3QtY2hpbGQgeyB3aWR0aDogMTAwJSB9XG4uY2FwdGNoYS1yZWxvYWQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNHB4O1xuICAgIHRvcDogNHB4O1xufVxuLmNhcHRjaGEtaW1nIHsgYm9yZGVyOiAyMHB4IHNvbGlkICNiYmIgfVxuLmNhcHRjaGEtaW5wdXQtY29udGFpbmVyIHsgbWFyZ2luLWJvdHRvbTogMTBweCB9XG4uY29udHJvbC5uZXdzbGV0dGVyLWJveCwgLmNhcHRjaGEtaW5wdXQtY29udGFpbmVyLCAuY2FwdGNoYS1pbWctY29udGFpbmVyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcblxuICAgICY6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IEJpbGxpbmcgRml4IHRvIHBsYWNlIHRoZSBDYXB0Y2hhIHByb3Blcmx5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuI2NvLWJpbGxpbmctZm9ybSB1bC5mb3JtLWxpc3QgPiAuY29udHJvbCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwIDAgNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBBY2NvdW50IC0gT3JkZXJzLCBJbnZvaWNlcywgQ3JlZGl0IE1lbW9zLlxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGluY2x1ZGUgYnAgKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlLFxuICAgIC5zYWxlcy1vcmRlci1jcmVkaXRtZW1vLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCB7XG4gICAgICAgIC5zdWItdGl0bGUge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmLXNpemUtbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5vcmRlci1saW5rcyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUmVjdXJyaW5nIFByb2ZpbGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4jcmVjdXJyaW5nX3Byb2ZpbGVfbGlzdF92aWV3IHtcblxuICAgIHRoIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAgKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteHM7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB9XG4gICAgfSAvL2VuZCBicC14c21hbGwgYnJlYWtwb2ludFxuXG59IC8vZW5kICNyZWN1cnJpbmdfcHJvZmlsZV9saXN0X3ZpZXdcblxuLnJlY3VycmluZy1wcm9maWxlcy10aXRsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRlbGVtZW50LXNwYWNpbmc7XG4gICAgfVxufVxuXG5ib2R5LmN1c3RvbWVyLWFjY291bnQgLm15LWFjY291bnQgLnRpdGxlLWJ1dHRvbnMucmVjdXJyaW5nLXByb2ZpbGVzLXRpdGxlLWJ1dHRvbnMge1xuICAgIGZsb2F0OnJpZ2h0O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuXG4gICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxufVxuXG4ucmVjdXJyaW5nLXByb2ZpbGVzLW1lc3NhZ2VzIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuXG4jcmVjdXJyaW5nX3N0YXJ0X2RhdGVfdHJpZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBCaWxsaW5nIEFncmVlbWVudHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5iaWxsaW5nLWFncmVlbWVudHMge1xuICAgIC5pbmZvLWJveCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybS1saXN0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGJveC1zcGFjaW5nLWxhcmdlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGVsZW1lbnQtc3BhY2luZztcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjcGF5bWVudF9tZXRob2Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogJGVsZW1lbnQtc3BhY2luZztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtc3BhY2luZztcbiAgICB9XG59XG5cbi5iaWxsaW5nLWFncmVlbWVudC12aWV3LWhlYWRlci13cmFwcGVyIHtcbiAgICAuaGVhZGluZyB7XG4gICAgICAgIG1heC13aWR0aDogODAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmlsbGluZy1hZ3JlZW1lbnQtZGV0YWlscyB7XG4gICAgdGQsIHRoIHtcbiAgICAgICAgcGFkZGluZzogJGVsZW1lbnQtc3BhY2luZy8yO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtbGFyZ2UpIHtcbiAgICAuYmlsbGluZy1hZ3JlZW1lbnRzIHtcbiAgICAgICAgLmRhdGEtdGFibGUge1xuICAgICAgICAgICAgLmNyZWF0ZWQtYXQsXG4gICAgICAgICAgICAudXBkYXRlZC1hdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogUG9wdWxhciBTZWFyY2ggVGVybXMgQ2xvdWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jYXRhbG9nc2VhcmNoLXRlcm0tcG9wdWxhciAudGFncy1saXN0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNhdGFsb2dzZWFyY2gtdGVybS1wb3B1bGFyIC50YWdzLWxpc3QgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi1yaWdodDogMjVweDtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogV2lkZ2V0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogQWRkIHRvIGNhcnQgYnkgU0tVXG4gKi9cblxuLnNpZGViYXIge1xuICAgIC53aWRnZXQtYWRkYnlza3Uge1xuICAgICAgICAuc2t1LXRhYmxlIHtcbiAgICAgICAgICAgIC5pbnB1dC10ZXh0Om5vdCgucXR5KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0rMSkge1xuICAgICAgICAgICAgICAgICAgICAvL3ByZXZlbnQgd2lkZ2V0IGluIGxlZnQvcmlnaHQgY29sdW1uIGZyb20gZXhjZWVkaW5nIGNvbHVtbiB3aWR0aFxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndpZGdldCB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi53aWRnZXQgLnBhZ2VyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLy8gSW1wbGVtZW50IGN1c3RvbSBncmlkIGJyZWFrcG9pbnRzIGZvciBncmlkcyB0aGF0IGFyZSBjb250YWluZWQgd2l0aGluIHdpZGdldHNcbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXhsYXJnZSkge1xuICAgIC5jb2wyLWxlZnQtbGF5b3V0LFxuICAgIC5jb2wyLXJpZ2h0LWxheW91dCxcbiAgICAuY29sMy1sYXlvdXRcbiAgICB7XG4gICAgICAgIC5jb2wtbWFpbiAud2lkZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JpZCg0LCA5NjAsIFwid2lkZ2V0XCIpO1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJvZHVjdC1ncmlkKDUsIDk2MCwgXCJ3aWRnZXRcIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC5jb2wxLWxheW91dCB7XG4gICAgICAgIC5jb2wtbWFpbiAud2lkZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JpZCg0LCA5NjAsIFwid2lkZ2V0XCIpO1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJvZHVjdC1ncmlkKDUsIDk2MCwgXCJ3aWRnZXRcIik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICpcbiAqIENoZWNrb3V0IC0gTXVsdGlwbGUgQWRkcmVzc2VzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5ib2R5W2NsYXNzKj1cImNoZWNrb3V0LW11bHRpc2hpcHBpbmctXCJdIHtcbiAgICAuY2hlY2tvdXQtcHJvZ3Jlc3Mge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDElIDZweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1idXR0b24tc2Vjb25kYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5sYXN0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAucGFnZS10aXRsZSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgaDEge1xuICAgICAgICAgICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgICAgIH1cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm11bHRpcGxlLWNoZWNrb3V0ID4gaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cbiAgICAubWVzc2FnZXMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5jb2wtMi5jb2wtd2lkZSB7XG4gICAgICAgIHdpZHRoOiA2NiU7XG4gICAgfVxuICAgIC5jb2wtMS5jb2wtbmFycm93IHtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICB9XG4gICAgLmFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgIC5ncmFuZC10b3RhbCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgICNjaGVja291dC1yZXZpZXctc3VibWl0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgICNyZXZpZXctYnV0dG9ucy1jb250YWluZXIge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYWRkcmVzc2VzIHtcbiAgICAuYnRuLXJlbW92ZTIge1xuICAgICAgICB0ZXh0LWluZGVudDogLTU1NTVweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1zaGlwcGluZyB7XG4gICAgLmdpZnQtbWVzc2FnZXMge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgICAuZ2lmdC1tZXNzYWdlcy1mb3JtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgaDQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgfVxuICAgICAgICAuZm9ybS1saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICB9XG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLXNoaXBwaW5nLFxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyxcbi5jaGVja291dC1tdWx0aXNoaXBwaW5nLW92ZXJ2aWV3IHtcbiAgICAuY29sLTEsIC5jb2wtMiB7XG4gICAgICAgIC5ib3gtdGl0bGUge1xuICAgICAgICAgICAgaDIsIGgzLCBoNCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYy1tb2R1bGUtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IGg0IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjLW1vZHVsZS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgICAgIC5ib3gtY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYmlsbGluZyB7XG4gICAgLnNwLW1ldGhvZHMgZHQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4jbXVsdGlzaGlwLWFkZHJlc3Nlcy10YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5hLWNlbnRlci5sYXN0ID4gYSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuI3Jldmlldy1vcmRlci1mb3JtID4gZGl2Om50aC1jaGlsZCgzKSA+IGRpdi5kaXZpZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjbGVhcjpib3RoO1xufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1sYXJnZSkge1xuICAgIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0ge1xuICAgICAgICAuY2hlY2tvdXQtcHJvZ3Jlc3Mgc3BhbiB7XG4gICAgICAgICAgICB3b3JkLXNwYWNpbmc6IDMwMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICNyZXZpZXctb3JkZXItZm9ybXtcbiAgICAgICAgLmNvbC0xLFxuICAgICAgICAuY29sLTIge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIGJvZHlbY2xhc3MqPVwiY2hlY2tvdXQtbXVsdGlzaGlwcGluZy1cIl0ge1xuICAgICAgICAuY2hlY2tvdXQtcHJvZ3Jlc3Mgc3BhbiB7XG4gICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgfVxuICAgICAgICAuY2hlY2tvdXQtcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMyU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICB3b3JkLXNwYWNpbmc6IDFweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYm94LXRpdGxlIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLnBhZ2UtdGl0bGUgLmJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmVhcml6ZS10YWJsZSB7XG4gICAgICAgICAgICB0Zm9vdCB0ZCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNvbC0xLmNvbC1uYXJyb3csIC5jb2wtMi5jb2wtd2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG4gICAgLmNoZWNrb3V0LW11bHRpc2hpcHBpbmctYWRkcmVzc2VzIC5saW5lYXJpemUtdGFibGUgdGJvZHkgdGRbZGF0YS1yd2QtbGFiZWxdIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgYm9keVtjbGFzcyo9XCJjaGVja291dC1tdWx0aXNoaXBwaW5nLVwiXSB7XG4gICAgICAgIC5idXR0b25zLXNldCAuYmFjay1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiIGhyIHtcbiAgICBtYXJnaW46IDJlbSAwO1xuICAgIGJvcmRlcjogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbiAgfVxuYm9keS5pcy1ibG9nIHtcbiAgaWZyYW1lOm5vdChbdGl0bGU9XCJyZUNBUFRDSEEtV2lkZ2V0XCJdKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzMDBweDtcbiAgfVxuIFxuICAucGFnZS1sYXlvdXQge1xuICAgICYtLW5hcnJvdyB7XG4gICAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgICAmLS1mdWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICAucGFnZS10ZW1wbGF0ZSB7XG4gICAgJi0tY29udGFjdF9wZW9wbGUge1xuICAgIH1cbiAgfVxufVxuLnRlc3QtZGV2aWNlLWJsb2NrIHtcbiAgbWFyZ2luOiAxLjVlbSAwO1xufVxuLndvcmRwcmVzcy1wYWdlLTc5IHtcbiAgLmJsb2NrLWJsb2ctbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2hlYWRlci1uYXYge1xuICAubmF2LTEge1xuICAgIC52aWV3LWFsbCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuLmlzLWJsb2cge1xuICAjaGVhZGVyLW5hdiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgfVxuICAuY29sLW1haW4ge1xuICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICB9XG59XG4ud29yZHByZXNzLWxheW91dC1mdWxsc2NyZWVuLCAud29yZHByZXNzLWluZGV4LWluZGV4LCAud29yZHByZXNzLXBvc3QtdmlldyB7XG4gICNoZWFkZXItbmF2IHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG59XG5cbi5sYXlvdXQtbGFuZGluZ3BhZ2Uge1xuICAjaGVhZGVyLW5hdiB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5wb3N0LWVudHJ5IGhyOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi53b3JkcHJlc3MtcG9zdC12aWV3IHtcbiAgLm1haW4tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG4ucmVzZWxsZXJzLnJvdzpsYXN0LWNoaWxkLCAucGVvcGxlLnJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogJHRyaW0gKiAyO1xufVxuLndvcmRwcmVzcy1sYXlvdXQtY29sMi1yaWdodCwgLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IHtcbiAgI2hlYWRlci1uYXYge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgcGFkZGluZy1ib3R0b206ICR0cmltO1xuICB9XG59XG5cbkBpbXBvcnQgXCJsYXlvdXRcIjtcbkBpbXBvcnQgXCJzaWRlYmFyXCI7XG5cbkBpbXBvcnQgXCJwb3N0L2xpc3RcIixcbiAgICAgICAgXCJwb3N0L3ZpZXdcIjtcblxuQGltcG9ydCBcInBhZ2Uvdmlld1wiO1xuXG5AaW1wb3J0IFwibW9kdWxlcy9wZW9wbGVcIixcbiAgICAgICAgXCJtb2R1bGVzL3Jlc2VsbGVyc1wiLFxuICAgICAgICBcIm1vZHVsZXMvZm9ybXNcIixcbiAgICAgICAgXCJtb2R1bGVzL2Rvd25sb2Fkc1wiO1xuIiwiYm9keS5pcy1ibG9ne1xuICAuY29sMi1yaWdodC1sYXlvdXR7XG4gICAgLmNvbC1tYWluLFxuICAgIC5jb2wtcmlnaHR7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuICAuY29sMi1zZXR7XG4gICAgLmNvbC0xLFxuICAgIC5jb2wtMntcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG59XG5mb3JtLCAuZm9ybS13cmFwcGVyIHtcblxuICAucm93e1xuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgICBcbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICAgIH1cblxuICAgIC5jb2wtaGFsZixcbiAgICAuY29sLWZ1bGx7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICB9XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgXG4gICAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAmLnN1Ym1pdCB7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gICAgLmNvbC1oYWxme1xuICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICAuY29sLWZ1bGx7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuIiwiLnNpZGViYXItaXRlbXMge1xuICBoMyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gICAgY29sb3I6ICRjLXRleHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLmJsb2NrLXJlY2VudC1wb3N0cyxcbiAgLmJsb2NrLXJlbGF0ZWQtcG9zdHN7XG4gICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5wb3N0cy1saXN0LWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmZlYXR1cmVkLWltYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgfVxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDc3MHB4KXtcbiAgICAgICAgLnNpZGViYXItcG9zdHMtbGlzdDphZnRlciB7XG4gICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RzLWxpc3QtaXRlbSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICAgICAgLnNpZGViYXItcG9zdHMtbGlzdCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgfVxuICAubGluay1saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA1ZW07XG5cbiAgICAubGluay1saXN0LWl0ZW0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcblxuICAgIH1cbiAgfVxuICAuYmxvY2sge1xuICAgIC5ibG9jay10aXRsZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLXRleHQ7XG4gICAgfVxuICAgICYuYmxvY2stYmxvZy1tZW51IHtcbiAgICAgIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICBsaS5pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICY6aG92ZXIsICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtYmx1ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZvcm0uc2VhcmNoX21pbmlfZm9ybSB7XG4gICAgbWFyZ2luOiAzZW0gMDtcbiAgfVxufVxuXG5AaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1tZWRpdW0pIHtcbiAgLnNpZGViYXItc3BhY2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zdXBwb3J0LWJsb2NrIHtcbiAgICAgIGgze1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLXRleHQ7XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgIH1cbiAgICAgIHNwYW4ucGhvbmUge1xuICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplLXh4bDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXM7XG4gICAgICB9XG4gICAgICAubGVmdCwgLnJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICAgIC5sZWZ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB9XG4gICAgICAucmlnaHQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4ucHJvZHVjdGZpbmRlci1pbmRleC1pbmRleCB7XG4gIC5zaWRlYmFyIHtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICB9XG59XG5cbi5zaWRlYmFyIGhyIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc2lkZWJhciBwIGEsIC5zaWRlYmFyLWJsb2NrIGEge1xuICBjb2xvcjogJGMtdGV4dDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkYy1hY3Rpb247XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuLnNpZGViYXItYmxvY2sge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLXRleHQ7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtdGV4dDtcbiAgcGFkZGluZzogMThweCAwO1xufVxuXG5cbiIsImJvZHkud29yZHByZXNzLWluZGV4LWluZGV4IHtcbiAgLmZvb3RlciB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG4gIC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4OyBcbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG4gICAgICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0yNXB4O1xuICAgIH1cbiAgfVxuICAubWFpbi1jb250YWluZXIge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICB9XG4gIC5wYWdlLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5mZWF0dXJlZC1pbWFnZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAucG9zdC1saXN0e1xuICAgIC5ob21lLXNsaWRlci1jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICAgIH1cbiAgICB1bCNwb3N0LWxpc3Qge1xuICAgICAgbGkuaXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgICAgICB9XG4gICAgICAgIC5wb3N0LWxpc3QtaXRlbSB7XG4gICAgICAgICAgLnBvc3QtZW50cnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkdHJpbS1zO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmLnBvc3QtZW50cnktd2l0aC1pbWFnZXtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZlYXR1cmVkLWltYWdlIHtcbiAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHRyaW0tcztcbiAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICR0cmltO1xuICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXG4gICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnBvc3QtZXhjZXJwdCB7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltLXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cblxuICAgIH1cbiAgICAucGFnZXJ7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5wYWdlc3tcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAgICAgb2x7XG4gICAgICAgICAgbGl7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIGNvbG9yOiAkYy1ibHVlO1xuXG4gICAgICAgICAgICAmLmN1cnJlbnR7XG4gICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRjLWRhcmtibHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhe1xuXG4gICAgICAgICAgICAgICYubmV4dCxcbiAgICAgICAgICAgICAgJi5wcmV2aW91c3tcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLndvcmRwcmVzcy1wb3N0LXZpZXd7XG4gIC5wb3N0LWVudHJ5e1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5mZWF0dXJlZC1pbWFnZSAucG9zdC1zaGFyZSBpbWcge1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgfSBcbiAgfVxuXG4gIC5ob21lLXNsaWRlLXdyYXBwZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG4gIC5wb3N0LXRlYXNlcntcbiAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKXtcbiAgICAgICAgd2lkdGg6IDE0Ni4xMiU7XG4gICAgfVxuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgfVxuICAuZmVhdHVyZWQtaW1hZ2V7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6ICR0cmltLXMgMDtcbiAgICBtYXJnaW4tYm90dG9tOiAkdHJpbS1zO1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpbWd7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAucG9zdC1zaGFyZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMTVweDtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICB9XG4gICAgfVxuXG4gIH1cbiAgLnBvc3Qtc2hhcmV7XG5cbiAgICAgIGF7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIC5wb3N0LW1ldGEge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxufVxuIiwiLnBvc3QtZW50cnl7XG4gIGhye1xuICAgIG1hcmdpbjogLjVlbSAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuICAgIGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xuICB9XG4gIGgxLC5oMSxcbiAgaDIsLmgyLFxuICBoMywuaDN7XG4gICAgbWFyZ2luLXRvcDogJHRyaW0tcztcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gIH1cbiAgaDEsLmgxIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIGE6bm90KC5idXR0b24pe1xuICAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICY6aG92ZXJ7XG4gICAgICBjb2xvcjogJGMtYmx1ZTtcbiAgICB9XG5cbiAgICAmLmJhY2sge1xuICAgICAgbWFyZ2luLXRvcDogJHRyaW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgaDMsLmgzIHtcbiAgICBmb250LXNpemU6ICRmLXNpemUteGw7XG4gIH1cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14eGw7XG4gIH1cbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICBhIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gIH1cblxuICAmLmxpZ2h0Ym94LWNvbnRlbnQtbGluayBhOm5vdCguYmFjaykge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAuc3BhY2VyIHtcbiAgICBoZWlnaHQ6ICR0cmltO1xuICB9XG59XG4ucG9zdC10aXRsZXtcblxuICAmLmhhcy1zdWJ0aXRsZXtcbiAgICAucGFnZS1zdWJ0aXRsZXtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIGgxe1xuICAgICAgY29sb3I6ICRjLWJsdWU7XG4gICAgfVxuICAgIHBhZGRpbmctYm90dG9tOiA1ZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbn1cblxuLndvcmRwcmVzcy1wb3N0LXZpZXcge1xuICBlbSB7XG4gICAgZm9udC1zaXplOiAkZi1zaXplLXh4bDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuXG4ucG9zdC1tZXRhLmRldGFpbHMge1xuICBtYXJnaW4tdG9wOiAkdHJpbTtcbn1cblxuLnBvc3QtZW50cnksIC5saWdodGJveCB7XG5cbiAgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpIHtcbiAgICAgIHRleHQtaW5kZW50OiAtOHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgICBtYXJnaW46IDRweCAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCItIFwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9sIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDRweCAwO1xuICAgIH1cbiAgfVxuXG59IiwiLnBlb3BsZSwgLnJlc2VsbGVycyB7XG5cdCYucm93IHtcblx0XHRtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAtMTVweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcblx0XHRcdFxuXHRcdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdFx0JjphZnRlciB7XG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG5cdFx0Ji5maXJzdCB7XG5cdFx0XHQucGVvcGxlLWl0ZW0sIC5yZXNlbGxlci1pdGVtIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmNvbC1oYWxmIHtcblx0XHRtYXJnaW46IDAgMTVweDtcblxuXHRcdEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0XHRwYWRkaW5nOiAwIDE1cHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHRcdC5wZW9wbGUtaXRlbSwgLnJlc2VsbGVyLWl0ZW0ge1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0QGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwpIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkYy1kYXJrYmx1ZTtcblxuXHRcdFx0QGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAkdHJpbS1zO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRwIHtcblx0XHRcdG1hcmdpbi10b3A6ICR0cmltLXM7XG5cdFx0fVxuXHR9XG5cdCYuZmlyc3QgLmNvbC1oYWxmOmZpcnN0LWNoaWxkIHtcblx0XHQucGVvcGxlLWl0ZW0sIC5yZXNlbGxlci1pdGVtIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXNtYWxsKSB7XG5cdFx0JjpsYXN0LWNoaWxkIC5jb2wtaGFsZiB7XG5cdFx0XHQucGVvcGxlLWl0ZW0sIC5yZXNlbGxlci1pdGVtIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnJlc2VsbGVycy5yb3c6bGFzdC1jaGlsZCxcbi5wZW9wbGUucm93Omxhc3QtY2hpbGQgIHtcblx0bWFyZ2luLWJvdHRvbTogJHRyaW0gKiAyO1xufSIsIi5yZXNlbGxlcnN7XG5cbiAgICAuY29sLWhhbGYge1xuICAgICAgLnJlc2VsbGVyLWl0ZW0ge1xuICAgICAgICBoMntcbiAgICAgICAgICBcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAtc21hbGwpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIGltZyxzcGFue1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1ne1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLjNlbTtcbiAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7ICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbn1cblxuIiwiZm9ybS53cGNmNy1mb3JtIHtcblxuICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBXZWJLaXQsIEJsaW5rLCBFZGdlICovXG4gICAgY29sb3I6ICAgICRjLXRleHQ7XG4gIH1cbiAgOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBNb3ppbGxhIEZpcmVmb3ggNCB0byAxOCAqL1xuICAgICBjb2xvcjogICAgICRjLXRleHQ7XG4gICAgIG9wYWNpdHk6ICAxO1xuICB9XG4gIDo6LW1vei1wbGFjZWhvbGRlciB7IC8qIE1vemlsbGEgRmlyZWZveCAxOSsgKi9cbiAgICAgY29sb3I6ICAgICRjLXRleHQ7XG4gICAgIG9wYWNpdHk6ICAxO1xuICB9XG4gIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBJbnRlcm5ldCBFeHBsb3JlciAxMC0xMSAqL1xuICAgICBjb2xvcjogICAgICRjLXRleHQ7XG4gIH1cbiAgOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBNaWNyb3NvZnQgRWRnZSAqL1xuICAgICBjb2xvcjogICAgJGMtdGV4dDtcbiAgfVxuXG4gIGRpdi53cGNmNy1yZXNwb25zZS1vdXRwdXR7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1yZWQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG4gIC50ZXh0LXJpZ2h0e1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5hamF4LWxvYWRlcntcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAuYWpheC1sb2FkZXJ7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5pbnB1dHN7XG4gICAgc3Bhbi53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcHtcbiAgICAgIGlucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdKSxcbiAgICAgIHNlbGVjdHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtZGl2aWRlci1ib3JkZXI7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMCAxZW07XG4gICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGYtc2l6ZTtcblxuICAgICAgICAmOjpwbGFjZWhvbGRlcntcbiAgICAgICAgICBjb2xvcjogJGMtZGFya2JsdWU7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgc3Bhbi53cGNmNy1ub3QtdmFsaWQtdGlwe1xuICAgICAgY29sb3I6ICRjLXJlZDtcbiAgICB9XG5cbiAgfVxuICAuc3VjY2Vzc3tcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLmJ1dHRvbntcbiAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB9XG4gIH1cblxuICAmLnNlbnR7XG4gICAgLmlucHV0cywud3BjZjctbWFpbC1zZW50LW9re2Rpc3BsYXk6IG5vbmUgIWltcG9ydGFudDt9XG4gICAgLnN1Y2Nlc3N7ZGlzcGxheTogYmxvY2s7fVxuICB9XG59XG5cbnNwYW4ud3BjZjctbGlzdC1pdGVtIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cblxuXG5cbi5mb3JtLXdyYXBwZXIgZm9ybSB7XG4gIGlucHV0LFxuICAgICAgc2VsZWN0e1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgZm9udC1zaXplOiAkZi1zaXplO1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVye1xuICAgICAgICAgIGNvbG9yOiAkYy1kYXJrYmx1ZTtcbiAgICAgICAgICBmb250LWZhbWlseTogJGYtc3RhY2stc2FucztcbiAgICAgICAgfVxuICAgICAgfVxufSIsInVsLmRvd25sb2Fkc3tcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG5cbiAgLmRvd25sb2FkLWl0ZW17XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDJlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgJi0tcGRme1xuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb24tZG93bmxvYWQtcGRmLnN2ZycpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLS16aXB7XG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1kb3dubG9hZC16aXAuc3ZnJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmV7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBtYXJnaW4tbGVmdDogLTJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgd2lkdGg6IDIycHg7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb24tZG93bmxvYWQtcGRmLnN2Zyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE5cHggMjJweDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgYXtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuIiwiLmxpZ2h0Ym94LCAuc2FtcGxlcmVxdWVzdC1vdmVybGF5e1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAkZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uO1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgJi5sb2FkaW5ne1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgIC5zcGlubmVye1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbiAgJi5jb21wbGV0ZXtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAuc3Bpbm5lcntcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIC5ib3h7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIFxuICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLnNjcm9sbCB7XG4gICAgLmJveCB7XG4gICAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1zbWFsbCArIDEpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICB9XG4gIC5zcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGhlaWdodDogMThweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBhbmltYXRpb246IHJvdGF0ZSAxLjJzIGluZmluaXRlIGxpbmVhcjtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gICAgMCUgICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgIDEwMCUgIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxuICB9XG4gIC5ib3h7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogNjBweCBhdXRvO1xuICAgIHdpZHRoOiA5NiU7XG5cbiAgICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsICsgMSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDo1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTQ1JSk7XG4gICAgICB9XG5cblxuICAgICBvbCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWwgb3V0c2lkZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGItbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cblxuICAgIGgxLCBoMywgLmgzLCBoMiwgaDJ7XG4gICAgICBmb250LXNpemU6ICRmLXNpemUteHhsO1xuICAgIH1cblxuICAgIGEjcmVxdWVzdC1zYW1wbGUge1xuICAgICAgbWFyZ2luLXRvcDogJHRyaW0tcztcbiAgICB9XG5cbiAgICBoMiwuaDIsXG4gICAgaDMsLmgze1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgICB9XG5cbiAgICBtYXgtd2lkdGg6IDY5MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICAgICAgICAgICAgIG9wYWNpdHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbjtcblxuICAgIC5jbG9zZXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJsdWU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiA2MHB4O1xuICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICB0b3A6IDA7XG4gICAgICB9XG4gICAgICBtYXJnaW4tdG9wOiAtMTVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNTBweDtcbiAgICAgIC8vdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9saWdodGJveC1jbG9zZS5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMXB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyBcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb247XG5cbiAgICAgIC8vICY6YmVmb3JlLFxuICAgICAgLy8gJjphZnRlcntcbiAgICAgIC8vICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAvLyAgIGNvbnRlbnQ6ICcnO1xuICAgICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAvLyAgIGxlZnQ6IDUwJTtcbiAgICAgIC8vICAgdG9wOjI1JTtcbiAgICAgIC8vICAgd2lkdGg6IDFweDtcbiAgICAgIC8vICAgaGVpZ2h0OiA1MCU7XG4gICAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAvLyB9XG4gICAgICAvLyAmOmFmdGVye1xuICAgICAgLy8gICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIC8vIH1cblxuICAgICAgJjpob3ZlcntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjLWJsdWUsIDMlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmlubmVye1xuICAgICAgcGFkZGluZzogNDBweCAyMHB4IDYwcHggMjBweDtcblxuICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDtcbiAgICAgIH1cblxuXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgLy9vdmVyZmxvdzogc2Nyb2xsO1xuICAgICAgLy8td2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFye1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG4gICAgICAgIHBhZGRpbmc6IDcwcHggNTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYm9keS5saWdodGJveC1hY3RpdmV7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnNhbXBsZXJlcXVlc3Qtb3ZlcmxheSB7XG5cbiAgJi5hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAuYm94IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgfVxuICB9XG5cbn1cbiIsIi5maW5kZXItZm9ybSB7XG5cdG1hcmdpbjogJHRyaW0gMDtcblxuXHQubGV2ZWwge1xuXHRcdHBhZGRpbmctdG9wOiAkdHJpbTtcblx0XHRtYXJnaW4tdG9wOiAkdHJpbTtcblx0XHRib3JkZXItdG9wOiAxcHggZG90dGVkICRjLWRhcmtibHVlO1xuXHR9XG5cblx0LnNlbGVjdC13cmFwcGVyIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0QGluY2x1ZGUgYnAobWluLXdpZHRoLCAkYnAtc21hbGwgKyAxKSB7XG5cblx0XHQuc2VsZWN0LXJvdyB7XG5cdFx0XHRtYXJnaW46IDAgLTVweDtcblxuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQuc2VsZWN0LXdyYXBwZXIge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR3aWR0aDogNTAlO1xuXG5cdFx0XHQuc2VsZWN0LXdyYXBwZXItLWlubmVyIHtcblx0XHRcdFx0bWFyZ2luOiAwIDVweDtcblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG59XG5cbiNwcm9kdWN0UmVzdWx0IHtcblx0bWFyZ2luLXRvcDogJHRyaW07XG5cdC8vIC5wcm9kdWN0IHtcblx0Ly8gXHRcdGEucHJvZHVjdC1pbWFnZSB7XG5cdC8vIFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHQvLyBcdFx0XHRwYWRkaW5nLWJvdHRvbTogNzAlO1xuXHQvLyBcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHQvLyBcdFx0XHRpbWcge1xuXHQvLyBcdFx0XHRcdC8vcG9zaXRpb246IGFic29sdXRlO1xuXHQvLyBcdFx0XHR9XG5cdC8vIFx0XHR9XG5cdC8vIFx0fVxufVxuXG4uYmxvY2stcHJvZHVjdGZpbmRlciB7XG5cdHVsIGxpLnByb2R1Y3QgLnByb2R1Y3QtdGl0bGUge1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cblx0XHRhIHtcblx0XHRcdGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuXHRcdFx0Zm9udC1zaXplOiAkZi1zaXplLWw7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuI2Jsb2NrLXByb2R1Y3RmaW5kZXIge1xuXHQuc2xpY2stc2xpZGUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0Ji5zbGljay1pbml0aWFsaXplZCB7XG5cdFx0LnNsaWNrLXNsaWRlIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXHR9XG59XG5cbi5maW5kZXItbm90aWNlLCAuZmluZGVyLW5vcHJvZHVjdCB7XG5cdHBhZGRpbmctdG9wOiAkdHJpbTtcblx0bWFyZ2luLXRvcDogJHRyaW07XG5cdGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGMtZGFya2JsdWU7XG59XG5cbi5maW5kZXItbm9wcm9kdWN0IHsgXG5cdGRpc3BsYXk6IG5vbmU7XG5cdGJvcmRlcjogbm9uZTtcbn1cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqXG4gKiBDYWxlbmRhciBzdHlsZXMgKHJlc3RvcmUgc3R5bGVzIGZyb20gL2pzL2NhbGVuZGFyKVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmRpdi5jYWxlbmRhciB7XG4gICAgdGFibGUge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuXG4gICAgICAgIHRkLmJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= */
