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

.lg-icon {
  font-family: 'lg';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.lg-actions .lg-next, .lg-actions .lg-prev {
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 2px;
  color: rgba(0, 0, 0, 0.5);
  cursor: pointer;
  display: block;
  font-size: 22px;
  margin-top: -10px;
  padding: 8px 10px 9px;
  position: absolute;
  top: 50%;
  z-index: 1080;
  border: none;
  outline: none; }
  .lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
    pointer-events: none;
    opacity: 0.5; }
  .lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
    color: #4d638c; }

.lg-actions .lg-next {
  right: 20px; }
  .lg-actions .lg-next:before {
    content: "\e095"; }

.lg-actions .lg-prev {
  left: 20px; }
  .lg-actions .lg-prev:after {
    content: "\e094"; }

@keyframes lg-right-end {
  0% {
    left: 0; }
  50% {
    left: -30px; }
  100% {
    left: 0; } }

@keyframes lg-left-end {
  0% {
    left: 0; }
  50% {
    left: 30px; }
  100% {
    left: 0; } }

.lg-outer.lg-right-end .lg-object {
  animation: lg-right-end 0.3s;
  position: relative; }

.lg-outer.lg-left-end .lg-object {
  animation: lg-left-end 0.3s;
  position: relative; }

.lg-toolbar {
  z-index: 1082;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.9); }
  .lg-toolbar .lg-icon {
    color: rgba(0, 0, 0, 0.5);
    cursor: pointer;
    float: right;
    font-size: 24px;
    height: 47px;
    line-height: 27px;
    padding: 10px 0;
    text-align: center;
    width: 50px;
    text-decoration: none !important;
    outline: medium none;
    transition: color 0.2s linear; }
    .lg-toolbar .lg-icon:hover {
      color: #4d638c; }
  .lg-toolbar .lg-close:after {
    content: "\e070"; }
  .lg-toolbar .lg-download:after {
    content: "\e0f2"; }

.lg-sub-html {
  background-color: rgba(255, 255, 255, 0.9);
  bottom: 0;
  color: #222;
  font-size: 16px;
  left: 0;
  padding: 10px 40px;
  position: fixed;
  right: 0;
  text-align: center;
  z-index: 1080; }
  .lg-sub-html h4 {
    margin: 0;
    font-size: 13px;
    font-weight: bold; }
  .lg-sub-html p {
    font-size: 12px;
    margin: 5px 0 0; }

#lg-counter {
  color: rgba(0, 0, 0, 0.5);
  display: inline-block;
  font-size: 16px;
  padding-left: 20px;
  padding-top: 12px;
  vertical-align: middle; }

.lg-toolbar, .lg-prev, .lg-next {
  opacity: 1;
  transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear; }

.lg-hide-items .lg-prev {
  opacity: 0;
  transform: translate3d(-10px, 0, 0); }

.lg-hide-items .lg-next {
  opacity: 0;
  transform: translate3d(10px, 0, 0); }

.lg-hide-items .lg-toolbar {
  opacity: 0;
  transform: translate3d(0, -10px, 0); }

body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object {
  transform: scale3d(0.5, 0.5, 0.5);
  opacity: 0;
  transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
  transform-origin: 50% 50%; }

body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object {
  transform: scale3d(1, 1, 1);
  opacity: 1; }

.lg-outer .lg-thumb-outer {
  background-color: #0D0A0A;
  bottom: 0;
  position: absolute;
  width: 100%;
  z-index: 1080;
  max-height: 350px;
  transform: translate3d(0, 100%, 0);
  transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; }
  .lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item {
    cursor: -webkit-grab;
    cursor: -o-grab;
    cursor: -ms-grab;
    cursor: grab; }
  .lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item {
    cursor: move;
    cursor: -webkit-grabbing;
    cursor: -o-grabbing;
    cursor: -ms-grabbing;
    cursor: grabbing; }
  .lg-outer .lg-thumb-outer.lg-dragging .lg-thumb {
    transition-duration: 0s !important; }

.lg-outer.lg-thumb-open .lg-thumb-outer {
  transform: translate3d(0, 0%, 0); }

.lg-outer .lg-thumb {
  padding: 10px 0;
  height: 100%;
  margin-bottom: -5px; }

.lg-outer .lg-thumb-item {
  border-radius: 5px;
  cursor: pointer;
  float: left;
  overflow: hidden;
  height: 100%;
  border: 2px solid #FFF;
  border-radius: 4px;
  margin-bottom: 5px; }
  @media (min-width: 1025px) {
    .lg-outer .lg-thumb-item {
      transition: border-color 0.25s ease; } }
  .lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover {
    border-color: #a90707; }
  .lg-outer .lg-thumb-item img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover; }

.lg-outer.lg-has-thumb .lg-item {
  padding-bottom: 120px; }

.lg-outer.lg-can-toggle .lg-item {
  padding-bottom: 0; }

