.review {
	--karavaniers--slider--bg: #d0cfc7;
}
.review__info {
	display: none;
}
.review__slider_comments {
	clear: both;
}
.review__list__item {
	background: url("../../../../assets/images/bg-testimonial.jpg") center center repeat;
	border-radius: clamp(1.625rem, 2.7510316369vw, 2.5rem);
	padding: 5rem 1.5rem 1.875rem;
	position: relative;
}
@media (min-width: 1200px) {
	.review__list__item {
		padding: 5rem 3.125rem 6.75rem 25.625rem;
	}
}
.review__list__item::after {
	background: url("../../../../assets/images/bg-testimonial-logo.png") center center no-repeat;
	background-size: 100% auto;
	content: "";
	height: 6.75rem;
	position: absolute;
	right: 0.625rem;
	top: 0.625rem;
	width: 6.75rem;
}
@media (min-width: 1200px) {
	.review__list__item::after {
		bottom: 0;
		height: 100%;
		left: 2.8125rem;
		top: 0;
		width: 15.0625rem;
	}
}
@media (min-width: 1200px) {
	.review__list__item::before {
		background: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 432'%3E%3Cpath d='M4.94 2v67.7c0 13.26-2.63 26.42-2.84 39.57-.22 13.56 0 27.14 0 40.7 0 24.46 1.46 49.15 4.68 73.32.65 4.88.05 10.25.05 15.2 0 10.62.24 21.18-.73 31.75-1.2 13.07-.54 27.1.95 40.1a394 394 0 0 1 2.63 45.06c0 17.15-1.9 34.02-1.9 51.17v23.68' stroke='%23230903' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center center no-repeat;
		background-size: 0.75rem auto;
		bottom: 0;
		content: "";
		left: 21.125rem;
		position: absolute;
		top: 0;
		width: 0.75rem;
	}
}
.review__list__item .title,
.review__list__item .year {
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.2;
	max-width: calc(100% - 5.9375rem);
}
.review__list__item .description {
	background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDE2IDM4IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDsiPgogICAgPHBhdGggZD0iTS00LDM3LjVMNTY0LDM3LjUiIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNiYWE0ODQ7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtZGFzaGFycmF5OjgsODsiLz4KPC9zdmc+Cg==) left -0.625rem repeat;
	background-size: 1rem auto;
	margin-bottom: 0.875rem;
	margin-top: 1.625rem;
}
@media (min-width: 1200px) {
	.review__list__item .description {
		margin-bottom: 4.25rem;
		margin-top: 4.75rem;
	}
}
.review__list__item .description,
.review__list__item .name {
	font-family: "Courier Prime", system-ui;
	font-size: 1.0625rem;
	font-style: normal;
	font-weight: 400;
	line-height: 2.348125rem;
}
.review__splide::before {
	background: var(--karavaniers--slider--bg);
	border-radius: clamp(1.625rem, 2.7510316369vw, 2.5rem);
	box-shadow: 0 0.25rem 0.875rem 0 rgba(0, 66, 37, 0.2);
	content: "";
	inset: 0;
	position: absolute;
	transform: rotate(2.92deg);
	transition: transform var(--karavaniers--transition-speed) var(--karavaniers--transition-timing-function);
}
@media (min-width: 1200px) {
	.review__splide::before {
		box-shadow: none;
	}
}
.review__splide:has(.splide__arrow:hover)::before {
	transform: rotate(2.92deg) translateY(0.75rem);
}
.review__splide:has(.splide__arrow:hover) .splide__track {
	transform: translateY(-0.75rem);
}
.review__splide .splide__list {
	align-items: center !important;
}
.review__splide .splide__slide {
	max-height: 62.5rem;
}
.review__splide .splide__slide:not(.is-active) {
	max-height: 28.125rem !important;
	overflow: hidden;
}
.review__splide .splide__track {
	transition: transform var(--karavaniers--transition-speed) var(--karavaniers--transition-timing-function);
}
.review .container {
	padding-bottom: 5.3125rem;
	position: relative;
}
@media (min-width: 1200px) {
	.review .container {
		padding-bottom: 0;
	}
}
.review .splide__arrows {
	align-items: center;
	bottom: -5.3125rem;
	display: flex;
	gap: 1rem;
	justify-content: center;
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
}
@media (min-width: 1200px) {
	.review .splide__arrows {
		bottom: 0;
		justify-content: space-between;
		left: -4.6875rem;
		right: -4.6875rem;
		top: 0;
	}
}
@media (min-width: 1440px) {
	.review .splide__arrows {
		left: -9rem;
		right: -9rem;
	}
}
.review .splide__arrows .splide__arrow {
	align-items: center;
	background: transparent !important;
	border: 0.125rem solid currentColor;
	border-radius: 100%;
	color: var(--wp--preset--color--secondary);
	display: flex;
	height: 4.0625rem;
	justify-content: center;
	padding: 0;
	pointer-events: auto;
	transition: color var(--karavaniers--transition-speed) var(--karavaniers--transition-timing-function), border-color var(--karavaniers--transition-speed) var(--karavaniers--transition-timing-function);
	width: 4.0625rem;
}
.review .splide__arrows .splide__arrow:hover, .review .splide__arrows .splide__arrow:focus {
	color: var(--wp--preset--color--primary);
}
.review .splide__arrows .splide__arrow svg {
	fill: currentColor;
	width: 2.5rem;
}
.review .splide__arrows .splide__arrow--prev {
	transform: scaleX(-1);
}
.review .comment-respond {
	padding-top: clamp(2.75rem, 3.2530949106vw, 5.5rem);
}
.review .comment-respond .comment-reply-title {
	padding: 3% !important;
	padding-bottom: 0 !important;
}
.review .comment-respond #commentform {
	padding-top: 1% !important;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3AtY29udGVudC90aGVtZXMva2FyYXZhbmllcnMvaW5jbHVkZXMvbW9kdWxlcy9yZXZpZXcvYnVpbGQvc3R5bGUuY3NzIiwibWFwcGluZ3MiOiJBQUVBO0NBQ0M7QUFERDtBQUlDO0NBQ0M7QUFGRjtBQUtDO0NBQ0M7QUFIRjtBQU9FO0NBQ0M7Q0FDQTtDQUNBO0NBQ0E7QUFMSDtBQ2lqQkU7Q0RoakJBO0VBT0U7Q0FKSDtBQUNEO0FBTUc7Q0FDQztDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0FBSko7QUNraUJFO0NEdGlCQztFQVdFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0FISjtBQUNEO0FDeWhCRTtDRG5oQkM7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NBSko7QUFDRDtBQU9HOztDQUVDO0NBQ0EsZ0JFaEJnQjtDRmlCaEI7Q0FDQTtBQUxKO0FBUUc7Q0FDQztDQUNBO0NBQ0E7Q0FDQTtBQU5KO0FDZ2dCRTtDRDlmQztFQU9FO0VBQ0E7Q0FMSjtBQUNEO0FBUUc7O0NBRUM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtBQU5KO0FBWUU7Q0FDQztDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0FBVkg7QUN3ZUU7Q0R0ZUE7RUFXRTtDQVRIO0FBQ0Q7QUFhRztDQUNDO0FBWEo7QUFjRztDQUNDO0FBWko7QUFrQkc7Q0FDQztBQWhCSjtBQW1CRztDQUNDO0FBakJKO0FBbUJJO0NBQ0M7Q0FDQTtBQWpCTDtBQXNCRTtDQUNDO0FBcEJIO0FBd0JDO0NBQ0M7Q0FDQTtBQXRCRjtBQzRjRTtDRHhiRDtFQUtFO0NBckJGO0FBQ0Q7QUF3QkM7Q0FDQztDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7QUF0QkY7QUM0YkU7Q0QvYUQ7RUFZRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NBckJGO0FBQ0Q7QUNtYkU7Q0QvYUQ7RUFvQkU7RUFDQTtDQXBCRjtBQUNEO0FBc0JFO0NBQ0M7Q0FDQTtDQUNBO0NBQ0E7Q0FDQSwwQ0UvSmdCO0NGZ0toQjtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtBQXBCSDtBQXNCRztDQUVDLHdDRTNLYTtBRnNKakI7QUF3Qkc7Q0FDQztDQUNBO0FBdEJKO0FBeUJHO0NBQ0M7QUF2Qko7QUE0QkM7Q0FDQztBQTFCRjtBQTRCRTtDQUNDO0NBQ0E7QUExQkg7QUE2QkU7Q0FDQztBQTNCSCxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8va2FyYXZhbmllcnMtZW52Ly4vd3AtY29udGVudC90aGVtZXMva2FyYXZhbmllcnMvaW5jbHVkZXMvbW9kdWxlcy9yZXZpZXcvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9rYXJhdmFuaWVycy1lbnYvLi93cC1jb250ZW50L3RoZW1lcy9rYXJhdmFuaWVycy9hc3NldHMvY3NzL19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2VicGFjazovL2thcmF2YW5pZXJzLWVudi8uL3dwLWNvbnRlbnQvdGhlbWVzL2thcmF2YW5pZXJzL2Fzc2V0cy9jc3MvX3NldHRpbmdzL192YXJpYWJsZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi8uLi9hc3NldHMvY3NzL19zZXR0aW5ncy9pbml0JztcclxuXHJcbi5yZXZpZXcge1xyXG5cdC0ta2FyYXZhbmllcnMtLXNsaWRlci0tYmc6ICNkMGNmYzc7XHJcblx0JGJsb2NrOiAmO1xyXG5cclxuXHQmX19pbmZvIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cclxuXHQmX19zbGlkZXJfY29tbWVudHMge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG5cclxuXHQmX19saXN0IHtcclxuXHRcdCZfX2l0ZW0ge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvYmctdGVzdGltb25pYWwuanBnJykgY2VudGVyIGNlbnRlciByZXBlYXQ7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IHZ3KDI2LCA0MCk7XHJcblx0XHRcdHBhZGRpbmc6IHJlbSg4MCkgcmVtKDI0KSByZW0oMzApO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRwYWRkaW5nOiByZW0oODApIHJlbSg1MCkgcmVtKDEwOCkgcmVtKDQxMCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvYmctdGVzdGltb25pYWwtbG9nby5wbmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0XHRoZWlnaHQ6IHJlbSgxMDgpO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRyaWdodDogcmVtKDEwKTtcclxuXHRcdFx0XHR0b3A6IHJlbSgxMCk7XHJcblx0XHRcdFx0d2lkdGg6IHJlbSgxMDgpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRcdGJvdHRvbTogMDtcclxuXHRcdFx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0XHRcdGxlZnQ6IHJlbSg0NSk7XHJcblx0XHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0XHR3aWR0aDogcmVtKDI0MSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMiA0MzInJTNFJTNDcGF0aCBkPSdNNC45NCAydjY3LjdjMCAxMy4yNi0yLjYzIDI2LjQyLTIuODQgMzkuNTctLjIyIDEzLjU2IDAgMjcuMTQgMCA0MC43IDAgMjQuNDYgMS40NiA0OS4xNSA0LjY4IDczLjMyLjY1IDQuODguMDUgMTAuMjUuMDUgMTUuMiAwIDEwLjYyLjI0IDIxLjE4LS43MyAzMS43NS0xLjIgMTMuMDctLjU0IDI3LjEuOTUgNDAuMWEzOTQgMzk0IDAgMCAxIDIuNjMgNDUuMDZjMCAxNy4xNS0xLjkgMzQuMDItMS45IDUxLjE3djIzLjY4JyBzdHJva2U9JyUyMzIzMDkwMycgc3Ryb2tlLXdpZHRoPSczJyBzdHJva2UtbGluZWNhcD0ncm91bmQnLyUzRSUzQy9zdmclM0VcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IHJlbSgxMikgYXV0bztcclxuXHRcdFx0XHRcdGJvdHRvbTogMDtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHRcdFx0bGVmdDogcmVtKDMzOCk7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0XHR3aWR0aDogcmVtKDEyKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC50aXRsZSxcclxuXHRcdFx0LnllYXIge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE0KTtcclxuXHRcdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LS1ib2xkO1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiBjYWxjKDEwMCUgLSByZW0oOTUpKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmRlc2NyaXB0aW9uIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJ0BpbWFnZXMvYmctbGluZXMuc3ZnJykgbGVmdCByZW0oLTEwKSByZXBlYXQ7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiByZW0oMTYpIGF1dG87XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDE0KTtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oMjYpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSg2OCk7XHJcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oNzYpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmRlc2NyaXB0aW9uLFxyXG5cdFx0XHQubmFtZSB7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdDb3VyaWVyIFByaW1lJywgc3lzdGVtLXVpO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDE3KTtcclxuXHRcdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XHJcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogcmVtKDM3LjU3KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fc3BsaWRlIHtcclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWthcmF2YW5pZXJzLS1zbGlkZXItLWJnKTtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogdncoMjYsIDQwKTtcclxuXHRcdFx0Ym94LXNoYWRvdzogMCByZW0oNCkgcmVtKDE0KSAwICMwMDQyMjUzMztcclxuXHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdGluc2V0OiAwO1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDIuOTJkZWcpO1xyXG5cdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0JjpoYXMoLnNwbGlkZV9fYXJyb3c6aG92ZXIpIHtcclxuXHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgyLjkyZGVnKSB0cmFuc2xhdGVZKHJlbSgxMikpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuc3BsaWRlX190cmFjayB7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKHJlbSgtMTIpKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEF1dG9IZWlnaHQgZml4XHJcblx0XHQuc3BsaWRlIHtcclxuXHRcdFx0Jl9fbGlzdCB7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmX19zbGlkZSB7XHJcblx0XHRcdFx0bWF4LWhlaWdodDogcmVtKDEwMDApO1xyXG5cclxuXHRcdFx0XHQmOm5vdCguaXMtYWN0aXZlKSB7XHJcblx0XHRcdFx0XHRtYXgtaGVpZ2h0OiByZW0oNDUwKSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuc3BsaWRlX190cmFjayB7XHJcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jb250YWluZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206IHJlbSg4NSk7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnNwbGlkZV9fYXJyb3dzIHtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRib3R0b206IHJlbSgtODUpO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGdhcDogcmVtKDE2KTtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcblx0XHRcdGJvdHRvbTogMDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0XHRsZWZ0OiByZW0oLTc1KTtcclxuXHRcdFx0cmlnaHQ6IHJlbSgtNzUpO1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49eHhsJykge1xyXG5cdFx0XHRsZWZ0OiByZW0oLTE0NCk7XHJcblx0XHRcdHJpZ2h0OiByZW0oLTE0NCk7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNwbGlkZV9fYXJyb3cge1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdFx0XHRib3JkZXI6IHJlbSgyKSBzb2xpZCBjdXJyZW50Q29sb3I7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcblx0XHRcdGNvbG9yOiAkY29sb3ItLXNlY29uZGFyeTtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0aGVpZ2h0OiByZW0oNjUpO1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XHJcblx0XHRcdHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBib3JkZXItY29sb3IgJHRyYW5zaXRpb247XHJcblx0XHRcdHdpZHRoOiByZW0oNjUpO1xyXG5cclxuXHRcdFx0Jjpob3ZlcixcclxuXHRcdFx0Jjpmb2N1cyB7XHJcblx0XHRcdFx0Y29sb3I6ICRjb2xvci0tcHJpbWFyeTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c3ZnIHtcclxuXHRcdFx0XHRmaWxsOiBjdXJyZW50Q29sb3I7XHJcblx0XHRcdFx0d2lkdGg6IHJlbSg0MCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLXByZXYge1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNvbW1lbnQtcmVzcG9uZCB7XHJcblx0XHRwYWRkaW5nLXRvcDogY2xhbXAoMi43NXJlbSwgMy4yNTMwOTQ5MTA2dncsIDUuNXJlbSk7XHJcblxyXG5cdFx0LmNvbW1lbnQtcmVwbHktdGl0bGUge1xyXG5cdFx0XHRwYWRkaW5nOiAzJSAhaW1wb3J0YW50O1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cclxuXHRcdCNjb21tZW50Zm9ybSB7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAxJSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cclxuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxyXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cclxuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcclxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxyXG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxyXG4vL1xyXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxyXG4vL1xyXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXHJcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xyXG4vLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0J3Bob25lJzogMzIwcHgsXHJcblx0J3RhYmxldCc6IDc2OHB4LFxyXG5cdCdkZXNrdG9wJzogMTAyNHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG5cdFx0QGVycm9yICRtZXNzYWdlO1xyXG5cdH1cclxuXHJcblx0QGVsc2Uge1xyXG5cdFx0QHdhcm4gJG1lc3NhZ2U7XHJcblx0XHQkXzogbm9vcCgpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcblxyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG5cdCRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuXHRAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuXHRcdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxyXG5cdH1cclxuXHJcblx0QGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XHJcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xyXG5cdFx0XHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRcdFx0QGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXHJcblx0XHRcdFx0KCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gUGFyc2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG4vLy9cclxuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuXHRAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuXHRcdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXHJcbi8vL1xyXG5cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcblx0QGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuXHRcdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHRAZWxzZSB7XHJcblx0XHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0JGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xyXG5cdFx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdFx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdFx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHRcdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuXHR9XHJcblxyXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG5cdH1cclxuXHJcblx0QGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2VcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuXHQvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG5cdFx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG5cdH1cclxuXHJcblx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG5cdEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xyXG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuXHRcdEByZXR1cm4gKCk7XHJcblx0fVxyXG5cclxuXHQkcmVzdWx0OiAoKTtcclxuXHJcblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG5cdFx0JHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9XHJcblxyXG5cdEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcblx0XHRcdCRkaWdpdHM6IDE7XHJcblx0XHR9XHJcblxyXG5cdFx0QGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9XHJcblxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcblxyXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XHJcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcclxuXHQkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XHJcblxyXG5cdC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xyXG5cclxuXHQvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcblxyXG5cdEBjb250ZW50O1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5cclxuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XHJcblx0QGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxyXG5cdFx0KG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxuXHJcblx0QGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG5cdFx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG5cdFx0XHQvLyBSZWN1cnNpdmUgY2FsbFxyXG5cdFx0XHQkc2xpY2VkLWNvbmRpdGlvbnM6IHNsaWNlKCRjb25kaXRpb25zLCAyKTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCRzbGljZWQtY29uZGl0aW9ucy4uLikge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkBpbXBvcnQgJ21peGlucyc7XHJcblxyXG4vLyBMYXlvdXRcclxuJGxheW91dC0td2lkdGg6IHZhcigtLXdwLS1zdHlsZS0tZ2xvYmFsLS1jb250ZW50LXNpemUpO1xyXG4kbGF5b3V0LS13aWRlLXdpZHRoOiB2YXIoLS13cC0tc3R5bGUtLWdsb2JhbC0td2lkZS1zaXplKTtcclxuJGxheW91dC0tcGFkZGluZy0tbWluOiAxNjtcclxuJGxheW91dC0tcGFkZGluZy0tbWF4OiAzMjtcclxuJGxheW91dC0tcGFkZGluZzogdncoJGxheW91dC0tcGFkZGluZy0tbWluLCAkbGF5b3V0LS1wYWRkaW5nLS1tYXgpO1xyXG5cclxuLy8gQ29sb3JzXHJcbiRjb2xvci0td2hpdGU6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7XHJcbiRjb2xvci0tYmxhY2s6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ibGFjayk7XHJcblxyXG4kY29sb3ItLXByaW1hcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1wcmltYXJ5KTtcclxuJGNvbG9yLS1zZWNvbmRhcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1zZWNvbmRhcnkpO1xyXG4kY29sb3ItLXRlcnRpYXJ5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tdGVydGlhcnkpO1xyXG5cclxuJGNvbG9yLS1iZy1hbHQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iZy1hbHQpO1xyXG4kY29sb3ItLWJnLWxpZ2h0OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYmctbGlnaHQpO1xyXG5cclxuJGNvbG9yLS1hbGVydDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWFsZXJ0KTtcclxuJGNvbG9yLS1zdWNjZXNzOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc3VjY2Vzcyk7XHJcbiRjb2xvci0tZXJyb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1lcnJvcik7XHJcblxyXG4kY29sb3ItLXRleHQ6ICRjb2xvci0tYmxhY2s7XHJcbiRjb2xvci0tbGluazogJGNvbG9yLS1ibGFjaztcclxuJGNvbG9yLS1oZWFkaW5nczogJGNvbG9yLS1ibGFjaztcclxuJGNvbG9yLS1jb250ZW50LWJnOiAkY29sb3ItLWJnLWFsdDtcclxuXHJcbiRjb2xvci0tZmllbGRzLXRleHQ6ICRjb2xvci0tYmxhY2s7XHJcbiRjb2xvci0tZmllbGRzLWJnOiAkY29sb3ItLWJnLWxpZ2h0O1xyXG4kY29sb3ItLWZpZWxkcy1ib3JkZXI6ICRjb2xvci0tYmctbGlnaHQ7XHJcblxyXG4vLyBHbG9iYWxcclxuJGZ1bGwtaGVpZ2h0OiB2YXIoLS1rYXJhdmFuaWVycy0tZnVsbC1oZWlnaHQpO1xyXG4kZnVsbC13aWR0aDogdmFyKC0ta2FyYXZhbmllcnMtLWZ1bGwtd2lkdGgpO1xyXG5cclxuJGhlYWRlci0tbW9iaWxlLW1heDogJ2xnJztcclxuJGZpbHRlcnMtLW1vYmlsZS1tYXg6ICdsZyc7XHJcblxyXG4vLyBGb250c1xyXG4kZm9udC1mYW1pbHktLWJvZHk6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtZmFtaWx5LS1ib2R5LWZvbnQpO1xyXG4kZm9udC1mYW1pbHktLWhlYWRpbmctYWRkOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0taGVhZGluZy1hZGQtZm9udCk7XHJcblxyXG4kZm9udC13ZWlnaHQtLWJvbGQ6IDcwMDtcclxuXHJcbiRmb250LXNpemUtLXAtMDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1wLTApO1xyXG4kZm9udC1zaXplLS1wLTE6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtc2l6ZS0tcC0xKTtcclxuJGZvbnQtc2l6ZS0tcC0yOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLXAtMik7XHJcbiRmb250LXNpemUtLWgtMDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1oLTApO1xyXG4kZm9udC1zaXplLS1oLTE6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtc2l6ZS0taC0xKTtcclxuJGZvbnQtc2l6ZS0taC0yOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLWgtMik7XHJcbiRmb250LXNpemUtLWgtMzogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1oLTMpO1xyXG4kZm9udC1zaXplLS1oLTQ6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtc2l6ZS0taC00KTtcclxuJGZvbnQtc2l6ZS0taC01OiB2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLWgtNSk7XHJcblxyXG4vLyBCb3JkZXIgUmFkaXVzZXNcclxuJGJvcmRlci1yYWRpdXMtLWlucHV0OiByZW0oNCk7XHJcbiRib3JkZXItcmFkaXVzLS1jaGVja2JveDogcmVtKDIpO1xyXG5cclxuLy8gSW5wdXRzXHJcbiRpbnB1dC0taGVpZ2h0OiA2MjtcclxuJGlucHV0LS1wYWRkaW5nLS14OiAxMztcclxuJGlucHV0LS1wYWRkaW5nLS15OiAxODtcclxuJGlucHV0LS1ib3JkZXItd2lkdGg6IDA7XHJcbiRpbnB1dC0tYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuJGlucHV0LS1ib3JkZXItY29sb3I6ICRjb2xvci0tZmllbGRzLWJvcmRlcjtcclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbiR0cmFuc2l0aW9uLS1zcGVlZDogdmFyKC0ta2FyYXZhbmllcnMtLXRyYW5zaXRpb24tc3BlZWQpO1xyXG4kdHJhbnNpdGlvbi0tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1rYXJhdmFuaWVycy0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xyXG4kdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tLXNwZWVkICR0cmFuc2l0aW9uLS10aW1pbmctZnVuY3Rpb247XHJcblxyXG4vLyBCcmVha3BvaW50c1xyXG4kYnJlYWtwb2ludHM6IChcclxuXHR4czogMzc1cHgsXHJcblx0c206IDU3NnB4LFxyXG5cdG1kOiA3ODJweCxcclxuXHRsZzogOTkycHgsXHJcblx0eGw6IDEyMDBweCxcclxuXHR4eGw6IDE0NDBweCxcclxuXHRtYXg6IDE1ODVweFxyXG4pO1xyXG5cclxuLy8gU3BhY2luZ1xyXG4kc3BhY2VyLTE6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTI0KTtcclxuJHNwYWNlci0yOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS0zNik7XHJcbiRzcGFjZXItMzogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNjApO1xyXG4kc3BhY2VyLTQ6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTgwKTtcclxuJHNwYWNlci01OiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS0xMDApO1xyXG4kc3BhY2VyLTY6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTEyMCk7XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/