/* ----------
 @ Bourbon
---------- */
/* ----------
 @ Bootstrap Variables
---------- */
/* ----------
 @ Custom Variables
---------- */
/* --------------------
 @@ Project Specific Variables
-------------------- */
/* ----------
 @ Options
---------- */
/* ----------
 @ Colors
---------- */
/* ----------
 @ Typography
---------- */
/* ----------
 @ Layout
---------- */
/* ----------
 @ Misc
---------- */
/* ----------
 @ Custom Utilities
---------- */
/* ----------
 @ Rounded Corners
---------- */
/* --------------------
 @@ Mixins
-------------------- */
/* ----------
 @ Maintain Aspect Ratio
	- *** requires that the element has an inner container element if there is inner content
	- $x => x portion of ratio
	- $y => y portion of ratio
    - $c => set to 'false' to skip :first-child styling
---------- */
/* ----------
 @ Background Image
	- Shortcut for linking images in the configured images folder
	- $i => image file name (relative to images folder)
	- $rest => any additional 'background' property shortcut declarations (ie: no-repeat)
---------- */
/* ----------
 @ Size
 	- Shortcut for setting height and width
 	- $width => width of element
 	- $height => height of element
 	- Single value will set both values (e.g. size(100%);
---------- */
/* --------------------
 @@ Functions
-------------------- */
/* ----------
 @ Color Get
 	- get value from the $theme-colors map
---------- */
/* ----------
 @ Breakpoint Get
 	- get value from the $grid-breakpoints map
 	- $type => 'max' | 'min', depending on media query type
---------- */
/* ----------
 @ Rems
	- convert pixels to rems
	- $p => pixel value
	- $b => base size (to use in formula) - defaults to $font-sizes root variable
---------- */
/* ----------
 @ Map Deep Get
 	- get value from nested maps
---------- */
/* ----------
 @ Weight Get
 	- get value from the $font-weights map
---------- */
.c-banner-page {
  position: relative;
  height: 35rem;
  border-radius: 0 4rem 0 4rem;
  overflow: hidden;
  z-index: 0;
}

.c-banner-page__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: -1;
}

.c-banner-page__bg--low-res {
  -webkit-filter: blur(2px);
          filter: blur(2px);
}

.c-banner-page__title {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  padding: 1rem;
  font-size: 2.55556rem;
  text-align: center;
  color: #fff;
  background-color: rgba(60, 55, 120, 0.9);
}

@media only screen and (max-width: 768px) {
  .c-banner-page {
    height: auto;
    border-radius: 0 2rem 0 2rem;
  }
  .c-banner-page::before {
    content: '';
    display: inline-block;
    padding-bottom: 75%;
  }
  .c-banner-page__title {
    font-size: 1.33333rem;
  }
}

.c-big-accordions {
  border-bottom: 2px solid #d4d4d4;
}

.c-big-accordion {
  margin: 0;
  scroll-margin-top: 2rem;
}

.c-block-accordion__title {
  padding-left: calc(1440px / 12);
}

.c-big-accordion__title {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1rem calc(1440px / 12);
  font-size: 1.55556rem;
  border-top: 2px solid #d4d4d4;
  border-radius: 0 0 0 3rem;
  background-color: #fff;
  cursor: pointer;
  -webkit-transition: background 100ms ease-out;
  transition: background 100ms ease-out;
}

.c-big-accordion__title::after {
  content: '\f078';
  position: absolute;
  top: 50%;
  right: calc(1440px / 12);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  font-family: 'Font Awesome 5 Pro';
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  color: #dc5936;
  -webkit-transition: -webkit-transform 250ms ease-out;
  transition: -webkit-transform 250ms ease-out;
  transition: transform 250ms ease-out;
  transition: transform 250ms ease-out, -webkit-transform 250ms ease-out;
}

.has-open-accordion .c-big-accordion__title {
  color: #fff;
  background-color: #3c3778;
  -webkit-transition: background 250ms ease-out;
  transition: background 250ms ease-out;
}

.has-open-accordion .c-big-accordion__title::after {
  color: #fff;
  -webkit-transform: translateY(-50%) rotate(180deg);
          transform: translateY(-50%) rotate(180deg);
}

.c-big-accordion__title svg,
.c-big-accordion__icon {
  width: 3rem;
  height: 3rem;
  margin-right: 3rem;
  fill: #dc5936;
  -webkit-transition: fill 100ms ease-out;
  transition: fill 100ms ease-out;
}

.has-open-accordion .c-big-accordion__title svg,
.has-open-accordion .c-big-accordion__icon {
  fill: #fff;
  border-color: #fff;
  -webkit-transition: fill 250ms ease-out;
  transition: fill 250ms ease-out;
}

.c-big-accordion__icon--program {
  margin-right: 4rem;
  -webkit-transition: border 250ms ease-out;
  transition: border 250ms ease-out;
}

.c-big-accordion__content {
  height: 0;
  margin-top: 0;
  overflow: hidden;
}

.c-big-accordion__content-inner {
  padding: 2rem calc(1440px / 12) 4rem;
}

@media only screen and (max-width: 991px) {
  .c-big-accordions {
    margin-left: -1rem;
    margin-right: -1rem;
  }
  .c-big-accordion__title {
    border-radius: 0 0 0 2rem;
  }
  .c-big-accordion__title svg,
  .c-big-accordion__icon {
    margin-right: 2rem;
  }
}