.lg-outer.lg-pull-caption-up .lg-sub-html {
  transition: bottom 0.25s ease; }

.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html {
  bottom: 100px; }

.lg-outer .lg-toogle-thumb {
  background-color: #0D0A0A;
  border-radius: 2px 2px 0 0;
  color: rgba(0, 0, 0, 0.5);
  cursor: pointer;
  font-size: 24px;
  height: 39px;
  line-height: 27px;
  padding: 5px 0;
  position: absolute;
  right: 20px;
  text-align: center;
  top: -39px;
  width: 50px; }
  .lg-outer .lg-toogle-thumb:after {
    content: "\e1ff"; }
  .lg-outer .lg-toogle-thumb:hover {
    color: #4d638c; }

.lg-outer .lg-video-cont {
  display: inline-block;
  vertical-align: middle;
  max-width: 1140px;
  max-height: 100%;
  width: 100%;
  padding: 0 5px; }

.lg-outer .lg-video {
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  overflow: hidden;
  position: relative; }
  .lg-outer .lg-video .lg-object {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important; }
  .lg-outer .lg-video .lg-video-play {
    width: 84px;
    height: 59px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -42px;
    margin-top: -30px;
    z-index: 1080;
    cursor: pointer; }

.lg-outer .lg-has-iframe .lg-video {
  -webkit-overflow-scrolling: touch;
  overflow: auto; }

.lg-outer .lg-has-vimeo .lg-video-play {
  background: url("../images/lightgallery.js/vimeo-play.png") no-repeat scroll 0 0 transparent; }

.lg-outer .lg-has-vimeo:hover .lg-video-play {
  background: url("../images/lightgallery.js/vimeo-play.png") no-repeat scroll 0 -58px transparent; }

.lg-outer .lg-has-html5 .lg-video-play {
  background: transparent url("../images/lightgallery.js/video-play.png") no-repeat scroll 0 0;
  height: 64px;
  margin-left: -32px;
  margin-top: -32px;
  width: 64px;
  opacity: 0.8; }

.lg-outer .lg-has-html5:hover .lg-video-play {
  opacity: 1; }

.lg-outer .lg-has-youtube .lg-video-play {
  background: url("../images/lightgallery.js/youtube-play.png") no-repeat scroll 0 0 transparent; }

.lg-outer .lg-has-youtube:hover .lg-video-play {
  background: url("../images/lightgallery.js/youtube-play.png") no-repeat scroll 0 -60px transparent; }

.lg-outer .lg-video-object {
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  top: 0;
  left: 0; }

.lg-outer .lg-has-video .lg-video-object {
  visibility: hidden; }

.lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play {
  display: none; }

.lg-outer .lg-has-video.lg-video-playing .lg-video-object {
  visibility: visible; }

.lg-progress-bar {
  background-color: #333;
  height: 5px;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1083;
  opacity: 0;
  transition: opacity 0.08s ease 0s; }
  .lg-progress-bar .lg-progress {
    background-color: #a90707;
    height: 5px;
    width: 0; }
  .lg-progress-bar.lg-start .lg-progress {
    width: 100%; }
  .lg-show-autoplay .lg-progress-bar {
    opacity: 1; }

.lg-autoplay-button:after {
  content: "\e01d"; }
  .lg-show-autoplay .lg-autoplay-button:after {
    content: "\e01a"; }

.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image {
  transition-duration: 0s; }

.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
  transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; }

.lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
  transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s; }

.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image {
  transform: scale3d(1, 1, 1);
  transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
  transform-origin: 0 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

#lg-zoom-in:after {
  content: "\e311"; }

#lg-actual-size {
  font-size: 20px; }
  #lg-actual-size:after {
    content: "\e033"; }

#lg-zoom-out {
  opacity: 0.5;
  pointer-events: none; }
  #lg-zoom-out:after {
    content: "\e312"; }
  .lg-zoomed #lg-zoom-out {
    opacity: 1;
    pointer-events: auto; }

.lg-outer .lg-pager-outer {
  bottom: 60px;
  left: 0;
  position: absolute;
  right: 0;
  text-align: center;
  z-index: 1080;
  height: 10px; }
  .lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont {
    overflow: visible; }

.lg-outer .lg-pager-cont {
  cursor: pointer;
  display: inline-block;
  overflow: hidden;
  position: relative;
  vertical-align: top;
  margin: 0 5px; }
  .lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont {
    opacity: 1;
    transform: translate3d(0, 0, 0); }
  .lg-outer .lg-pager-cont.lg-pager-active .lg-pager {
    box-shadow: 0 0 0 2px white inset; }

