/**
 * Foundation for Sites by ZURB
 * Version 6.4.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*
Extra functions.

@since 0.1.0
*/
::-moz-selection {
  background: #A1C938;
  color: #333; }
::selection {
  background: #A1C938;
  color: #333; }

::-moz-selection {
  background: #A1C938;
  color: #333; }

a, .site-sidebar a {
  color: #A1C938; }
  a:hover, .site-sidebar .shuffle-filter-button.active {
    color: #009444; }

h1, h2, h4 {
  color: #A1C938; }

h3 {
  color: #009444; }

h5, h6 {
  color: inherit; }

.ui-datepicker .ui-widget-header, .ui-datepicker .ui-datepicker-header {
  background: #009444; }

.ui-datepicker thead {
  background: #A1C938; }

.ui-datepicker td.ui-datepicker-today {
  background-color: #009444; }

.ui-datepicker td.ui-datepicker-current-day {
  background: #009444; }

.ui-datepicker td a.ui-state-hover {
  background: #A1C938; }

.ui-datepicker {
  padding: 0 !important;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
  border-color: #dfdfdf !important; }
  .ui-datepicker, .ui-datepicker * {
    border-radius: 0 !important; }
  .ui-datepicker .ui-datepicker-header {
    padding: 0 !important; }
  .ui-datepicker .ui-datepicker-title {
    margin: 0 !important;
    padding: 10px 0; }
  .ui-datepicker .ui-widget-header, .ui-datepicker .ui-datepicker-header {
    color: #fff; }
  .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
    top: 0.25em !important; }
  .ui-datepicker .ui-datepicker-calendar {
    margin: 0 !important; }
  .ui-datepicker thead th {
    color: #333; }

@media screen and (max-width: 39.9375em) {
  .dzs-sc-side-image {
    background: #009444;
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmMWUyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTk0NzciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: linear-gradient(to right, #009444 0%, #A1C938 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bf1e2d', endColorstr='#f59477',GradientType=1 ); } }

#site-header {
  color: #A1C938; }
  #site-header .header-container {
    background-color: #9bdbf3;
    background-image: url("../images/header-x-repeat@2x.png"), url("../images/clouds.jpg");
    background-position: bottom;
    background-repeat: repeat-x, repeat-x;
    background-size: 347px 84px, 957px 191px;
    border-color: #A1C938; }
  #site-header .header-bottom {
    background: #221E1F; }
  #site-header .primary-nav .menu {
    background: #A1C938;
    color: #221E1F; }
    @media print, screen and (min-width: 40em) {
      #site-header .primary-nav .menu {
        background: transparent;
        color: inherit; } }
    #site-header .primary-nav .menu > .menu-item.menu-item-has-children > a:after, #site-header .primary-nav .site-sidebar .menu > .menu-item.menu-item-has-children > a:after {
      border-color: #A1C938 transparent transparent; }
    #site-header .primary-nav .menu > .menu-item.menu-item-has-children:hover > a:after, #site-header .primary-nav .site-sidebar .menu > .menu-item.menu-item-has-children:hover > a:after {
      border-color: #fefefe transparent transparent; }
    #site-header .primary-nav .menu > .menu-item:hover {
      background: #009444;
      color: #fff; }
      @media print, screen and (min-width: 40em) {
        #site-header .primary-nav .menu > .menu-item:hover {
          background: #A1C938;
          color: #fff; } }
      #site-header .primary-nav .menu > .menu-item:hover > a, #site-header .primary-nav .site-sidebar .menu > .menu-item:hover > a {
        background: transparent; }
    #site-header .primary-nav .menu > .menu-item > .submenu {
      background: #91b631; }
      @media print, screen and (min-width: 40em) {
        #site-header .primary-nav .menu > .menu-item > .submenu {
          background: #A1C938; } }
      #site-header .primary-nav .menu > .menu-item > .submenu > .menu-item {
        color: #fff;
        transition: background 300ms; }
        #site-header .primary-nav .menu > .menu-item > .submenu > .menu-item a {
          background: transparent; }
        #site-header .primary-nav .menu > .menu-item > .submenu > .menu-item:hover {
          background: #221E1F; }
  #site-header .search-toggle {
    font-size: 1.8rem; }
    #site-header .search-toggle button {
      background: transparent; }
    #site-header .search-toggle .fa-search {
      margin-top: 0.35rem; }

#site-content {
  padding: 0;
  background: url("../images/binz-background.png") bottom fixed repeat-x #e1e7d3 !important; }
  #site-content > .row {
    background: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2) !important; }
  #site-content .page-title-section {
    position: relative;
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
    padding: 75px 0 75px 1em;
    color: #fff;
    text-align: center; }
    @media print, screen and (min-width: 40em) {
      #site-content .page-title-section {
        text-align: left; } }
    #site-content .page-title-section .overlay {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 148, 68, 0.8); }
    #site-content .page-title-section .page-title {
      color: inherit;
      font-weight: bold;
      margin: 0; }
    #site-content .page-title-section .page-subtitle {
      font-size: 1.5em;
      margin: 0; }
  #site-content .page-content {
    padding: 20px 1em 0; }
    @media print, screen and (min-width: 40em) {
      #site-content .page-content {
        padding-right: 2em; } }
    #site-content .page-content .page-title {
      line-height: 1;
      color: #009444; }
      #site-content .page-content .page-title .in-title-subtitle {
        font-size: 0.8em;
        color: #A1C938; }
    #site-content .page-content .page-copy {
      margin-top: 0; }

.site-sidebar {
  padding: 20px 1em 0 !important;
  text-transform: none; }
  @media print, screen and (min-width: 40em) {
    .site-sidebar {
      padding-left: 2em;
      padding-right: 0; } }
  .site-sidebar hr {
    border-color: #cfdcb1; }
  .site-sidebar a:hover, .site-sidebar .shuffle-filter-button.active {
    color: #7ea317; }
  .site-sidebar h3.widget-title {
    text-transform: uppercase;
    background: #A1C938; }
  .site-sidebar .wp-caption {
    max-width: 100%; }
    .site-sidebar .wp-caption .wp-caption-text {
      display: block;
      background-color: #A1C938;
      color: #fff;
      padding: 0.5em 0;
      font-size: 1.2em;
      font-weight: bold;
      text-transform: uppercase;
      text-align: center;
      transition: background-color 300ms; }
  .site-sidebar .binz-custom-sidebar-content ul {
    list-style: disc;
    margin-left: 1em; }

#site-footer {
  background: #cce193;
  background: linear-gradient(to bottom, #cce193 0%, #ffffff 49%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cce193', endColorstr='#ffffff',GradientType=0 );
  border-color: #A1C938;
  color: #000; }

body.home #site-content > .row {
  background: #009444 !important; }

body.home #home-banner {
  height: 480px; }
  @media screen and (max-width: 39.9375em) {
    body.home #home-banner {
      height: auto; } }
  body.home #home-banner .dzs-slider .slick-slide {
    height: 480px; }
    @media screen and (max-width: 39.9375em) {
      body.home #home-banner .dzs-slider .slick-slide {
        height: auto; } }
    body.home #home-banner .dzs-slider .slick-slide img {
      height: 480px; }
      @media screen and (max-width: 39.9375em) {
        body.home #home-banner .dzs-slider .slick-slide img {
          height: auto; } }

body.home #home-z-feed .title-section hr {
  border-color: #A1C938; }

body.home #home-z-feed .title-section .title, body.home #home-z-feed .title-section .sub-title {
  background: #009444; }

body.home #home-z-feed .feed img {
  width: 100%; }