@media only screen and (max-width: 768px) {
  .c-big-accordion__title {
    position: relative;
    padding: 1rem 4rem 1rem 2rem;
  }
  .c-big-accordion__title::after {
    right: 2rem;
  }
  .c-big-accordion__content-inner {
    padding: 2rem 2rem;
  }
}

.c-simple-post + .c-simple-post {
  margin-top: 3rem;
}

.c-simple-post__title {
  font-size: 1.33333rem;
  font-weight: 600;
  color: #006b86;
}

.c-simple-post__title + .c-simple-post__blurb {
  margin-top: 0.75rem;
}

.c-simple-post__btn {
  margin-top: 2rem;
}

.c-programs-intro-block {
  margin-top: 6rem;
}

.c-programs-categories {
  margin-top: 6rem;
}

.o-programs-icon {
  width: 2rem;
  height: 2rem;
  border: 0.75rem solid #dc5936;
  border-radius: 50%;
}

@media only screen and (max-width: 768px) {
  .c-programs-intro-block {
    margin-top: 3rem;
  }
  .c-programs-categories {
    margin-top: 3rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl91dGlsaXRpZXMuc2NzcyIsImFyY2hpdmUtcHJvZ3JhbXMuY3NzIiwiX2N1c3RvbS11dGlsaXRpZXMuc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIl9taXhpbnMuc2NzcyIsIi4uLy4uLy4uL2Jhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL19taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvX2Jhbm5lci1wYWdlLnNjc3MiLCJjb21wb25lbnRzL19iaWctYWNjb3JkaW9uLnNjc3MiLCJjb21wb25lbnRzL19zaW1wbGUtcG9zdC5zY3NzIiwiYXJjaGl2ZS1wcm9ncmFtcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztZQ0VZO0FESVo7O1lDRFk7QUNMWjs7WURRWTtBRVJaOztzQkZXc0I7QUVQdEI7O1lGVVk7QUVKWjs7WUZPWTtBRWtDWjs7WUYvQlk7QUU4RVo7O1lGM0VZO0FFK0ZaOztZRjVGWTtBQ3BCWjs7WUR1Qlk7QUc3Qlo7O1lIZ0NZO0FJaENaOztzQkptQ3NCO0FJL0J0Qjs7Ozs7O1lKc0NZO0FJZlo7Ozs7O1lKcUJZO0FJVlo7Ozs7OztZSmlCWTtBSUxaOztzQkpRc0I7QUlKdEI7OztZSlFZO0FJRVo7Ozs7WUpHWTtBSVlaOzs7OztZSk5ZO0FJaUJaOzs7WUpiWTtBSXlCWjs7O1lKckJZO0FLakZaO0VBQ0ksa0JBQWtCO0VBQ2xCLGFBQWE7RUZHYiw0QkVGNkI7RUFDN0IsZ0JBQWdCO0VBQ2hCLFVBQVU7QUxtRmQ7O0FLakZBO0VBQ0ksa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7RUFDWixTQUFTO0VBQ1Qsb0JBQWlCO0tBQWpCLGlCQUFpQjtFQUNqQixXQUFXO0FMb0ZmOztBS2xGQTtFQUNJLHlCQUFpQjtVQUFqQixpQkFBaUI7QUxxRnJCOztBS25GQTtFQUNJLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsU0FBUztFQUNULFdBQVc7RUFDWCxhQUFhO0VBQ2IscUJENkRnRDtFQzVEaEQsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCx3Q0haMkI7QUZrRy9COztBS25GQTtFQUNJO0lBQ0ksWUFBWTtJRjdCaEIsNEJFOEJpQztFTHNGbkM7RUt4RkU7SUFLUSxXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLG1CQUFtQjtFTHNGN0I7RUtuRkU7SUFDSSxxQkQyQzRDO0VKMENsRDtBQUNGOztBTWxJQTtFQUNJLGdDSmtCMkI7QUZtSC9COztBTW5JQTtFQUNJLFNBQVM7RUFDVCx1QkFBdUI7QU5zSTNCOztBTXBJQTtFQUNJLCtCQUE0QztBTnVJaEQ7O0FNcklBO0VBQ0ksa0JBQWtCO0VBQ2xCLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IseUJBQW1CO01BQW5CLHNCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIsK0JBQTRDO0VBQzVDLHFCRndFZ0Q7RUV2RWhELDZCSkcyQjtFSUYzQix5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZiw2Q0FBcUM7RUFBckMscUNBQXFDO0FOd0l6Qzs7QU1sSkE7RUFhUSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUix3QkFBcUM7RUFDckMsbUNBQTJCO1VBQTNCLDJCQUEyQjtFQUMzQixpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsY0pkdUI7RUlldkIsb0RBQW9DO0VBQXBDLDRDQUFvQztFQUFwQyxvQ0FBb0M7RUFBcEMsc0VBQW9DO0FOeUk1Qzs7QU10SUE7RUFDSSxXQUFXO0VBQ1gseUJKckIyQjtFSXNCM0IsNkNBQXFDO0VBQXJDLHFDQUFxQztBTnlJekM7O0FNNUlBO0VBTVEsV0FBVztFQUNYLGtEQUEwQztVQUExQywwQ0FBMEM7QU4wSWxEOztBTXZJQTs7RUFFSSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixhSmpDMkI7RUlrQzNCLHVDQUErQjtFQUEvQiwrQkFBK0I7QU4wSW5DOztBTXhJQTs7RUFFSSxVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLHVDQUErQjtFQUEvQiwrQkFBK0I7QU4ySW5DOztBTXpJQTtFQUNJLGtCQUFrQjtFQUNsQix5Q0FBaUM7RUFBakMsaUNBQWlDO0FONElyQzs7QU0xSUE7RUFDSSxTQUFTO0VBQ1QsYUFBYTtFQUNiLGdCQUFnQjtBTjZJcEI7O0FNM0lBO0VBQ0ksb0NBQWlEO0FOOElyRDs7QU0zSUE7RUFDSTtJQUNJLGtCSjRCZ0M7SUkzQmhDLG1CSjJCZ0M7RUZtSHRDO0VNNUlFO0lBQ0kseUJBQXlCO0VOOEkvQjtFTTVJRTs7SUFFSSxrQkFBa0I7RU44SXhCO0FBQ0Y7O0FNM0lBO0VBQ0k7SUFDSSxrQkFBa0I7SUFDbEIsNEJBQTRCO0VOOElsQztFTWhKRTtJQUtRLFdBQVc7RU44SXJCO0VNM0lFO0lBQ0ksa0JBQWtCO0VONkl4QjtBQUNGOztBTy9PQTtFQUNJLGdCQUFnQjtBUGtQcEI7O0FPaFBBO0VBQ0kscUJIbUZnRDtFR2xGaEQsZ0JMNEVhO0VLM0ViLGNMTzJCO0FGNE8vQjs7QU9qUEE7RUFDSSxtQkFBbUI7QVBvUHZCOztBT2xQQTtFQUNJLGdCQUFnQjtBUHFQcEI7O0FRNVBBO0VBQ0ksZ0JBQWdCO0FSK1BwQjs7QVE3UEE7RUFDSSxnQkFBZ0I7QVJnUXBCOztBUTlQQTtFQUNJLFdBQVc7RUFDWCxZQUFZO0VBQ1osNkJOSTJCO0VNSDNCLGtCQUFrQjtBUmlRdEI7O0FROVBBO0VBQ0k7SUFDSSxnQkFBZ0I7RVJpUXRCO0VRL1BFO0lBQ0ksZ0JBQWdCO0VSaVF0QjtBQUNGIiwiZmlsZSI6ImFyY2hpdmUtcHJvZ3JhbXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLVxuIEAgQm91cmJvblxuLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiYm91cmJvbi9jb3JlL19ib3VyYm9uLnNjc3NcIjtcblxuLyogLS0tLS0tLS0tLVxuIEAgQm9vdHN0cmFwIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvbWl4aW5zXCI7IiwiLyogLS0tLS0tLS0tLVxuIEAgQm91cmJvblxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQm9vdHN0cmFwIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQ3VzdG9tIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBQcm9qZWN0IFNwZWNpZmljIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE9wdGlvbnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTGF5b3V0XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBNaXNjXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBDdXN0b20gVXRpbGl0aWVzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBSb3VuZGVkIENvcm5lcnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgTWl4aW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTWFpbnRhaW4gQXNwZWN0IFJhdGlvXG5cdC0gKioqIHJlcXVpcmVzIHRoYXQgdGhlIGVsZW1lbnQgaGFzIGFuIGlubmVyIGNvbnRhaW5lciBlbGVtZW50IGlmIHRoZXJlIGlzIGlubmVyIGNvbnRlbnRcblx0LSAkeCA9PiB4IHBvcnRpb24gb2YgcmF0aW9cblx0LSAkeSA9PiB5IHBvcnRpb24gb2YgcmF0aW9cbiAgICAtICRjID0+IHNldCB0byAnZmFsc2UnIHRvIHNraXAgOmZpcnN0LWNoaWxkIHN0eWxpbmdcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgU2l6ZVxuIFx0LSBTaG9ydGN1dCBmb3Igc2V0dGluZyBoZWlnaHQgYW5kIHdpZHRoXG4gXHQtICR3aWR0aCA9PiB3aWR0aCBvZiBlbGVtZW50XG4gXHQtICRoZWlnaHQgPT4gaGVpZ2h0IG9mIGVsZW1lbnRcbiBcdC0gU2luZ2xlIHZhbHVlIHdpbGwgc2V0IGJvdGggdmFsdWVzIChlLmcuIHNpemUoMTAwJSk7XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIEZ1bmN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJHRoZW1lLWNvbG9ycyBtYXBcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJyZWFrcG9pbnQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXBcbiBcdC0gJHR5cGUgPT4gJ21heCcgfCAnbWluJywgZGVwZW5kaW5nIG9uIG1lZGlhIHF1ZXJ5IHR5cGVcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFJlbXNcblx0LSBjb252ZXJ0IHBpeGVscyB0byByZW1zXG5cdC0gJHAgPT4gcGl4ZWwgdmFsdWVcblx0LSAkYiA9PiBiYXNlIHNpemUgKHRvIHVzZSBpbiBmb3JtdWxhKSAtIGRlZmF1bHRzIHRvICRmb250LXNpemVzIHJvb3QgdmFyaWFibGVcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE1hcCBEZWVwIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSBuZXN0ZWQgbWFwc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgV2VpZ2h0IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGZvbnQtd2VpZ2h0cyBtYXBcbi0tLS0tLS0tLS0gKi9cbi5jLWJhbm5lci1wYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDM1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwIDRyZW0gMCA0cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAwO1xufVxuXG4uYy1iYW5uZXItcGFnZV9fYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgei1pbmRleDogLTE7XG59XG5cbi5jLWJhbm5lci1wYWdlX19iZy0tbG93LXJlcyB7XG4gIGZpbHRlcjogYmx1cigycHgpO1xufVxuXG4uYy1iYW5uZXItcGFnZV9fdGl0bGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGZvbnQtc2l6ZTogMi41NTU1NnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2MCwgNTUsIDEyMCwgMC45KTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYy1iYW5uZXItcGFnZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMnJlbSAwIDJyZW07XG4gIH1cbiAgLmMtYmFubmVyLXBhZ2U6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIH1cbiAgLmMtYmFubmVyLXBhZ2VfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMzMzMzNyZW07XG4gIH1cbn1cblxuLmMtYmlnLWFjY29yZGlvbnMge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2Q0ZDRkNDtcbn1cblxuLmMtYmlnLWFjY29yZGlvbiB7XG4gIG1hcmdpbjogMDtcbiAgc2Nyb2xsLW1hcmdpbi10b3A6IDJyZW07XG59XG5cbi5jLWJsb2NrLWFjY29yZGlvbl9fdGl0bGUge1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMTQ0MHB4IC8gMTIpO1xufVxuXG4uYy1iaWctYWNjb3JkaW9uX190aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbSBjYWxjKDE0NDBweCAvIDEyKTtcbiAgZm9udC1zaXplOiAxLjU1NTU2cmVtO1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2Q0ZDRkNDtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2Utb3V0O1xufVxuXG4uYy1iaWctYWNjb3JkaW9uX190aXRsZTo6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMDc4JztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IGNhbGMoMTQ0MHB4IC8gMTIpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgUHJvJztcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2RjNTkzNjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI1MG1zIGVhc2Utb3V0O1xufVxuXG4uaGFzLW9wZW4tYWNjb3JkaW9uIC5jLWJpZy1hY2NvcmRpb25fX3RpdGxlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzM3Nzg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXMgZWFzZS1vdXQ7XG59XG5cbi5oYXMtb3Blbi1hY2NvcmRpb24gLmMtYmlnLWFjY29yZGlvbl9fdGl0bGU6OmFmdGVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTtcbn1cblxuLmMtYmlnLWFjY29yZGlvbl9fdGl0bGUgc3ZnLFxuLmMtYmlnLWFjY29yZGlvbl9faWNvbiB7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDNyZW07XG4gIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgZmlsbDogI2RjNTkzNjtcbiAgdHJhbnNpdGlvbjogZmlsbCAxMDBtcyBlYXNlLW91dDtcbn1cblxuLmhhcy1vcGVuLWFjY29yZGlvbiAuYy1iaWctYWNjb3JkaW9uX190aXRsZSBzdmcsXG4uaGFzLW9wZW4tYWNjb3JkaW9uIC5jLWJpZy1hY2NvcmRpb25fX2ljb24ge1xuICBmaWxsOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGZpbGwgMjUwbXMgZWFzZS1vdXQ7XG59XG5cbi5jLWJpZy1hY2NvcmRpb25fX2ljb24tLXByb2dyYW0ge1xuICBtYXJnaW4tcmlnaHQ6IDRyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlciAyNTBtcyBlYXNlLW91dDtcbn1cblxuLmMtYmlnLWFjY29yZGlvbl9fY29udGVudCB7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmMtYmlnLWFjY29yZGlvbl9fY29udGVudC1pbm5lciB7XG4gIHBhZGRpbmc6IDJyZW0gY2FsYygxNDQwcHggLyAxMikgNHJlbTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYy1iaWctYWNjb3JkaW9ucyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gIH1cbiAgLmMtYmlnLWFjY29yZGlvbl9fdGl0bGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDJyZW07XG4gIH1cbiAgLmMtYmlnLWFjY29yZGlvbl9fdGl0bGUgc3ZnLFxuICAuYy1iaWctYWNjb3JkaW9uX19pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYy1iaWctYWNjb3JkaW9uX190aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDFyZW0gNHJlbSAxcmVtIDJyZW07XG4gIH1cbiAgLmMtYmlnLWFjY29yZGlvbl9fdGl0bGU6OmFmdGVyIHtcbiAgICByaWdodDogMnJlbTtcbiAgfVxuICAuYy1iaWctYWNjb3JkaW9uX19jb250ZW50LWlubmVyIHtcbiAgICBwYWRkaW5nOiAycmVtIDJyZW07XG4gIH1cbn1cblxuLmMtc2ltcGxlLXBvc3QgKyAuYy1zaW1wbGUtcG9zdCB7XG4gIG1hcmdpbi10b3A6IDNyZW07XG59XG5cbi5jLXNpbXBsZS1wb3N0X190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4zMzMzM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICMwMDZiODY7XG59XG5cbi5jLXNpbXBsZS1wb3N0X190aXRsZSArIC5jLXNpbXBsZS1wb3N0X19ibHVyYiB7XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG59XG5cbi5jLXNpbXBsZS1wb3N0X19idG4ge1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4uYy1wcm9ncmFtcy1pbnRyby1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDZyZW07XG59XG5cbi5jLXByb2dyYW1zLWNhdGVnb3JpZXMge1xuICBtYXJnaW4tdG9wOiA2cmVtO1xufVxuXG4uby1wcm9ncmFtcy1pY29uIHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyOiAwLjc1cmVtIHNvbGlkICNkYzU5MzY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYy1wcm9ncmFtcy1pbnRyby1ibG9jayB7XG4gICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgfVxuICAuYy1wcm9ncmFtcy1jYXRlZ29yaWVzIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICB9XG59XG4iLCIvKiAtLS0tLS0tLS0tXG4gQCBDdXN0b20gVmFyaWFibGVzXG4tLS0tLS0tLS0tICovXG5cbkBpbXBvcnQgXCJjaGlsZC10aGVtZS9hc3NldHMvc2Nzcy92YXJpYWJsZXNcIjtcblxuLyogLS0tLS0tLS0tLVxuIEAgQ3VzdG9tIFV0aWxpdGllc1xuLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiY2hpbGQtdGhlbWUvYXNzZXRzL3Njc3MvbWl4aW5zXCI7XG5cbkBpbXBvcnQgXCJiYXNlLXRoZW1lL2Fzc2V0cy9zY3NzL3V0aWxpdGllcy9taXhpbnNcIjtcbkBpbXBvcnQgXCJiYXNlLXRoZW1lL2Fzc2V0cy9zY3NzL3V0aWxpdGllcy9yZXNldFwiO1xuQGltcG9ydCBcImJhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL2Jhc2VcIjtcbkBpbXBvcnQgXCJiYXNlLXRoZW1lL2Fzc2V0cy9zY3NzL3V0aWxpdGllcy93cC1iYXNlXCI7IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBQcm9qZWN0IFNwZWNpZmljIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogLS0tLS0tLS0tLVxuIEAgT3B0aW9uc1xuLS0tLS0tLS0tLSAqL1xuXG4kZW5hYmxlLXJlc3BvbnNpdmUtdGV4dDpcdHRydWU7XG5cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yc1xuLS0tLS0tLS0tLSAqL1xuJGJyYW5kLWRhcmstdGVhbDogICAgICAgIzAwNmI4NjtcbiRicmFuZC10ZWFsOiAgICAgICAgICAgICMwNmFiYTE7XG4kYnJhbmQtbGlnaHQtYmx1ZTogICAgICAjZTdmMmY5O1xuJGJyYW5kLWJsdWU6ICAgICAgICAgICAgIzAwYWJkNjtcbiRicmFuZC1kYXJrLWJsdWU6ICAgICAgICMzYzM3Nzg7XG4kYnJhbmQtb3JhbmdlOiAgICAgICAgICAjZGM1OTM2O1xuJGJyYW5kLWxpZ2h0LWdyZXk6ICAgICAgI2Q0ZDRkNDtcbiRicmFuZC1saWdodGVzdC1ncmV5OiAgICNlZmVmZWY7XG4kYnJhbmQtcGluazogICAgICAgICAgICAjZWRhYzlhO1xuJGJyYW5kLXNpbHZlcjogICAgICAgICAgIzc1NzU3NTtcbiRicmFuZC1jaGFyY29hbDogICAgICAgICMzMDMwMzA7XG5cbiR0aGVtZS1jb2xvcnM6IG1hcC1tZXJnZSgkdGhlbWUtY29sb3JzLCAoXG4gICAgZGFyay10ZWFsOiAkYnJhbmQtZGFyay10ZWFsLFxuICAgIHRlYWw6ICRicmFuZC10ZWFsLFxuICAgIGRhcmstYmx1ZTogJGJyYW5kLWRhcmstYmx1ZSxcbiAgICBibHVlOiAkYnJhbmQtYmx1ZSxcbiAgICBsaWdodC1ibHVlOiAkYnJhbmQtbGlnaHQtYmx1ZSxcbiAgICBvcmFuZ2U6ICRicmFuZC1vcmFuZ2UsXG4gICAgbGlnaHQtZ3JleTogJGJyYW5kLWxpZ2h0LWdyZXksXG4gICAgbGlnaHRlc3QtZ3JleTogJGJyYW5kLWxpZ2h0ZXN0LWdyZXksXG4gICAgc2lsdmVyOiAkYnJhbmQtc2lsdmVyLFxuICAgIHBpbms6ICRicmFuZC1waW5rLFxuICAgIGNoYXJjb2FsOiAkYnJhbmQtY2hhcmNvYWwsXG4gICAgc3VjY2VzczogJGJyYW5kLXRlYWwsXG4gICAgaW5mbzogJGJyYW5kLWJsdWUsXG4gICAgd2FybmluZzogJGJyYW5kLW9yYW5nZSxcbiAgICBkYW5nZXI6ICRicmFuZC1vcmFuZ2VcbikpO1xuXG4kYm9keS1iZzogICAgICAgICAgICAgICAjZmZmO1xuJGJvZHktY29sb3I6ICAgICAgICAgICAgIzJjMmMyYztcblxuJGxpbmstY29sb3I6ICAgICAgICAgICAgJGJyYW5kLWRhcmstdGVhbDtcbiRsaW5rLWhvdmVyLWNvbG9yOiAgICAgIGRhcmtlbigkbGluay1jb2xvciwgMTUlKTtcblxuJGxpbmUtY29sb3I6IFx0XHRcdCNkZGQ7XG5cbi8qIC0tLS0tLS0tLS1cbiBAIFR5cG9ncmFwaHlcbi0tLS0tLS0tLS0gKi9cblxuJGZvbnQtc2l6ZXM6IChcbiAgICByb290OiAxOHB4LFxuICAgIGgxOiAzNnB4LFxuICAgIGgyOiAzM3B4LFxuICAgIGgzOiAyOHB4LFxuICAgIGg0OiAyNHB4LFxuICAgIGg1OiAyMHB4LFxuICAgIGg2OiAxOHB4LFxuICAgIGxlYWQ6IDI0cHgsXG4gICAgYmxvY2txdW90ZTogNTBweFxuKTtcblxuJGZvbnQtc2l6ZS1iYXNlOiAxcmVtO1xuJGJhc2VGb250U2l6ZTogMThweDsgLy8gdGhpcyBpcyB0byBmaXggYm9vdHN0cmFwLCBub3Qgc3VyZSB3aHkgdGhpcyBpcyBhbiBpc3N1ZVxuXG4kbGVhZC1mb250LXNpemU6IHJlbXMobWFwLWdldCgkZm9udC1zaXplcywgbGVhZCkpO1xuJGJsb2NrcXVvdGUtZm9udC1zaXplOiByZW1zKG1hcC1nZXQoJGZvbnQtc2l6ZXMsIGJsb2NrcXVvdGUpKTtcblxuJGZvbnQtZmFtaWx5LWJhc2U6ICdoYWx5YXJkLXRleHQnLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICRmb250LWZhbWlseS1iYXNlO1xuJGhlYWRpbmdzLWZvbnQtZmFtaWx5OiAnY2xhcmVuZG9uLXRleHQtcHJvJywgc2VyaWY7XG4kZmEtZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBQcm8nO1xuXG4kZm9udC13ZWlnaHRzOiAoXG4gICAgYmxhY2s6IDgwMCxcbiAgICBib2xkOiA3MDAsXG4gICAgc2VtaWJvbGQ6IDYwMCxcbiAgICBtZWRpdW06IDUwMCxcbiAgICByZWd1bGFyOiA0MDAsXG4gICAgbGlnaHQ6IDMwMCxcbiAgICB0aGluOiAzMDBcbik7XG5cbiRmb250LXdlaWdodC1iYXNlOiBtYXAtZ2V0KCRmb250LXdlaWdodHMsIHJlZ3VsYXIpO1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRmb250LXdlaWdodHMsIGJvbGQpO1xuJGxlYWQtZm9udC13ZWlnaHQ6IG1hcC1nZXQoJGZvbnQtd2VpZ2h0cywgc2VtaS1ib2xkKTtcblxuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuNjU7XG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6IDEuNDtcblxuJGxpbmstZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuJGxpbmstaG92ZXItZGVjb3JhdGlvbjogJGxpbmstZGVjb3JhdGlvbjtcblxuLyogLS0tLS0tLS0tLVxuIEAgTGF5b3V0XG4tLS0tLS0tLS0tICovXG5cbiRncmlkLWd1dHRlci13aWR0aDogXHQgMnJlbTtcbiRncmlkLXBhZGRpbmc6XHRcdFx0ICRncmlkLWd1dHRlci13aWR0aCAvIDI7XG5cbiR2ZXJ0aWNhbC1tYXJnaW4tYmFzZTpcdCAxLjVyZW07XG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gICAgeHM6IDAsIC8vIE5vdCBzdXJlIHdoeSBidXQgdGhpcyBtdXN0IGJlIHplcm9cbiAgICBzbTogNTc2cHgsXG4gICAgbWQ6IDc2OXB4LFxuICAgIGxnOiA5OTJweCxcbiAgICB4bDogMTQ0MHB4XG4pO1xuXG4kY29udGFpbmVyLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCB4bCk7XG4kY29udGFpbmVyLXdpZHRoLXdpdGgtZ3V0dGVyczogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgeGwpICsgKHN0cmlwLXVuaXQoJGdyaWQtZ3V0dGVyLXdpZHRoKSAqIHN0cmlwLXVuaXQoJGJhc2VGb250U2l6ZSkpO1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBNaXNjXG4tLS0tLS0tLS0tICovXG5cbiRoci1ib3JkZXItY29sb3I6ICRsaW5lLWNvbG9yO1xuJGhyLWJvcmRlci13aWR0aDogMXB4O1xuXG4kYm9yZGVyLXJhZGl1czogMC4yNWVtO1xuJGJvcmRlci1yYWRpdXMtbGc6ICRib3JkZXItcmFkaXVzICogMS41O1xuJGJvcmRlci1yYWRpdXMtc206ICRib3JkZXItcmFkaXVzIC8gMS41OyIsIi8qIC0tLS0tLS0tLS1cbiBAIFJvdW5kZWQgQ29ybmVyc1xuLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gcm91bmRlZC1jb3JuZXJzKCRyYWRpdXM6IDFyZW0pIHtcbiAgICBib3JkZXItcmFkaXVzOiAwICRyYWRpdXMgMCAkcmFkaXVzO1xufSAgIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBNaXhpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIE1haW50YWluIEFzcGVjdCBSYXRpb1xuXHQtICoqKiByZXF1aXJlcyB0aGF0IHRoZSBlbGVtZW50IGhhcyBhbiBpbm5lciBjb250YWluZXIgZWxlbWVudCBpZiB0aGVyZSBpcyBpbm5lciBjb250ZW50XG5cdC0gJHggPT4geCBwb3J0aW9uIG9mIHJhdGlvXG5cdC0gJHkgPT4geSBwb3J0aW9uIG9mIHJhdGlvXG4gICAgLSAkYyA9PiBzZXQgdG8gJ2ZhbHNlJyB0byBza2lwIDpmaXJzdC1jaGlsZCBzdHlsaW5nXG4tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHg6IDEsICR5OiAxLCAkYzogdHJ1ZSkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoJHkgLyAkeCk7XG5cdH1cblx0QGlmICgkYyA9PSB0cnVlKSB7XG5cdFx0JiA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0XHRAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG5cdFx0fVxuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gYmctaW1hZ2UoJGksICRyZXN0Li4uKSB7XG5cdGJhY2tncm91bmQ6IHVybChcIiN7JGltYWdlcy1mb2xkZXJ9LyN7JGl9XCIpICRyZXN0O1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBTaXplXG4gXHQtIFNob3J0Y3V0IGZvciBzZXR0aW5nIGhlaWdodCBhbmQgd2lkdGhcbiBcdC0gJHdpZHRoID0+IHdpZHRoIG9mIGVsZW1lbnRcbiBcdC0gJGhlaWdodCA9PiBoZWlnaHQgb2YgZWxlbWVudFxuIFx0LSBTaW5nbGUgdmFsdWUgd2lsbCBzZXQgYm90aCB2YWx1ZXMgKGUuZy4gc2l6ZSgxMDAlKTtcbi0tLS0tLS0tLS0gKi9cbkBtaXhpbiBzaXplKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoKSB7XG5cdHdpZHRoOiAkd2lkdGg7XG5cdGhlaWdodDogJGhlaWdodDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBGdW5jdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJHRoZW1lLWNvbG9ycyBtYXBcbi0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIGNvbG9yLWdldCgka2V5cykge1xuXHQkY29sb3I6IG1hcC1kZWVwLWdldCgkdGhlbWUtY29sb3JzLCAka2V5cyk7XG5cdEByZXR1cm4gJGNvbG9yO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBCcmVha3BvaW50IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGdyaWQtYnJlYWtwb2ludHMgbWFwXG4gXHQtICR0eXBlID0+ICdtYXgnIHwgJ21pbicsIGRlcGVuZGluZyBvbiBtZWRpYSBxdWVyeSB0eXBlXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldCgkdHlwZSwgJGtleXMpIHtcblx0JGJyZWFrcG9pbnQ6IG1hcC1kZWVwLWdldCgkZ3JpZC1icmVha3BvaW50cywgJGtleXMpO1xuXHRAaWYgKCR0eXBlID09ICdtYXgnKXtcblx0XHRAcmV0dXJuICRicmVha3BvaW50IC0gMTtcblx0fSBAZWxzZSB7XG5cdFx0QHJldHVybiAkYnJlYWtwb2ludDtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBSZW1zXG5cdC0gY29udmVydCBwaXhlbHMgdG8gcmVtc1xuXHQtICRwID0+IHBpeGVsIHZhbHVlXG5cdC0gJGIgPT4gYmFzZSBzaXplICh0byB1c2UgaW4gZm9ybXVsYSkgLSBkZWZhdWx0cyB0byAkZm9udC1zaXplcyByb290IHZhcmlhYmxlXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiByZW1zKCRwLCAkYjogJGJhc2VGb250U2l6ZSkge1xuICAgIEByZXR1cm4gKHN0cmlwLXVuaXQoJHApIC8gc3RyaXAtdW5pdCgkYikpICsgMHJlbTtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgTWFwIERlZXAgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIG5lc3RlZCBtYXBzXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBtYXAtZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcblx0QGVhY2ggJGtleSBpbiAka2V5cyB7XG5cdFx0JG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcblx0fVxuXHRAcmV0dXJuICRtYXA7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIFdlaWdodCBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gdGhlICRmb250LXdlaWdodHMgbWFwXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiB3ZWlnaHQtZ2V0KCRrZXlzKSB7XG5cdCR3ZWlnaHQ6IG1hcC1kZWVwLWdldCgkZm9udC13ZWlnaHRzLCAka2V5cyk7XG5cdEByZXR1cm4gJHdlaWdodDtcbn0iLCIuYy1iYW5uZXItcGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMzVyZW07XG4gICAgQGluY2x1ZGUgcm91bmRlZC1jb3JuZXJzKDRyZW0pO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMDtcbn1cbi5jLWJhbm5lci1wYWdlX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgei1pbmRleDogLTE7XG59XG4uYy1iYW5uZXItcGFnZV9fYmctLWxvdy1yZXMge1xuICAgIGZpbHRlcjogYmx1cigycHgpO1xufVxuLmMtYmFubmVyLXBhZ2VfX3RpdGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBmb250LXNpemU6IHJlbXMoNDZweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoY29sb3ItZ2V0KGRhcmstYmx1ZSksIDAuOSk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIG1kKSkge1xuICAgIC5jLWJhbm5lci1wYWdlIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSByb3VuZGVkLWNvcm5lcnMoMnJlbSk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYy1iYW5uZXItcGFnZV9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbXMoMjRweCk7XG4gICAgfVxufSIsIi5jLWJpZy1hY2NvcmRpb25zIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgY29sb3ItZ2V0KGxpZ2h0LWdyZXkpO1xufVxuLmMtYmlnLWFjY29yZGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHNjcm9sbC1tYXJnaW4tdG9wOiAycmVtO1xufVxuLmMtYmxvY2stYWNjb3JkaW9uX190aXRsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKCN7JGNvbnRhaW5lci13aWR0aH0gLyAxMik7XG59XG4uYy1iaWctYWNjb3JkaW9uX190aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxcmVtIGNhbGMoI3skY29udGFpbmVyLXdpZHRofSAvIDEyKTtcbiAgICBmb250LXNpemU6IHJlbXMoMjhweCk7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIGNvbG9yLWdldChsaWdodC1ncmV5KTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAzcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTAwbXMgZWFzZS1vdXQ7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYwNzgnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogY2FsYygjeyRjb250YWluZXItd2lkdGh9IC8gMTIpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgUHJvJztcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogY29sb3ItZ2V0KG9yYW5nZSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlLW91dDtcbiAgICB9XG59XG4uaGFzLW9wZW4tYWNjb3JkaW9uIC5jLWJpZy1hY2NvcmRpb25fX3RpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1nZXQoZGFyay1ibHVlKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDI1MG1zIGVhc2Utb3V0O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbn1cbi5jLWJpZy1hY2NvcmRpb25fX3RpdGxlIHN2Zyxcbi5jLWJpZy1hY2NvcmRpb25fX2ljb24ge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogM3JlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgZmlsbDogY29sb3ItZ2V0KG9yYW5nZSk7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAxMDBtcyBlYXNlLW91dDtcbn1cbi5oYXMtb3Blbi1hY2NvcmRpb24gLmMtYmlnLWFjY29yZGlvbl9fdGl0bGUgc3ZnLFxuLmhhcy1vcGVuLWFjY29yZGlvbiAuYy1iaWctYWNjb3JkaW9uX19pY29uIHtcbiAgICBmaWxsOiAjZmZmO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiBmaWxsIDI1MG1zIGVhc2Utb3V0O1xufVxuLmMtYmlnLWFjY29yZGlvbl9faWNvbi0tcHJvZ3JhbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cmVtO1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAyNTBtcyBlYXNlLW91dDtcbn1cbi5jLWJpZy1hY2NvcmRpb25fX2NvbnRlbnQge1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYy1iaWctYWNjb3JkaW9uX19jb250ZW50LWlubmVyIHtcbiAgICBwYWRkaW5nOiAycmVtIGNhbGMoI3skY29udGFpbmVyLXdpZHRofSAvIDEyKSA0cmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBsZykpIHtcbiAgICAuYy1iaWctYWNjb3JkaW9ucyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJGdyaWQtcGFkZGluZztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJGdyaWQtcGFkZGluZztcbiAgICB9XG4gICAgLmMtYmlnLWFjY29yZGlvbl9fdGl0bGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAycmVtO1xuICAgIH1cbiAgICAuYy1iaWctYWNjb3JkaW9uX190aXRsZSBzdmcsXG4gICAgLmMtYmlnLWFjY29yZGlvbl9faWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIG1kKSkge1xuICAgIC5jLWJpZy1hY2NvcmRpb25fX3RpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDRyZW0gMXJlbSAycmVtO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jLWJpZy1hY2NvcmRpb25fX2NvbnRlbnQtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAycmVtIDJyZW07XG4gICAgfVxufSIsIi5jLXNpbXBsZS1wb3N0ICsgLmMtc2ltcGxlLXBvc3Qge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG59XG4uYy1zaW1wbGUtcG9zdF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogcmVtcygyNHB4KTtcbiAgICBmb250LXdlaWdodDogd2VpZ2h0LWdldChzZW1pYm9sZCk7XG4gICAgY29sb3I6IGNvbG9yLWdldChkYXJrLXRlYWwpO1xufVxuLmMtc2ltcGxlLXBvc3RfX3RpdGxlICsgLmMtc2ltcGxlLXBvc3RfX2JsdXJiIHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xufVxuLmMtc2ltcGxlLXBvc3RfX2J0biB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbn0iLCJAaW1wb3J0IFwiYmFzZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYmFubmVyLXBhZ2VcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2JpZy1hY2NvcmRpb25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NpbXBsZS1wb3N0XCI7XG5cbi5jLXByb2dyYW1zLWludHJvLWJsb2NrIHtcbiAgICBtYXJnaW4tdG9wOiA2cmVtO1xufVxuLmMtcHJvZ3JhbXMtY2F0ZWdvcmllcyB7XG4gICAgbWFyZ2luLXRvcDogNnJlbTtcbn1cbi5vLXByb2dyYW1zLWljb24ge1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBib3JkZXI6IDAuNzVyZW0gc29saWQgY29sb3ItZ2V0KG9yYW5nZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBtZCkpIHtcbiAgICAuYy1wcm9ncmFtcy1pbnRyby1ibG9jayB7XG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgfVxuICAgIC5jLXByb2dyYW1zLWNhdGVnb3JpZXMge1xuICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIH1cbn0iXX0= */
