/*-- -------------------------- -->
<---     Upcoming Projects      -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #upcomingprojects {
    padding: var(--sectionPadding);
    overflow: hidden;
  }
  #upcomingprojects .cs-container {
    width: 100%;
    /* changes to 1280px at desktop */
    max-width: 36.5rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 3rem;
  }
  #upcomingprojects .cs-container-title {
    width: 100%;
    /* changes to 1280px at desktop */
    margin: auto;
    text-align: center;
    gap: 3rem;
    font-size: 75px;
    padding-bottom: 50px;
  }
  #upcomingprojects .cs-content {
    /* set text align to left if content needs to be left aligned */
    text-align: left;
    width: 100%;
    display: flex;
    flex-direction: column;
    /* centers content horizontally, set to flex-start to left align */
    align-items: flex-start;
    position: relative;
    z-index: 10;
  }
  #upcomingprojects .cs-text {
    margin-bottom: 1rem;
  }
  #upcomingprojects .cs-text:last-of-type {
    margin-bottom: 2rem;
  }
  #upcomingprojects .cs-features {
    width: 100%;
    margin: 0 0 2rem;
    /* 24px - 32px */
    padding: clamp(1.5rem, 4vw, 2rem);
    background-color: #fef5f4;
    border-left: 0.25rem solid var(--secondary);
  }
  #upcomingprojects .cs-h3 {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5em;
    margin: 0 0 0.75rem;
    color: var(--headerColor);
  }
  #upcomingprojects .cs-ul {
    font-size: 0.75rem;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  #upcomingprojects .cs-li {
    font-size: 1rem;
    line-height: 1.5em;
    list-style: none;
    /* 20px - 24px */
    padding-left: clamp(1.25rem, 3vw, 1.5rem);
    color: var(--bodyTextColor);
    position: relative;
  }
  #upcomingprojects .cs-li::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    margin-top: 0.5rem;
    background-color: var(--secondary);
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transform: rotate(45deg);
  }
  #upcomingprojects .cs-button-solid {
    font-size: 1rem;
    font-weight: 700;
    /* 46px - 56px */
    line-height: clamp(2.875rem, 5.5vw, 3.5rem);
    text-align: center;
    text-decoration: none;
    min-width: 9.375rem;
    margin: 0;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    padding: 0 1.5rem;
    background-color: var(--primary);
    color: #1a1a1a;
    display: inline-block;
    position: relative;
    z-index: 1;
    transition: color 0.3s;
  }
  #upcomingprojects .cs-button-solid:before {
    content: "";
    width: 0%;
    height: 100%;
    background: #000;
    opacity: 1;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: width 0.3s;
  }
  #upcomingprojects .cs-button-solid:hover {
    color: #fff;
  }
  #upcomingprojects .cs-button-solid:hover:before {
    width: 100%;
  }
  #upcomingprojects .cs-image-group {
    width: 100%;
    height: 126vw;
    max-height: 39.125rem;
    display: block;
    order: -1;
    position: relative;
    z-index: 1;
  }
  #upcomingprojects .cs-picture {
    /* big background image */
    display: block;
    position: absolute;
    top: 0;
    bottom: 5.9375rem;
    left: 0;
  }
  #upcomingprojects .cs-picture img {
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
  }
  #upcomingprojects .cs-box {
    text-align: left;
    width: 91%;
    max-width: 28.125rem;
    /* prevents padding and border from affecting height and width */
    box-sizing: border-box;
    /* 24px - 32px */
    padding: clamp(1.5rem, 3vw, 2rem);
    background-color: #fffcf3;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
    row-gap: 0.5rem;
    position: absolute;
    right: 50%;
    bottom: 0;
    z-index: 10;
    transform: translate(50%);
  }
  #upcomingprojects .cs-number {
    /* 31px - 49px */
    font-size: clamp(1.9375rem, 4vw, 3.0625rem);
    font-weight: 700;
    line-height: 1.2em;
    text-transform: uppercase;
    margin: 0;
    color: var(--General-Secondary, #ffc219);
  }
  #upcomingprojects .cs-heading {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2em;
    margin: 0 0 0.5rem;
    color: var(--headerColor);
  }
  #upcomingprojects .cs-desc {
    font-size: 1rem;
    line-height: 1.5em;
    color: var(--bodyTextColor);
  }
  #upcomingprojects .cs-graphic {
    width: 150%;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;
    transform: translate(-50%, -50%);
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #upcomingprojects .cs-box {
    flex-direction: row;
    align-items: center;
  }
}
/* Desktop - 1024px */
@media only screen and (min-width: 64rem) {
  #upcomingprojects .cs-container {
    max-width: 80rem;
    flex-direction: row;
    align-items: stretch;
    gap: 1.25rem;
  }
  #upcomingprojects .cs-content {
    padding-left: 3.25rem;
    padding-bottom: 6.75rem;
  }
  #upcomingprojects .cs-image-group {
    height: auto;
    min-height: 40.125rem;
    max-height: 100%;
  }
  #upcomingprojects .cs-picture {
    bottom: 4rem;
  }
}
/*-- -------------------------- -->
<---     Current Projects       -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #currentprojects {
    padding: var(--sectionPadding);
    padding-top: 0px;
    overflow: hidden;
  }
  #currentprojects .cs-container {
    width: 100%;
    /* changes to 1280px at desktop */
    max-width: 36.5rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 3rem;
  }
  #currentprojects .cs-container-title {
    width: 100%;
    /* changes to 1280px at desktop */
    margin: auto;
    text-align: center;
    gap: 3rem;
    font-size: 75px;
    padding-bottom: 50px;
  }
  #currentprojects .cs-content {
    /* set text align to left if content needs to be left aligned */
    text-align: left;
    width: 100%;
    display: flex;
    flex-direction: column;
    /* centers content horizontally, set to flex-start to left align */
    align-items: flex-start;
    position: relative;
    z-index: 10;
  }
  #currentprojects .cs-text {
    margin-bottom: 1rem;
  }
  #currentprojects .cs-text:last-of-type {
    margin-bottom: 2rem;
  }
  #currentprojects .cs-features {
    width: 100%;
    margin: 0 0 2rem;
    /* 24px - 32px */
    padding: clamp(1.5rem, 4vw, 2rem);
    background-color: #fef5f4;
    border-left: 0.25rem solid var(--secondary);
  }
  #currentprojects .cs-h3 {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5em;
    margin: 0 0 0.75rem;
    color: var(--headerColor);
  }
  #currentprojects .cs-ul {
    font-size: 0.75rem;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  #currentprojects .cs-li {
    font-size: 1rem;
    line-height: 1.5em;
    list-style: none;
    /* 20px - 24px */
    padding-left: clamp(1.25rem, 3vw, 1.5rem);
    color: var(--bodyTextColor);
    position: relative;
  }
  #currentprojects .cs-li::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    margin-top: 0.5rem;
    background-color: var(--secondary);
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transform: rotate(45deg);
  }
  #currentprojects .cs-button-solid {
    font-size: 1rem;
    font-weight: 700;
    /* 46px - 56px */
    line-height: clamp(2.875rem, 5.5vw, 3.5rem);
    text-align: center;
    text-decoration: none;
    min-width: 9.375rem;
    margin: 0;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    padding: 0 1.5rem;
    background-color: var(--primary);
    color: #1a1a1a;
    display: inline-block;
    position: relative;
    z-index: 1;
    transition: color 0.3s;
  }
  #currentprojects .cs-button-solid:before {
    content: "";
    width: 0%;
    height: 100%;
    background: #000;
    opacity: 1;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: width 0.3s;
  }
  #currentprojects .cs-button-solid:hover {
    color: #fff;
  }
  #currentprojects .cs-button-solid:hover:before {
    width: 100%;
  }
  #currentprojects .cs-image-group {
    width: 100%;
    height: 126vw;
    max-height: 39.125rem;
    display: block;
    order: -1;
    position: relative;
    z-index: 1;
  }
  #currentprojects .cs-picture {
    /* big background image */
    display: block;
    position: absolute;
    top: 0;
    bottom: 5.9375rem;
    left: 0;
  }
  #currentprojects .cs-picture img {
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
  }
  #currentprojects .cs-box {
    text-align: left;
    width: 91%;
    max-width: 28.125rem;
    /* prevents padding and border from affecting height and width */
    box-sizing: border-box;
    /* 24px - 32px */
    padding: clamp(1.5rem, 3vw, 2rem);
    background-color: #fffcf3;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
    row-gap: 0.5rem;
    position: absolute;
    right: 50%;
    bottom: 0;
    z-index: 10;
    transform: translate(50%);
  }
  #currentprojects .cs-number {
    /* 31px - 49px */
    font-size: clamp(1.9375rem, 4vw, 3.0625rem);
    font-weight: 700;
    line-height: 1.2em;
    text-transform: uppercase;
    margin: 0;
    color: var(--General-Secondary, #ffc219);
  }
  #currentprojects .cs-heading {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2em;
    margin: 0 0 0.5rem;
    color: var(--headerColor);
  }
  #currentprojects .cs-desc {
    font-size: 1rem;
    line-height: 1.5em;
    color: var(--bodyTextColor);
  }
  #currentprojects .cs-graphic {
    width: 150%;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;
    transform: translate(-50%, -50%);
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #currentprojects .cs-box {
    flex-direction: row;
    align-items: center;
  }
}
/* Desktop - 1024px */
@media only screen and (min-width: 64rem) {
  #currentprojects .cs-container {
    max-width: 80rem;
    flex-direction: row;
    align-items: stretch;
    gap: 1.25rem;
  }
  #currentprojects .cs-content {
    padding-left: 3.25rem;
    padding-bottom: 6.75rem;
  }
  #currentprojects .cs-image-group {
    height: auto;
    min-height: 40.125rem;
    max-height: 100%;
  }
  #currentprojects .cs-picture {
    bottom: 4rem;
  }
}
/*-- -------------------------- -->
<---           Hero             -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #hero-1785 {
    /* 200px - 300px - leaving extra space for the navigation */
    padding: clamp(12.5rem, 25.95vw, 18.75em) 1rem;
    /* prevents the topper line from causing an overflow */
    overflow: hidden;
    position: relative;
    z-index: 1;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
  }
  #hero-1785 .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 3rem;
  }
  #hero-1785 .cs-content {
    text-align: center;
    width: 100%;
    max-width: 46.875rem;
  }
  #hero-1785 .cs-title {
    /* 49px - 84px */
    font-size: clamp(3.0625rem, 6vw, 5.25rem);
  }
  #hero-1785 .cs-title,
  #hero-1785 .cs-text {
    color: var(--bodyTextColorWhite);
  }
  #hero-1785 .cs-text {
    margin-bottom: 2rem;
  }
  #hero-1785 .cs-button-group {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  #hero-1785 .cs-button-solid {
    font-size: 1rem;
    font-weight: 700;
    /* 46px - 56px */
    line-height: clamp(2.875rem, 5.5vw, 3.5rem);
    text-align: center;
    text-decoration: none;
    min-width: 12.5rem;
    margin: 0;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    padding: 0 1.5rem;
    background-color: var(--primary);
    color: var(--bodyTextColorWhite);
    border-radius: 0.25rem;
    display: inline-block;
    position: relative;
    z-index: 1;
  }
  #hero-1785 .cs-button-solid:before {
    content: "";
    width: 0%;
    height: 100%;
    background: #000;
    opacity: 1;
    border-radius: 0.25rem;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: width 0.3s;
  }
  #hero-1785 .cs-button-solid:hover:before {
    width: 100%;
  }
  #hero-1785 .cs-graphic {
    width: 100%;
    min-width: 120rem;
    height: auto;
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 0;
    transform: translateX(-50%);
  }
  #hero-1785 .cs-graphic-dark {
    display: none;
  }
  #hero-1785 .cs-background {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -2;
  }
  #hero-1785 .cs-background:before {
    /* Overlay */
    content: "";
    width: 100%;
    height: 100%;
    background: #000;
    /* prevents the cursor from interacting with it */
    pointer-events: none;
    opacity: 0.7;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  }
  #hero-1785 .cs-background img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: top;
       object-position: top;
    position: absolute;
    top: 0;
    left: 0;
  }
}
/* Large Desktop - 1920px */
@media only screen and (min-width: 120rem) {
  #hero-1785 {
    /* this ties the padding bottom value to the size of the screen width. The wider the image gets the taller it gets, meaning it will get clsoer and closer to the content. This makes the padding bottom value grow with the screen size so it accounts for the growing height of the svg graphic getting taller */
    padding-bottom: 0px;
    padding-left: 0px;
    padding-right: 0px;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hc3NldHMvbGVzcy9maWxtb2dyYXBoeS5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztrQ0FFa0M7QUFDbEMsbUJBQW1CO0FBU25CO0VBQ0k7SUFDSSw4QkFBQTtJQUNBLGdCQUFBO0VBUE47RUFLRTtJQUtRLFdBQUE7SUFQUixpQ0FBaUM7SUFTekIsa0JBQUE7SUFDQSxZQUFBO0lBQ0EsYUFBQTtJQUNBLHNCQUFBO0lBQ0EsdUJBQUE7SUFDQSx1QkFBQTtJQUNBLFNBQUE7RUFQVjtFQU5FO0lBZ0JRLFdBQUE7SUFQUixpQ0FBaUM7SUFTekIsWUFBQTtJQUNBLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLGVBQUE7SUFDQSxvQkFBQTtFQVBWO0VBZkU7SUFpQkEsK0RBQStEO0lBVXZELGdCQUFBO0lBQ0EsV0FBQTtJQUNBLGFBQUE7SUFDQSxzQkFBQTtJQVJSLGtFQUFrRTtJQVUxRCx1QkFBQTtJQUNBLGtCQUFBO0lBQ0EsV0FBQTtFQVJWO0VBMUJFO0lBc0NRLG1CQUFBO0VBVFY7RUFVVTtJQUNJLG1CQUFBO0VBUmQ7RUFoQ0U7SUE2Q1EsV0FBQTtJQUNBLGdCQUFBO0lBVlIsZ0JBQWdCO0lBWVIsaUNBQUE7SUFDQSx5QkFBQTtJQUNBLDJDQUFBO0VBVlY7RUF4Q0U7SUFzRFEsZUFBQTtJQUNBLGdCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQkFBQTtJQUNBLHlCQUFBO0VBWFY7RUEvQ0U7SUE4RFEsa0JBQUE7SUFDQSxTQUFBO0lBQ0EsVUFBQTtJQUNBLGFBQUE7SUFDQSxzQkFBQTtJQUNBLFlBQUE7RUFaVjtFQXZERTtJQXVFUSxlQUFBO0lBQ0Esa0JBQUE7SUFDQSxnQkFBQTtJQWJSLGdCQUFnQjtJQWVSLHlDQUFBO0lBQ0EsMkJBQUE7SUFDQSxrQkFBQTtFQWJWO0VBZVU7SUFDSSxXQUFBO0lBQ0EsYUFBQTtJQUNBLGNBQUE7SUFDQSxrQkFBQTtJQUNBLGtDQUFBO0lBQ0EsY0FBQTtJQUNBLGtCQUFBO0lBQ0EsTUFBQTtJ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VjtFQXBCRTtJQXNHUSxhQUFBO0VBL0VWO0VBdkJFO0lBMEdRLFdBQUE7SUFDQSxZQUFBO0lBQ0EsY0FBQTtJQUNBLGtCQUFBO0lBQ0EsTUFBQTtJQUNBLE9BQUE7SUFDQSxXQUFBO0VBaEZWO0VBa0ZVO0lBaEZSLFlBQVk7SUFrRkEsV0FBQTtJQUNBLFdBQUE7SUFDQSxZQUFBO0lBQ0EsZ0JBQUE7SUFoRlosaURBQWlEO0lBa0ZyQyxvQkFBQTtJQUNBLFlBQUE7SUFDQSxjQUFBO0lBQ0Esa0JBQUE7SUFDQSxNQUFBO0lBQ0EsT0FBQTtJQUNBLFVBQUE7RUFoRmQ7RUEvQ0U7SUFtSVksV0FBQTtJQUNBLFlBQUE7SUFDQSxvQkFBQTtPQUFBLGlCQUFBO0lBQ0EsdUJBQUE7T0FBQSxvQkFBQTtJQUNBLGtCQUFBO0lBQ0EsTUFBQTtJQUNBLE9BQUE7RUFqRmQ7QUFDRjtBQUNBLDJCQUEyQjtBQXNGM0I7RUFDSTtJQXBGQSxpVEFBaVQ7SUFzRjdTLG1CQUFBO0lBQ0EsaUJBQUE7SUFDQSxrQkFBQTtFQXBGTjtBQUNGIiwiZmlsZSI6ImZpbG1vZ3JhcGh5LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUEFHRSBTVFlMRVNcbi8vIEludGVyaW9yIHBhZ2VzIGhhdmUgdGhlaXIgb3duIHN0eWxlc2hlZXQgZm9yIHN0eWxlcyB0aGF0IG9ubHkgZXhpc3Qgb25cbi8vIHRoYXQgcGFnZS4gQW55IHN0eWxlcyBzaGFyZWQgYmV0d2VlbiBwYWdlcywgaW5jbHVkaW5nIHJlcGVhdGVkIHNlY3Rpb25zLFxuLy8gc2hvdWxkIGdvIGludG8gcm9vdC5sZXNzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyotLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cbjwtLS0gICAgIFVwY29taW5nIFByb2plY3RzICAgICAgLS0+XG48LS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0qL1xuXG4vKiBNb2JpbGUgLSAzNjBweCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcmVtKSB7XG4gICAgI3VwY29taW5ncHJvamVjdHMge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zZWN0aW9uUGFkZGluZyk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLmNzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC8qIGNoYW5nZXMgdG8gMTI4MHB4IGF0IGRlc2t0b3AgKi9cbiAgICAgICAgICAgIG1heC13aWR0aDogKDU4NC8xNnJlbSk7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBnYXA6ICg0OC8xNnJlbSk7XG4gICAgICAgIH1cbiAgICAgICAgLmNzLWNvbnRhaW5lci10aXRsZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC8qIGNoYW5nZXMgdG8gMTI4MHB4IGF0IGRlc2t0b3AgKi9cbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogKDQ4LzE2cmVtKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNzVweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWNvbnRlbnQge1xuICAgICAgICAgICAgLyogc2V0IHRleHQgYWxpZ24gdG8gbGVmdCBpZiBjb250ZW50IG5lZWRzIHRvIGJlIGxlZnQgYWxpZ25lZCAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAvKiBjZW50ZXJzIGNvbnRlbnQgaG9yaXpvbnRhbGx5LCBzZXQgdG8gZmxleC1zdGFydCB0byBsZWZ0IGFsaWduICovXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLXRleHQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogKDE2LzE2cmVtKTtcbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAoMzIvMTZyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWZlYXR1cmVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgKDMyLzE2cmVtKTtcbiAgICAgICAgICAgIC8qIDI0cHggLSAzMnB4ICovXG4gICAgICAgICAgICBwYWRkaW5nOiBjbGFtcCgxLjVyZW0sIDR2dywgMnJlbSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmNWY0O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICg0LzE2cmVtKSBzb2xpZCB2YXIoLS1zZWNvbmRhcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogKDE2LzE2cmVtKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAoMTIvMTZyZW0pO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWhlYWRlckNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy11bCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICgxMi8xNnJlbSk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6ICgxMi8xNnJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtbGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAoMTYvMTZyZW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIC8qIDIwcHggLSAyNHB4ICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNsYW1wKDEuMjVyZW0sIDN2dywgMS41cmVtKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ib2R5VGV4dENvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAoOC8xNnJlbSk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAoOC8xNnJlbSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogKDgvMTZyZW0pO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1idXR0b24tc29saWQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAoMTYvMTZyZW0pO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIC8qIDQ2cHggLSA1NnB4ICovXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogY2xhbXAoMi44NzVyZW0sIDUuNXZ3LCAzLjVyZW0pO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAoMTUwLzE2cmVtKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIC8qIHByZXZlbnRzIHBhZGRpbmcgZnJvbSBhZGRpbmcgdG8gdGhlIHdpZHRoICovXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgcGFkZGluZzogMCAoMjQvMTZyZW0pO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAgICAgICBjb2xvcjogIzFhMWExYTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtaW1hZ2UtZ3JvdXAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEyNnZ3O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogKDYyNi8xNnJlbSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtcGljdHVyZSB7XG4gICAgICAgICAgICAvKiBiaWcgYmFja2dyb3VuZCBpbWFnZSAqL1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206ICg5NS8xNnJlbSk7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1ib3gge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA5MSU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICg0NTAvMTZyZW0pO1xuICAgICAgICAgICAgLyogcHJldmVudHMgcGFkZGluZyBhbmQgYm9yZGVyIGZyb20gYWZmZWN0aW5nIGhlaWdodCBhbmQgd2lkdGggKi9cbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAvKiAyNHB4IC0gMzJweCAqL1xuICAgICAgICAgICAgcGFkZGluZzogY2xhbXAoMS41cmVtLCAzdncsIDJyZW0pO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmNmMztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAoMjQvMTZyZW0pO1xuICAgICAgICAgICAgcm93LWdhcDogKDgvMTZyZW0pO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1udW1iZXIge1xuICAgICAgICAgICAgLyogMzFweCAtIDQ5cHggKi9cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS45Mzc1cmVtLCA0dncsIDMuMDYyNXJlbSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1HZW5lcmFsLVNlY29uZGFyeSwgI2ZmYzIxOSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtaGVhZGluZyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICgyMC8xNnJlbSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgKDgvMTZyZW0pO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWhlYWRlckNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1kZXNjIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogKDE2LzE2cmVtKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ib2R5VGV4dENvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1ncmFwaGljIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNTAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBUYWJsZXQgLSA3NjhweCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OHJlbSkge1xuICAgICN1cGNvbWluZ3Byb2plY3RzIHtcbiAgICAgICAgLmNzLWJveCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRGVza3RvcCAtIDEwMjRweCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NHJlbSkge1xuICAgICN1cGNvbWluZ3Byb2plY3RzIHtcbiAgICAgICAgLmNzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICgxMjgwLzE2cmVtKTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgICAgIGdhcDogKDIwLzE2cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKDUyLzE2cmVtKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAoMTA4LzE2cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1pbWFnZS1ncm91cCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAoNjQyLzE2cmVtKTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtcGljdHVyZSB7XG4gICAgICAgICAgICBib3R0b206ICg2NC8xNnJlbSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuLyotLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cbjwtLS0gICAgIEN1cnJlbnQgUHJvamVjdHMgICAgICAgLS0+XG48LS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0qL1xuXG4vKiBNb2JpbGUgLSAzNjBweCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcmVtKSB7XG4gICAgI2N1cnJlbnRwcm9qZWN0cyB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNlY3Rpb25QYWRkaW5nKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAuY3MtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLyogY2hhbmdlcyB0byAxMjgwcHggYXQgZGVza3RvcCAqL1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAoNTg0LzE2cmVtKTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGdhcDogKDQ4LzE2cmVtKTtcbiAgICAgICAgfVxuICAgICAgICAuY3MtY29udGFpbmVyLXRpdGxlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgLyogY2hhbmdlcyB0byAxMjgwcHggYXQgZGVza3RvcCAqL1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAoNDgvMTZyZW0pO1xuICAgICAgICAgICAgZm9udC1zaXplOiA3NXB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtY29udGVudCB7XG4gICAgICAgICAgICAvKiBzZXQgdGV4dCBhbGlnbiB0byBsZWZ0IGlmIGNvbnRlbnQgbmVlZHMgdG8gYmUgbGVmdCBhbGlnbmVkICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIC8qIGNlbnRlcnMgY29udGVudCBob3Jpem9udGFsbHksIHNldCB0byBmbGV4LXN0YXJ0IHRvIGxlZnQgYWxpZ24gKi9cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAoMTYvMTZyZW0pO1xuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICgzMi8xNnJlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtZmVhdHVyZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAoMzIvMTZyZW0pO1xuICAgICAgICAgICAgLyogMjRweCAtIDMycHggKi9cbiAgICAgICAgICAgIHBhZGRpbmc6IGNsYW1wKDEuNXJlbSwgNHZ3LCAycmVtKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWY1ZjQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogKDQvMTZyZW0pIHNvbGlkIHZhcigtLXNlY29uZGFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAoMTYvMTZyZW0pO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICgxMi8xNnJlbSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0taGVhZGVyQ29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLXVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogKDEyLzE2cmVtKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogKDEyLzE2cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1saSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICgxNi8xNnJlbSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgLyogMjBweCAtIDI0cHggKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2xhbXAoMS4yNXJlbSwgM3Z3LCAxLjVyZW0pO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJvZHlUZXh0Q29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICg4LzE2cmVtKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICg4LzE2cmVtKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAoOC8xNnJlbSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWJ1dHRvbi1zb2xpZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICgxNi8xNnJlbSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgLyogNDZweCAtIDU2cHggKi9cbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBjbGFtcCgyLjg3NXJlbSwgNS41dncsIDMuNXJlbSk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICgxNTAvMTZyZW0pO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgLyogcHJldmVudHMgcGFkZGluZyBmcm9tIGFkZGluZyB0byB0aGUgd2lkdGggKi9cbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICgyNC8xNnJlbSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgICAgICAgICAgIGNvbG9yOiAjMWExYTFhO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1pbWFnZS1ncm91cCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTI2dnc7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAoNjI2LzE2cmVtKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1waWN0dXJlIHtcbiAgICAgICAgICAgIC8qIGJpZyBiYWNrZ3JvdW5kIGltYWdlICovXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogKDk1LzE2cmVtKTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWJveCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDkxJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogKDQ1MC8xNnJlbSk7XG4gICAgICAgICAgICAvKiBwcmV2ZW50cyBwYWRkaW5nIGFuZCBib3JkZXIgZnJvbSBhZmZlY3RpbmcgaGVpZ2h0IGFuZCB3aWR0aCAqL1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIC8qIDI0cHggLSAzMnB4ICovXG4gICAgICAgICAgICBwYWRkaW5nOiBjbGFtcCgxLjVyZW0sIDN2dywgMnJlbSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmY2YzO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6ICgyNC8xNnJlbSk7XG4gICAgICAgICAgICByb3ctZ2FwOiAoOC8xNnJlbSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLW51bWJlciB7XG4gICAgICAgICAgICAvKiAzMXB4IC0gNDlweCAqL1xuICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjkzNzVyZW0sIDR2dywgMy4wNjI1cmVtKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLUdlbmVyYWwtU2Vjb25kYXJ5LCAjZmZjMjE5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1oZWFkaW5nIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogKDIwLzE2cmVtKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAoOC8xNnJlbSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0taGVhZGVyQ29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWRlc2Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiAoMTYvMTZyZW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJvZHlUZXh0Q29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWdyYXBoaWMge1xuICAgICAgICAgICAgd2lkdGg6IDE1MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFRhYmxldCAtIDc2OHB4ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4cmVtKSB7XG4gICAgI2N1cnJlbnRwcm9qZWN0cyB7XG4gICAgICAgIC5jcy1ib3gge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIERlc2t0b3AgLSAxMDI0cHggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRyZW0pIHtcbiAgICAjY3VycmVudHByb2plY3RzIHtcbiAgICAgICAgLmNzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICgxMjgwLzE2cmVtKTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgICAgIGdhcDogKDIwLzE2cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKDUyLzE2cmVtKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAoMTA4LzE2cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1pbWFnZS1ncm91cCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAoNjQyLzE2cmVtKTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtcGljdHVyZSB7XG4gICAgICAgICAgICBib3R0b206ICg2NC8xNnJlbSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuLyotLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cbjwtLS0gICAgICAgICAgIEhlcm8gICAgICAgICAgICAgLS0+XG48LS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0qL1xuXG4vKiBNb2JpbGUgLSAzNjBweCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcmVtKSB7XG4gICAgI2hlcm8tMTc4NSB7XG4gICAgICAgIC8qIDIwMHB4IC0gMzAwcHggLSBsZWF2aW5nIGV4dHJhIHNwYWNlIGZvciB0aGUgbmF2aWdhdGlvbiAqL1xuICAgICAgICBwYWRkaW5nOiBjbGFtcCgxMi41cmVtLCAyNS45NXZ3LCAxOC43NWVtKSAoMTYvMTZyZW0pO1xuICAgICAgICAvKiBwcmV2ZW50cyB0aGUgdG9wcGVyIGxpbmUgZnJvbSBjYXVzaW5nIGFuIG92ZXJmbG93ICovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAuY3MtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAoMTI4MC8xNnJlbSk7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAoNDgvMTZyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWNvbnRlbnQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICg3NTAvMTZyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLXRpdGxlIHtcbiAgICAgICAgICAgIC8qIDQ5cHggLSA4NHB4ICovXG4gICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDMuMDYyNXJlbSwgNnZ3LCA1LjI1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy10aXRsZSxcbiAgICAgICAgLmNzLXRleHQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJvZHlUZXh0Q29sb3JXaGl0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAoMzIvMTZyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWJ1dHRvbi1ncm91cCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6ICg4LzE2cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1idXR0b24tc29saWQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAoMTYvMTZyZW0pO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIC8qIDQ2cHggLSA1NnB4ICovXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogY2xhbXAoMi44NzVyZW0sIDUuNXZ3LCAzLjVyZW0pO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAoMjAwLzE2cmVtKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIC8qIHByZXZlbnRzIHBhZGRpbmcgZnJvbSBhZGRpbmcgdG8gdGhlIHdpZHRoICovXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgcGFkZGluZzogMCAoMjQvMTZyZW0pO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYm9keVRleHRDb2xvcldoaXRlKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICg0LzE2cmVtKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICg0LzE2cmVtKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtZ3JhcGhpYyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogKDE5MjAvMTZyZW0pO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWdyYXBoaWMtZGFyayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWJhY2tncm91bmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAtMjtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIC8qIE92ZXJsYXkgKi9cbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgICAgICAgICAgIC8qIHByZXZlbnRzIHRoZSBjdXJzb3IgZnJvbSBpbnRlcmFjdGluZyB3aXRoIGl0ICovXG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IHRvcDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIExhcmdlIERlc2t0b3AgLSAxOTIwcHggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwcmVtKSB7XG4gICAgI2hlcm8tMTc4NSB7XG4gICAgICAgIC8qIHRoaXMgdGllcyB0aGUgcGFkZGluZyBib3R0b20gdmFsdWUgdG8gdGhlIHNpemUgb2YgdGhlIHNjcmVlbiB3aWR0aC4gVGhlIHdpZGVyIHRoZSBpbWFnZSBnZXRzIHRoZSB0YWxsZXIgaXQgZ2V0cywgbWVhbmluZyBpdCB3aWxsIGdldCBjbHNvZXIgYW5kIGNsb3NlciB0byB0aGUgY29udGVudC4gVGhpcyBtYWtlcyB0aGUgcGFkZGluZyBib3R0b20gdmFsdWUgZ3JvdyB3aXRoIHRoZSBzY3JlZW4gc2l6ZSBzbyBpdCBhY2NvdW50cyBmb3IgdGhlIGdyb3dpbmcgaGVpZ2h0IG9mIHRoZSBzdmcgZ3JhcGhpYyBnZXR0aW5nIHRhbGxlciAqL1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIH1cbn1cbiAgIl19 */