.lg-outer .lg-pager-thumb-cont {
  background-color: #fff;
  color: #FFF;
  bottom: 100%;
  height: 83px;
  left: 0;
  margin-bottom: 20px;
  margin-left: -60px;
  opacity: 0;
  padding: 5px;
  position: absolute;
  width: 120px;
  border-radius: 3px;
  transition: opacity 0.15s ease 0s, transform 0.15s ease 0s;
  transform: translate3d(0, 5px, 0); }
  .lg-outer .lg-pager-thumb-cont img {
    width: 100%;
    height: 100%; }

.lg-outer .lg-pager {
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset;
  display: block;
  height: 12px;
  transition: box-shadow 0.3s ease 0s;
  width: 12px; }
  .lg-outer .lg-pager:hover, .lg-outer .lg-pager:focus {
    box-shadow: 0 0 0 8px white inset; }

.lg-outer .lg-caret {
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px dashed;
  bottom: -10px;
  display: inline-block;
  height: 0;
  left: 50%;
  margin-left: -5px;
  position: absolute;
  vertical-align: middle;
  width: 0; }

.lg-fullscreen:after {
  content: "\e20c"; }
  .lg-fullscreen-on .lg-fullscreen:after {
    content: "\e20d"; }

.lg-group:after {
  content: "";
  display: table;
  clear: both; }

.lg-outer {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  text-align: left;
  opacity: 0;
  transition: opacity 0.15s ease 0s; }
  .lg-outer * {
    box-sizing: border-box; }
  .lg-outer.lg-visible {
    opacity: 1; }
  .lg-outer.lg-css3 .lg-item.lg-prev-slide, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-current {
    transition-duration: inherit !important;
    transition-timing-function: inherit !important; }
  .lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current {
    transition-duration: 0s !important;
    opacity: 1; }
  .lg-outer.lg-grab img.lg-object {
    cursor: -webkit-grab;
    cursor: -o-grab;
    cursor: -ms-grab;
    cursor: grab; }
  .lg-outer.lg-grabbing img.lg-object {
    cursor: move;
    cursor: -webkit-grabbing;
    cursor: -o-grabbing;
    cursor: -ms-grabbing;
    cursor: grabbing; }
  .lg-outer .lg {
    height: 100%;
    width: 100%;
    position: relative;
    overflow: hidden;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
    max-height: 100%; }
  .lg-outer .lg-inner {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    white-space: nowrap; }
  .lg-outer .lg-item {
    background: url("../images/lightgallery.js/loading.gif") no-repeat scroll center center transparent;
    display: none !important; }
  .lg-outer.lg-css3 .lg-prev-slide, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide {
    display: inline-block !important; }
  .lg-outer.lg-css .lg-current {
    display: inline-block !important; }
  .lg-outer .lg-item, .lg-outer .lg-img-wrap {
    display: inline-block;
    text-align: center;
    position: absolute;
    width: 100%;
    height: 100%; }
    .lg-outer .lg-item:before, .lg-outer .lg-img-wrap:before {
      content: "";
      display: inline-block;
      height: 50%;
      width: 1px;
      margin-right: -1px; }
  .lg-outer .lg-img-wrap {
    position: absolute;
    padding: 0 5px;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0; }
  .lg-outer .lg-item.lg-complete {
    background-image: none; }
  .lg-outer .lg-item.lg-current {
    z-index: 1060; }
  .lg-outer .lg-image {
    display: inline-block;
    vertical-align: middle;
    max-width: 100%;
    max-height: 100%;
    width: auto !important;
    height: auto !important; }
  .lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play {
    opacity: 0;
    transition: opacity 0.15s ease 0s; }
  .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play {
    opacity: 1; }
  .lg-outer .lg-empty-html {
    display: none; }
  .lg-outer.lg-hide-download #lg-download {
    display: none; }

.lg-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1040;
  background-color: #000;
  opacity: 0;
  transition: opacity 0.15s ease 0s; }
  .lg-backdrop.in {
    opacity: 1; }

.lg-css3.lg-no-trans .lg-prev-slide, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-current {
  transition: none 0s ease 0s !important; }

.lg-css3.lg-use-css3 .lg-item {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.lg-css3.lg-use-left .lg-item {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.lg-css3.lg-fade .lg-item {
  opacity: 0; }
  .lg-css3.lg-fade .lg-item.lg-current {
    opacity: 1; }
  .lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current {
    transition: opacity 0.1s ease 0s; }

.lg-css3.lg-slide.lg-use-css3 .lg-item {
  opacity: 0; }
  .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
    transform: translate3d(-100%, 0, 0); }
  .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide {
    transform: translate3d(100%, 0, 0); }
  .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
    transform: translate3d(0, 0, 0);
    opacity: 1; }
  .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
    transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; }

.lg-css3.lg-slide.lg-use-left .lg-item {
  opacity: 0;
  position: absolute;
  left: 0; }
  .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
    left: -100%; }
  .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide {
    left: 100%; }
  .lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
    left: 0;
    opacity: 1; }
  .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
    transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; }

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