.card {
  border-radius: 4px;
  min-width: 300px;
  height: 350px; }
  .--bg {
    background: 10%/cover url("/https/brunoaugustosilva.github.io/src/images/code.jpg") #51802d; }
  .card__title {
    text-align: center; }
    .--shadow {
      text-shadow: 0 0 #cbd9c0, 1px 1px #cbd9c0, 2px 2px #cbd9c0, 3px 3px #cbd9c0, 4px 4px #cbd9c0, 5px 5px #cbd9c0, 6px 6px #cbd9c0, 7px 7px #cbd9c0, 8px 8px #cbd9c0, 9px 9px #cbd9c0, 10px 10px #cbd9c0, 11px 11px #cbd9c0, 12px 12px #cbd9c0, 13px 13px #cbd9c0, 14px 14px #cbd9c0, 15px 15px #cbd9c0, 16px 16px #cbd9c0, 17px 17px #cbd9c0, 18px 18px #cbd9c0, 19px 19px #cbd9c0, 20px 20px #cbd9c0, 21px 21px #cbd9c0, 22px 22px #cbd9c0, 23px 23px #cbd9c0, 24px 24px #cbd9c0, 25px 25px #cbd9c0, 26px 26px #cbd9c0, 27px 27px #cbd9c0, 28px 28px #cbd9c0, 29px 29px #cbd9c0, 30px 30px #cbd9c0, 31px 31px #cbd9c0, 32px 32px #cbd9c0, 33px 33px #cbd9c0, 34px 34px #cbd9c0, 35px 35px #cbd9c0, 36px 36px #cbd9c0, 37px 37px #cbd9c0, 38px 38px #cbd9c0, 39px 39px #cbd9c0, 40px 40px #cbd9c0, 41px 41px #cbd9c0, 42px 42px #cbd9c0, 43px 43px #cbd9c0, 44px 44px #cbd9c0, 45px 45px #cbd9c0, 46px 46px #cbd9c0, 47px 47px #cbd9c0, 48px 48px #cbd9c0, 49px 49px #cbd9c0, 50px 50px #cbd9c0, 51px 51px #cbd9c0, 52px 52px #cbd9c0, 53px 53px #cbd9c0, 54px 54px #cbd9c0, 55px 55px #cbd9c0, 56px 56px #cbd9c0, 57px 57px #cbd9c0, 58px 58px #cbd9c0, 59px 59px #cbd9c0, 60px 60px #cbd9c0, 61px 61px #cbd9c0, 62px 62px #cbd9c0, 63px 63px #cbd9c0, 64px 64px #cbd9c0, 65px 65px #cbd9c0, 66px 66px #cbd9c0, 67px 67px #cbd9c0, 68px 68px #cbd9c0, 69px 69px #cbd9c0, 70px 70px #cbd9c0, 71px 71px #cbd9c0, 72px 72px #cbd9c0, 73px 73px #cbd9c0, 74px 74px #cbd9c0, 75px 75px #cbd9c0, 76px 76px #cbd9c0, 77px 77px #cbd9c0, 78px 78px #cbd9c0, 79px 79px #cbd9c0, 80px 80px #cbd9c0, 81px 81px #cbd9c0, 82px 82px #cbd9c0, 83px 83px #cbd9c0, 84px 84px #cbd9c0, 85px 85px #cbd9c0, 86px 86px #cbd9c0, 87px 87px #cbd9c0, 88px 88px #cbd9c0, 89px 89px #cbd9c0, 90px 90px #cbd9c0, 91px 91px #cbd9c0, 92px 92px #cbd9c0, 93px 93px #cbd9c0, 94px 94px #cbd9c0, 95px 95px #cbd9c0, 96px 96px #cbd9c0, 97px 97px #cbd9c0, 98px 98px #cbd9c0, 99px 99px #cbd9c0, 100px 100px #cbd9c0, 101px 101px #cbd9c0, 102px 102px #cbd9c0, 103px 103px #cbd9c0, 104px 104px #cbd9c0, 105px 105px #cbd9c0, 106px 106px #cbd9c0, 107px 107px #cbd9c0, 108px 108px #cbd9c0, 109px 109px #cbd9c0, 110px 110px #cbd9c0, 111px 111px #cbd9c0, 112px 112px #cbd9c0, 113px 113px #cbd9c0, 114px 114px #cbd9c0, 115px 115px #cbd9c0, 116px 116px #cbd9c0, 117px 117px #cbd9c0, 118px 118px #cbd9c0, 119px 119px #cbd9c0, 120px 120px #cbd9c0, 121px 121px #cbd9c0, 122px 122px #cbd9c0, 123px 123px #cbd9c0, 124px 124px #cbd9c0, 125px 125px #cbd9c0, 126px 126px #cbd9c0, 127px 127px #cbd9c0, 128px 128px #cbd9c0, 129px 129px #cbd9c0, 130px 130px #cbd9c0, 131px 131px #cbd9c0, 132px 132px #cbd9c0, 133px 133px #cbd9c0, 134px 134px #cbd9c0, 135px 135px #cbd9c0, 136px 136px #cbd9c0, 137px 137px #cbd9c0, 138px 138px #cbd9c0, 139px 139px #cbd9c0, 140px 140px #cbd9c0, 141px 141px #cbd9c0, 142px 142px #cbd9c0, 143px 143px #cbd9c0, 144px 144px #cbd9c0, 145px 145px #cbd9c0, 146px 146px #cbd9c0, 147px 147px #cbd9c0, 148px 148px #cbd9c0, 149px 149px #cbd9c0, 150px 150px #cbd9c0, 151px 151px #cbd9c0, 152px 152px #cbd9c0, 153px 153px #cbd9c0, 154px 154px #cbd9c0, 155px 155px #cbd9c0, 156px 156px #cbd9c0, 157px 157px #cbd9c0, 158px 158px #cbd9c0, 159px 159px #cbd9c0, 160px 160px #cbd9c0, 161px 161px #cbd9c0, 162px 162px #cbd9c0, 163px 163px #cbd9c0, 164px 164px #cbd9c0, 165px 165px #cbd9c0, 166px 166px #cbd9c0, 167px 167px #cbd9c0, 168px 168px #cbd9c0, 169px 169px #cbd9c0, 170px 170px #cbd9c0, 171px 171px #cbd9c0, 172px 172px #cbd9c0, 173px 173px #cbd9c0, 174px 174px #cbd9c0, 175px 175px #cbd9c0, 176px 176px #cbd9c0, 177px 177px #cbd9c0, 178px 178px #cbd9c0, 179px 179px #cbd9c0, 180px 180px #cbd9c0, 181px 181px #cbd9c0, 182px 182px #cbd9c0, 183px 183px #cbd9c0, 184px 184px #cbd9c0, 185px 185px #cbd9c0, 186px 186px #cbd9c0, 187px 187px #cbd9c0, 188px 188px #cbd9c0, 189px 189px #cbd9c0, 190px 190px #cbd9c0, 191px 191px #cbd9c0, 192px 192px #cbd9c0, 193px 193px #cbd9c0, 194px 194px #cbd9c0, 195px 195px #cbd9c0, 196px 196px #cbd9c0, 197px 197px #cbd9c0, 198px 198px #cbd9c0, 199px 199px #cbd9c0, 200px 200px #cbd9c0; }
  .card__content {
    position: absolute;
    text-indent: 12px;
    text-align: center;
    height: 220px;
    overflow-y: auto; }
    @media (min-width: 1024px) {
      .card__content {
        right: 300px;
        width: 700px;
        height: 400px; } }

/*animations here*/
@-webkit-keyframes opacity {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes opacity {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

/*Open-sans*/
@font-face {
  font-family: 'Open Sans Light';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-Light.ttf"); }

@font-face {
  font-family: 'Open Sans Light Italic';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-LightItalic.ttf"); }

@font-face {
  font-family: 'Open Sans Italic';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-Italic.ttf"); }

@font-face {
  font-family: 'Open Sans Regular';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-Regular.ttf"); }

@font-face {
  font-family: 'Open Sans Semi Bold';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-SemiBold.ttf"); }

@font-face {
  font-family: 'Open Sans Semi Bold Italic';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-SemiBoldItalic.ttf"); }

@font-face {
  font-family: 'Open Sans Bold';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-Bold.ttf"); }

@font-face {
  font-family: 'Open Sans Bold Italic';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-BoldITalic.ttf"); }

@font-face {
  font-family: 'Open Sans ExtraBold';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-ExtraBold.ttf"); }

@font-face {
  font-family: 'Open Sans ExtraBold Italic';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Open_sans/OpenSans-ExtraBoldItalic.ttf"); }

/*roboto slab*/
@font-face {
  font-family: 'Roboto Slab Light';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Roboto_Slab/RobotoSlab-Light.ttf"); }

@font-face {
  font-family: 'Roboto Slab Thin';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Roboto_Slab/RobotoSlab-Thin.ttf"); }

@font-face {
  font-family: 'Roboto Slab Regular';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Roboto_Slab/RobotoSlab-Regular.ttf"); }

@font-face {
  font-family: 'Roboto Slab Bold';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Roboto_Slab/RobotoSlab-Bold.ttf"); }

/*bruno icons*/
@font-face {
  font-family: 'Bicons';
  src: url("/https/brunoaugustosilva.github.io/src/fonts/Bicons/Bicons.ttf"); }

html {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

body {
  background-color: #51802d; }

/**
 * Make all elements from the DOM inherit from the parent box-sizing
 * Since `*` has a specificity of 0, it does not override the `html` value
 * making all elements inheriting from the root box-sizing value
 * See: https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit; }

a {
  padding: 12px 16px;
  text-decoration: none;
  color: #dce6d5; }
  a:hover, a:active, a:focus {
    color: #101a09; }

ul {
  margin: 0;
  padding: 0; }

mark {
  background-color: #51802d;
  color: #dce6d5; }

hr {
  border: 1px solid;
  width: 150px; }

.text-initial {
  text-align: initial; }

.text-justify {
  text-align: justify; }

.text-center {
  text-align: center; }

.text-rigth {
  text-align: rigth; }

.text-left {
  text-align: left; }

.text-start {
  text-align: start; }

.text-unset {
  text-align: unset; }

.text-end {
  text-align: end; }

.text-inherit {
  text-align: inherit; }

.Bicons-1 {
  font-size: 19.416px; }

.Bicons-2 {
  font-size: 31.41509px; }

.Bicons-3 {
  font-size: 50.82961px; }

.Bicons-4 {
  font-size: 82.24231px; }

/**
*   Basic typography style for copy text
*/
body {
  font: 12px "Open Sans", "Open Sans Regular", "Open Sans Light", "Arial", sans-serif;
  color: #dce6d5;
  line-height: 1.6; }
  @media (min-width: 1024px) {
    body {
      font-size: 1em; } }

h1, h2, h3, h4, h5,
h6 {
  font-family: "Roboto Slab", "Roboto Slab Bold", "Roboto Slab Regular", "Courier New", serif !important; }

[class^="Bicons"], [class*=" Bicons"] {
  font-family: "Bicons", "sans-serif"; }

.carrousel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 300px;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  overflow-x: auto;
  margin: 0 auto; }
  .carrousel__arrow {
    position: absolute;
    border-radius: 50%;
    margin: 70px 10px;
    padding: 0 9px;
    font-weight: bolder;
    font-size: 31.41509px; }
    .carrousel__arrow.--previous {
      left: 0; }
    .carrousel__arrow.--next {
      right: 0; }
  .carrousel::-webkit-scrollbar {
    display: none; }
  @media (min-width: 1024px) {
    .carrousel {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
      flex-flow: column nowrap;
      -webkit-box-align: end;
      -ms-flex-align: end;
      align-items: flex-end;
      overflow-y: auto;
      height: 450px;
      width: unset; } }

.face {
  background: no-repeat 20%/cover url("/https/brunoaugustosilva.github.io/src/images/face.jpg");
  width: 70px;
  height: 70px;
  border-radius: 50%;
  margin: 30px auto;
  border: 2px solid; }

.article {
  z-index: 3;
  background: #51802d;
  -webkit-transition: all 0.5s ease-in;
  transition: all 0.5s ease-in; }
  .article:target {
    -webkit-animation: opacity 1s;
    animation: opacity 1s; }
  .article__title {
    text-align: center;
    margin-top: 70px; }
  .article__content {
    text-align: center;
    padding: 8px 12px;
    line-height: 1.5;
    text-indent: 5%; }
    @media (min-width: 1024px) {
      .article__content {
        width: 500px;
        margin: 0 auto; } }
  .article--white {
    color: #51802d;
    background: #dce6d5; }

/**
*/
.footer {
  text-align: center;
  color: #51802d;
  background-color: #dce6d5; }

.main {
  display: grid;
  grid-template-rows: 100px 500vmax 50px; }
  @media (min-width: 1024px) {
    .main {
      grid-template-rows: 50px 500vmin 50px; } }

.section {
  display: grid;
  grid-template-rows: repeat(5, 100vmax); }
  @media (min-width: 1024px) {
    .section {
      grid-template-rows: repeat(5, 100vmin); } }

.header {
  background: #51802d;
  position: -webkit-sticky;
  position: sticky;
  z-index: 5;
  top: -70px;
  -webkit-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
  font-weight: bolder;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column;
  flex-flow: column;
  -webkit-box-pack: stretch;
  -ms-flex-pack: stretch;
  justify-content: stretch;
  -webkit-box-shadow: 0 1px 5px #51802d;
  box-shadow: 0 1px 5px #51802d; }
  @media (min-width: 1024px) {
    .header {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -ms-flex-flow: row;
      flex-flow: row;
      top: 0;
      -webkit-box-pack: start;
      -ms-flex-pack: start;
      justify-content: flex-start; } }
  .header__title {
    background: #51802d;
    margin-top: 0 !important;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding: 0;
    text-align: center; }
    @media (min-width: 1024px) {
      .header__title h1 {
        margin: 0; } }
  .header__menu {
    background: #51802d;
    font-size: 19.416px;
    -webkit-box-flex: 2;
    -ms-flex: 2;
    flex: 2; }
    .header__menu__nav ul {
      display: grid;
      -webkit-box-pack: stretch;
      -ms-flex-pack: stretch;
      justify-content: stretch;
      grid-template-columns: repeat(5, 1fr); }
      .header__menu__nav ul li {
        list-style: none;
        text-align: center; }
        .header__menu__nav ul li a {
          display: block;
          -webkit-transition: all .5s ease-in;
          transition: all .5s ease-in; }

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

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

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

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

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

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

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

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

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

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

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

sub {
  bottom: -.25em; }

sup {
  top: -.5em; }

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

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

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

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

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

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

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

/**
   * Correct the padding in Firefox.
   */
fieldset {
  padding: .35em .75em .625em; }

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

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

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

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

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

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

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

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

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

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

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

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

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