body.home #home-z-feed .feed .feed-page-title {
  margin: 0; }
  body.home #home-z-feed .feed .feed-page-title a {
    display: block;
    background: #A1C938;
    color: #fff;
    text-align: center;
    padding: 1em;
    font-weight: bold;
    transition: background 300ms; }
    body.home #home-z-feed .feed .feed-page-title a:hover, body.home #home-z-feed .feed .feed-page-title .site-sidebar .shuffle-filter-button.active, .site-sidebar body.home #home-z-feed .feed .feed-page-title .shuffle-filter-button.active {
      background: #b4d460; }

#site-content .binz-full-width .page-copy {
  max-width: none; }

body.single-animal .animal-facts {
  background: #009444;
  margin-top: 3em; }
  body.single-animal .animal-facts h3, body.single-animal .animal-facts .fact-title {
    color: #A1C938; }

body.single-animal .animal-page-gradient {
  background: transparent; }

body.single-animal .animal-title {
  color: #009444; }

body.single-animal .scientific-name {
  color: inherit; }

#single-event {
  padding: 20px 1em; }
  @media print, screen and (min-width: 40em) {
    #single-event {
      padding: 20px 1em 20px 0; }
      #single-event .site-sidebar {
        padding-top: 0 !important; } }

body.search .search-results-count {
  color: #a1c938; }

@-webkit-keyframes dzs-binz-paw-flash {
  0% {
    color: #009444; }
  49% {
    color: #009444; }
  50% {
    color: #00c75b; }
  51% {
    color: #009444; }
  52% {
    color: #00c75b; }
  53% {
    color: #009444; }
  100% {
    color: #009444; } }

@keyframes dzs-binz-paw-flash {
  0% {
    color: #009444; }
  49% {
    color: #009444; }
  50% {
    color: #00c75b; }
  51% {
    color: #009444; }
  52% {
    color: #00c75b; }
  53% {
    color: #009444; }
  100% {
    color: #009444; } }

.dzs-qib-toggle-container .main-icon {
  background: transparent;
  color: #009444 !important;
  -webkit-animation: dzs-binz-paw-flash 10s infinite !important;
          animation: dzs-binz-paw-flash 10s infinite !important; }

#dzs-qib {
  color: #fff; }
  #dzs-qib h3, #dzs-qib h4, #dzs-qib h5, #dzs-qib h6 {
    color: inherit;
    font-weight: bold; }
  #dzs-qib hr {
    margin: 0.5em 0;
    border: 1px solid #009444; }
  #dzs-qib .qib-content {
    background: #A1C938 !important;
    height: 480px !important; }
  #dzs-qib .binz-qib-blurb h3 {
    font-size: 2em;
    font-style: italic;
    font-weight: normal; }
  #dzs-qib .binz-qib-hours {
    color: #009444; }
    #dzs-qib .binz-qib-hours h3, #dzs-qib .binz-qib-hours h4 {
      font-size: 1.75em; }
  #dzs-qib .qib-quick-view {
    background: linear-gradient(to right, #b3c193 0%, #cee392 100%) !important; }
    #dzs-qib .qib-quick-view .left {
      float: left; }
    #dzs-qib .qib-quick-view .right {
      float: right; }

.shuffle-items .shuffle-item:hover a {
  border-color: #009444; }

.shuffle-items .shuffle-item:hover .shuffle-title {
  background: #009444; }

.shuffle-items .shuffle-item a {
  border-color: #A1C938; }

.shuffle-items .shuffle-item .shuffle-title {
  background: #A1C938; }

.button, button, input[type="button"] {
  background: #A1C938; }
  .button:hover, .button:active, button:hover, button:active, input[type="button"]:hover, input[type="button"]:active {
    background: #009444; }

.accordion {
  padding-left: 0 !important; }
  .accordion .accordion-navigation > a, .accordion .site-sidebar .accordion-navigation > a {
    background: #A1C938; }
    .accordion .accordion-navigation > a:hover, .accordion .site-sidebar .accordion-navigation > a:hover, .accordion .site-sidebar .accordion-navigation > .shuffle-filter-button.active, .site-sidebar .accordion .accordion-navigation > .shuffle-filter-button.active {
      background: #81a22c !important; }
  .accordion .accordion-navigation.is-active > a, .accordion .site-sidebar .accordion-navigation.is-active > a {
    background: #81a22c !important; }
  .accordion .accordion-navigation > .content {
    padding-left: 0;
    padding-right: 0;
    left: 0; }

#to-top {
  background: #A1C938; }
  #to-top:hover {
    background: #aace4c; }

body:not(.home) #site-content > .dzs-alerts-container[data-has_alerts] {
  padding-top: 36px; }

#site-search {
  background: #A1C938;
  /* The fallback for ancient things */
  background: rgba(161, 201, 56, 0.9); }

.widget_text {
  background-color: #009444;
  color: #fff;
  padding: 1em; }
  .widget_text h3.widget-title {
    background: transparent;
    color: #A1C938;
    font-weight: bold;
    padding: 0;
    margin-bottom: 1em; }
  .widget_text *:last-child {
    margin-bottom: 0; }

.widget_dzs_widget_image a:hover .image-caption, .widget_dzs_widget_image .site-sidebar .shuffle-filter-button.active .image-caption, .site-sidebar .widget_dzs_widget_image .shuffle-filter-button.active .image-caption {
  background-color: #b4d460; }

.widget_dzs_widget_image h3.widget-title {
  background: #A1C938; }

.widget_dzs_widget_image .image-caption {
  display: block;
  background-color: #A1C938;
  color: #fff;
  padding: 0.5em 0;
  font-size: 1.2em;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  transition: background-color 300ms; }

.site-sidebar .shuffle-filter li a {
  color: #000; }
  .site-sidebar .shuffle-filter li a:hover, .site-sidebar .shuffle-filter li .shuffle-filter-button.active {
    color: #009444; }
  .site-sidebar .shuffle-filter li a .shuffle-grid-deselect-icon {
    background: #009444; }

.binz-widget-post-link a:hover .binz-widget-post-link-title, .binz-widget-post-link .site-sidebar .shuffle-filter-button.active .binz-widget-post-link-title, .site-sidebar .binz-widget-post-link .shuffle-filter-button.active .binz-widget-post-link-title {
  background-color: #b4d460; }

.binz-widget-post-link .binz-widget-post-link-title {
  display: block;
  background-color: #A1C938;
  color: #fff;
  padding: 0.5em 0;
  font-size: 1.2em;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  transition: background-color 300ms; }

/*
Textbox shortcode.

@since 1.0.0
*/
.dzs-sc-textbox.color-primary {
  background: #009444;
  color: #fff; }
  .dzs-sc-textbox.color-primary h3.dzs-sc-textbox-title {
    color: #A1C938; }

.dzs-sc-textbox.color-secondary {
  background: #A1C938;
  color: #fff; }
  .dzs-sc-textbox.color-secondary h3.dzs-sc-textbox-title {
    color: #fff; }

.dzs-sc-textbox h3.dzs-sc-textbox-title {
  font-weight: bold;
  text-tranform: uppercase; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiX21peGlucy5zY3NzIiwiX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLW92ZXJyaWRlcy5zY3NzIiwiX2RhdGVwaWNrZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiX3NpZGUtaW1hZ2Uuc2NzcyIsInN0YXRpYy9faGVhZGVyLnNjc3MiLCJzdGF0aWMvX2NvbnRlbnQuc2NzcyIsInN0YXRpYy9fc2lkZWJhci5zY3NzIiwic3RhdGljL19mb290ZXIuc2NzcyIsInRlbXBsYXRlcy9faG9tZS5zY3NzIiwidGVtcGxhdGVzL190ZW1wbGF0ZS1mdWxsLXdpZHRoLnNjc3MiLCJ0ZW1wbGF0ZXMvX3NpbmdsZS1hbmltYWwuc2NzcyIsInRlbXBsYXRlcy9fc2luZ2xlLWV2ZW50LnNjc3MiLCJ0ZW1wbGF0ZXMvX3NlYXJjaC5zY3NzIiwicGFydGlhbHMvX3FpYi5zY3NzIiwicGFydGlhbHMvX3NodWZmbGUtZ3JpZC5zY3NzIiwicGFydGlhbHMvX2J1dHRvbnMuc2NzcyIsInBhcnRpYWxzL19hY2NvcmRpb24uc2NzcyIsInBhcnRpYWxzL190by10b3Auc2NzcyIsInBhcnRpYWxzL19hbGVydC5zY3NzIiwicGFydGlhbHMvX3NpdGUtc2VhcmNoLnNjc3MiLCJ3aWRnZXRzL190ZXh0LnNjc3MiLCJ3aWRnZXRzL19pbWFnZS5zY3NzIiwid2lkZ2V0cy9fc2h1ZmZsZS1ncmlkLnNjc3MiLCJ3aWRnZXRzL19wb3N0LWxpbmsuc2NzcyIsInNob3J0Y29kZXMvX3RleHRib3guc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQ0lIOzs7O0VBSUU7QUNaRjtFQUNFLG9CQ0RxQjtFRm1CbkIsWUVYYSxFRExmO0FBSEY7RUFDRSxvQkNEcUI7RUZtQm5C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QUNuQzs7QUNuQkg7Ozs7RUFJRTtBQUVGO0VBRUksb0J4Qk5xQjtFd0JPckIsWUFBVyxFQUtaO0VBUkg7SUFNTSxleEJYaUIsRXdCWWxCOztBQVBMO0VBV0ksb0J4QmhCbUI7RXdCaUJuQixZQUFXLEVBS1o7RUFqQkg7SUFlTSxZQUFXLEVBQ1o7O0FBaEJMO0VBb0JJLGtCQUFpQjtFQUNqQix5QkFBd0IsRUFDekIiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjQuM1xuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gRGVwZW5kZW5jaWVzXG5AaW1wb3J0ICcuLi9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cblxuICBAaWYgJHByb3RvdHlwZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcbiAgfVxufVxuIiwiQG1peGluIGxpZ2h0LW9yLWRhcmstdGV4dCgkY29sb3IpIHtcblxuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA1MCUge1xuICAgIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gIH0gQGVsc2Uge1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgfVxufVxuXG4vKlxuRXh0cmEgZnVuY3Rpb25zLlxuXG5Ac2luY2UgMC4xLjBcbiovXG5cbkBtaXhpbiBsaWdodC1vci1kYXJrLXRleHQoJGNvbG9yKSB7XG5cbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNTAlIHtcbiAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICB9IEBlbHNlIHtcbiAgICBjb2xvcjogJGRhcmstY29sb3I7XG4gIH1cbn1cblxuQG1peGluIGhvcml6b250YWwtZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMiwgJHN0b3AxOiAwJSwgJHN0b3AyOiAxMDAlKSB7XG4gIGJhY2tncm91bmQ6ICRjb2xvcjE7XG4gIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l4TURBbElpQjVNajBpTUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUkySm1NV1V5WkNJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTm1OVGswTnpjaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgICRjb2xvcjEgJHN0b3AxLCAkY29sb3IyICRzdG9wMik7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKCRzdG9wMSwkY29sb3IxKSwgY29sb3Itc3RvcCgkc3RvcDIsJGNvbG9yMikpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAgJGNvbG9yMSAkc3RvcDEsJGNvbG9yMiAkc3RvcDIpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgICRjb2xvcjEgJHN0b3AxLCRjb2xvcjIgJHN0b3AyKTtcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAgJGNvbG9yMSAkc3RvcDEsJGNvbG9yMiAkc3RvcDIpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICAkY29sb3IxICRzdG9wMSwkY29sb3IyICRzdG9wMik7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjYmYxZTJkJywgZW5kQ29sb3JzdHI9JyNmNTk0NzcnLEdyYWRpZW50VHlwZT0xICk7XG59XG5cbkBtaXhpbiB2ZXJ0aWNhbC1ncmFkaWVudCgkY29sb3IxLCAkY29sb3IyLCAkc3RvcDE6IDAlLCAkc3RvcDI6IDEwMCUpIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yMTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAgJGNvbG9yMSAkc3RvcDEsICRjb2xvcjIgJHN0b3AyKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgkc3RvcDEsJGNvbG9yMSksIGNvbG9yLXN0b3AoJHN0b3AyLCRjb2xvcjIpKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAgJGNvbG9yMSAkc3RvcDEsJGNvbG9yMiAkc3RvcDIpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAgJGNvbG9yMSAkc3RvcDEsJGNvbG9yMiAkc3RvcDIpO1xuICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgICRjb2xvcjEgJHN0b3AxLCRjb2xvcjIgJHN0b3AyKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgICRjb2xvcjEgJHN0b3AxLCRjb2xvcjIgJHN0b3AyKTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMyNThkYzgnLCBlbmRDb2xvcnN0cj0nIzIyMzliNycsR3JhZGllbnRUeXBlPTAgKTtcbn1cblxuLy8gQ29udmVydCBIZXggdG8gUkdCQVxuQG1peGluIGJhY2tncm91bmQtb3BhY2l0eSggJGNvbG9yLCAkb3BhY2l0eTogMC4zICkge1xuICBiYWNrZ3JvdW5kOiAkY29sb3I7IC8qIFRoZSBmYWxsYmFjayBmb3IgYW5jaWVudCB0aGluZ3MgKi9cbiAgYmFja2dyb3VuZDogcmdiYSggJGNvbG9yLCAkb3BhY2l0eSApO1xufSIsIi8vIFNlbGVjdCBjb2xvclxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgQGluY2x1ZGUgbGlnaHQtb3ItZGFyay10ZXh0KCRwcmltYXJ5LWNvbG9yKTtcbiB9XG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIEBpbmNsdWRlIGxpZ2h0LW9yLWRhcmstdGV4dCgkcHJpbWFyeS1jb2xvcik7XG59XG5cbmEge1xuICBjb2xvcjogJHByaW1hcnktY29sb3I7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gIH1cbn1cblxuaDEsIGgyLCBoNCB7XG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuaDMge1xuICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbn1cblxuaDUsIGg2IHtcbiAgY29sb3I6IGluaGVyaXQ7XG59IiwiLy8gQ29sb3JzXG4kcHJpbWFyeS1jb2xvcjogI0ExQzkzODtcbiRzZWNvbmRhcnktY29sb3I6ICMwMDk0NDQ7XG5cbiRhbGVydC1jb2xvcjogI2YwNDEyNDtcbiRzdWNjZXNzLWNvbG9yOiAjNDNBQzZBO1xuJHdhcm5pbmctY29sb3I6ICNmMDhhMjQ7XG4kaW5mby1jb2xvcjogI2EwZDNlODtcblxuJGRhcmstY29sb3I6ICMzMzM7XG4kbWVkaXVtLWNvbG9yOiAjYWFhO1xuJGxpZ2h0LWNvbG9yOiAjZmZmO1xuXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gICAgcHJpbWFyeTogJHByaW1hcnktY29sb3IsXG4gICAgc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5LWNvbG9yLFxuICAgIGluZm86ICRpbmZvLWNvbG9yLFxuICAgIHN1Y2Nlc3M6ICRzdWNjZXNzLWNvbG9yLFxuICAgIHdhcm5pbmc6ICR3YXJuaW5nLWNvbG9yLFxuICAgIGFsZXJ0OiAkYWxlcnQtY29sb3IsXG4pO1xuXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4kYW5jaG9yLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1mb250LWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4vLyBNZWRpYSBxdWVyeSByYW5nZXNcbiRtZWRpdW0tcmFuZ2U6ICg0MGVtLCA2NGVtKTtcblxuJHNjcmVlbjogXCJhbGxcIjtcbiRtZWRpdW0tb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcblxuLy8gQWRkZWQvQ3VzdG9tXG4kcGhhYmxldC1sYW5kc2NhcGU6IFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogNzMzcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIiAhZGVmYXVsdDtcbiRpcGFkLXBvcnRyYWl0OiBcIiN7JG1lZGl1bS1vbmx5fSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcIiAhZGVmYXVsdDsgLy8gVGhpcyBpbmNsdWRlcyB1cCB0aHJvdWdoIE1lZGl1bSB0ZWNobmljYWxseSwgYnV0IGl0IHNob3VsZG4ndCBjYXVzZSBwcm9ibGVtcyBmb3IgZGVza3RvcCB1c2VycyB1bmxlc3MgdGhleSBoYXZlIGEgbG93IHJlc29sdXRpb24gcG9ydHJhaXQgbW9uaXRvciBmb3Igc29tZSByZWFzb25cbiRpcGFkLWxhbmRzY2FwZTogXCIjeyRzY3JlZW59IGFuZCAobWluLWRldmljZS13aWR0aCA6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXCIgIWRlZmF1bHQ7IiwiLy8gQ29sb3IgdG8gb3VyIFRoZW1lXG4udWktZGF0ZXBpY2tlciB7XG5cdC51aS13aWRnZXQtaGVhZGVyLCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuXHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cdH1cblxuXHR0aGVhZCB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdH1cblxuXHR0ZCB7XG5cdFx0Ji51aS1kYXRlcGlja2VyLXRvZGF5IHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cdFx0fVxuXG5cdFx0Ji51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IHtcblx0XHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cdFx0fVxuXG5cdFx0YS51aS1zdGF0ZS1ob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cdH1cbn1cblxuLy8gRnJvbnRlbmQtc3BlY2lmaWMgYWRqdXN0bWVudHMgZm9yIHRoZSBEYXRlcGlja2VyXG4vLyBBIGxvdCBvZiBzdHlsZXMgd29ya2VkIGZpbmUgaW4gdGhlIFBhcmVudCBUaGVtZSBidXQgc2VlbSB0byBuZWVkIGV4dHJhIGVuY291cmFnZW1lbnQgaGVyZVxuLnVpLWRhdGVwaWNrZXIge1xuXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0Ym94LXNoYWRvdzogMCAzcHggNnB4IHJnYmEoIDAsMCwwLDAuMDc1ICk7XG5cdGJvcmRlci1jb2xvcjogI2RmZGZkZiAhaW1wb3J0YW50O1xuXG5cdCYsICoge1xuXHRcdGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcblx0fVxuXG5cdC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG5cdFx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHR9XG5cblx0LnVpLWRhdGVwaWNrZXItdGl0bGUge1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmc6IDEwcHggMDtcblx0fVxuXG5cdC51aS13aWRnZXQtaGVhZGVyLCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuXHRcdEBpbmNsdWRlIGxpZ2h0LW9yLWRhcmstdGV4dCggJHNlY29uZGFyeS1jb2xvciApO1xuXHR9XG5cblx0LnVpLWRhdGVwaWNrZXItcHJldiwgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG5cdFx0dG9wOiAwLjI1ZW0gIWltcG9ydGFudDtcblx0fVxuXG5cdC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHtcblx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0fVxuXG5cdHRoZWFkIHRoIHtcblx0XHRAaW5jbHVkZSBsaWdodC1vci1kYXJrLXRleHQoICRwcmltYXJ5LWNvbG9yICk7XG5cdH1cblxufSIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkb2xkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICQtemYtc2l6ZTogbnVsbCAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbmcgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW5nLlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiQGluY2x1ZGUgYnJlYWtwb2ludCggc21hbGwgb25seSApIHtcblxuXHQuZHpzLXNjLXNpZGUtaW1hZ2Uge1xuXHRcdEBpbmNsdWRlIGhvcml6b250YWwtZ3JhZGllbnQoJHNlY29uZGFyeS1jb2xvciwgJHByaW1hcnktY29sb3IpO1xuXHR9XG5cbn0iLCIjc2l0ZS1oZWFkZXIge1xuICBjb2xvcjogJHByaW1hcnktY29sb3I7XG5cbiAgLy9ub2luc3BlY3Rpb24gQ3NzT3B0aW1pemVTaW1pbGFyUHJvcGVydGllc1xuICAuaGVhZGVyLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzliZGJmMztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9oZWFkZXIteC1yZXBlYXRAMngucG5nJyksIHVybCgnLi4vaW1hZ2VzL2Nsb3Vkcy5qcGcnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b207XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14LCByZXBlYXQteDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDM0N3B4IDg0cHgsIDk1N3B4IDE5MXB4O1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICAuaGVhZGVyLWJvdHRvbSB7XG4gICAgYmFja2dyb3VuZDogIzIyMUUxRjtcbiAgfVxuXG4gIC5wcmltYXJ5LW5hdiB7XG4gICAgLm1lbnUge1xuICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICBjb2xvcjogIzIyMUUxRjtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgID4gLm1lbnUtaXRlbSB7XG5cdFx0ICBcblx0XHQgICYubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XG5cdFx0XHQgIFxuXHRcdFx0ICAmID4gYSB7XG5cdFx0XHRcdCAgXG5cdFx0XHRcdCAgJjphZnRlciB7XG5cdFx0XHRcdFx0ICBcblx0XHRcdFx0XHQgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0ICBcblx0XHRcdFx0ICB9XG5cdFx0XHRcdCAgXG5cdFx0XHQgIH1cblx0XHRcdCAgXG5cdFx0XHQgICY6aG92ZXIge1xuXHRcdFx0XHQgIFxuXHRcdFx0XHQgICYgPiBhIHtcblx0XHRcdFx0ICBcblx0XHRcdFx0XHQgICY6YWZ0ZXIge1xuXG5cdFx0XHRcdFx0XHQgIGJvcmRlci1jb2xvcjogJHdoaXRlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXG5cdFx0XHRcdFx0ICB9XG5cblx0XHRcdFx0ICB9XG5cdFx0XHRcdCAgXG5cdFx0XHQgIH1cblx0XHRcdCAgXG5cdFx0ICB9XG5cdFx0ICBcbiAgICAgICAgJjpob3ZlciB7XG5cdFx0XHRcblx0XHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHQgIGNvbG9yOiAjZmZmO1xuXHRcdFx0ICBcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgfVxuXHRcdFx0XG5cdFx0XHQgID4gYSB7XG5cblx0XHRcdFx0ICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgIFx0fVxuICAgICAgICB9XG5cbiAgICAgICAgPiAuc3VibWVudSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCA1JSk7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCBtZWRpdW0gKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICA+IC5tZW51LWl0ZW0ge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zO1xuXHRcdFx0ICBcblx0XHRcdCAgYSB7XG5cdFx0XHRcdCAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHQgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyMjFFMUY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cdFxuXHQuc2VhcmNoLXRvZ2dsZSB7XG5cdFx0XG5cdFx0Zm9udC1zaXplOiAxLjhyZW07XG5cdFx0XG5cdFx0YnV0dG9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0XHRcblx0XHQuZmEtc2VhcmNoIHtcblx0XHRcdG1hcmdpbi10b3A6IDAuMzVyZW07XG5cdFx0fVxuXHRcdFxuXHR9XG5cdFxufSIsIiNzaXRlLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iaW56LWJhY2tncm91bmQucG5nJykgYm90dG9tIGZpeGVkIHJlcGVhdC14ICNlMWU3ZDMgIWltcG9ydGFudDtcblxuICA+LnJvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKCMwMDAsIDAuMikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wYWdlLXRpdGxlLXNlY3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgICBwYWRkaW5nOiA3NXB4IDAgNzVweCAxZW07XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggbWVkaXVtICkge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAub3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNlY29uZGFyeS1jb2xvciwgMC44KTtcbiAgICB9XG5cbiAgICAucGFnZS10aXRsZSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5wYWdlLXN1YnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLnBhZ2UtY29udGVudCB7XG4gICAgcGFkZGluZzogMjBweCAxZW0gMDsgLy8gQ29waWVzIFBhZGRpbmcgaW4gRFpTIFRoZW1lIHdoaWxlIG1hdGNoaW5nIHN0eWxpbmcgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVtZXNcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgICB9XG5cbiAgICAucGFnZS10aXRsZSB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXG4gICAgICAuaW4tdGl0bGUtc3VidGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtY29weSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxufSIsIi5zaXRlLXNpZGViYXIge1xuICBwYWRkaW5nOiAyMHB4IDFlbSAwICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgaHIge1xuICAgIGJvcmRlci1jb2xvcjogI2NmZGNiMTtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgYTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICM3ZWEzMTc7XG4gICAgfVxuICB9XG5cbiAgaDMud2lkZ2V0LXRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yXG4gIH1cblxuICAud3AtY2FwdGlvbiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgLndwLWNhcHRpb24tdGV4dCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAwLjVlbSAwO1xuICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXM7XG4gICAgfVxuICB9XG5cbiAgLmJpbnotY3VzdG9tLXNpZGViYXItY29udGVudCB7XG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxuICB9XG59IiwiI3NpdGUtZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogI2NjZTE5MztcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjY2NlMTkzIDAlLCAjZmZmZmZmIDQ5JSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCUsI2NjZTE5MyksIGNvbG9yLXN0b3AoNDklLCNmZmZmZmYpKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjY2NlMTkzIDAlLCNmZmZmZmYgNDklKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2NjZTE5MyAwJSwjZmZmZmZmIDQ5JSk7XG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjY2NlMTkzIDAlLCNmZmZmZmYgNDklKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2NjZTE5MyAwJSwjZmZmZmZmIDQ5JSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjY2NlMTkzJywgZW5kQ29sb3JzdHI9JyNmZmZmZmYnLEdyYWRpZW50VHlwZT0wICk7XG4gIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIGNvbG9yOiAjMDAwO1xufSIsImJvZHkuaG9tZSB7XG4gICNzaXRlLWNvbnRlbnQge1xuICAgID4gLnJvdyB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgI2hvbWUtYmFubmVyIHtcbiAgICBoZWlnaHQ6IDQ4MHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCggc21hbGwgb25seSApIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAuZHpzLXNsaWRlciB7XG4gICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICBoZWlnaHQ6IDQ4MHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoIHNtYWxsIG9ubHkgKSB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IDQ4MHB4O1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCggc21hbGwgb25seSApIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjaG9tZS16LWZlZWQge1xuICAgIC50aXRsZS1zZWN0aW9uIHtcbiAgICAgIGhyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgLnRpdGxlLCAuc3ViLXRpdGxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmVlZCB7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmZlZWQtcGFnZS10aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXM7XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJHByaW1hcnktY29sb3IsIDEwJSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiI3NpdGUtY29udGVudCB7XG4gIC5iaW56LWZ1bGwtd2lkdGgge1xuICAgIC5wYWdlLWNvcHkge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufSIsImJvZHkuc2luZ2xlLWFuaW1hbCB7XG4gIC5hbmltYWwtZmFjdHMge1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgbWFyZ2luLXRvcDogM2VtO1xuXG4gICAgaDMsIC5mYWN0LXRpdGxlIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuYW5pbWFsLXBhZ2UtZ3JhZGllbnQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLmFuaW1hbC10aXRsZSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gIH1cblxuICAuc2NpZW50aWZpYy1uYW1lIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufSIsIiNzaW5nbGUtZXZlbnQge1xuXG5cdHBhZGRpbmc6IDIwcHggMWVtO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1lZGl1bSApIHtcblxuXHRcdHBhZGRpbmc6IDIwcHggMWVtIDIwcHggMDsgLy8gQ29waWVzIFBhZGRpbmcgaW4gRFpTIFRoZW1lIHdoaWxlIG1hdGNoaW5nIHN0eWxpbmcgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVtZXNcblx0XHRcblx0XHQuc2l0ZS1zaWRlYmFyIHtcblx0XHRcdHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdH1cblxufSIsImJvZHkuc2VhcmNoIHtcblx0XG5cdC5zZWFyY2gtcmVzdWx0cy1jb3VudCB7XG5cdFx0Y29sb3I6ICNhMWM5Mzg7XG5cdH1cblx0XG59IiwiQGtleWZyYW1lcyBkenMtYmluei1wYXctZmxhc2gge1xuICAwJSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gIH1cbiAgNDklIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgfVxuICA1MCUge1xuICAgIGNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XG4gIH1cbiAgNTElIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgfVxuICA1MiUge1xuICAgIGNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XG4gIH1cbiAgNTMlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgfVxuICAxMDAlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgfVxufVxuXG4uZHpzLXFpYi10b2dnbGUtY29udGFpbmVyIHtcblx0XG5cdC5tYWluLWljb24ge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG5cdFx0YW5pbWF0aW9uOiBkenMtYmluei1wYXctZmxhc2ggMTBzIGluZmluaXRlICFpbXBvcnRhbnQ7XG5cdCAgfVxuXHRcbn1cblxuI2R6cy1xaWIge1xuICBjb2xvcjogI2ZmZjtcblxuICBoMywgaDQsIGg1LCBoNiB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICBociB7XG4gICAgbWFyZ2luOiAwLjVlbSAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZWNvbmRhcnktY29sb3I7XG4gIH1cblxuICAucWliLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA0ODBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmJpbnotcWliLWJsdXJiIHtcbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuICB9XG5cbiAgLmJpbnotcWliLWhvdXJzIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblxuICAgIGgzLCBoNCB7XG4gICAgICBmb250LXNpemU6IDEuNzVlbTtcbiAgICB9XG4gIH1cblxuICAucWliLXF1aWNrLXZpZXcge1xuXHQgIFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2IzYzE5MyAwJSwgI2NlZTM5MiAxMDAlKSAhaW1wb3J0YW50O1xuXHQgIFxuXHQgIC5sZWZ0IHtcblx0XHQgIGZsb2F0OiBsZWZ0O1xuXHQgIH1cblx0ICBcblx0ICAucmlnaHQge1xuXHRcdCAgZmxvYXQ6IHJpZ2h0O1xuXHQgIH1cblx0ICBcbiAgfVxufSIsIi5zaHVmZmxlLWl0ZW1zIHtcbiAgLnNodWZmbGUtaXRlbSB7XG4gICAgJjpob3ZlciB7XG4gICAgICBhIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAuc2h1ZmZsZS10aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIC5zaHVmZmxlLXRpdGxlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxufSIsIi5idXR0b24sIGJ1dHRvbiwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSB7XG4gIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICY6aG92ZXIsICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICB9XG59IiwiLmFjY29yZGlvbiB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXG4gIC5hY2NvcmRpb24tbmF2aWdhdGlvbiB7XG4gICAgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCAxMCUpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG5cdCAgJi5pcy1hY3RpdmUge1xuXHRcdCAgXG5cdFx0ICAmID4gYSB7XG5cdFx0XHQgIFxuXHRcdFx0ICBiYWNrZ3JvdW5kOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDEwJSkgIWltcG9ydGFudDtcblx0XHRcdCAgXG5cdFx0ICB9XG5cdFx0ICBcblx0ICB9XG5cdCAgXG4gICAgPiAuY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXHQgIGxlZnQ6IDA7IC8vIENvbHVtbiBDbGFzc2VzIGZvciBpbmNsdWRlZCBQYWdlIENvbnRlbnQgaW4gYW4gQWNjb3JkaW5nIGNhdXNlZCBpc3N1ZXNcbiAgICB9XG4gIH1cbn0iLCIjdG8tdG9wIHtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgNSUpO1xuICB9XG59IiwiYm9keTpub3QoLmhvbWUpIHtcblxuXHQjc2l0ZS1jb250ZW50IHtcblxuXHRcdCYgPiAuZHpzLWFsZXJ0cy1jb250YWluZXJbZGF0YS1oYXNfYWxlcnRzXSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMzZweDsgLy8gMWVtIHBsdXMgdGhlIHJlZ3VsYXIgMjBweCBwYWRkaW5nXG5cdFx0fVxuXG5cdH1cblxufSIsIiNzaXRlLXNlYXJjaCB7XG5cdFxuXHRAaW5jbHVkZSBiYWNrZ3JvdW5kLW9wYWNpdHkoICRwcmltYXJ5LWNvbG9yLCAwLjkgKTtcblx0XG59IiwiLndpZGdldF90ZXh0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDFlbTtcblxuICBoMy53aWRnZXQtdGl0bGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgfVxuXG4gICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufSIsIi53aWRnZXRfZHpzX3dpZGdldF9pbWFnZSB7XG4gIGEge1xuICAgICY6aG92ZXIge1xuICAgICAgLmltYWdlLWNhcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCAxMCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGgzLndpZGdldC10aXRsZSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIH1cblxuICAuaW1hZ2UtY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMC41ZW0gMDtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXM7XG4gIH1cbn0iLCIuc2l0ZS1zaWRlYmFyIHtcbiAgLnNodWZmbGUtZmlsdGVyLWJ1dHRvbiB7XG4gICAgJi5hY3RpdmUge1xuICAgICAgQGV4dGVuZCBhOmhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIC5zaHVmZmxlLWZpbHRlciB7XG4gICAgbGkge1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNodWZmbGUtZ3JpZC1kZXNlbGVjdC1pY29uIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmJpbnotd2lkZ2V0LXBvc3QtbGlua3tcbiAgYSB7XG4gICAgJjpob3ZlciB7XG4gICAgICAuYmluei13aWRnZXQtcG9zdC1saW5rLXRpdGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMTAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmluei13aWRnZXQtcG9zdC1saW5rLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAwLjVlbSAwO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcztcbiAgfVxufSIsIi8qXG5UZXh0Ym94IHNob3J0Y29kZS5cblxuQHNpbmNlIDEuMC4wXG4qL1xuXG4uZHpzLXNjLXRleHRib3gge1xuICAmLmNvbG9yLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICBoMy5kenMtc2MtdGV4dGJveC10aXRsZSB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJi5jb2xvci1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgaDMuZHpzLXNjLXRleHRib3gtdGl0bGUge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG5cbiAgaDMuZHpzLXNjLXRleHRib3gtdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbmZvcm06IHVwcGVyY2FzZTtcbiAgfVxufSJdfQ== */
