/*
 * STYLUS SMACSS boilerplate v1.0
 * Inspired by Jonathan Snook : http://smacss.com
 * Author: @maxime beaudoin
 * Date: May 11 2014
 *
 * Doc : https://github.com/justinmwatts/SMACSS // http://smacss.com
 */

/* TOOL */

.photo-credit {
	font-size: 11px; /* add PX (or original value) as backup */
	font-size: 0.6875rem;
	margin: 0 0 0 0;
	text-transform: initial;
	display: block;
}

.photo-credit--left,
.photo-credit--right {
	position: absolute;
	bottom: 10px;
}

.photo-credit--left {
	right: 50%;
	-webkit-transform: translateX(-10%);
	transform: translateX(-10%);
}

.photo-credit--right {
	right: 5%;
}

.photo-credit--dark {
	color: #384a75;
}

.photo-credit--light {
	color: #fff;
}

.section-1__photo-credit:after {
	font-size: 11px; /* add PX (or original value) as backup */
	font-size: 0.6875rem;
	color: #384a75;
	text-transform: initial;
	display: block;
	content: 'Property of Sidney Crosby Hockey School';
	position: absolute;
	bottom: 10px;
	right: 5%;
}

.section-3__photo-credit:after {
	font-size: 11px; /* add PX (or original value) as backup */
	font-size: 0.6875rem;
	color: #fff;
	text-transform: initial;
	display: block;
	content: 'Photo Courtesy of Reebok-CCM Hockey, Sidney Crosby, Pittsburgh Penguins';
	position: absolute;
	bottom: 10px;
	right: 5%;
}

.section-4__photo-credit:after {
	font-size: 11px; /* add PX (or original value) as backup */
	font-size: 0.6875rem;
	color: #384a75;
	text-transform: initial;
	display: block;
	content: 'Property of Sidney Crosby Hockey School';
	position: absolute;
	bottom: 10px;
	right: 5%;
}

.table {
	display: table;
}

.table-cell {
	display: table-cell;
}

.table-cell.middle {
	vertical-align: middle;
}

.mCustomScrollbar {
	-ms-touch-action: none;
	touch-action: none; /* MSPointer events - direct all pointer events to js */
}

.mCustomScrollbar.mCS_no_scrollbar {
	-ms-touch-action: auto;
	touch-action: auto;
}

.mCustomScrollBox { /* contains plugin's markup */
	position: relative;
	overflow: hidden;
	height: 100%;
	max-width: 100%;
	outline: none;
	direction: ltr;
}

.mCSB_container { /* contains the original content */
	overflow: hidden;
	width: auto;
	height: auto;
}

.mCSB_inside > .mCSB_container {
	margin-right: 30px;
}

.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden {
	margin-right: 0;
}

.mCS-dir-rtl > .mCSB_inside > .mCSB_container { /* RTL direction/left-side scrollbar */
	margin-right: 0;
	margin-left: 30px;
}

.mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden {
	margin-left: 0;
}

.mCSB_scrollTools { /* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */
	position: absolute;
	width: 16px;
	height: auto;
	left: auto;
	top: 40px;
	right: 0;
	bottom: 40px;
}

.mCSB_outside + .mCSB_scrollTools {
	right: -26px;
}

.mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools,
.mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools { /* RTL direction/left-side scrollbar */
	right: auto;
	left: 0;
}

.mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools {
	left: -26px;
}

.mCSB_scrollTools .mCSB_draggerContainer { /* contains the draggable element and dragger rail markup */
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	height: auto;
}

.mCSB_scrollTools a + .mCSB_draggerContainer {
	margin: 20px 0;
}

.mCSB_scrollTools .mCSB_draggerRail {
	width: 2px;
	height: 100%;
	margin: 0 auto;
	border-radius: 16px;
}

.mCSB_scrollTools .mCSB_dragger { /* the draggable element */
	cursor: pointer;
	width: 100%;
	height: 30px; /* minimum dragger height */
	z-index: 1;
}

.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { /* the dragger element */
	position: relative;
	width: 4px;
	height: 100%;
	margin: 0 auto;
	border-radius: 16px;
	text-align: center;
}

.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
	width: 12px; /* auto-expanded scrollbar */
}

.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
	width: 8px; /* auto-expanded scrollbar */
}

.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown {
	display: block;
	position: absolute;
	height: 20px;
	width: 100%;
	overflow: hidden;
	margin: 0 auto;
	cursor: pointer;
}

.mCSB_scrollTools .mCSB_buttonDown {
	bottom: 0;
}

.mCSB_horizontal.mCSB_inside > .mCSB_container {
	margin-right: 0;
	margin-bottom: 30px;
}

.mCSB_horizontal.mCSB_outside > .mCSB_container {
	min-height: 100%;
}

.mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden {
	margin-bottom: 0;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal {
	width: auto;
	height: 16px;
	top: auto;
	right: 0;
	bottom: 0;
	left: 0;
}

.mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal {
	bottom: -26px;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer {
	margin: 0 20px;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	width: 100%;
	height: 2px;
	margin: 7px 0;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger {
	width: 30px; /* minimum dragger width */
	height: 100%;
	left: 0;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	width: 100%;
	height: 4px;
	margin: 6px auto;
}

.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
	height: 12px; /* auto-expanded scrollbar */
	margin: 2px auto;
}

.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
	height: 8px; /* auto-expanded scrollbar */
	margin: 4px 0;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight {
	display: block;
	position: absolute;
	width: 20px;
	height: 100%;
	overflow: hidden;
	margin: 0 auto;
	cursor: pointer;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft {
	left: 0;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight {
	right: 0;
}

.mCSB_container_wrapper {
	position: absolute;
	height: auto;
	width: auto;
	overflow: hidden;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin-right: 30px;
	margin-bottom: 30px;
}

.mCSB_container_wrapper > .mCSB_container {
	padding-right: 30px;
	padding-bottom: 30px;
}

.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical {
	bottom: 20px;
}

.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
	right: 20px;
}

.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical {
	bottom: 0;
}

.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
	right: 0;
}

.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
	left: 20px;
}

.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal {
	left: 0;
}

.mCS-dir-rtl > .mCSB_inside > .mCSB_container_wrapper { /* RTL direction/left-side scrollbar */
	margin-right: 0;
	margin-left: 30px;
}

.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container {
	padding-right: 0;
	box-sizing: border-box;
}

.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container {
	padding-bottom: 0;
	box-sizing: border-box;
}

.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden {
	margin-right: 0; /* non-visible scrollbar */
	margin-left: 0;
}

.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden {
	margin-bottom: 0;
}

.mCSB_scrollTools,
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown,
.mCSB_scrollTools .mCSB_buttonLeft,
.mCSB_scrollTools .mCSB_buttonRight {
	-webkit-transition: opacity 0.2s ease-in-out, background-color 0.2s ease-in-out;
	-webkit-transition: opacity 0.2s ease-in-out, background-color 0.2s ease-in-out;
	transition: opacity 0.2s ease-in-out, background-color 0.2s ease-in-out;
}

.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail {
	-webkit-transition: width 0.2s ease-out 0.2s, height 0.2s ease-out 0.2s, margin-left 0.2s ease-out 0.2s, margin-right 0.2s ease-out 0.2s, margin-top 0.2s ease-out 0.2s, margin-bottom 0.2s ease-out 0.2s, opacity 0.2s ease-in-out, background-color 0.2s ease-in-out;
	-webkit-transition: width 0.2s ease-out 0.2s, height 0.2s ease-out 0.2s, margin-left 0.2s ease-out 0.2s, margin-right 0.2s ease-out 0.2s, margin-top 0.2s ease-out 0.2s, margin-bottom 0.2s ease-out 0.2s, opacity 0.2s ease-in-out, background-color 0.2s ease-in-out;
	transition: width 0.2s ease-out 0.2s, height 0.2s ease-out 0.2s, margin-left 0.2s ease-out 0.2s, margin-right 0.2s ease-out 0.2s, margin-top 0.2s ease-out 0.2s, margin-bottom 0.2s ease-out 0.2s, opacity 0.2s ease-in-out, background-color 0.2s ease-in-out;
}

.mCSB_scrollTools {
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
	filter: alpha(opacity=75);
	opacity: 0.75;
	filter: "alpha(opacity=75)";
	-ms-filter: "alpha(opacity=75)";
}

.mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools,
.mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools {
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
	filter: alpha(opacity=0);
	opacity: 0;
	filter: "alpha(opacity=0)";
	-ms-filter: "alpha(opacity=0)";
}

.mCustomScrollbar > .mCustomScrollBox > .mCSB_scrollTools.mCSB_scrollTools_onDrag,
.mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag,
.mCustomScrollBox:hover > .mCSB_scrollTools,
.mCustomScrollBox:hover ~ .mCSB_scrollTools,
.mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools,
.mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools {
	-ms-filter: none;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
	filter: "alpha(opacity=100)";
	-ms-filter: "alpha(opacity=100)";
}

.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.4);
	filter: "alpha(opacity=40)";
	-ms-filter: "alpha(opacity=40)";
}

.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.75);
	filter: "alpha(opacity=75)";
	-ms-filter: "alpha(opacity=75)";
}

.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.85);
	filter: "alpha(opacity=85)";
	-ms-filter: "alpha(opacity=85)";
}

.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.9);
	filter: "alpha(opacity=90)";
	-ms-filter: "alpha(opacity=90)";
}

.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown,
.mCSB_scrollTools .mCSB_buttonLeft,
.mCSB_scrollTools .mCSB_buttonRight {
	background-image: url("mCSB_buttons.png"); /* css sprites */
	background-repeat: no-repeat;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
	filter: alpha(opacity=40);
	opacity: 0.4;
	filter: "alpha(opacity=40)";
	-ms-filter: "alpha(opacity=40)";
}

.mCSB_scrollTools .mCSB_buttonUp {
	background-position: 0 0; /*
		sprites locations
		light: 0 0, -16px 0, -32px 0, -48px 0, 0 -72px, -16px -72px, -32px -72px
		dark: -80px 0, -96px 0, -112px 0, -128px 0, -80px -72px, -96px -72px, -112px -72px
		*/
}

.mCSB_scrollTools .mCSB_buttonDown {
	background-position: 0 -20px; /*
		sprites locations
		light: 0 -20px, -16px -20px, -32px -20px, -48px -20px, 0 -92px, -16px -92px, -32px -92px
		dark: -80px -20px, -96px -20px, -112px -20px, -128px -20px, -80px -92px, -96px -92px, -112 -92px
		*/
}

.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: 0 -40px; /*
		sprites locations
		light: 0 -40px, -20px -40px, -40px -40px, -60px -40px, 0 -112px, -20px -112px, -40px -112px
		dark: -80px -40px, -100px -40px, -120px -40px, -140px -40px, -80px -112px, -100px -112px, -120px -112px
		*/
}

.mCSB_scrollTools .mCSB_buttonRight {
	background-position: 0 -56px; /*
		sprites locations
		light: 0 -56px, -20px -56px, -40px -56px, -60px -56px, 0 -128px, -20px -128px, -40px -128px
		dark: -80px -56px, -100px -56px, -120px -56px, -140px -56px, -80px -128px, -100px -128px, -120px -128px
		*/
}

.mCSB_scrollTools .mCSB_buttonUp:hover,
.mCSB_scrollTools .mCSB_buttonDown:hover,
.mCSB_scrollTools .mCSB_buttonLeft:hover,
.mCSB_scrollTools .mCSB_buttonRight:hover {
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
	filter: alpha(opacity=75);
	opacity: 0.75;
	filter: "alpha(opacity=75)";
	-ms-filter: "alpha(opacity=75)";
}

.mCSB_scrollTools .mCSB_buttonUp:active,
.mCSB_scrollTools .mCSB_buttonDown:active,
.mCSB_scrollTools .mCSB_buttonLeft:active,
.mCSB_scrollTools .mCSB_buttonRight:active {
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
	filter: alpha(opacity=90);
	opacity: 0.9;
	filter: "alpha(opacity=90)";
	-ms-filter: "alpha(opacity=90)";
}

.mCS-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #ebedf1;
}

.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #384a75;
}

.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #384a75;
}

.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #00aced;
}

.mCS-dark.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -80px 0;
}

.mCS-dark.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -80px -20px;
}

.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -80px -40px;
}

.mCS-dark.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -80px -56px;
}

.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail,
.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail {
	width: 4px;
	background-color: #fff;
	background-color: rgba(255,255,255,0.1);
	border-radius: 1px;
}

.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 4px;
	background-color: #fff;
	background-color: rgba(255,255,255,0.75);
	border-radius: 1px;
}

.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	width: 100%;
	height: 4px;
	margin: 6px auto;
}

.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.85);
}

.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.9);
}

.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -32px 0;
}

.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -32px -20px;
}

.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -40px -40px;
}

.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -40px -56px;
}

.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.1);
	border-radius: 1px;
}

.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.75);
	border-radius: 1px;
}

.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.85);
}

.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.9);
}

.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -112px 0;
}

.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -112px -20px;
}

.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -120px -40px;
}

.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -120px -56px;
}

.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail,
.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail {
	width: 4px;
	background-color: #fff;
	background-color: rgba(255,255,255,0.1);
	border-radius: 2px;
}

.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 6px;
	background-color: #fff;
	background-color: rgba(255,255,255,0.75);
	border-radius: 2px;
}

.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	width: 100%;
	height: 4px;
	margin: 6px 0;
}

.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	width: 100%;
	height: 6px;
	margin: 5px auto;
}

.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.85);
}

.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.9);
}

.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -16px 0;
}

.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -16px -20px;
}

.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -20px -40px;
}

.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -20px -56px;
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.1);
	border-radius: 2px;
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.75);
	border-radius: 2px;
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.85);
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.9);
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -96px 0;
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -96px -20px;
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -100px -40px;
}

.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -100px -56px;
}

.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #fff;
	background-color: rgba(255,255,255,0.1);
}

.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 2px;
}

.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	width: 100%;
}

.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	width: 100%;
	height: 2px;
	margin: 7px auto;
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.15);
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.75);
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.85);
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.9);
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -80px 0;
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -80px -20px;
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -80px -40px;
}

.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -80px -56px;
}

.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #fff;
	background-color: rgba(255,255,255,0.15);
}

.mCS-rounded.mCSB_scrollTools .mCSB_dragger,
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,
.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger {
	height: 14px;
}

.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 14px;
	margin: 0 1px;
}

.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger,
.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger {
	width: 14px;
}

.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	height: 14px;
	margin: 1px 0;
}

.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
	width: 16px; /* auto-expanded scrollbar */
	height: 16px;
	margin: -1px 0;
}

.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
	width: 4px; /* auto-expanded scrollbar */
}

.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
	height: 16px; /* auto-expanded scrollbar */
	width: 16px;
	margin: 0 -1px;
}

.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
	height: 4px; /* auto-expanded scrollbar */
	margin: 6px 0;
}

.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp {
	background-position: 0 -72px;
}

.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown {
	background-position: 0 -92px;
}

.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: 0 -112px;
}

.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight {
	background-position: 0 -128px;
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.75);
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.15);
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.85);
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.9);
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -80px -72px;
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -80px -92px;
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -80px -112px;
}

.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -80px -128px;
}

.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail,
.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail {
	width: 4px;
}

.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,
.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	background-color: transparent;
	background-position: center;
}

.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,
.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==");
	background-repeat: repeat-y;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
	filter: alpha(opacity=30);
	opacity: 0.3;
	filter: "alpha(opacity=30)";
	-ms-filter: "alpha(opacity=30)";
}

.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	height: 4px;
	margin: 6px 0;
	background-repeat: repeat-x;
}

.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -16px -72px;
}

.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -16px -92px;
}

.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -20px -112px;
}

.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -20px -128px;
}

.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=");
}

.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -96px -72px;
}

.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -96px -92px;
}

.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -100px -112px;
}

.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -100px -128px;
}

.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-repeat: repeat-y;
	background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0.5)), color-stop(100%, rgba(255,255,255,0)));
	background-image: -webkit-linear-gradient(left, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%);
	background-image: -webkit-linear-gradient(left,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
	background-image: linear-gradient(to right,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
}

.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	background-repeat: repeat-x;
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255,255,255,0.5)), color-stop(100%, rgba(255,255,255,0)));
	background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%);
	background-image: -webkit-linear-gradient(top,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
	background-image: linear-gradient(to bottom,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0) 100%);
}

.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger,
.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger {
	height: 70px;
}

.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger,
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger {
	width: 70px;
}

.mCS-3d.mCSB_scrollTools,
.mCS-3d-dark.mCSB_scrollTools {
	-ms-filter: none;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
	filter: "alpha(opacity=30)";
	-ms-filter: "alpha(opacity=30)";
}

.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,
.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	border-radius: 16px;
}

.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,
.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail {
	width: 8px;
	background-color: #000;
	background-color: rgba(0,0,0,0.2);
	box-shadow: inset 1px 0 1px rgba(0,0,0,0.5), inset -1px 0 1px rgba(255,255,255,0.2);
}

.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #555;
}

.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 8px;
}

.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	width: 100%;
	height: 8px;
	margin: 4px 0;
	box-shadow: inset 0 1px 1px rgba(0,0,0,0.5), inset 0 -1px 1px rgba(255,255,255,0.2);
}

.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	width: 100%;
	height: 8px;
	margin: 4px auto;
}

.mCS-3d.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -32px -72px;
}

.mCS-3d.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -32px -92px;
}

.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -40px -112px;
}

.mCS-3d.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -40px -128px;
}

.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.1);
	box-shadow: inset 1px 0 1px rgba(0,0,0,0.1);
}

.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	box-shadow: inset 0 1px 1px rgba(0,0,0,0.1);
}

.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -112px -72px;
}

.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -112px -92px;
}

.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -120px -112px;
}

.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -120px -128px;
}

.mCS-3d-thick.mCSB_scrollTools,
.mCS-3d-thick-dark.mCSB_scrollTools {
	-ms-filter: none;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
	filter: "alpha(opacity=30)";
	-ms-filter: "alpha(opacity=30)";
}

.mCS-3d-thick.mCSB_scrollTools,
.mCS-3d-thick-dark.mCSB_scrollTools,
.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer,
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer {
	border-radius: 7px;
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	border-radius: 5px;
}

.mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical,
.mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical {
	right: 1px;
}

.mCS-3d-thick.mCSB_scrollTools_vertical,
.mCS-3d-thick-dark.mCSB_scrollTools_vertical {
	box-shadow: inset 1px 0 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5);
}

.mCS-3d-thick.mCSB_scrollTools_horizontal,
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal {
	bottom: 1px;
	box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.5);
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	box-shadow: inset 1px 0 0 rgba(255,255,255,0.4);
	width: 12px;
	margin: 2px;
	position: absolute;
	height: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.4);
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #555;
}

.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	height: 12px;
	width: auto;
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer {
	background-color: #000;
	background-color: rgba(0,0,0,0.05);
	box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1);
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail {
	background-color: transparent;
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -32px -72px;
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -32px -92px;
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -40px -112px;
}

.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -40px -128px;
}

.mCS-3d-thick-dark.mCSB_scrollTools {
	box-shadow: inset 0 0 14px rgba(0,0,0,0.2);
}

.mCS-3d-thick-dark.mCSB_scrollTools_horizontal {
	box-shadow: inset 0 1px 1px rgba(0,0,0,0.1), inset 0 0 14px rgba(0,0,0,0.2);
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	box-shadow: inset 1px 0 0 rgba(255,255,255,0.4), inset -1px 0 0 rgba(0,0,0,0.2);
}

.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), inset 0 -1px 0 rgba(0,0,0,0.2);
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #777;
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer {
	background-color: #fff;
	background-color: rgba(0,0,0,0.05);
	box-shadow: inset 1px 1px 16px rgba(0,0,0,0.1);
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: transparent;
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -112px -72px;
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -112px -92px;
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -120px -112px;
}

.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -120px -128px;
}

.mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical,
.mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical {
	right: 0;
	margin: 12px 0;
}

.mCustomScrollBox.mCS-minimal + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCustomScrollBox.mCS-minimal + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal {
	bottom: 0;
	margin: 0 12px;
}

.mCS-dir-rtl > .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical,
.mCS-dir-rtl > .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical {
	left: 0;
	right: auto;
}

.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail,
.mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: transparent;
}

.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger,
.mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger {
	height: 50px;
}

.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger,
.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger {
	width: 50px;
}

.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.2);
	filter: "alpha(opacity=20)";
	-ms-filter: "alpha(opacity=20)";
}

.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.5);
	filter: "alpha(opacity=50)";
	-ms-filter: "alpha(opacity=50)";
}

.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.2);
	filter: "alpha(opacity=20)";
	-ms-filter: "alpha(opacity=20)";
}

.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.5);
	filter: "alpha(opacity=50)";
	-ms-filter: "alpha(opacity=50)";
}

.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail,
.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail {
	width: 6px;
	background-color: #000;
	background-color: rgba(0,0,0,0.2);
}

.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 6px;
}

.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	width: 100%;
	height: 6px;
	margin: 5px 0;
}

.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
	width: 12px;
}

.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,
.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
	height: 12px;
	margin: 2px 0;
}

.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -32px -72px;
}

.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -32px -92px;
}

.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -40px -112px;
}

.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -40px -128px;
}

.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.75);
}

.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.85);
}

.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.9);
}

.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.1);
}

.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -112px -72px;
}

.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -112px -92px;
}

.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -120px -112px;
}

.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -120px -128px;
}

.mCS-inset.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail {
	width: 12px;
	background-color: #000;
	background-color: rgba(0,0,0,0.2);
}

.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	width: 6px;
	margin: 3px 5px;
	position: absolute;
	height: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
	height: 6px;
	margin: 5px 3px;
	position: absolute;
	width: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,
.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail {
	width: 100%;
	height: 12px;
	margin: 2px 0;
}

.mCS-inset.mCSB_scrollTools .mCSB_buttonUp,
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp,
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -32px -72px;
}

.mCS-inset.mCSB_scrollTools .mCSB_buttonDown,
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown,
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -32px -92px;
}

.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft,
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -40px -112px;
}

.mCS-inset.mCSB_scrollTools .mCSB_buttonRight,
.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,
.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -40px -128px;
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.75);
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.85);
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.9);
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.1);
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp {
	background-position: -112px -72px;
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown {
	background-position: -112px -92px;
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft {
	background-position: -120px -112px;
}

.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight {
	background-position: -120px -128px;
}

.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,
.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: transparent;
	border-width: 1px;
	border-style: solid;
	border-color: #fff;
	border-color: rgba(255,255,255,0.2);
	box-sizing: border-box;
}

.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail {
	border-color: #000;
	border-color: rgba(0,0,0,0.2);
}

.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #fff;
	background-color: rgba(255,255,255,0.6);
}

.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail {
	background-color: #000;
	background-color: rgba(0,0,0,0.6);
}

.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.75);
}

.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.85);
}

.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #000;
	background-color: rgba(0,0,0,0.9);
}

.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.75);
}

.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.85);
}

.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
	background-color: #fff;
	background-color: rgba(255,255,255,0.9);
}

html,
body,
#sb-site,
.sb-site-container,
.sb-slidebar { /* Set box model to prevent any user added margins or paddings from altering the widths or heights. */
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html,
body {
	width: 100%;
	overflow-x: hidden; /* Stops horizontal scrolling. */
}

html {
	height: 100%; /* Site is as tall as device. */
}

body {
	min-height: 100%;
	height: auto;
	position: relative; /* Required for static Slidebars to function properly. */
}

html.sb-scroll-lock.sb-active:not(.sb-static) {
	overflow: hidden;
}

#sb-site,
.sb-site-container { /* You may now use class .sb-site-container instead of #sb-site and use your own id. However please make sure you don't set any of the following styles any differently on your id. */
	width: 100%;
	min-height: 100vh;
	position: relative;
	z-index: 1; /* Site sits above Slidebars */
	background-color: #fff; /* Default background colour, overwrite this with your own css. I suggest moving your html or body background styling here. Making this transparent will allow the Slidebars beneath to be visible. */
}

#sb-site:before,
#sb-site:after,
.sb-site-container:before,
.sb-site-container:after {
	content: ' ';
	display: table;
}

#sb-site:before,
#sb-site:after,
.sb-site-container:before,
.sb-site-container:after {
	clear: both;
}

.sb-slidebar {
	height: 100%;
	overflow-y: auto; /* Enable vertical scrolling on Slidebars when needed. */
	position: fixed;
	top: 0;
	z-index: 0; /* Slidebars sit behind sb-site. */
	display: none; /* Initially hide the Slidebars. Changed from visibility to display to allow -webkit-overflow-scrolling. */
	background-color: #222; /* Default Slidebars background colour, overwrite this with your own css. */
}

.sb-slidebar,
.sb-slidebar * {
	-webkit-transform: translateZ(0px); /* Fixes issues with translated and z-indexed elements on iOS 7. */
}

.sb-left {
	left: 0; /* Set Slidebar to the left. */
}

.sb-right {
	right: 0; /* Set Slidebar to the right. */
}

html.sb-static .sb-slidebar,
.sb-slidebar.sb-static {
	position: absolute; /* Makes Slidebars scroll naturally with the site, and unfixes them for Android Browser < 3 and iOS < 5. */
}

.sb-slidebar.sb-active {
	display: block; /* Makes Slidebars visibile when open. Changed from visibility to display to allow -webkit-overflow-scrolling. */
}

.sb-style-overlay {
	z-index: 9999; /* Set z-index high to ensure it overlays any other site elements. */
}

.sb-momentum-scrolling {
	-webkit-overflow-scrolling: touch; /* Adds native momentum scrolling for iOS & Android devices. */
}

.sb-slidebar {
	width: 30%;
}

.sb-width-thin {
	width: 15%;
}

.sb-width-wide {
	width: 45%;
}

.sb-slide,
#sb-site,
.sb-site-container,
.sb-slidebar {
	-webkit-transform: translate(0px);
	-webkit-transform: translate(0px);
	transform: translate(0px);
	-webkit-transition: -webkit-transform 400ms ease;
	-webkit-transition: -webkit-transform 400ms ease;
	transition: transform 400ms ease;
	-webkit-transition-property: -webkit-transform, left, right; /* Add left/right for Android < 4.4. */
	-webkit-backface-visibility: hidden; /* Prevents flickering. This is non essential, and you may remove it if your having problems with fixed background images in Chrome. */
}

.sb-hide {
	display: none; /* Optionally applied to control classes when Slidebars is disabled over a certain width. */
}

.mfp-bg {
	background: #0b0b0b;
	height: 100%;
	left: 0;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
	filter: alpha(opacity=80);
	opacity: 0.8;
	overflow: hidden;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 1042;
}

.mfp-wrap {
	height: 100%;
	left: 0;
	outline: none !important;
	position: fixed;
	top: 0;
	webkit-backface-visibility: hidden;
	width: 100%;
	z-index: 1043;
}

.mfp-container {
	box-sizing: border-box;
	height: 100%;
	left: 0;
	moz-box-sizing: border-box;
	padding: 0 8px;
	position: absolute;
	text-align: center;
	top: 0;
	webkit-box-sizing: border-box;
	width: 100%;
}

.mfp-container:before {
	content: '';
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}

.mfp-align-top .mfp-container:before {
	display: none;
}

.mfp-content {
	display: inline-block;
	margin: 0 auto;
	position: relative;
	text-align: left;
	vertical-align: middle;
	z-index: 1045;
}

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
	cursor: auto;
	width: 100%;
}

.mfp-ajax-cur {
	cursor: progress;
}

.mfp-zoom-out-cur,
.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
	cursor: -webkit-zoom-out;
	cursor: zoom-out;
}

.mfp-zoom {
	cursor: -moz-zoom-in;
	cursor: pointer;
	cursor: -webkit-zoom-in;
	cursor: zoom-in;
}

.mfp-auto-cursor .mfp-content {
	cursor: auto;
}

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
	moz-user-select: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	webkit-user-select: none;
}

.mfp-loading.mfp-figure {
	display: none;
}

.mfp-hide {
	display: none !important;
}

.mfp-preloader {
	color: #ccc;
	left: 8px;
	margin-top: -0.8em;
	position: absolute;
	right: 8px;
	text-align: center;
	top: 50%;
	width: auto;
	z-index: 1044;
}

.mfp-preloader a {
	color: #ccc;
}

.mfp-preloader a:hover {
	color: #fff;
}

.mfp-s-ready .mfp-preloader {
	display: none;
}

.mfp-s-error .mfp-content {
	display: none;
}

button.mfp-close,
button.mfp-arrow {
	background: transparent;
	border: 0;
	box-shadow: none;
	cursor: pointer;
	display: block;
	outline: none;
	overflow: visible;
	padding: 0;
	webkit-appearance: none;
	webkit-box-shadow: none;
	z-index: 1046;
}

button::-moz-focus-inner {
	border: 0;
	padding: 0;
}

.mfp-close {
	color: #fff;
	font-family: Arial, Baskerville, monospace;
	font-size: 28px;
	font-style: normal;
	height: 44px;
	line-height: 44px;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)";
	filter: alpha(opacity=65);
	opacity: 0.65;
	padding: 0 0 18px 10px;
	position: absolute;
	right: 0;
	text-align: center;
	text-decoration: none;
	top: 0;
	width: 44px;
}

.mfp-close:hover,
.mfp-close:focus {
	-ms-filter: none;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
}

.mfp-close:active {
	top: 1px;
}

.mfp-close-btn-in .mfp-close {
	color: #333;
}

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
	color: #fff;
	padding-right: 6px;
	right: -6px;
	text-align: right;
	width: 100%;
}

.mfp-counter {
	color: #ccc;
	font-size: 12px;
	line-height: 18px;
	position: absolute;
	right: 0;
	top: 0;
	white-space: nowrap;
}

.mfp-arrow {
	height: 110px;
	margin: 0;
	margin-top: -55px;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)";
	filter: alpha(opacity=65);
	opacity: 0.65;
	padding: 0;
	position: absolute;
	top: 50%;
	webkit-tap-highlight-color: rgba(0,0,0,0);
	width: 90px;
}

.mfp-arrow:active {
	margin-top: -54px;
}

.mfp-arrow:hover,
.mfp-arrow:focus {
	-ms-filter: none;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
}

.mfp-arrow:before,
.mfp-arrow:after,
.mfp-arrow .mfp-b,
.mfp-arrow .mfp-a {
	border: medium inset transparent;
	content: '';
	display: block;
	height: 0;
	left: 0;
	margin-left: 35px;
	margin-top: 35px;
	position: absolute;
	top: 0;
	width: 0;
}

.mfp-arrow:after,
.mfp-arrow .mfp-a {
	border-bottom-width: 13px;
	border-top-width: 13px;
	top: 8px;
}

.mfp-arrow:before,
.mfp-arrow .mfp-b {
	border-bottom-width: 21px;
	border-top-width: 21px;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
	filter: alpha(opacity=70);
	opacity: 0.7;
}

.mfp-arrow-left {
	left: 0;
}

.mfp-arrow-left:after,
.mfp-arrow-left .mfp-a {
	border-right: 17px solid #fff;
	margin-left: 31px;
}

.mfp-arrow-left:before,
.mfp-arrow-left .mfp-b {
	border-right: 27px solid #3f3f3f;
	margin-left: 25px;
}

.mfp-arrow-right {
	right: 0;
}

.mfp-arrow-right:after,
.mfp-arrow-right .mfp-a {
	border-left: 17px solid #fff;
	margin-left: 39px;
}

.mfp-arrow-right:before,
.mfp-arrow-right .mfp-b {
	border-left: 27px solid #3f3f3f;
}

.mfp-iframe-holder {
	padding-bottom: 40px;
	padding-top: 40px;
}

.mfp-iframe-holder .mfp-content {
	line-height: 0;
	max-width: 900px;
	width: 100%;
}

.mfp-iframe-holder .mfp-close {
	top: -40px;
}

.mfp-iframe-scaler {
	height: 0;
	overflow: hidden;
	padding-top: 56.25%;
	width: 100%;
}

.mfp-iframe-scaler iframe {
	background: #000;
	box-shadow: 0 0 8px rgba(0,0,0,0.6);
	display: block;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

img.mfp-img {
	box-sizing: border-box;
	display: block;
	height: auto;
	line-height: 0;
	margin: 0 auto;
	max-width: 100%;
	moz-box-sizing: border-box;
	padding: 40px 0 40px;
	webkit-box-sizing: border-box;
	width: auto;
}

.mfp-figure {
	line-height: 0;
}

.mfp-figure:after {
	background: #444;
	bottom: 40px;
	box-shadow: 0 0 8px rgba(0,0,0,0.6);
	content: '';
	display: block;
	height: auto;
	left: 0;
	position: absolute;
	right: 0;
	top: 40px;
	width: auto;
	z-index: -1;
}

.mfp-figure small {
	color: #bdbdbd;
	display: block;
	font-size: 12px;
	line-height: 14px;
}

.mfp-figure figure {
	margin: 0;
}

.mfp-bottom-bar {
	cursor: auto;
	left: 0;
	margin-top: -36px;
	position: absolute;
	top: 100%;
	width: 100%;
}

.mfp-title {
	color: #f3f3f3;
	line-height: 18px;
	padding-right: 36px;
	text-align: left;
	word-wrap: break-word;
}

.mfp-image-holder .mfp-content {
	max-width: 100%;
}

.mfp-gallery .mfp-image-holder .mfp-figure {
	cursor: pointer;
}

.mfp-ie7 .mfp-img {
	padding: 0;
}

.mfp-ie7 .mfp-bottom-bar {
	left: 50%;
	margin-left: -300px;
	margin-top: 5px;
	padding-bottom: 5px;
	width: 600px;
}

.mfp-ie7 .mfp-container {
	padding: 0;
}

.mfp-ie7 .mfp-content {
	padding-top: 44px;
}

.mfp-ie7 .mfp-close {
	padding-top: 0;
	right: 0;
	top: 0;
}

/* BASE */

/* normalize.css v3.0.1 | MIT License | git.io/normalize */

html {
	font-family: sans-serif; /* 1 */
	-ms-text-size-adjust: 100%; /* 2 */
	-webkit-text-size-adjust: 100%; /* 2 */
}

body {
	margin: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
	display: block;
}

audio,
canvas,
progress,
video {
	display: inline-block; /* 1 */
	vertical-align: baseline; /* 2 */
}

audio:not([controls]) {
	display: none;
	height: 0;
}

[hidden],
template {
	display: none;
}

a {
	background: transparent;
}

a:active,
a:hover {
	outline: 0;
}

abbr[title] {
	border-bottom: 1px dotted;
}

b,
strong {
	font-weight: bold;
}

dfn {
	font-style: italic;
}

h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

mark {
	background: #ff0;
	color: #000;
}

small {
	font-size: 80%;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

img {
	border: 0;
}

svg:not(:root) {
	overflow: hidden;
}

figure {
	margin: 1em 40px;
}

hr {
	box-sizing: content-box;
	height: 0;
}

pre {
	overflow: auto;
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
	color: inherit; /* 1 */
	font: inherit; /* 2 */
	margin: 0; /* 3 */
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button; /* 2 */
	cursor: pointer; /* 3 */
}

button[disabled],
html input[disabled] {
	cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input {
	line-height: normal;
}

input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box; /* 1 */
	padding: 0; /* 2 */
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

input[type="search"] {
	-webkit-appearance: textfield; /* 1 */ /* 2 */
	box-sizing: content-box;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

fieldset {
	border: 1px solid #c0c0c0;
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
}

legend {
	border: 0; /* 1 */
	padding: 0; /* 2 */
}

textarea {
	overflow: auto;
}

optgroup {
	font-weight: bold;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

td,
th {
	padding: 0;
}

*,
*:before,
*:after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	font-family: proxima-nova, sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 24px;
	font-size: 75%;
}

html,
body {
	height: 100%;
	background: #fff;
	margin: 0 auto;
	padding: 0;
	border: 0;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body {
	min-height: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

input[type="text"],
select,
textarea {
	background: #ebedf1;
	color: #797979;
	border-radius: 3px;
	border: none;
	width: 100%;
	padding: 0 3.8461538462%;
}

input[type="text"],
select {
	height: 40px;
}

input,
select,
textarea,
button {
	outline: none;
}

select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("../images/svg/triangle-down.svg");
	background-repeat: no-repeat;
	background-position: 96% center;
	text-indent: 0.01px;
	text-overflow: "";
}

select.error {
	border: 1px solid #e92735;
}

legend {
	color: #384a75;
	border-bottom: 1px solid #ebedf1;
	width: 100%;
	font-family: proxima-nova, sans-serif;
	font-weight: 700;
	text-transform: uppercase;
	margin-bottom: 26px;
	position: relative;
	font-size: 20px; /* add PX (or original value) as backup */
	font-size: 1.25rem;
	padding-left: 15px;
	padding-bottom: 24px;
}

legend:after {
	content: '';
	display: inline-block;
	position: absolute;
	width: 4px;
	height: 14px;
	background-color: #384a75;
	top: 4px;
	left: 0px;
}

fieldset {
	border: none;
	margin-bottom: 50px;
	padding: 0;
}

label {
	color: #737373;
	display: block;
}

textarea {
	padding: 15px;
	height: 150px;
	resize: none;
}

textarea.error {
	border: 1px solid #e92735;
}

.select-preview {
	display: none;
}

input.error {
	border: 1px solid #e92735;
}

.error-message {
	color: #e92735;
	display: block;
	margin: 15px 0px 20px;
}

.error-zone {
	color: #e92735;
}

/* LAYOUT */

.l-wrapper {
	width: 100%;
	height: 100%;
	min-height: 100%;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.l-content {
	height: 100%;
}

.form-row {
	*zoom: 1;
	margin-bottom: 15px;
}

.form-row:before,
.form-row:after {
	content: '';
	display: table;
}

.form-row:after {
	clear: both;
}

.form-row .form-group:first-child {
	margin-bottom: 15px;
}

/* MODULE */

.button {
	display: inline-block;
	font-family: proxima-nova, sans-serif;
	font-weight: 700;
	font-size: 18px; /* add PX (or original value) as backup */
	font-size: 1.125rem;
	letter-spacing: 0.2rem;
	text-align: center;
	background-color: #00aced;
	border: 1px solid #00aced;
	-webkit-transition: background-color 0.3s ease-in-out, letter-spacing 0.3s ease-in-out, color 0.3s ease-in-out;
	transition: background-color 0.3s ease-in-out, letter-spacing 0.3s ease-in-out, color 0.3s ease-in-out;
	text-transform: uppercase;
	padding: 10px 15px;
}

.button:hover {
	background-color: transparent;
	letter-spacing: 0.1rem;
}

.button--submit {
	color: #fff;
}

.button--submit:hover {
	color: #737373;
}

.read-more {
	position: relative;
	display: inline-block;
	text-transform: uppercase;
	font-weight: bold;
	letter-spacing: 0.2rem;
	color: #384a75;
	padding-bottom: 5px;
	-webkit-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out;
	transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out;
	overflow: hidden;
	margin-top: 25px;
}

.read-more:before,
.read-more:after {
	position: absolute;
	display: block;
	content: '';
	bottom: 0;
	left: 0;
	height: 3px;
	width: 100%;
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
}

.read-more:after {
	background: #384a75;
	-webkit-transform: translate3d(-101%, 0, 0);
	transform: translate3d(-101%, 0, 0);
}

.read-more:before {
	background: #ebedf1;
}

.read-more:hover:after {
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}

.register-now {
	font-family: proxima-nova, sans-serif;
	font-weight: 900;
	width: 100%;
	display: block;
	padding: 15px;
	text-transform: uppercase;
	letter-spacing: 0.2rem;
	color: #384a75;
	background: #ebedf1;
	position: relative;
	-webkit-transition: background-color 0.3s ease-in-out, letter-spacing 0.3s ease-in-out;
	transition: background-color 0.3s ease-in-out, letter-spacing 0.3s ease-in-out;
}

.register-now:hover {
	background-color: transparent;
	letter-spacing: 0.1rem;
}

.register-now__arrow {
	background-color: #384a75;
	background-image: url("../images/svg/right-arrow-black.svg");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 18px auto;
	display: inline-block;
	position: absolute;
	right: 0;
	top: 0;
	width: 60px;
	height: 100%;
}

.button-addkid {
	font-size: 16px; /* add PX (or original value) as backup */
	font-size: 1rem;
	background: #384a75;
	color: #fff;
	border-radius: 25px;
	padding: 14px 60px 14px 24px;
	min-width: 218px;
	display: inline-block;
	position: relative;
}

.button-addkid:after {
	content: '';
	display: block;
	position: absolute;
	right: 0;
	top: 0;
	width: 48px;
	height: 100%;
	text-align: center;
	border-top-right-radius: 25px;
	border-bottom-right-radius: 25px;
	background: #00aced url("../images/svg/plus.svg") 12px center no-repeat;
	-webkit-transition: background 0.3s ease-in-out;
	transition: background 0.3s ease-in-out;
}

.button-addkid:hover:after {
	background-color: #00aced;
}

.form .button-addkid:hover {
	color: grayLight;
}

.mfp-close {
	-ms-filter: none;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
	font-size: 40px;
}

.aside {
	background-color: #1f2942;
	color: #fff;
	height: 100%;
}

.hero__menu {
	color: #384a75;
	font-size: 20px; /* add PX (or original value) as backup */
	font-size: 1.25rem;
	vertical-align: top;
	margin: 25px 0 12px 5%;
	display: inline-block;
	text-transform: uppercase;
	line-height: 1;
	background-image: url("../images/svg/menu-blue.svg");
	background-repeat: no-repeat;
	background-position: center right;
	background-size: 18px 18px;
	padding-right: 24px;
}

.page-home .hero__menu {
	background-image: url("../images/svg/menu-white.svg");
	color: #fff;
	position: absolute;
	left: 5%;
	top: 7%;
	margin: 0;
}

.aside__logo {
	width: 100%;
	display: block;
	background-color: #384a75;
	background-image: url("../images/svg/logo.svg");
	background-repeat: no-repeat;
	background-position: center center;
	overflow: hidden;
	position: relative;
	background-size: 40% auto;
}

.aside__logo:before {
	content: "";
	display: block;
	height: 0;
	padding-top: 50%;
}

.aside__nav {
	font-family: proxima-nova, sans-serif;
	font-weight: 700;
	padding: 10% 14.567901235% 0 14.567901235%;
	text-transform: uppercase;
	display: block;
}

.aside__nav-item {
	position: relative;
	padding-left: 14px;
	margin-bottom: 14px;
	display: block;
	font-size: 16px; /* add PX (or original value) as backup */
	font-size: 1rem;
	-webkit-transition: color 0.3s ease-in-out;
	transition: color 0.3s ease-in-out;
}

.aside__nav-item:before {
	content: '';
	display: inline-block;
	position: absolute;
	width: 4px;
	height: 12px;
	background-color: #fff;
	top: 6px;
	left: 0px;
	-webkit-transition: background-color 0.3s ease-in-out;
	transition: background-color 0.3s ease-in-out;
}

.aside__nav-item:hover {
	color: #e92735;
}

.aside__nav-item:hover:before {
	background-color: #e92735;
}

.aside__nav-item.is-selected {
	color: #e92735;
}

.aside__nav-item.is-selected:before {
	background-color: #e92735;
}

.aside__button {
	position: absolute;
	bottom: 5%;
	left: 14.567901235%;
	right: 14.567901235%;
	font-size: 12px; /* add PX (or original value) as backup */
	font-size: 0.75rem;
	padding: 10px 15px;
}

.hero {
	height: 100%;
	position: relative;
	color: #fff;
	background-image: url("../images/hero_tablet.jpg");
	background-size: cover;
	background-repeat: no-repeat;
	text-transform: uppercase;
}

.hero__content {
	position: absolute;
	bottom: 10%;
	left: 5%;
	max-width: 80%;
}

.hero__title {
	font-family: proxima-nova, sans-serif;
	font-weight: 900;
	color: #1f2942;
	display: inline-block;
	font-size: 35px; /* add PX (or original value) as backup */
	font-size: 2.1875rem;
	margin: 0 0 24px 0;
}

.hero__title--white {
	background: #fff;
	padding: 0 6px;
	line-height: 1.35;
}

.hero__list {
	font-family: proxima-nova, sans-serif;
	font-weight: 700;
	list-style: none;
	padding: 0 0 0 0;
	margin: 0 0 0 0;
}

.hero__list-item {
	font-size: 12px; /* add PX (or original value) as backup */
	font-size: 0.75rem;
	line-height: 16px;
	letter-spacing: 0.15rem;
}

.hero__desc {
	display: none;
}

.hero__twitter {
	display: block;
	position: absolute;
	right: 5%;
	top: 7%;
	fill: #1dcaff;
}

.hero__twitter-icon {
	width: 30px;
	height: 21px;
}

.hero__play {
	position: absolute;
	right: 5%;
	bottom: 9%;
	fill: #fff;
}

.hero__play-icon {
	width: 40px;
	height: 40px;
}

.section {
	position: relative;
	color: #797979;
	background-repeat: no-repeat;
	background-color: #fff;
	overflow: hidden;
	background-size: cover;
	*zoom: 1;
}

.section:before,
.section:after {
	content: '';
	display: table;
}

.section:after {
	clear: both;
}

.section__content {
	padding: 5% 5%;
	position: relative;
}

.section__content.section__content--full {
	padding: 2% 0;
}

.section__content--half {
	background: #fff;
	width: 100%;
	padding: 0 0 0 0 !important;
}

.section__title {
	color: #384a75;
	font-family: proxima-nova, sans-serif;
	font-weight: 900;
	font-size: 30px; /* add PX (or original value) as backup */
	font-size: 1.875rem;
	text-transform: uppercase;
	line-height: 1.06;
	margin-top: 0;
}

.section__list {
	padding: 0 0 0 0;
	list-style: none;
}

.section__list-item {
	font-size: 16px; /* add PX (or original value) as backup */
	font-size: 1rem;
	background-image: url("../images/svg/right-arrow-dark-blue.svg");
	background-repeat: no-repeat;
	background-position: left 4px;
	padding-left: 20px;
	margin-bottom: 20px;
}

.section__desc {
	font-size: 16px; /* add PX (or original value) as backup */
	font-size: 1rem;
}

.section--full {
	background-color: #ebedf1;
	padding: 2% 5%;
}

.section__thumbs {
	*zoom: 1;
}

.section__thumbs:before,
.section__thumbs:after {
	content: '';
	display: table;
}

.section__thumbs:after {
	clear: both;
}

.section__thumb {
	background: #fff;
	margin-top: 20px;
}

.section__thumb:first-child {
	margin-top: 0;
}

.thumb__image {
	width: 100%;
	height: auto;
	vertical-align: top;
}

.section__thumb-header {
	position: relative;
}

.section__thumb-footer {
	background-color: #fff;
	padding: 9%;
}

.section__thumb-title {
	font-family: proxima-nova, sans-serif;
	font-weight: 700;
	color: #384a75;
	text-transform: uppercase;
	margin: 0 0 0 0;
}

.section__content--more {
	position: absolute;
	height: 100%;
	bottom: -100%;
	overflow: hidden;
	padding: 2% 0;
	background: #fff;
	-webkit-transition: bottom 0.3s, opacity 0.3s;
	transition: bottom 0.3s, opacity 0.3s;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
	filter: alpha(opacity=0);
	opacity: 0;
}

.section__content--more.is-open {
	-ms-filter: none;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
	-webkit-transition: bottom 0.3s;
	transition: bottom 0.3s;
	bottom: 0;
}

.test .section__content--more.is-open {
	vertical-align: top;
	height: 100%;
}

.section__close {
	position: absolute;
	top: 0;
	right: -30px;
}

.section__close-icon {
	overflow: hidden;
	width: 19px;
	height: 19px;
	fill: #384a75;
	-webkit-transition: fill 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
	transition: fill 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.section__close-icon:hover {
	fill: #e92735;
	-webkit-transform: rotate(360deg);
	transform: rotate(360deg);
}

.section__mobile {
	width: 100%;
	overflow: hidden;
	position: relative;
}

.section__mobile:before {
	content: "";
	display: block;
	height: 0;
	padding-top: 66.66666666666666%;
}

.section__organization {
	margin: 40px 0;
}

.desc__subtitle {
	font-size: 18px; /* add PX (or original value) as backup */
	font-size: 1.125rem;
	color: #384a75;
	text-transform: uppercase;
	margin-bottom: 0;
}

.section__desc {
	font-size: 16px; /* add PX (or original value) as backup */
	font-size: 1rem;
}

.organization__link {
	font-size: 16px; /* add PX (or original value) as backup */
	font-size: 1rem;
	color: #e92735;
}

.picture__tag {
	text-transform: uppercase;
	color: #737373;
	margin-bottom: 0;
	font-weight: 700;
}

.organization__pictures {
	*zoom: 1;
}

.organization__pictures:before,
.organization__pictures:after {
	content: '';
	display: table;
}

.organization__pictures:after {
	clear: both;
}

.organization__picture {
	width: calc(99.99% * 1/2 - (30px - 30px * 1/2));
}

.organization__picture:nth-child(n) {
	margin-right: 30px;
	float: left;
	clear: none;
}

.organization__picture:last-child {
	margin-right: 0;
}

.organization__picture:nth-child(10n) {
	margin-right: 0;
	float: right;
}

.organization__picture:nth-child(10n + 1) {
	clear: left;
}

.organization__picture > img {
	width: 100%;
	height: auto;
}

.table {
	display: table;
	height: 100%;
}

.table-cell {
	display: table-cell;
}

.table-cell.middle {
	vertical-align: middle;
}

.section__content--default {
	height: 100%;
	padding: 5% 10%;
}

.section__content--more {
	padding: 5% 10%;
}

.mCSB_container {
	overflow: visible;
}

.footer {
	background-color: #ebedf1;
	color: #737373;
	padding: 2% 5%;
}

.page-home .footer {
	position: relative;
}

.footer__copyright,
.footer__nav {
	color: #384a75;
}

.footer__copyright {
	text-align: center;
}

.footer__nav {
	text-align: center;
}

.footer__nav-item {
	-webkit-transition: color 0.3s ease-in-out;
	transition: color 0.3s ease-in-out;
	display: block;
}

.footer__nav-item:hover {
	color: #e92735;
}

.footer__nav-item:first-child {
	padding-left: 0;
}

.footer__desc {
	margin: 0 0 0 0;
	padding-bottom: 20px;
	border-bottom: 1px solid #d7dadf;
}

/* PAGE */

.main {
	height: 100%;
}

.section {
	background-position: center top;
}

.section-1 {
	background-image: url("../images/section1_bg.jpg");
}

.section-3 { /*background-image: url('../images/section3_bg.jpg');
  height: 500px;*/
	min-height: inherit !important;
}

.section-3 .section__content--half {
	height: 650px;
}

.section-4 {
	background-image: url("../images/section4_bg.jpg");
}

.subpage-header {
	padding: 3% 5%;
}

.subpage {
	padding: 0% 5% 5% 5%;
	color: #797979;
}

.subpage__title,
.subpage__subtitle {
	font-family: proxima-nova, sans-serif;
	font-weight: 700;
	color: #384a75;
	text-transform: uppercase;
}

.subpage-header__title {
	color: #384a75;
	font-family: proxima-nova, sans-serif;
	font-weight: 900;
	font-size: 30px; /* add PX (or original value) as backup */
	font-size: 1.875rem;
	text-transform: uppercase;
	line-height: 1.06;
	margin: 0;
}

.additional-kids-wrapper {
	margin-top: 50px;
}

.terms-submit__submit {
	text-align: right;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2Fzc2V0cy9zdHlsdXMvc3R5bGVzLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL3Rvb2wvcmV1c2FibGUuc3R5bCIsIi4uL2Fzc2V0cy9zdHlsdXMvdG9vbC9taXhpbnMuc3R5bCIsIi4uL25vZGVfbW9kdWxlcy9rb3V0by1zd2lzcy9saWIva291dG8tc3dpc3MvbWl4aW5zL3ZlbmRvcnMtZmxleC5zdHlsIiwiLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIiwiLi4vbm9kZV9tb2R1bGVzL2tvdXRvLXN3aXNzL2xpYi9rb3V0by1zd2lzcy91dGlsaXRpZXMvcG9zaXRpb24uc3R5bCIsIi4uL25vZGVfbW9kdWxlcy9rb3V0by1zd2lzcy9saWIva291dG8tc3dpc3MvbWl4aW5zL3ZlbmRvcnMuc3R5bCIsIi4uL2Fzc2V0cy9zdHlsdXMvdG9vbC9qcXVlcnlfbUN1c3RvbVNjcm9sbGJhci5zdHlsIiwiLi4vbm9kZV9tb2R1bGVzL2tvdXRvLXN3aXNzL2xpYi9rb3V0by1zd2lzcy91dGlsaXRpZXMvb3ZlcmZsb3cuc3R5bCIsIi4uL25vZGVfbW9kdWxlcy9ndWxwLXN0eWx1cy9ub2RlX21vZHVsZXMvc3R5bHVzL2xpYi9mdW5jdGlvbnMvaW5kZXguc3R5bCIsIi4uL2Fzc2V0cy9zdHlsdXMvdG9vbC9zbGlkZWJhcnMuc3R5bCIsIi4uL25vZGVfbW9kdWxlcy9rb3V0by1zd2lzcy9saWIva291dG8tc3dpc3MvdXRpbGl0aWVzL2NsZWFyZml4LnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL3Rvb2wvbWFnbmlmaWMtcG9wdXAuc3R5bCIsIi4uL2Fzc2V0cy9zdHlsdXMvYmFzZS9ub3JtYWxpemUuc3R5bCIsIi4uL2Fzc2V0cy9zdHlsdXMvYmFzZS9iYXNlLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL3Rvb2wvc2l0ZS1zZXR0aW5ncy5zdHlsIiwiLi4vYXNzZXRzL3N0eWx1cy9iYXNlL2Zvcm1zLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL2xheW91dC9nbG9iYWwuc3R5bCIsIi4uL2Fzc2V0cy9zdHlsdXMvbGF5b3V0L2Zvcm1zLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL3Rvb2wvbG9zdC5zdHlsIiwiLi4vYXNzZXRzL3N0eWx1cy9tb2R1bGUvYnV0dG9uLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL21vZHVsZS9hc2lkZS5zdHlsIiwiLi4vbm9kZV9tb2R1bGVzL2tvdXRvLXN3aXNzL2xpYi9rb3V0by1zd2lzcy9taXhpbnMvcmF0aW8tYm94LnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL21vZHVsZS9oZXJvLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL21vZHVsZS9zZWN0aW9uLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL21vZHVsZS9mb290ZXIuc3R5bCIsIi4uL2Fzc2V0cy9zdHlsdXMvcGFnZS9ob21lLnN0eWwiLCIuLi9hc3NldHMvc3R5bHVzL3BhZ2Uvc3VicGFnZS5zdHlsIiwiLi4vYXNzZXRzL3N0eWx1cy9wYWdlL3JlZ2lzdGVyLnN0eWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0FBVUE7QUNOQTtFQ0NJLFdBQVcsS0FBWDtBQUFrQjtFQUtkLFdBQXVCLFVBQXZCO0VESk4sUUFBUSxRQUFSO0VBQ0EsZ0JBQWdCLFFBQWhCO0VFZU0sU0FBUyxNQUFUOztBQ3lIRztBQUFBO0lGMUlQLFdBQVcsS0FBWDtJQUtJLFdBQXVCLFFBQXZCOzs7QUVxSUc7QUFBQTtJRHpISCxTQUFTLE1BQVQ7SURqQkosV0FBVyxLQUFYO0lBS0ksV0FBdUIsU0FBdkI7OztBRFVSO0FBQW9CO0VJRlosVUFBVSxTQUFWO0VKS04sUUFBUSxLQUFSOztBQUdGO0VBQ0UsT0FBTyxJQUFQO0VLcEIrQixtQkFBRyxpQkFBSDtFQUFBLGVBQUcsaUJBQUg7RUFTaEIsV0FBRyxpQkFBSDs7QUxlakI7RUFDRSxPQUFPLEdBQVA7O0FBR0Y7RUFDRSxPQUEwQixRQUExQjs7QUFHRjtFQUNFLE9BQU8sS0FBUDs7QUFHRjtFQ3RDSSxXQUFXLEtBQVg7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QUFTLGFBQVQ7OztBc0JrRVI7RUFDRSxRQUFRLFFBQVI7RUFDQSxnQkFBZ0IsS0FBaEI7RUFDQSxlQUFlLGtCQUFmOztBekJ0REY7QTBCaENBO0VBQ0UsUUFBUSxLQUFSOztBQU1GO0VBQ0UscUJBQXFCLFdBQXJCOztBQUdGO0VBQ0Usa0JBQWlELGlDQUFqRDs7QXRCOEhTO0FBQUE7SXNCM0hQLHFCQUFxQixTQUFyQjs7O0FBSUo7QUFDRTs7RUFFQSxZQUFZLG1CQUFaOztBdEJvSFM7QUFBQTtJc0JqSFAscUJBQXFCLFdBQXJCOzs7QUFFRjtFQUNFLFFBQVEsTUFBUjs7QUFLSjtFQUNFLGtCQUFpRCxpQ0FBakQ7O0F0QndHUztBQUFBO0lzQnJHUCxxQkFBcUIsU0FBckI7OztBQ3JDSjtFQUNFLFNBQVMsTUFBVDs7QUFHRjtFQUNFLFNBQVMsWUFBVDtFQUNBLE9BQTRCLFFBQTVCOztBQUdGO0FBQWdCO0VacUNkLGFBQXlCLHlCQUF6QjtFQUNBLGFBQWEsSUFBYjtFWW5DQSxPQUEwQixRQUExQjtFQUNBLGdCQUFnQixVQUFoQjs7QUFJRjtFQUNFLE9BQTBCLFFBQTFCO0VaaUNBLGFBQXlCLHlCQUF6QjtFQUNBLGFBQWEsSUFBYjtFYnBERSxXQUFXLEtBQVg7QUFBa0I7RUFLZCxXQUF1QixTQUF2QjtFeUJnQk4sZ0JBQWdCLFVBQWhCO0VBQ0EsYUFBYSxLQUFiO0VBQ0EsUUFBUSxFQUFSOztBdkJtSFM7QUFBQTtJRjFJUCxXQUFXLEtBQVg7SUFLSSxXQUF1QixTQUF2Qjs7O0EwQk5SO0VBQ0UsWUFBWSxLQUFaOztBQUdGO0VBQ0UsWUFBWSxNQUFaOztBeEJzSVM7QUFBQTtJd0JqSVAsZUFBZSxNQUFmIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogU1RZTFVTIFNNQUNTUyBib2lsZXJwbGF0ZSB2MS4wXG4gKiBJbnNwaXJlZCBieSBKb25hdGhhbiBTbm9vayA6IGh0dHA6Ly9zbWFjc3MuY29tXG4gKiBBdXRob3I6IEBtYXhpbWUgYmVhdWRvaW5cbiAqIERhdGU6IE1heSAxMSAyMDE0XG4gKlxuICogRG9jIDogaHR0cHM6Ly9naXRodWIuY29tL2p1c3Rpbm13YXR0cy9TTUFDU1MgLy8gaHR0cDovL3NtYWNzcy5jb21cbiAqL1xuXG5cbi8qIFRPT0wgKi9cbkBpbXBvcnQgXCJrb3V0by1zd2lzc1wiO1xuQGltcG9ydCBcInJ1cHR1cmVcIjtcbkBpbXBvcnQgXCJ0b29sL2xvc3RcIjtcbkBpbXBvcnQgXCJ0b29sL3NpdGUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJ0b29sL21peGluc1wiO1xuQGltcG9ydCBcInRvb2wvcmV1c2FibGVcIjtcbkBpbXBvcnQgXCJ0b29sL2pxdWVyeV9tQ3VzdG9tU2Nyb2xsYmFyXCI7XG5AaW1wb3J0IFwidG9vbC9zbGlkZWJhcnNcIjtcbkBpbXBvcnQgXCJ0b29sL21hZ25pZmljLXBvcHVwXCI7XG5cbi8qIEJBU0UgKi9cbkBpbXBvcnQgXCJiYXNlL25vcm1hbGl6ZVwiO1xuQGltcG9ydCBcImJhc2UvYmFzZVwiO1xuQGltcG9ydCBcImJhc2UvZm9ybXNcIjtcblxuLyogTEFZT1VUICovXG5AaW1wb3J0IFwibGF5b3V0L2dsb2JhbFwiO1xuQGltcG9ydCBcImxheW91dC9mb3Jtc1wiO1xuXG4vKiBNT0RVTEUgKi9cbkBpbXBvcnQgXCJtb2R1bGUvYnV0dG9uXCI7XG5AaW1wb3J0IFwibW9kdWxlL2FzaWRlXCI7XG5AaW1wb3J0IFwibW9kdWxlL2hlcm9cIjtcbkBpbXBvcnQgXCJtb2R1bGUvc2VjdGlvblwiO1xuQGltcG9ydCBcIm1vZHVsZS9mb290ZXJcIjtcblxuLyogUEFHRSAqL1xuQGltcG9ydCBcInBhZ2UvaG9tZVwiO1xuQGltcG9ydCBcInBhZ2Uvc3VicGFnZVwiO1xuQGltcG9ydCBcInBhZ2UvcmVnaXN0ZXJcIjtcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1JFVVNBQkxFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ucGhvdG8tY3JlZGl0IHtcbiAgc2V0LWZvbnQtc2l6ZSgxMXB4KTtcbiAgbWFyZ2luOiAwIDAgMCAwO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgK2Zyb20td2lkdGgoMTIwMHB4KSB7XG4gICAgc2V0LWZvbnQtc2l6ZSgxMnB4KTtcbiAgfVxuXG4gICtmcm9tLXdpZHRoKDE0MDBweCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHNldC1mb250LXNpemUoMTRweCk7XG4gIH1cbn1cblxuLnBob3RvLWNyZWRpdC0tbGVmdCxcbi5waG90by1jcmVkaXQtLXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG59XG5cbi5waG90by1jcmVkaXQtLWxlZnQge1xuICByaWdodDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwJSk7XG59XG5cbi5waG90by1jcmVkaXQtLXJpZ2h0IHtcbiAgcmlnaHQ6IDUlO1xufVxuXG4ucGhvdG8tY3JlZGl0LS1kYXJrIHtcbiAgY29sb3I6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmJhc2U7XG59XG5cbi5waG90by1jcmVkaXQtLWxpZ2h0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uc2VjdGlvbi0xX19waG90by1jcmVkaXQ6YWZ0ZXIge1xuICBzZXQtZm9udC1zaXplKDExcHgpO1xuICBjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnUHJvcGVydHkgb2YgU2lkbmV5IENyb3NieSBIb2NrZXkgU2Nob29sJ1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgcmlnaHQ6IDUlO1xuXG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2VjdGlvbi0zX19waG90by1jcmVkaXQ6YWZ0ZXIge1xuICBzZXQtZm9udC1zaXplKDExcHgpO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJ1Bob3RvIENvdXJ0ZXN5IG9mIFJlZWJvay1DQ00gSG9ja2V5LCBTaWRuZXkgQ3Jvc2J5LCBQaXR0c2J1cmdoIFBlbmd1aW5zJ1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgcmlnaHQ6IDUlO1xuXG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2VjdGlvbi00X19waG90by1jcmVkaXQ6YWZ0ZXIge1xuICBzZXQtZm9udC1zaXplKDExcHgpO1xuICBjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnUHJvcGVydHkgb2YgU2lkbmV5IENyb3NieSBIb2NrZXkgU2Nob29sJ1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgcmlnaHQ6IDUlO1xuXG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cblxuXG4udGFibGUge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnRhYmxlLWNlbGwge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXG4gICYubWlkZGxlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNNSVhJTlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnNldC1mb250LXNpemUodmFsdWUpIHtcbiAgICBmb250LXNpemU6IHZhbHVlOyAvKiBhZGQgUFggKG9yIG9yaWdpbmFsIHZhbHVlKSBhcyBiYWNrdXAgKi9cblxuICAgIGlmICh2YWx1ZSBpcyBpbmhlcml0KSB7XG4gICAgICAgIC8qIGRvIG5vdGhpbmcsIFwiaW5oZXJpdFwiIGhhcyBubyB1bml0ICovXG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW1pZnkodmFsdWUpO1xuICAgIH1cbn1cblxuXG5yZW1pZnkodmFsdWUpIHsgLyogc2VwYXJhdGUgbWl4aW4sIHNvIGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSAqL1xuICAgIHUgPSB1bml0KHZhbHVlKTtcblxuICAgIGlmICh1IGlzICdweCcpIHtcbiAgICAgICAgcmV0dXJuIHVuaXQodmFsdWUvMTYsICdyZW0nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdW5pdCh2YWx1ZSwgdSk7XG4gICAgfVxufVxuIiwiX2tzLXN1cHBvcnQtb2xkLWZsZXgtaW1wbGVtZW50YXRpb24oKVxuICAgIHJldHVybiBrcy1zdXBwb3J0LXNhZmFyaSA8PSA2IG9yIGtzLXN1cHBvcnQtYW5kcm9pZC1icm93c2VyIDw9IDQuMyBvciBrcy1zdXBwb3J0LWNocm9tZSA8PSAyMCBvciBrcy1zdXBwb3J0LWlvcy1zYWZhcmkgPD0gNi4xIG9yIGtzLXN1cHBvcnQtYmxhY2tiZXJyeS1icm93c2VyIDw9IDdcblxua3MtZGlzcGxheSggdmFsdWUsIGFyZ3MuLi4gKVxuICAgIGlmIHZhbHVlID09IGZsZXhcbiAgICAgICAgaWYga3MtdmVuZG9ycy1wcmVmaXhlcyBpc250IGZhbHNlIGFuZCAhKCBmbGV4IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzICkgYW5kICEoIGZsZXhib3ggaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKVxuICAgICAgICAgICAgaWYgX2tzLXN1cHBvcnQtb2xkLWZsZXgtaW1wbGVtZW50YXRpb24oKVxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94IGFyZ3NcbiAgICAgICAgICAgIGZvciBwcmVmaXggaW4gY2FuaXVzZS1wcmVmaXhlcyggXCJmbGV4Ym94XCIgKVxuICAgICAgICAgICAgICAgIGlmIHByZWZpeCBpcyBcIndlYmtpdFwiXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleCBhcmdzXG4gICAgICAgICAgICAgICAgaWYgcHJlZml4IGlzIFwibW96XCJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLW1vei1ib3ggYXJnc1xuICAgICAgICAgICAgICAgIGlmIHByZWZpeCBpcyBcIm1zXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3ggYXJnc1xuICAgICAgICBkaXNwbGF5OiBmbGV4IGFyZ3NcbiAgICBlbHNlIGlmIHZhbHVlID09IGlubGluZS1mbGV4XG4gICAgICAgIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCBmYWxzZSBhbmQgISggZmxleCBpbiBrcy1zdXBwb3J0LWlnbm9yZS1mZWF0dXJlcyApIGFuZCAhKCBmbGV4Ym94IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzIClcbiAgICAgICAgICAgIGZvciBwcmVmaXggaW4gY2FuaXVzZS1wcmVmaXhlcyggXCJmbGV4Ym94XCIgKVxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHVucXVvdGUoIFwiLVwiICsgcHJlZml4ICsgXCItaW5saW5lLWZsZXhcIiApIGFyZ3NcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggYXJnc1xuICAgIGVsc2VcbiAgICAgICAgZGlzcGxheTogdmFsdWUgYXJnc1xuXG5kaXNwbGF5ID0ga3MtZGlzcGxheSB1bmxlc3Mga3Mtbm8tY29uZmxpY3RcblxudW5sZXNzIGtzLW5vLWNvbmZsaWN0XG4gICAgZmxleC1ncm93KClcbiAgICAgICAga3MtdmVuZG9yKCBcImZsZXgtZ3Jvd1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiZmxleGJveFwiIClcblxuICAgIGZsZXgtYmFzaXMoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZmxleC1iYXNpc1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiZmxleGJveFwiIClcblxuICAgIGZsZXgtZGlyZWN0aW9uKCB2YWx1ZSwgYXJncy4uLiApXG4gICAgICAgIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCBmYWxzZSBhbmQgISggZmxleCBpbiBrcy1zdXBwb3J0LWlnbm9yZS1mZWF0dXJlcyApIGFuZCAhKCBmbGV4Ym94IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzIClcbiAgICAgICAgICAgIGlmIF9rcy1zdXBwb3J0LW9sZC1mbGV4LWltcGxlbWVudGF0aW9uKClcbiAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyByb3dcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCBhcmdzXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsIGFyZ3NcbiAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyByb3ctcmV2ZXJzZVxuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlIGFyZ3NcbiAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgYXJnc1xuICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIGNvbHVtbi1yZXZlcnNlXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCBhcmdzXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSBhcmdzXG4gICAgICAgICAgICBmb3IgcHJlZml4IGluIGNhbml1c2UtcHJlZml4ZXMoIFwiZmxleGJveFwiIClcbiAgICAgICAgICAgICAgICBpZiBwcmVmaXggaXMgXCJtb3pcIiBhbmQga3Mtc3VwcG9ydC1maXJlZm94IDw9IDIwXG4gICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIHJvd1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtb3JpZW50OiB2ZXJ0aWNhbCBhcmdzXG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1kaXJlY3Rpb246IG5vcm1hbCBhcmdzXG4gICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIHJvdy1yZXZlcnNlXG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1vcmllbnQ6IHZlcnRpY2FsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LWRpcmVjdGlvbjogcmV2ZXJzZSBhcmdzXG4gICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIGNvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtb3JpZW50OiBob3Jpem9udGFsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LWRpcmVjdGlvbjogbm9ybWFsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgY29sdW1uLXJldmVyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LW9yaWVudDogaG9yaXpvbnRhbCBhcmdzXG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1kaXJlY3Rpb246IHJldmVyc2UgYXJnc1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgcm93XG4gICAgICAgICAgICAgICAgICAgICAgICAte3ByZWZpeH0tZmxleC1kaXJlY3Rpb246IHVucXVvdGUoIFwicm93XCIgKSBhcmdzXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgdmFsdWUgaXMgY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAte3ByZWZpeH0tZmxleC1kaXJlY3Rpb246IHVucXVvdGUoIFwiY29sdW1uXCIgKSBhcmdzXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC17cHJlZml4fS1mbGV4LWRpcmVjdGlvbjogdmFsdWUgYXJnc1xuICAgICAgICBpZiB2YWx1ZSBpcyByb3dcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiB1bnF1b3RlKCBcInJvd1wiICkgYXJnc1xuICAgICAgICBlbHNlIGlmIHZhbHVlIGlzIGNvbHVtblxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHVucXVvdGUoIFwiY29sdW1uXCIgKSBhcmdzXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiB2YWx1ZSBhcmdzXG5cbiAgICBmbGV4LWZsb3coIGRpciwgd3JhcC10eXBlLCBhcmdzLi4uIClcbiAgICAgICAgaWYgZGlyIGlzIHJvd1xuICAgICAgICAgICAgZGlyID0gdW5xdW90ZSggXCJyb3dcIiApXG4gICAgICAgIGlmIGRpciBpcyBjb2x1bW5cbiAgICAgICAgICAgIGRpciA9IHVucXVvdGUoIFwiY29sdW1uXCIgKVxuICAgICAgICBpZiBrcy12ZW5kb3JzLXByZWZpeGVzIGlzbnQgZmFsc2UgYW5kICEoIGZsZXggaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKSBhbmQgISggZmxleGJveCBpbiBrcy1zdXBwb3J0LWlnbm9yZS1mZWF0dXJlcyApXG4gICAgICAgICAgICBmb3IgcHJlZml4IGluIGNhbml1c2UtcHJlZml4ZXMoIFwiZmxleGJveFwiIClcbiAgICAgICAgICAgICAgICAte3ByZWZpeH0tZmxleC1mbG93OiBkaXIgd3JhcC10eXBlIGFyZ3NcbiAgICAgICAgZmxleC1mbG93OiBkaXIgd3JhcC10eXBlIGFyZ3NcblxuICAgIGZsZXgtc2hyaW5rKClcbiAgICAgICAga3MtdmVuZG9yKCBcImZsZXgtc2hyaW5rXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgZmxleC13cmFwKClcbiAgICAgICAga3MtdmVuZG9yKCBcImZsZXgtd3JhcFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiZmxleGJveFwiIClcblxuICAgIGZsZXgoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZmxleFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiZmxleGJveFwiIClcblxuICAgIGFsaWduLWNvbnRlbnQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYWxpZ24tY29udGVudFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiZmxleGJveFwiIClcblxuICAgIGFsaWduLWl0ZW1zKCB2YWx1ZSwgYXJncy4uLiApXG4gICAgICAgIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCBmYWxzZSBhbmQgISggZmxleCBpbiBrcy1zdXBwb3J0LWlnbm9yZS1mZWF0dXJlcyApIGFuZCAhKCBmbGV4Ym94IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzIClcbiAgICAgICAgICAgIGlmIF9rcy1zdXBwb3J0LW9sZC1mbGV4LWltcGxlbWVudGF0aW9uKClcbiAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBmbGV4LXN0YXJ0XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydCBhcmdzXG4gICAgICAgICAgICAgICAgZWxzZSBpZiB2YWx1ZSBpcyBmbGV4LWVuZFxuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kIGFyZ3NcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LWFsaWduOiB2YWx1ZSBhcmdzXG4gICAgICAgICAgICBmb3IgcHJlZml4IGluIGNhbml1c2UtcHJlZml4ZXMoIFwiZmxleGJveFwiIClcbiAgICAgICAgICAgICAgICBpZiBwcmVmaXggaXMgXCJtb3pcIiBhbmQga3Mtc3VwcG9ydC1maXJlZm94IDw9IDIwXG4gICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIGZsZXgtc3RhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LWFsaWduOiBzdGFydCBhcmdzXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgdmFsdWUgaXMgZmxleC1lbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LWFsaWduOiBlbmQgYXJnc1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1hbGlnbjogdmFsdWUgYXJnc1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgLXtwcmVmaXh9LWFsaWduLWl0ZW1zOiB2YWx1ZSBhcmdzXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogdmFsdWUgYXJnc1xuXG4gICAgYWxpZ24tc2VsZigpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbGlnbi1zZWxmXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuIiwiYmFzZS1mb250LXNpemUgPz0gMTZweFxucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMgPz0gZmFsc2VcblxucnVwdHVyZSA9IHtcbiAgcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXM6IHJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzXG4gIG1vYmlsZS1jdXRvZmY6IDQwMHB4XG4gIGRlc2t0b3AtY3V0b2ZmOiAxMDUwcHhcbiAgaGQtY3V0b2ZmOiAxODAwcHhcbiAgZW5hYmxlLWVtLWJyZWFrcG9pbnRzOiBmYWxzZVxuICBiYXNlLWZvbnQtc2l6ZTogYmFzZS1mb250LXNpemVcbiAgYW50aS1vdmVybGFwOiBmYWxzZVxuICBkZW5zaXR5LXF1ZXJpZXM6ICdkcHB4JyAnd2Via2l0JyAnbW96JyAnZHBpJ1xuICByZXRpbmEtZGVuc2l0eTogMS41XG4gIHVzZS1kZXZpY2Utd2lkdGg6IGZhbHNlXG59XG5ydXB0dXJlLnNjYWxlID0gMCAocnVwdHVyZS5tb2JpbGUtY3V0b2ZmKSA2MDBweCA4MDBweCAocnVwdHVyZS5kZXNrdG9wLWN1dG9mZikgKHJ1cHR1cmUuaGQtY3V0b2ZmKVxucnVwdHVyZS5zY2FsZS1uYW1lcyA9ICd4cycgJ3MnICdtJyAnbCcgJ3hsJyAnaGQnXG5cbi1pcy1zdHJpbmcodmFsKVxuICBpZiB0eXBlb2YodmFsKSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgdmFsIGlzIGEgJ3N0cmluZycgb3IgdmFsIGlzIGEgJ2lkZW50J1xuICAgICAgdHJ1ZVxuICAgIGVsc2VcbiAgICAgIGZhbHNlXG4gIGVsc2VcbiAgICBmYWxzZVxuXG4tZ2V0LXNjYWxlLW51bWJlcihzY2FsZS1uYW1lKVxuICBmb3IgbGlzdC1pdGVtLCBpIGluIHJ1cHR1cmUuc2NhbGUtbmFtZXNcbiAgICBpZiBsaXN0LWl0ZW0gaXMgc2NhbGUtbmFtZVxuICAgICAgcmV0dXJuIGkgKyAxXG4gIHJldHVybiBmYWxzZVxuXG4tY29udmVydC10byh0by11bml0LCB2YWx1ZSwgY29udGV4dCA9IHJ1cHR1cmUuYmFzZS1mb250LXNpemUpXG4gIGZyb20tdW5pdCA9IHVuaXQodmFsdWUpXG4gIHJldHVybiB2YWx1ZSBpZiB0by11bml0IGlzIGZyb20tdW5pdFxuICBpZiB0by11bml0IGluICgnZW0nICdyZW0nKVxuICAgIHJldHVybiB2YWx1ZSBpZiBmcm9tLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlIC8gY29udGV4dCksIHRvLXVuaXQpXG4gIGlmIHRvLXVuaXQgaXMgJ3B4J1xuICAgIHJldHVybiB1bml0KCh2YWx1ZSAqIGNvbnRleHQpLCAncHgnKVxuXG4tb24tc2NhbGUobilcbiAgcmV0dXJuIHVuaXQobikgaXMgJydcblxuLWxhcmdlci10aGFuLXNjYWxlKG4pXG4gIHJldHVybiAobiA+IChsZW5ndGgocnVwdHVyZS5zY2FsZSkgLSAxKSkgYW5kIC1vbi1zY2FsZShuKVxuXG4taXMtemVybyhuKVxuICByZXR1cm4gbiBpcyAwXG5cbi1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgc2hpZnQtdW5pdCA9IHVuaXQobilcbiAgYW50aS1vdmVybGFwID0gMHB4IHVubGVzcyBhbnRpLW92ZXJsYXBcbiAgYW50aS1vdmVybGFwID0gMXB4IGlmIGFudGktb3ZlcmxhcCBpcyB0cnVlXG4gIGlmIGxlbmd0aChhbnRpLW92ZXJsYXApIGlzIDFcbiAgICByZXR1cm4gLWNvbnZlcnQtdG8oc2hpZnQtdW5pdCwgYW50aS1vdmVybGFwKVxuICBmb3IgdmFsIGluIGFudGktb3ZlcmxhcFxuICAgIHJldHVybiB2YWwgaWYgdW5pdCh2YWwpIGlzIHNoaWZ0LXVuaXRcblxuLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgbiwgc2lkZSA9ICdtaW4nKVxuICAtc2hpZnQgPSAtb3ZlcmxhcC1zaGlmdChhbnRpLW92ZXJsYXAsIG4pXG4gIGlmIChzaWRlIGlzICdtaW4nIGFuZCAtc2hpZnQgPiAwKSBvciAoc2lkZSBpcyAnbWF4JyBhbmQgLXNoaWZ0IDwgMClcbiAgICBuID0gbiArIC1zaGlmdFxuICByZXR1cm4gblxuXG4taXMtcG9zaXRpdmUobilcbiAgcmV0dXJuIG4gPj0gMFxuXG4tZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gIGlmIHR5cGVvZihkZW5zaXR5KSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgbm90IC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSAnJXMnICUgZGVuc2l0eVxuICBkZW5zaXR5ID0gcnVwdHVyZS5yZXRpbmEtZGVuc2l0eSBpZiBkZW5zaXR5IGlzICdyZXRpbmEnXG4gIHF1ZXJpZXMgPSAoKVxuICBmb3IgcXVlcnkgaW4gcnVwdHVyZS5kZW5zaXR5LXF1ZXJpZXNcbiAgICBpZiBxdWVyeSBpcyAnd2Via2l0J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdtb3onXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ28nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMvMSknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ3JhdGlvJ1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnZHBpJ1xuICAgICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgICBkZW5zaXR5PWNvbnZlcnQoZGVuc2l0eSlcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tcmVzb2x1dGlvbjogJXNkcGkpJyAlIChyb3VuZChkZW5zaXR5ICogOTYsIDEpKSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcHB4J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwcHgpJyAlIChkZW5zaXR5KSlcbiAgcmV0dXJuIHF1ZXJpZXNcblxuY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBjbGFzcylcbiAgL3snJyArIGNsYXNzICsgJyAnICsgc2VsZWN0ZWR9XG4gICAge2Jsb2NrfVxuXG4vLyArYmV0d2VlbihtaW4sIG1heClcbi8vIHVzYWdlIChzY2FsZSBjYW4gYmUgbWl4ZWQgd2l0aCBjdXN0b20gdmFsdWVzKTpcbi8vICAgLSArYmV0d2VlbigxLCAzKSBzY2FsZTpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDAsIDMpIDAgd2lkdGg6c2NhbGVcbi8vICAgLSArYmV0d2VlbigyMDBweCwgNTAwcHgpIGN1c3RvbTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigwLCAzMDBweCkgMCB3aWR0aDpjdXN0b21cbi8vICAgLSArYmV0d2VlbigxLCAzMDBweCkgc2NhbGU6Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMjAwcHgsIDQpIGN1c3RvbTpzY2FsZVxuXG5iZXR3ZWVuKG1pbiwgbWF4LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcblxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gIGlmIC1pcy1zdHJpbmcobWluKVxuICAgIG1pbiA9IC1nZXQtc2NhbGUtbnVtYmVyKG1pbilcbiAgaWYgLWlzLXN0cmluZyhtYXgpXG4gICAgbWF4ID0gLWdldC1zY2FsZS1udW1iZXIobWF4KVxuXG4gIC1taW4gPSBydXB0dXJlLnNjYWxlW21pbiAtIDFdIHVubGVzcyAtaXMtemVybyhtaW4pIG9yIChub3QgLW9uLXNjYWxlKG1pbikpXG4gIC1tYXggPSBydXB0dXJlLnNjYWxlW21heF0gdW5sZXNzIG5vdCAtb24tc2NhbGUobWF4KVxuICAtbWluID89IG1pblxuICAtbWF4ID89IG1heFxuXG4gIGlmIChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIG5vdCAoZGVuc2l0eSBvciAtbWF4IG9yIG9yaWVudGF0aW9uKVxuICAgICAge2Jsb2NrfVxuICBlbHNlXG4gICAgY29uZGl0aW9uID0gJ29ubHkgc2NyZWVuJ1xuICAgIHVzZS1kZXZpY2Utd2lkdGggPSB1c2UtZGV2aWNlLXdpZHRoID8gJ2RldmljZS0nIDogJydcbiAgICB1bmxlc3MgLW1pbiBpcyAwXG4gICAgICAtbWluID0gLWNvbnZlcnQtdG8oJ2VtJywgLW1pbikgaWYgcnVwdHVyZS5lbmFibGUtZW0tYnJlYWtwb2ludHNcbiAgICAgIC1taW4gPSAtYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCAtbWluLCBzaWRlOiAnbWluJylcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChtaW4tJyArIHVzZS1kZXZpY2Utd2lkdGggKyAnd2lkdGg6ICVzKScgJSAoLW1pbilcbiAgICB1bmxlc3MgLWxhcmdlci10aGFuLXNjYWxlKG1heClcbiAgICAgIC1tYXggPSAtY29udmVydC10bygnZW0nLCAtbWF4KSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1heCA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1tYXgsIHNpZGU6ICdtYXgnKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1heC0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWF4KVxuICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAob3JpZW50YXRpb246ICVzKScgJSAob3JpZW50YXRpb24pXG4gICAgaWYgZGVuc2l0eVxuICAgICAgY29uZGl0aW9ucyA9ICgpXG4gICAgICBmb3IgcXVlcnkgaW4gLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICAgICAgICBwdXNoKGNvbmRpdGlvbnMsIGNvbmRpdGlvbiArICcgYW5kICVzJyAlIChxdWVyeSkpXG4gICAgICBjb25kaXRpb24gPSBqb2luKCcsICcsIGNvbmRpdGlvbnMpXG4gICAgQG1lZGlhIGNvbmRpdGlvblxuICAgICAge2Jsb2NrfVxuICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAge2Jsb2NrfVxuXG5hdChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZnJvbS13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgbGVuZ3RoKHJ1cHR1cmUuc2NhbGUpLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmFib3ZlID0gZnJvbS13aWR0aFxuXG50by13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbigxLCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5iZWxvdyA9IHRvLXdpZHRoXG5cbm1vYmlsZShhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZWxvdyhydXB0dXJlLm1vYmlsZS1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxudGFibGV0KGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4ocnVwdHVyZS5tb2JpbGUtY3V0b2ZmLCBydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlc2t0b3AoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYWJvdmUocnVwdHVyZS5kZXNrdG9wLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5oZChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmhkLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5kZW5zaXR5KGRlbnNpdHksIG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGNvbmRpdGlvbnMgPSAoKVxuICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4gYW5kICVzJyAlIChxdWVyeSlcbiAgICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uKVxuICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG5cbnBpeGVsLXJhdGlvID0gZGVuc2l0eVxuXG5yZXRpbmEob3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gICtkZW5zaXR5KCdyZXRpbmEnLCBvcmllbnRhdGlvbiwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5sYW5kc2NhcGUoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogbGFuZHNjYXBlLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuICAgIGVsc2VcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cblxucG9ydHJhaXQoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogcG9ydHJhaXQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVxuICAgICAgICB7YmxvY2t9XG4gICAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAgICB7YmxvY2t9XG4iLCJrcy1wb3NpdGlvbiggcG9zLCB2YWx1ZXMgKVxuICAgIGlmIGxhc3QoIHZhbHVlcyApID09IFwiIWltcG9ydGFudFwiXG4gICAgICAgIF92b2lkID0gcG9wKCB2YWx1ZXMgKVxuICAgICAgICBpbXBvcnRhbnQgPSBcIiFpbXBvcnRhbnRcIlxuICAgIGVsc2VcbiAgICAgICAgaW1wb3J0YW50ID0gXCJcIlxuICAgIGlmIHBvcyA9PSBzdGlja3lcbiAgICAgICAgaWYgISggXCJjc3Mtc3RpY2t5XCIgaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKVxuICAgICAgICAgICAgZm9yIHByZWZpeCBpbiBjYW5pdXNlLXByZWZpeGVzKCBcImNzcy1zdGlja3lcIiApXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHVucXVvdGUoIFwiLVwiICsgcHJlZml4ICsgXCItc3RpY2t5IFwiICsgaW1wb3J0YW50IClcbiAgICAgICAgZWxzZSBpZiBrcy12ZW5kb3JzLXByZWZpeGVzIGlzbnQgZmFsc2VcbiAgICAgICAgICAgICAgICBpZiBrcy12ZW5kb3JzLXByZWZpeGVzIGlzbnQgcmVjb21tZW5kZWRcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4ZXMgPSBrcy12ZW5kb3JzLXByZWZpeGVzXG4gICAgICAgICAgICAgICAgaWYgcHJlZml4ZXNcbiAgICAgICAgICAgICAgICAgICAgZm9yIHByZWZpeCBpbiBwcmVmaXhlc1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHVucXVvdGUoIFwiLVwiICsgcHJlZml4ICsgXCItc3RpY2t5IFwiICsgaW1wb3J0YW50IClcbiAgICAgICAgcG9zaXRpb246IHVucXVvdGUoIFwic3RpY2t5IFwiICsgaW1wb3J0YW50IClcbiAgICBlbHNlXG4gICAgICAgIHBvc2l0aW9uOiBwb3MgdW5xdW90ZSggaW1wb3J0YW50IClcbiAgICBpZiBsZW5ndGgoIHZhbHVlcyApID09IDEgJiYgdmFsdWVzWyAwIF0gIT0gZmFsc2VcbiAgICAgICAgdG9wOiB2YWx1ZXNbIDAgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKVxuICAgICAgICByaWdodDogdmFsdWVzWyAwIF0gdW5xdW90ZSggaW1wb3J0YW50IClcbiAgICAgICAgYm90dG9tOiB2YWx1ZXNbIDAgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKVxuICAgICAgICBsZWZ0OiB2YWx1ZXNbIDAgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKVxuICAgIGlmIGxlbmd0aCggdmFsdWVzICkgPT0gMlxuICAgICAgICB0b3A6IHZhbHVlc1sgMCBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMCBdICE9IGZhbHNlXG4gICAgICAgIHJpZ2h0OiB2YWx1ZXNbIDEgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDEgXSAhPSBmYWxzZVxuICAgICAgICBib3R0b206IHZhbHVlc1sgMCBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMCBdICE9IGZhbHNlXG4gICAgICAgIGxlZnQ6IHZhbHVlc1sgMSBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMSBdICE9IGZhbHNlXG4gICAgaWYgbGVuZ3RoKCB2YWx1ZXMgKSA9PSAzXG4gICAgICAgIHRvcDogdmFsdWVzWyAwIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAwIF0gIT0gZmFsc2VcbiAgICAgICAgcmlnaHQ6IHZhbHVlc1sgMSBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMSBdICE9IGZhbHNlXG4gICAgICAgIGJvdHRvbTogdmFsdWVzWyAyIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAyIF0gIT0gZmFsc2VcbiAgICAgICAgbGVmdDogdmFsdWVzWyAxIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAxIF0gIT0gZmFsc2VcbiAgICBpZiBsZW5ndGgoIHZhbHVlcyApID09IDRcbiAgICAgICAgdG9wOiB2YWx1ZXNbIDAgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDAgXSAhPSBmYWxzZVxuICAgICAgICByaWdodDogdmFsdWVzWyAxIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAxIF0gIT0gZmFsc2VcbiAgICAgICAgYm90dG9tOiB2YWx1ZXNbIDIgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDIgXSAhPSBmYWxzZVxuICAgICAgICBsZWZ0OiB2YWx1ZXNbIDMgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDMgXSAhPSBmYWxzZVxuXG5rcy1zdGF0aWMoIHZhbHVlcy4uLiApXG4gICAga3MtcG9zaXRpb24oIHN0YXRpYywgdmFsdWVzIClcblxua3MtcmVsYXRpdmUoIHZhbHVlcy4uLiApXG4gICAga3MtcG9zaXRpb24oIHJlbGF0aXZlLCB2YWx1ZXMgKVxuXG5rcy1hYnNvbHV0ZSggdmFsdWVzLi4uIClcbiAgICBrcy1wb3NpdGlvbiggYWJzb2x1dGUsIHZhbHVlcyApXG5cbmtzLWZpeGVkKCB2YWx1ZXMuLi4gKVxuICAgIGtzLXBvc2l0aW9uKCBmaXhlZCwgdmFsdWVzIClcblxua3Mtc3RpY2t5KCB2YWx1ZXMuLi4gKVxuICAgIGtzLXBvc2l0aW9uKCBzdGlja3ksIHZhbHVlcyApXG5cbnVubGVzcyBrcy1uby1jb25mbGljdFxuICAgIHN0YXRpYyggdmFsdWVzLi4uIClcbiAgICAgICAga3MtcG9zaXRpb24oIHN0YXRpYywgdmFsdWVzIClcblxuICAgIHJlbGF0aXZlKCB2YWx1ZXMuLi4gKVxuICAgICAgICBrcy1wb3NpdGlvbiggcmVsYXRpdmUsIHZhbHVlcyApXG5cbiAgICBhYnNvbHV0ZSggdmFsdWVzLi4uIClcbiAgICAgICAga3MtcG9zaXRpb24oIGFic29sdXRlLCB2YWx1ZXMgKVxuXG4gICAgZml4ZWQoIHZhbHVlcy4uLiApXG4gICAgICAgIGtzLXBvc2l0aW9uKCBmaXhlZCwgdmFsdWVzIClcblxuICAgIHN0aWNreSggdmFsdWVzLi4uIClcbiAgICAgICAga3MtcG9zaXRpb24oIHN0aWNreSwgdmFsdWVzIClcblxuICAgIHBvc2l0aW9uKCB2YWx1ZSwgdmFsdWVzLi4uIClcbiAgICAgICAga3MtcG9zaXRpb24oIHZhbHVlLCB2YWx1ZXMgKVxuIiwia3MtdmVuZG9ycy1wcmVmaXhlcyA9IHJlY29tbWVuZGVkXG5cbmtzLXZlbmRvciggcHJvcGVydHksIHZhbHVlLCBmZWF0dXJlID0gbnVsbCwgcHJlZml4ZXMgPSBudWxsLCBvZmZpY2lhbCA9IHRydWUgKVxuICAgIHVubGVzcyBcInZlbmRvclwiIGluIGNhbGxlZC1mcm9tXG4gICAgICAgIGlmIGZlYXR1cmUgaXNudCBudWxsIGFuZCAhKCBmZWF0dXJlIGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzIClcbiAgICAgICAgICAgIGZvciBwcmVmaXggaW4gY2FuaXVzZS1wcmVmaXhlcyggZmVhdHVyZSApXG4gICAgICAgICAgICAgICAgcHJlZml4ZWRwcm9wZXJ0eSA9IFwiLVwiICsgcHJlZml4ICsgXCItXCIgKyBwcm9wZXJ0eVxuICAgICAgICAgICAgICAgIHtwcmVmaXhlZHByb3BlcnR5fTogdmFsdWVcbiAgICAgICAgZWxzZSBpZiBrcy12ZW5kb3JzLXByZWZpeGVzIGlzbnQgZmFsc2VcbiAgICAgICAgICAgICAgICBpZiBrcy12ZW5kb3JzLXByZWZpeGVzIGlzbnQgcmVjb21tZW5kZWRcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4ZXMgPSBrcy12ZW5kb3JzLXByZWZpeGVzXG4gICAgICAgICAgICAgICAgaWYgcHJlZml4ZXNcbiAgICAgICAgICAgICAgICAgICAgZm9yIHByZWZpeCBpbiBwcmVmaXhlc1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ZWRwcm9wZXJ0eSA9IFwiLVwiICsgcHJlZml4ICsgXCItXCIgKyBwcm9wZXJ0eVxuICAgICAgICAgICAgICAgICAgICAgICAge3ByZWZpeGVkcHJvcGVydHl9OiB2YWx1ZVxuICAgIGlmIG9mZmljaWFsXG4gICAgICAgIHtwcm9wZXJ0eX06IHZhbHVlXG5cbnZlbmRvciA9IGtzLXZlbmRvciB1bmxlc3Mga3Mtbm8tY29uZmxpY3RcblxudW5sZXNzIGtzLW5vLWNvbmZsaWN0XG4gICAgYW5pbWF0aW9uKClcbiAgICAgICAga3MtdmVuZG9yKCBcImFuaW1hdGlvblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWFuaW1hdGlvblwiIClcbiAgICBhbmltYXRpb24tZGVsYXkoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uLWRlbGF5XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtYW5pbWF0aW9uXCIgKVxuICAgIGFuaW1hdGlvbi1kaXJlY3Rpb24oKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uLWRpcmVjdGlvblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWFuaW1hdGlvblwiIClcbiAgICBhbmltYXRpb24tZHVyYXRpb24oKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtYW5pbWF0aW9uXCIgKVxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGUoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uLWZpbGwtbW9kZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWFuaW1hdGlvblwiIClcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KClcbiAgICAgICAga3MtdmVuZG9yKCBcImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnRcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1hbmltYXRpb25cIiApXG4gICAgYW5pbWF0aW9uLW5hbWUoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uLW5hbWVcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1hbmltYXRpb25cIiApXG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGUoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uLXBsYXktc3RhdGVcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1hbmltYXRpb25cIiApXG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtYW5pbWF0aW9uXCIgKVxuXG4gICAgYXBwZWFyYW5jZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJhcHBlYXJhbmNlXCIsIGFyZ3VtZW50cywgcHJlZml4ZXM6IHdlYmtpdCBtb3ogKVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJiYWNrZmFjZS12aXNpYmlsaXR5XCIsIGFyZ3VtZW50cywgcHJlZml4ZXM6IHdlYmtpdCBtcyApXG5cbiAgICBiYWNrZ3JvdW5kLWNsaXAoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYmFja2dyb3VuZC1jbGlwXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJiYWNrZ3JvdW5kLWltZy1vcHRzXCIgKVxuICAgIGJhY2tncm91bmQtb3JpZ2luKClcbiAgICAgICAga3MtdmVuZG9yKCBcImJhY2tncm91bmQtb3JpZ2luXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJiYWNrZ3JvdW5kLWltZy1vcHRzXCIgKVxuICAgIGJhY2tncm91bmQtc2l6ZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJiYWNrZ3JvdW5kLXNpemVcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImJhY2tncm91bmQtaW1nLW9wdHNcIiApXG5cbiAgICBib3JkZXItaW1hZ2Utc291cmNlKClcbiAgICAgICAga3MtdmVuZG9yKCBcImJvcmRlci1pbWFnZS1zb3VyY2VcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImJvcmRlci1pbWFnZVwiIClcbiAgICBib3JkZXItaW1hZ2Utc2xpY2UoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYm9yZGVyLWltYWdlLXNsaWNlXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJib3JkZXItaW1hZ2VcIiApXG4gICAgYm9yZGVyLWltYWdlLXdpZHRoKClcbiAgICAgICAga3MtdmVuZG9yKCBcImJvcmRlci1pbWFnZS13aWR0aFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiYm9yZGVyLWltYWdlXCIgKVxuICAgIGJvcmRlci1pbWFnZS1vdXRzZXQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYm9yZGVyLWltYWdlLW91dHNldFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiYm9yZGVyLWltYWdlXCIgKVxuICAgIGJvcmRlci1pbWFnZS1yZXBlYXQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYm9yZGVyLWltYWdlLXJlcGVhdFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiYm9yZGVyLWltYWdlXCIgKVxuICAgIGJvcmRlci1pbWFnZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJib3JkZXItaW1hZ2VcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImJvcmRlci1pbWFnZVwiIClcblxuICAgIGJveC1zaGFkb3coKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYm94LXNoYWRvd1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWJveHNoYWRvd1wiIClcblxuICAgIGJveC1zaXppbmcoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYm94LXNpemluZ1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzMy1ib3hzaXppbmdcIiApXG5cbiAgICBjbGlwLXBhdGgoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY2xpcC1wYXRoXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtY2xpcC1wYXRoXCIgKVxuXG4gICAgY29sdW1uLWNvdW50KClcbiAgICAgICAga3MtdmVuZG9yKCBcImNvbHVtbi1jb3VudFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG4gICAgY29sdW1uLWZpbGwoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uLWZpbGxcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcIm11bHRpY29sdW1uXCIgKVxuICAgIGNvbHVtbi1nYXAoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uLWdhcFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG4gICAgY29sdW1uLXJ1bGUoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uLXJ1bGVcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcIm11bHRpY29sdW1uXCIgKVxuICAgIGNvbHVtbi1ydWxlLWNvbG9yKClcbiAgICAgICAga3MtdmVuZG9yKCBcImNvbHVtbi1ydWxlLWNvbG9yXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJtdWx0aWNvbHVtblwiIClcbiAgICBjb2x1bW4tcnVsZS1zdHlsZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJjb2x1bW4tcnVsZS1zdHlsZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG4gICAgY29sdW1uLXJ1bGUtd2lkdGgoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uLXJ1bGUtd2lkdGhcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcIm11bHRpY29sdW1uXCIgKVxuICAgIGNvbHVtbi1zcGFuKClcbiAgICAgICAga3MtdmVuZG9yKCBcImNvbHVtbi1zcGFuXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJtdWx0aWNvbHVtblwiKVxuICAgIGNvbHVtbi13aWR0aCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJjb2x1bW4td2lkdGhcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcIm11bHRpY29sdW1uXCIgKVxuICAgIGNvbHVtbnMoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uc1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG5cbiAgICBncmlkKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWRcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtYXJlYSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLWFyZWFcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtYXV0by1jb2x1bW5zKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtYXV0by1jb2x1bW5zXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLWF1dG8tZmxvdygpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLWF1dG8tZmxvd1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1hdXRvLXBvc2l0aW9uKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtYXV0by1wb3NpdGlvblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1hdXRvLXJvd3MoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC1hdXRvLXJvd3NcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtY29sdW1uKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtY29sdW1uXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLWNvbHVtbi1lbmQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC1jb2x1bW4tZW5kXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLWNvbHVtbi1zdGFydCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLWNvbHVtbi1zdGFydFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1yb3coKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC1yb3dcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtcm93LWVuZCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLXJvdy1lbmRcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtcm93LXN0YXJ0KClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtcm93LXN0YXJ0XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLXRlbXBsYXRlKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtdGVtcGxhdGVcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXMoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC10ZW1wbGF0ZS1hcmVhc1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtdGVtcGxhdGUtY29sdW1uc1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtdGVtcGxhdGUtcm93c1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG5cbiAgICBoeXBoZW5zKClcbiAgICAgICAga3MtdmVuZG9yKCBcImh5cGhlbnNcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1oeXBoZW5zXCIgKVxuXG4gICAganVzdGlmeS1jb250ZW50KClcbiAgICAgICAga3MtdmVuZG9yKCBcImp1c3RpZnktY29udGVudFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiZmxleGJveFwiIClcblxuICAgIG1hc2soKVxuICAgICAgICBrcy12ZW5kb3IoIFwibWFza1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLW1hc2tzXCIgKVxuXG4gICAgb3BhY2l0eSggdmFsdWUgKVxuICAgICAgICBpZiB2YWx1ZSA9PSBpbmhlcml0IG9yIHZhbHVlID09IGluaXRpYWxcbiAgICAgICAgICAgIC1tcy1maWx0ZXIgdmFsdWVcbiAgICAgICAgICAgIGZpbHRlciB2YWx1ZVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB2YWwgPSByb3VuZCggdmFsdWUgKiAxMDAgKVxuICAgICAgICAgICAgaWYgdmFsID09IDEwMFxuICAgICAgICAgICAgICAgIC1tcy1maWx0ZXI6IG5vbmVcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IG5vbmVcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAtbXMtZmlsdGVyOiAnXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0lcylcIicgJSB2YWxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICdhbHBoYShvcGFjaXR5PSVzKScgJSB2YWxcbiAgICAgICAgb3BhY2l0eTogdmFsdWVcblxuICAgIG9yZGVyKClcbiAgICAgICAga3MtdmVuZG9yKCBcIm9yZGVyXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgcGVyc3BlY3RpdmUoKVxuICAgICAgICBpZiBjdXJyZW50LXByb3BlcnR5WyAwIF0gaXMgXCJwZXJzcGVjdGl2ZVwiXG4gICAgICAgICAgICBrcy12ZW5kb3IoIFwicGVyc3BlY3RpdmVcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcInRyYW5zZm9ybXMzZFwiIClcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdW5xdW90ZSggXCJwZXJzcGVjdGl2ZShcIiArIGFyZ3VtZW50cyArIFwiKVwiIClcblxuICAgIHBlcnNwZWN0aXZlLW9yaWdpbigpXG4gICAgICAgIGtzLXZlbmRvciggXCJwZXJzcGVjdGl2ZS1vcmlnaW5cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcInRyYW5zZm9ybXMzZFwiIClcblxuICAgIHRyYW5zZm9ybSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJ0cmFuc2Zvcm1cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcInRyYW5zZm9ybXMyZFwiIClcbiAgICB0cmFuc2Zvcm0tb3JpZ2luKClcbiAgICAgICAga3MtdmVuZG9yKCBcInRyYW5zZm9ybS1vcmlnaW5cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcInRyYW5zZm9ybXMyZFwiIClcbiAgICB0cmFuc2Zvcm0tc3R5bGUoKVxuICAgICAgICBrcy12ZW5kb3IoIFwidHJhbnNmb3JtLXN0eWxlXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJ0cmFuc2Zvcm1zM2RcIiApXG5cbiAgICB0cmFuc2l0aW9uKClcbiAgICAgICAga3MtdmVuZG9yKCBcInRyYW5zaXRpb25cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy10cmFuc2l0aW9uc1wiIClcbiAgICB0cmFuc2l0aW9uLWRlbGF5KClcbiAgICAgICAga3MtdmVuZG9yKCBcInRyYW5zaXRpb24tZGVsYXlcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy10cmFuc2l0aW9uc1wiIClcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uKClcbiAgICAgICAga3MtdmVuZG9yKCBcInRyYW5zaXRpb24tZHVyYXRpb25cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy10cmFuc2l0aW9uc1wiIClcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5KClcbiAgICAgICAga3MtdmVuZG9yKCBcInRyYW5zaXRpb24tcHJvcGVydHlcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy10cmFuc2l0aW9uc1wiIClcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigpXG4gICAgICAgIGtzLXZlbmRvciggXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLXRyYW5zaXRpb25zXCIgKVxuXG4gICAgdXNlci1zZWxlY3QoIHZhbHVlIClcbiAgICAgICAga3MtdmVuZG9yKCBcInVzZXItc2VsZWN0XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJ1c2VyLXNlbGVjdC1ub25lXCIgKVxuIiwiLypcbj09IG1hbGlodSBqcXVlcnkgY3VzdG9tIHNjcm9sbGJhciBwbHVnaW4gPT1cblBsdWdpbiBVUkk6IGh0dHA6Ly9tYW5vcy5tYWxpaHUuZ3IvanF1ZXJ5LWN1c3RvbS1jb250ZW50LXNjcm9sbGVyXG4qL1xuXG5cblxuLypcbkNPTlRFTlRTOlxuXHQxLiBCQVNJQyBTVFlMRSAtIFBsdWdpbidzIGJhc2ljL2Vzc2VudGlhbCBDU1MgcHJvcGVydGllcyAobm9ybWFsbHksIHNob3VsZCBub3QgYmUgZWRpdGVkKS5cblx0Mi4gVkVSVElDQUwgU0NST0xMQkFSIC0gUG9zaXRpb25pbmcgYW5kIGRpbWVuc2lvbnMgb2YgdmVydGljYWwgc2Nyb2xsYmFyLlxuXHQzLiBIT1JJWk9OVEFMIFNDUk9MTEJBUiAtIFBvc2l0aW9uaW5nIGFuZCBkaW1lbnNpb25zIG9mIGhvcml6b250YWwgc2Nyb2xsYmFyLlxuXHQ0LiBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTCBTQ1JPTExCQVJTIC0gUG9zaXRpb25pbmcgYW5kIGRpbWVuc2lvbnMgb2YgMi1heGlzIHNjcm9sbGJhcnMuXG5cdDUuIFRSQU5TSVRJT05TIC0gQ1NTMyB0cmFuc2l0aW9ucyBmb3IgaG92ZXIgZXZlbnRzLCBhdXRvLWV4cGFuZGVkIGFuZCBhdXRvLWhpZGRlbiBzY3JvbGxiYXJzLlxuXHQ2LiBTQ1JPTExCQVIgQ09MT1JTLCBPUEFDSVRZIEFORCBCQUNLR1JPVU5EU1xuXHRcdDYuMSBUSEVNRVMgLSBTY3JvbGxiYXIgY29sb3JzLCBvcGFjaXR5LCBkaW1lbnNpb25zLCBiYWNrZ3JvdW5kcyBldGMuIHZpYSByZWFkeS10by11c2UgdGhlbWVzLlxuKi9cblxuXG5cbi8qXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbjEuIEJBU0lDIFNUWUxFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cblx0Lm1DdXN0b21TY3JvbGxiYXJ7IC1tcy10b3VjaC1hY3Rpb246IG5vbmU7IHRvdWNoLWFjdGlvbjogbm9uZTsgLyogTVNQb2ludGVyIGV2ZW50cyAtIGRpcmVjdCBhbGwgcG9pbnRlciBldmVudHMgdG8ganMgKi8gfVxuXHQubUN1c3RvbVNjcm9sbGJhci5tQ1Nfbm9fc2Nyb2xsYmFyeyAtbXMtdG91Y2gtYWN0aW9uOiBhdXRvOyB0b3VjaC1hY3Rpb246IGF1dG87IH1cblxuXHQubUN1c3RvbVNjcm9sbEJveHsgLyogY29udGFpbnMgcGx1Z2luJ3MgbWFya3VwICovXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGRpcmVjdGlvbjogbHRyO1xuXHR9XG5cblx0Lm1DU0JfY29udGFpbmVyeyAvKiBjb250YWlucyB0aGUgb3JpZ2luYWwgY29udGVudCAqL1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG5cblxuXG4vKlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4yLiBWRVJUSUNBTCBTQ1JPTExCQVJcbnktYXhpc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG5cdC5tQ1NCX2luc2lkZSA+IC5tQ1NCX2NvbnRhaW5lcnsgbWFyZ2luLXJpZ2h0OiAzMHB4OyB9XG5cblx0Lm1DU0JfY29udGFpbmVyLm1DU19ub19zY3JvbGxiYXJfeS5tQ1NfeV9oaWRkZW57IG1hcmdpbi1yaWdodDogMDsgfSAvKiBub24tdmlzaWJsZSBzY3JvbGxiYXIgKi9cblxuXHQubUNTLWRpci1ydGwgPiAubUNTQl9pbnNpZGUgPiAubUNTQl9jb250YWluZXJ7IC8qIFJUTCBkaXJlY3Rpb24vbGVmdC1zaWRlIHNjcm9sbGJhciAqL1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0fVxuXG5cdC5tQ1MtZGlyLXJ0bCA+IC5tQ1NCX2luc2lkZSA+IC5tQ1NCX2NvbnRhaW5lci5tQ1Nfbm9fc2Nyb2xsYmFyX3kubUNTX3lfaGlkZGVueyBtYXJnaW4tbGVmdDogMDsgfSAvKiBSVEwgZGlyZWN0aW9uL2xlZnQtc2lkZSBzY3JvbGxiYXIgKi9cblxuXHQubUNTQl9zY3JvbGxUb29sc3sgLyogY29udGFpbnMgc2Nyb2xsYmFyIG1hcmt1cCAoZHJhZ2dhYmxlIGVsZW1lbnQsIGRyYWdnZXIgcmFpbCwgYnV0dG9ucyBldGMuKSAqL1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTZweDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0bGVmdDogYXV0bztcblx0XHR0b3A6IDQwcHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiA0MHB4O1xuXHR9XG5cblx0Lm1DU0Jfb3V0c2lkZSArIC5tQ1NCX3Njcm9sbFRvb2xzeyByaWdodDogLTI2cHg7IH0gLyogc2Nyb2xsYmFyIHBvc2l0aW9uOiBvdXRzaWRlICovXG5cblx0Lm1DUy1kaXItcnRsID4gLm1DU0JfaW5zaWRlID4gLm1DU0Jfc2Nyb2xsVG9vbHMsXG5cdC5tQ1MtZGlyLXJ0bCA+IC5tQ1NCX291dHNpZGUgKyAubUNTQl9zY3JvbGxUb29sc3sgLyogUlRMIGRpcmVjdGlvbi9sZWZ0LXNpZGUgc2Nyb2xsYmFyICovXG5cdFx0cmlnaHQ6IGF1dG87XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdC5tQ1MtZGlyLXJ0bCA+IC5tQ1NCX291dHNpZGUgKyAubUNTQl9zY3JvbGxUb29sc3sgbGVmdDogLTI2cHg7IH0gLyogUlRMIGRpcmVjdGlvbi9sZWZ0LXNpZGUgc2Nyb2xsYmFyIChzY3JvbGxiYXIgcG9zaXRpb246IG91dHNpZGUpICovXG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcnsgLyogY29udGFpbnMgdGhlIGRyYWdnYWJsZSBlbGVtZW50IGFuZCBkcmFnZ2VyIHJhaWwgbWFya3VwICovXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRyaWdodDogMDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQubUNTQl9zY3JvbGxUb29scyBhICsgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcnsgbWFyZ2luOiAyMHB4IDA7IH1cblxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHR3aWR0aDogMnB4O1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDE2cHg7IC1tb3otYm9yZGVyLXJhZGl1czogMTZweDsgYm9yZGVyLXJhZGl1czogMTZweDtcblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJ7IC8qIHRoZSBkcmFnZ2FibGUgZWxlbWVudCAqL1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDMwcHg7IC8qIG1pbmltdW0gZHJhZ2dlciBoZWlnaHQgKi9cblx0XHR6LWluZGV4OiAxO1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcnsgLyogdGhlIGRyYWdnZXIgZWxlbWVudCAqL1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR3aWR0aDogNHB4O1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDE2cHg7IC1tb3otYm9yZGVyLXJhZGl1czogMTZweDsgYm9yZGVyLXJhZGl1czogMTZweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyeyB3aWR0aDogMTJweDsgLyogYXV0by1leHBhbmRlZCBzY3JvbGxiYXIgKi8gfVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgKyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7IHdpZHRoOiA4cHg7IC8qIGF1dG8tZXhwYW5kZWQgc2Nyb2xsYmFyICovIH1cblxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcCxcblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0aGVpZ2h0OiAyMHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYm90dG9tOiAwOyB9XG5cblxuXG4vKlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4zLiBIT1JJWk9OVEFMIFNDUk9MTEJBUlxueC1heGlzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cblx0Lm1DU0JfaG9yaXpvbnRhbC5tQ1NCX2luc2lkZSA+IC5tQ1NCX2NvbnRhaW5lcntcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0fVxuXG5cdC5tQ1NCX2hvcml6b250YWwubUNTQl9vdXRzaWRlID4gLm1DU0JfY29udGFpbmVyeyBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cblx0Lm1DU0JfaG9yaXpvbnRhbCA+IC5tQ1NCX2NvbnRhaW5lci5tQ1Nfbm9fc2Nyb2xsYmFyX3gubUNTX3hfaGlkZGVueyBtYXJnaW4tYm90dG9tOiAwOyB9IC8qIG5vbi12aXNpYmxlIHNjcm9sbGJhciAqL1xuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbHtcblx0XHR3aWR0aDogYXV0bztcblx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0dG9wOiBhdXRvO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cblx0Lm1DdXN0b21TY3JvbGxCb3ggKyAubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwsXG5cdC5tQ3VzdG9tU2Nyb2xsQm94ICsgLm1DU0Jfc2Nyb2xsVG9vbHMgKyAubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWx7IGJvdHRvbTogLTI2cHg7IH0gLyogc2Nyb2xsYmFyIHBvc2l0aW9uOiBvdXRzaWRlICovXG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIGEgKyAubUNTQl9kcmFnZ2VyQ29udGFpbmVyeyBtYXJnaW46IDAgMjBweDsgfVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDJweDtcblx0XHRtYXJnaW46IDdweCAwO1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJ7XG5cdFx0d2lkdGg6IDMwcHg7IC8qIG1pbmltdW0gZHJhZ2dlciB3aWR0aCAqL1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiA0cHg7XG5cdFx0bWFyZ2luOiA2cHggYXV0bztcblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGhlaWdodDogMTJweDsgLyogYXV0by1leHBhbmRlZCBzY3JvbGxiYXIgKi9cblx0XHRtYXJnaW46IDJweCBhdXRvO1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkICsgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0aGVpZ2h0OiA4cHg7IC8qIGF1dG8tZXhwYW5kZWQgc2Nyb2xsYmFyICovXG5cdFx0bWFyZ2luOiA0cHggMDtcblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9idXR0b25MZWZ0LFxuXHQubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfYnV0dG9uUmlnaHR7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAyMHB4O1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9idXR0b25MZWZ0eyBsZWZ0OiAwOyB9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2J1dHRvblJpZ2h0eyByaWdodDogMDsgfVxuXG5cblxuLypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuNC4gVkVSVElDQUwgQU5EIEhPUklaT05UQUwgU0NST0xMQkFSU1xueXgtYXhpc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG5cdC5tQ1NCX2NvbnRhaW5lcl93cmFwcGVye1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cdH1cblxuXHQubUNTQl9jb250YWluZXJfd3JhcHBlciA+IC5tQ1NCX2NvbnRhaW5lcntcblx0XHRwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAzMHB4O1xuXHR9XG5cblx0Lm1DU0JfdmVydGljYWxfaG9yaXpvbnRhbCA+IC5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWx7IGJvdHRvbTogMjBweDsgfVxuXG5cdC5tQ1NCX3ZlcnRpY2FsX2hvcml6b250YWwgPiAubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWx7IHJpZ2h0OiAyMHB4OyB9XG5cblx0Lyogbm9uLXZpc2libGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgKi9cblx0Lm1DU0JfY29udGFpbmVyX3dyYXBwZXIubUNTX25vX3Njcm9sbGJhcl94Lm1DU194X2hpZGRlbiArIC5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWx7IGJvdHRvbTogMDsgfVxuXG5cdC8qIG5vbi12aXNpYmxlIHZlcnRpY2FsIHNjcm9sbGJhci9SVEwgZGlyZWN0aW9uL2xlZnQtc2lkZSBzY3JvbGxiYXIgKi9cblx0Lm1DU0JfY29udGFpbmVyX3dyYXBwZXIubUNTX25vX3Njcm9sbGJhcl95Lm1DU195X2hpZGRlbiArIC5tQ1NCX3Njcm9sbFRvb2xzIH4gLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLFxuXHQubUNTLWRpci1ydGwgPiAubUN1c3RvbVNjcm9sbEJveC5tQ1NCX3ZlcnRpY2FsX2hvcml6b250YWwubUNTQl9pbnNpZGUgPiAubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWx7IHJpZ2h0OiAwOyB9XG5cblx0LyogUlRMIGRpcmVjdGlvbi9sZWZ0LXNpZGUgc2Nyb2xsYmFyICovXG5cdC5tQ1MtZGlyLXJ0bCA+IC5tQ3VzdG9tU2Nyb2xsQm94Lm1DU0JfdmVydGljYWxfaG9yaXpvbnRhbC5tQ1NCX2luc2lkZSA+IC5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbHsgbGVmdDogMjBweDsgfVxuXG5cdC8qIG5vbi12aXNpYmxlIHNjcm9sbGJhci9SVEwgZGlyZWN0aW9uL2xlZnQtc2lkZSBzY3JvbGxiYXIgKi9cblx0Lm1DUy1kaXItcnRsID4gLm1DdXN0b21TY3JvbGxCb3gubUNTQl92ZXJ0aWNhbF9ob3Jpem9udGFsLm1DU0JfaW5zaWRlID4gLm1DU0JfY29udGFpbmVyX3dyYXBwZXIubUNTX25vX3Njcm9sbGJhcl95Lm1DU195X2hpZGRlbiArIC5tQ1NCX3Njcm9sbFRvb2xzIH4gLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFseyBsZWZ0OiAwOyB9XG5cblx0Lm1DUy1kaXItcnRsID4gLm1DU0JfaW5zaWRlID4gLm1DU0JfY29udGFpbmVyX3dyYXBwZXJ7IC8qIFJUTCBkaXJlY3Rpb24vbGVmdC1zaWRlIHNjcm9sbGJhciAqL1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRtYXJnaW4tbGVmdDogMzBweDtcblx0fVxuXG5cdC5tQ1NCX2NvbnRhaW5lcl93cmFwcGVyLm1DU19ub19zY3JvbGxiYXJfeS5tQ1NfeV9oaWRkZW4gPiAubUNTQl9jb250YWluZXJ7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC5tQ1NCX2NvbnRhaW5lcl93cmFwcGVyLm1DU19ub19zY3JvbGxiYXJfeC5tQ1NfeF9oaWRkZW4gPiAubUNTQl9jb250YWluZXJ7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHQubUN1c3RvbVNjcm9sbEJveC5tQ1NCX3ZlcnRpY2FsX2hvcml6b250YWwubUNTQl9pbnNpZGUgPiAubUNTQl9jb250YWluZXJfd3JhcHBlci5tQ1Nfbm9fc2Nyb2xsYmFyX3kubUNTX3lfaGlkZGVue1xuXHRcdG1hcmdpbi1yaWdodDogMDsgLyogbm9uLXZpc2libGUgc2Nyb2xsYmFyICovXG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQvKiBub24tdmlzaWJsZSBob3Jpem9udGFsIHNjcm9sbGJhciAqL1xuXHQubUN1c3RvbVNjcm9sbEJveC5tQ1NCX3ZlcnRpY2FsX2hvcml6b250YWwubUNTQl9pbnNpZGUgPiAubUNTQl9jb250YWluZXJfd3JhcHBlci5tQ1Nfbm9fc2Nyb2xsYmFyX3gubUNTX3hfaGlkZGVueyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuXG4vKlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG41LiBUUkFOU0lUSU9OU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzLFxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcCxcblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bixcblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdCxcblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0LW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0LW8tdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dDtcblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyX2JhciwgLyogYXV0by1leHBhbmRlZCBzY3JvbGxiYXIgKi9cblx0Lm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAuMnMgZWFzZS1vdXQgLjJzLCBoZWlnaHQgLjJzIGVhc2Utb3V0IC4ycyxcblx0XHRcdFx0XHRtYXJnaW4tbGVmdCAuMnMgZWFzZS1vdXQgLjJzLCBtYXJnaW4tcmlnaHQgLjJzIGVhc2Utb3V0IC4ycyxcblx0XHRcdFx0XHRtYXJnaW4tdG9wIC4ycyBlYXNlLW91dCAuMnMsIG1hcmdpbi1ib3R0b20gLjJzIGVhc2Utb3V0IC4ycyxcblx0XHRcdFx0XHRvcGFjaXR5IC4ycyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0LW1vei10cmFuc2l0aW9uOiB3aWR0aCAuMnMgZWFzZS1vdXQgLjJzLCBoZWlnaHQgLjJzIGVhc2Utb3V0IC4ycyxcblx0XHRcdFx0XHRtYXJnaW4tbGVmdCAuMnMgZWFzZS1vdXQgLjJzLCBtYXJnaW4tcmlnaHQgLjJzIGVhc2Utb3V0IC4ycyxcblx0XHRcdFx0XHRtYXJnaW4tdG9wIC4ycyBlYXNlLW91dCAuMnMsIG1hcmdpbi1ib3R0b20gLjJzIGVhc2Utb3V0IC4ycyxcblx0XHRcdFx0XHRvcGFjaXR5IC4ycyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0LW8tdHJhbnNpdGlvbjogd2lkdGggLjJzIGVhc2Utb3V0IC4ycywgaGVpZ2h0IC4ycyBlYXNlLW91dCAuMnMsXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQgLjJzIGVhc2Utb3V0IC4ycywgbWFyZ2luLXJpZ2h0IC4ycyBlYXNlLW91dCAuMnMsXG5cdFx0XHRcdFx0bWFyZ2luLXRvcCAuMnMgZWFzZS1vdXQgLjJzLCBtYXJnaW4tYm90dG9tIC4ycyBlYXNlLW91dCAuMnMsXG5cdFx0XHRcdFx0b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdHRyYW5zaXRpb246IHdpZHRoIC4ycyBlYXNlLW91dCAuMnMsIGhlaWdodCAuMnMgZWFzZS1vdXQgLjJzLFxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0IC4ycyBlYXNlLW91dCAuMnMsIG1hcmdpbi1yaWdodCAuMnMgZWFzZS1vdXQgLjJzLFxuXHRcdFx0XHRcdG1hcmdpbi10b3AgLjJzIGVhc2Utb3V0IC4ycywgbWFyZ2luLWJvdHRvbSAuMnMgZWFzZS1vdXQgLjJzLFxuXHRcdFx0XHRcdG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dDtcblx0fVxuXG5cblxuLypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuNi4gU0NST0xMQkFSIENPTE9SUywgT1BBQ0lUWSBBTkQgQkFDS0dST1VORFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuXHQvKlxuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdDYuMSBUSEVNRVNcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQqL1xuXG5cdC8qIGRlZmF1bHQgdGhlbWUgKFwibGlnaHRcIikgKi9cblxuXHQubUNTQl9zY3JvbGxUb29sc3sgb3BhY2l0eTogMC43NTsgZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9NzUpXCI7IC1tcy1maWx0ZXI6IFwiYWxwaGEob3BhY2l0eT03NSlcIjsgfVxuXG5cdC5tQ1MtYXV0b0hpZGUgPiAubUN1c3RvbVNjcm9sbEJveCA+IC5tQ1NCX3Njcm9sbFRvb2xzLFxuXHQubUNTLWF1dG9IaWRlID4gLm1DdXN0b21TY3JvbGxCb3ggfiAubUNTQl9zY3JvbGxUb29sc3sgb3BhY2l0eTogMDsgZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9MClcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTApXCI7IH1cblxuXHQubUN1c3RvbVNjcm9sbGJhciA+IC5tQ3VzdG9tU2Nyb2xsQm94ID4gLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19vbkRyYWcsXG5cdC5tQ3VzdG9tU2Nyb2xsYmFyID4gLm1DdXN0b21TY3JvbGxCb3ggfiAubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZyxcblx0Lm1DdXN0b21TY3JvbGxCb3g6aG92ZXIgPiAubUNTQl9zY3JvbGxUb29scyxcblx0Lm1DdXN0b21TY3JvbGxCb3g6aG92ZXIgfiAubUNTQl9zY3JvbGxUb29scyxcblx0Lm1DUy1hdXRvSGlkZTpob3ZlciA+IC5tQ3VzdG9tU2Nyb2xsQm94ID4gLm1DU0Jfc2Nyb2xsVG9vbHMsXG5cdC5tQ1MtYXV0b0hpZGU6aG92ZXIgPiAubUN1c3RvbVNjcm9sbEJveCB+IC5tQ1NCX3Njcm9sbFRvb2xzeyBvcGFjaXR5OiAxOyBmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0xMDApXCI7IC1tcy1maWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0xMDApXCI7IH1cblxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNCk7XG5cdFx0ZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9NDApXCI7IC1tcy1maWx0ZXI6IFwiYWxwaGEob3BhY2l0eT00MClcIjtcblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjc1KTtcblx0XHRmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT03NSlcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTc1KVwiO1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODUpO1xuXHRcdGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTg1KVwiOyAtbXMtZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9ODUpXCI7XG5cdH1cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOSk7XG5cdFx0ZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9OTApXCI7IC1tcy1maWx0ZXI6IFwiYWxwaGEob3BhY2l0eT05MClcIjtcblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwLFxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3duLFxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0LFxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwobUNTQl9idXR0b25zLnBuZyk7IC8qIGNzcyBzcHJpdGVzICovXG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRvcGFjaXR5OiAwLjQ7IGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTQwKVwiOyAtbXMtZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9NDApXCI7XG5cdH1cblxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG5cdFx0Lypcblx0XHRzcHJpdGVzIGxvY2F0aW9uc1xuXHRcdGxpZ2h0OiAwIDAsIC0xNnB4IDAsIC0zMnB4IDAsIC00OHB4IDAsIDAgLTcycHgsIC0xNnB4IC03MnB4LCAtMzJweCAtNzJweFxuXHRcdGRhcms6IC04MHB4IDAsIC05NnB4IDAsIC0xMTJweCAwLCAtMTI4cHggMCwgLTgwcHggLTcycHgsIC05NnB4IC03MnB4LCAtMTEycHggLTcycHhcblx0XHQqL1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMHB4O1xuXHRcdC8qXG5cdFx0c3ByaXRlcyBsb2NhdGlvbnNcblx0XHRsaWdodDogMCAtMjBweCwgLTE2cHggLTIwcHgsIC0zMnB4IC0yMHB4LCAtNDhweCAtMjBweCwgMCAtOTJweCwgLTE2cHggLTkycHgsIC0zMnB4IC05MnB4XG5cdFx0ZGFyazogLTgwcHggLTIwcHgsIC05NnB4IC0yMHB4LCAtMTEycHggLTIwcHgsIC0xMjhweCAtMjBweCwgLTgwcHggLTkycHgsIC05NnB4IC05MnB4LCAtMTEyIC05MnB4XG5cdFx0Ki9cblx0fVxuXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweDtcblx0XHQvKlxuXHRcdHNwcml0ZXMgbG9jYXRpb25zXG5cdFx0bGlnaHQ6IDAgLTQwcHgsIC0yMHB4IC00MHB4LCAtNDBweCAtNDBweCwgLTYwcHggLTQwcHgsIDAgLTExMnB4LCAtMjBweCAtMTEycHgsIC00MHB4IC0xMTJweFxuXHRcdGRhcms6IC04MHB4IC00MHB4LCAtMTAwcHggLTQwcHgsIC0xMjBweCAtNDBweCwgLTE0MHB4IC00MHB4LCAtODBweCAtMTEycHgsIC0xMDBweCAtMTEycHgsIC0xMjBweCAtMTEycHhcblx0XHQqL1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNTZweDtcblx0XHQvKlxuXHRcdHNwcml0ZXMgbG9jYXRpb25zXG5cdFx0bGlnaHQ6IDAgLTU2cHgsIC0yMHB4IC01NnB4LCAtNDBweCAtNTZweCwgLTYwcHggLTU2cHgsIDAgLTEyOHB4LCAtMjBweCAtMTI4cHgsIC00MHB4IC0xMjhweFxuXHRcdGRhcms6IC04MHB4IC01NnB4LCAtMTAwcHggLTU2cHgsIC0xMjBweCAtNTZweCwgLTE0MHB4IC01NnB4LCAtODBweCAtMTI4cHgsIC0xMDBweCAtMTI4cHgsIC0xMjBweCAtMTI4cHhcblx0XHQqL1xuXHR9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXA6aG92ZXIsXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd246aG92ZXIsXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnQ6aG92ZXIsXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0OmhvdmVyeyBvcGFjaXR5OiAwLjc1OyBmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT03NSlcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTc1KVwiOyB9XG5cblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXA6YWN0aXZlLFxuXHQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3duOmFjdGl2ZSxcblx0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdDphY3RpdmUsXG5cdC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0OmFjdGl2ZXsgb3BhY2l0eTogMC45OyBmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT05MClcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTkwKVwiOyB9XG5cblxuXHQvKiB0aGVtZTogXCJkYXJrXCIgKi9cblxuXHQubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHsgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yc1tcImJhY2tncm91bmRcIl0uYmFzZTsgfVxuXG5cdC5tQ1MtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmJhc2U7IH1cblxuXHQubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JzW1wicHJpbWFyeVwiXS5iYXNlOyB9XG5cblx0Lm1DUy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2JhcnsgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0ubGlnaHQ7IH1cblxuXHQvLyAjbUNTQl8xX3Njcm9sbGJhcl92ZXJ0aWNhbCAubUNTQl9kcmFnZ2VyeyBoZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7IH1cblxuXHQubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggMDsgfVxuXG5cdC5tQ1MtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMHB4OyB9XG5cblx0Lm1DUy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTQwcHg7IH1cblxuXHQubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTU2cHg7IH1cblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuXG5cdC8qIHRoZW1lOiBcImxpZ2h0LTJcIiwgXCJkYXJrLTJcIiAqL1xuXG5cdC5tQ1MtbGlnaHQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse1xuXHRcdHdpZHRoOiA0cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMXB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDFweDsgYm9yZGVyLXJhZGl1czogMXB4O1xuXHR9XG5cblx0Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1kYXJrLTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdHdpZHRoOiA0cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjc1KTtcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFweDsgLW1vei1ib3JkZXItcmFkaXVzOiAxcHg7IGJvcmRlci1yYWRpdXM6IDFweDtcblx0fVxuXG5cdC5tQ1MtbGlnaHQtMi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtZGFyay0yLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDRweDtcblx0XHRtYXJnaW46IDZweCBhdXRvO1xuXHR9XG5cblx0Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhcnsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjg1KTsgfVxuXG5cdC5tQ1MtbGlnaHQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWxpZ2h0LTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC45KTsgfVxuXG5cdC5tQ1MtbGlnaHQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVweyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAwOyB9XG5cblx0Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntcdGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMHB4OyB9XG5cblx0Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHtcdGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC00MHB4OyB9XG5cblx0Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7IGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC01NnB4OyB9XG5cblxuXHQvKiB0aGVtZTogXCJkYXJrLTJcIiAqL1xuXG5cdC5tQ1MtZGFyay0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjEpO1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMXB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDFweDsgYm9yZGVyLXJhZGl1czogMXB4O1xuXHR9XG5cblx0Lm1DUy1kYXJrLTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSk7XG5cdFx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxcHg7IC1tb3otYm9yZGVyLXJhZGl1czogMXB4OyBib3JkZXItcmFkaXVzOiAxcHg7XG5cdH1cblxuXHQubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC44NSk7IH1cblxuXHQubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2JhcnsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjkpOyB9XG5cblx0Lm1DUy1kYXJrLTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IDA7IH1cblxuXHQubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMjBweDsgfVxuXG5cdC5tQ1MtZGFyay0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IC00MHB4OyB9XG5cblx0Lm1DUy1kYXJrLTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtcdGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAtNTZweDsgfVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5cblx0LyogdGhlbWU6IFwibGlnaHQtdGhpY2tcIiwgXCJkYXJrLXRoaWNrXCIgKi9cblxuXHQubUNTLWxpZ2h0LXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse1xuXHRcdHdpZHRoOiA0cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsgYm9yZGVyLXJhZGl1czogMnB4O1xuXHR9XG5cblx0Lm1DUy1saWdodC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0d2lkdGg6IDZweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpO1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsgYm9yZGVyLXJhZGl1czogMnB4O1xuXHR9XG5cblx0Lm1DUy1saWdodC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiA0cHg7XG5cdFx0bWFyZ2luOiA2cHggMDtcblx0fVxuXG5cdC5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDZweDtcblx0XHRtYXJnaW46IDVweCBhdXRvO1xuXHR9XG5cblx0Lm1DUy1saWdodC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7IH1cblxuXHQubUNTLWxpZ2h0LXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC45KTsgfVxuXG5cdC5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggMDsgfVxuXG5cdC5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3due1x0YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIwcHg7IH1cblxuXHQubUNTLWxpZ2h0LXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHtcdGJhY2tncm91bmQtcG9zaXRpb246IC0yMHB4IC00MHB4OyB9XG5cblx0Lm1DUy1saWdodC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjBweCAtNTZweDsgfVxuXG5cblx0LyogdGhlbWU6IFwiZGFyay10aGlja1wiICovXG5cblx0Lm1DUy1kYXJrLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjEpO1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsgYm9yZGVyLXJhZGl1czogMnB4O1xuXHR9XG5cblx0Lm1DUy1kYXJrLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNzUpO1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsgYm9yZGVyLXJhZGl1czogMnB4O1xuXHR9XG5cblx0Lm1DUy1kYXJrLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhcnsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjg1KTsgfVxuXG5cdC5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC45KTsgfVxuXG5cdC5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVweyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAwOyB9XG5cblx0Lm1DUy1kYXJrLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTIwcHg7IH1cblxuXHQubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggLTQwcHg7IH1cblxuXHQubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtcdGJhY2tncm91bmQtcG9zaXRpb246IC0xMDBweCAtNTZweDsgfVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5cblx0LyogdGhlbWU6IFwibGlnaHQtdGhpblwiLCBcImRhcmstdGhpblwiICovXG5cblx0Lm1DUy1saWdodC10aGluLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsgfVxuXG5cdC5tQ1MtbGlnaHQtdGhpbi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcnsgd2lkdGg6IDJweDsgfVxuXG5cdC5tQ1MtbGlnaHQtdGhpbi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHsgd2lkdGg6IDEwMCU7IH1cblxuXHQubUNTLWxpZ2h0LXRoaW4ubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMnB4O1xuXHRcdG1hcmdpbjogN3B4IGF1dG87XG5cdH1cblxuXG5cdC8qIHRoZW1lIFwiZGFyay10aGluXCIgKi9cblxuXHQubUNTLWRhcmstdGhpbi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlseyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTUpOyB9XG5cblx0Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNzUpOyB9XG5cblx0Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuODUpOyB9XG5cblx0Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC45KTsgfVxuXG5cdC5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAwOyB9XG5cblx0Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3dueyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjBweDsgfVxuXG5cdC5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTQwcHg7IH1cblxuXHQubUNTLWRhcmstdGhpbi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNTZweDsgfVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5cblx0LyogdGhlbWUgXCJyb3VuZGVkXCIsIFwicm91bmRlZC1kYXJrXCIsIFwicm91bmRlZC1kb3RzXCIsIFwicm91bmRlZC1kb3RzLWRhcmtcIiAqL1xuXG5cdC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlseyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOyB9XG5cblx0Lm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcixcblx0Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLFxuXHQubUNTLXJvdW5kZWQtZG90cy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyeyBoZWlnaHQ6IDE0cHg7IH1cblxuXHQubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0d2lkdGg6IDE0cHg7XG5cdFx0bWFyZ2luOiAwIDFweDtcblx0fVxuXG5cdC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlcixcblx0Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyLFxuXHQubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyeyB3aWR0aDogMTRweDsgfVxuXG5cdC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGhlaWdodDogMTRweDtcblx0XHRtYXJnaW46IDFweCAwO1xuXHR9XG5cblx0Lm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyQ29udGFpbmVyOmhvdmVyIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0d2lkdGg6IDE2cHg7IC8qIGF1dG8tZXhwYW5kZWQgc2Nyb2xsYmFyICovXG5cdFx0aGVpZ2h0OiAxNnB4O1xuXHRcdG1hcmdpbjogLTFweCAwO1xuXHR9XG5cblx0Lm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCArIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkICsgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7IHdpZHRoOiA0cHg7IC8qIGF1dG8tZXhwYW5kZWQgc2Nyb2xsYmFyICovIH1cblxuXHQubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGhlaWdodDogMTZweDsgLyogYXV0by1leHBhbmRlZCBzY3JvbGxiYXIgKi9cblx0XHR3aWR0aDogMTZweDtcblx0XHRtYXJnaW46IDAgLTFweDtcblx0fVxuXG5cdC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCArIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyQ29udGFpbmVyOmhvdmVyIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCArIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0aGVpZ2h0OiA0cHg7IC8qIGF1dG8tZXhwYW5kZWQgc2Nyb2xsYmFyICovXG5cdFx0bWFyZ2luOiA2cHggMDtcblx0fVxuXG5cdC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVweyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC03MnB4OyB9XG5cblx0Lm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtOTJweDsgfVxuXG5cdC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTExMnB4OyB9XG5cblx0Lm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEyOHB4OyB9XG5cblxuXHQvKiB0aGVtZSBcInJvdW5kZWQtZGFya1wiLCBcInJvdW5kZWQtZG90cy1kYXJrXCIgKi9cblxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNzUpOyB9XG5cblx0Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjE1KTsgfVxuXG5cdC5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC44NSk7IH1cblxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7IH1cblxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVweyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNzJweDsgfVxuXG5cdC5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTkycHg7IH1cblxuXHQubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMTJweDsgfVxuXG5cdC5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMjhweDsgfVxuXG5cblx0LyogdGhlbWUgXCJyb3VuZGVkLWRvdHNcIiwgXCJyb3VuZGVkLWRvdHMtZGFya1wiICovXG5cblx0Lm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbCAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsIC5tQ1NCX2RyYWdnZXJSYWlseyB3aWR0aDogNHB4OyB9XG5cblx0Lm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLXJvdW5kZWQtZG90cy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlse1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0fVxuXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVlBQUFERUQ3NkxBQUFBTkVsRVFWUVlWMk5rSUFBWWlWYncvLzkvWTZEaU0xQU5Kb3lNakdkQmJMZ0pRQVgva1UwREtnRExrYVFBdnhXNEhFdlFGd0NSY3hJSksxWHpuQUFBQUFCSlJVNUVya0pnZ2c9PVwiKTtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG5cdFx0b3BhY2l0eTogMC4zO1xuXHRcdGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTMwKVwiOyAtbXMtZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9MzApXCI7XG5cdH1cblxuXHQubUNTLXJvdW5kZWQtZG90cy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlse1xuXHRcdGhlaWdodDogNHB4O1xuXHRcdG1hcmdpbjogNnB4IDA7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuXHR9XG5cblx0Lm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTcycHg7IH1cblxuXHQubUNTLXJvdW5kZWQtZG90cy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC05MnB4OyB9XG5cblx0Lm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjBweCAtMTEycHg7IH1cblxuXHQubUNTLXJvdW5kZWQtZG90cy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjBweCAtMTI4cHg7IH1cblxuXG5cdC8qIHRoZW1lIFwicm91bmRlZC1kb3RzLWRhcmtcIiAqL1xuXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVlBQUFERUQ3NkxBQUFBTEVsRVFWUVlWMk5rSUFBWVNWRmdERlI4QnFyQkJFaWZCYkdSVGZpUFpocFlqaVFGQkszQTZsNkN2Z0FBRTlrR0NkMW12Z0VBQUFBQVNVVk9SSzVDWUlJPVwiKTtcblx0fVxuXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTcycHg7IH1cblxuXHQubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTkycHg7IH1cblxuXHQubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMHB4IC0xMTJweDsgfVxuXG5cdC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMHB4IC0xMjhweDsgfVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5cblx0LyogdGhlbWUgXCIzZFwiLCBcIjNkLWRhcmtcIiwgXCIzZC10aGlja1wiLCBcIjNkLXRoaWNrLWRhcmtcIiAqL1xuXG5cdC5tQ1MtM2QubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLHJnYmEoMjU1LDI1NSwyNTUsMC41KSksIGNvbG9yLXN0b3AoMTAwJSxyZ2JhKDI1NSwyNTUsMjU1LDApKSk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LDI1NSwyNTUsMC41KSAwJSxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgMCUscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTtcblx0fVxuXG5cdC5tQ1MtM2QubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjU1LDI1NSwyNTUsMC41KSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLHJnYmEoMjU1LDI1NSwyNTUsMC41KSksIGNvbG9yLXN0b3AoMTAwJSxyZ2JhKDI1NSwyNTUsMjU1LDApKSk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgMCUscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgMCUscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG5cdH1cblxuXG5cdC8qIHRoZW1lIFwiM2RcIiwgXCIzZC1kYXJrXCIgKi9cblxuXHQubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwgLm1DU0JfZHJhZ2dlcixcblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwgLm1DU0JfZHJhZ2dlcnsgaGVpZ2h0OiA3MHB4OyB9XG5cblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlcixcblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyeyB3aWR0aDogNzBweDsgfVxuXG5cdC5tQ1MtM2QubUNTQl9zY3JvbGxUb29scyxcblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHN7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0zMClcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTMwKVwiO1xuXHR9XG5cblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTZweDsgLW1vei1ib3JkZXItcmFkaXVzOiAxNnB4OyBib3JkZXItcmFkaXVzOiAxNnB4OyB9XG5cblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHR3aWR0aDogOHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4yKTtcblx0XHRib3gtc2hhZG93OiBpbnNldCAxcHggMCAxcHggcmdiYSgwLDAsMCwwLjUpLCBpbnNldCAtMXB4IDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcblx0fVxuXG5cdC5tQ1MtM2QubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1OyB9XG5cblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IHdpZHRoOiA4cHg7IH1cblxuXHQubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDhweDtcblx0XHRtYXJnaW46IDRweCAwO1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuNSksIGluc2V0IDAgLTFweCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xuXHR9XG5cblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogOHB4O1xuXHRcdG1hcmdpbjogNHB4IGF1dG87XG5cdH1cblxuXHQubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC03MnB4OyB9XG5cblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05MnB4OyB9XG5cblx0Lm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7IGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC0xMTJweDsgfVxuXG5cdC5tQ1MtM2QubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwcHggLTEyOHB4OyB9XG5cblxuXHQvKiB0aGVtZSBcIjNkLWRhcmtcIiAqL1xuXG5cdC5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4xKTtcblx0XHRib3gtc2hhZG93OiBpbnNldCAxcHggMCAxcHggcmdiYSgwLDAsMCwwLjEpO1xuXHR9XG5cblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHsgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTsgfVxuXG5cdC5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVweyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTcycHg7IH1cblxuXHQubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3dueyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTkycHg7IH1cblxuXHQubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTExMnB4OyB9XG5cblx0Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTEyOHB4OyB9XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cblxuXHQvKiB0aGVtZTogXCIzZC10aGlja1wiLCBcIjNkLXRoaWNrLWRhcmtcIiAqL1xuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyxcblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHN7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0zMClcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTMwKVwiO1xuXHR9XG5cblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzLFxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyxcblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJDb250YWluZXIsXG5cdC5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJDb250YWluZXJ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogN3B4OyAtbW96LWJvcmRlci1yYWRpdXM6IDdweDsgYm9yZGVyLXJhZGl1czogN3B4OyB9XG5cblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDVweDsgYm9yZGVyLXJhZGl1czogNXB4OyB9XG5cblx0Lm1DU0JfaW5zaWRlICsgLm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLFxuXHQubUNTQl9pbnNpZGUgKyAubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbHsgcmlnaHQ6IDFweDsgfVxuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbCxcblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWx7IGJveC1zaGFkb3c6IGluc2V0IDFweCAwIDFweCByZ2JhKDAsMCwwLDAuMSksIGluc2V0IDAgMCAxNHB4IHJnYmEoMCwwLDAsMC41KTsgfVxuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLFxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFse1xuXHRcdGJvdHRvbTogMXB4O1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSksIGluc2V0IDAgMCAxNHB4IHJnYmEoMCwwLDAsMC41KTtcblx0fVxuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDFweCAwIDAgcmdiYSgyNTUsMjU1LDI1NSwwLjQpO1xuXHRcdHdpZHRoOiAxMnB4O1xuXHRcdG1hcmdpbjogMnB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0dG9wOiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHR9XG5cblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyeyBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsMC40KTsgfVxuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1OyB9XG5cblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGhlaWdodDogMTJweDtcblx0XHR3aWR0aDogYXV0bztcblx0fVxuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyQ29udGFpbmVye1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4wNSk7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAxNnB4IHJnYmEoMCwwLDAsMC4xKTtcblx0fVxuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuXHQubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC03MnB4OyB9XG5cblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05MnB4OyB9XG5cblx0Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7IGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC0xMTJweDsgfVxuXG5cdC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtcdGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC0xMjhweDsgfVxuXG5cblx0LyogdGhlbWU6IFwiM2QtdGhpY2stZGFya1wiICovXG5cblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHN7IGJveC1zaGFkb3c6IGluc2V0IDAgMCAxNHB4IHJnYmEoMCwwLDAsMC4yKTsgfVxuXG5cdC5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWx7IGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSksIGluc2V0IDAgMCAxNHB4IHJnYmEoMCwwLDAsMC4yKTsgfVxuXG5cdC5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJveC1zaGFkb3c6IGluc2V0IDFweCAwIDAgcmdiYSgyNTUsMjU1LDI1NSwwLjQpLCBpbnNldCAtMXB4IDAgMCByZ2JhKDAsMCwwLDAuMik7IH1cblxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwwLjQpLCBpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLDAuMik7IH1cblxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3OyB9XG5cblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcntcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMDUpO1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggMTZweCByZ2JhKDAsMCwwLDAuMSk7XG5cdH1cblxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuXHQubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC03MnB4OyB9XG5cblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC05MnB4OyB9XG5cblx0Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IC0xMTJweDsgfVxuXG5cdC5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0e1x0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IC0xMjhweDsgfVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5cblx0LyogdGhlbWU6IFwibWluaW1hbFwiLCBcIm1pbmltYWwtZGFya1wiICovXG5cblx0Lm1DU0Jfb3V0c2lkZSArIC5tQ1MtbWluaW1hbC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLFxuXHQubUNTQl9vdXRzaWRlICsgLm1DUy1taW5pbWFsLWRhcmsubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbHtcblx0XHRyaWdodDogMDtcblx0XHRtYXJnaW46IDEycHggMDtcblx0fVxuXG5cdC5tQ3VzdG9tU2Nyb2xsQm94Lm1DUy1taW5pbWFsICsgLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLFxuXHQubUN1c3RvbVNjcm9sbEJveC5tQ1MtbWluaW1hbCArIC5tQ1NCX3Njcm9sbFRvb2xzICsgLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLFxuXHQubUN1c3RvbVNjcm9sbEJveC5tQ1MtbWluaW1hbC1kYXJrICsgLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLFxuXHQubUN1c3RvbVNjcm9sbEJveC5tQ1MtbWluaW1hbC1kYXJrICsgLm1DU0Jfc2Nyb2xsVG9vbHMgKyAubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWx7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdG1hcmdpbjogMCAxMnB4O1xuXHR9XG5cblx0LyogUlRMIGRpcmVjdGlvbi9sZWZ0LXNpZGUgc2Nyb2xsYmFyICovXG5cdC5tQ1MtZGlyLXJ0bCA+IC5tQ1NCX291dHNpZGUgKyAubUNTLW1pbmltYWwubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbCxcblx0Lm1DUy1kaXItcnRsID4gLm1DU0Jfb3V0c2lkZSArIC5tQ1MtbWluaW1hbC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWx7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogYXV0bztcblx0fVxuXG5cdC5tQ1MtbWluaW1hbC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLW1pbmltYWwtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlseyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5cdC5tQ1MtbWluaW1hbC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsIC5tQ1NCX2RyYWdnZXIsXG5cdC5tQ1MtbWluaW1hbC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwgLm1DU0JfZHJhZ2dlcnsgaGVpZ2h0OiA1MHB4OyB9XG5cblx0Lm1DUy1taW5pbWFsLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyLFxuXHQubUNTLW1pbmltYWwtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlcnsgd2lkdGg6IDUwcHg7IH1cblxuXHQubUNTLW1pbmltYWwubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcblx0XHRmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0yMClcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTIwKVwiO1xuXHR9XG5cblx0Lm1DUy1taW5pbWFsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtbWluaW1hbC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7XG5cdFx0ZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9NTApXCI7IC1tcy1maWx0ZXI6IFwiYWxwaGEob3BhY2l0eT01MClcIjtcblx0fVxuXG5cblx0LyogdGhlbWU6IFwibWluaW1hbC1kYXJrXCIgKi9cblxuXHQubUNTLW1pbmltYWwtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjIpO1xuXHRcdGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTIwKVwiOyAtbXMtZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9MjApXCI7XG5cdH1cblxuXHQubUNTLW1pbmltYWwtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLW1pbmltYWwtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2Jhcntcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNSk7XG5cdFx0ZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9NTApXCI7IC1tcy1maWx0ZXI6IFwiYWxwaGEob3BhY2l0eT01MClcIjtcblx0fVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5cblx0LyogdGhlbWUgXCJsaWdodC0zXCIsIFwiZGFyay0zXCIgKi9cblxuXHQubUNTLWxpZ2h0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHR3aWR0aDogNnB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4yKTtcblx0fVxuXG5cdC5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcnsgd2lkdGg6IDZweDsgfVxuXG5cdC5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDZweDtcblx0XHRtYXJnaW46IDVweCAwO1xuXHR9XG5cblx0Lm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCArIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLWxpZ2h0LTMubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkICsgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0d2lkdGg6IDEycHg7XG5cdH1cblxuXHQubUNTLWxpZ2h0LTMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgKyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgKyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyQ29udGFpbmVyOmhvdmVyIC5tQ1NCX2RyYWdnZXJSYWlse1xuXHRcdGhlaWdodDogMTJweDtcblx0XHRtYXJnaW46IDJweCAwO1xuXHR9XG5cblx0Lm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC03MnB4OyB9XG5cblx0Lm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTkycHg7IH1cblxuXHQubUNTLWxpZ2h0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDBweCAtMTEycHg7IH1cblxuXHQubUNTLWxpZ2h0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwcHggLTEyOHB4OyB9XG5cblxuXHQvKiB0aGVtZSBcImRhcmstM1wiICovXG5cblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNzUpOyB9XG5cblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuODUpOyB9XG5cblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC45KTsgfVxuXG5cdC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4xKTsgfVxuXG5cdC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNzJweDsgfVxuXG5cdC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC05MnB4OyB9XG5cblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0eyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTExMnB4OyB9XG5cblx0Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtcdGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAtMTI4cHg7IH1cblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuXG5cdC8qIHRoZW1lIFwiaW5zZXRcIiwgXCJpbnNldC1kYXJrXCIsIFwiaW5zZXQtMlwiLCBcImluc2V0LTItZGFya1wiLCBcImluc2V0LTNcIiwgXCJpbnNldC0zLWRhcmtcIiAqL1xuXG5cdC5tQ1MtaW5zZXQubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsXG5cdC5tQ1MtaW5zZXQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLWluc2V0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHR3aWR0aDogMTJweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMik7XG5cdH1cblxuXHQubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWluc2V0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0d2lkdGg6IDZweDtcblx0XHRtYXJnaW46IDNweCA1cHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuXHQubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtMi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtMy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XG5cdFx0aGVpZ2h0OiA2cHg7XG5cdFx0bWFyZ2luOiA1cHggM3B4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogYXV0bztcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuXHQubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLWluc2V0LTMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlsLFxuXHQubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWx7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMnB4O1xuXHRcdG1hcmdpbjogMnB4IDA7XG5cdH1cblxuXHQubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXAsXG5cdC5tQ1MtaW5zZXQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwLFxuXHQubUNTLWluc2V0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTcycHg7IH1cblxuXHQubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bixcblx0Lm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bixcblx0Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTkycHg7IH1cblxuXHQubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdCxcblx0Lm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdCxcblx0Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwcHggLTExMnB4OyB9XG5cblx0Lm1DUy1pbnNldC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0LFxuXHQubUNTLWluc2V0LTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodCxcblx0Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7IGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC0xMjhweDsgfVxuXG5cblx0LyogdGhlbWUgXCJpbnNldC1kYXJrXCIsIFwiaW5zZXQtMi1kYXJrXCIsIFwiaW5zZXQtMy1kYXJrXCIgKi9cblxuXHQubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLFxuXHQubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcnsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KTsgfVxuXG5cdC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuODUpOyB9XG5cblx0Lm1DUy1pbnNldC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7IH1cblxuXHQubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjEpOyB9XG5cblx0Lm1DUy1pbnNldC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXAsXG5cdC5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXAsXG5cdC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNzJweDsgfVxuXG5cdC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd24sXG5cdC5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bixcblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3dueyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTkycHg7IH1cblxuXHQubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0LFxuXHQubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnQsXG5cdC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IC0xMTJweDsgfVxuXG5cdC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0LFxuXHQubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0LFxuXHQubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0e1x0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IC0xMjhweDsgfVxuXG5cblx0LyogdGhlbWUgXCJpbnNldC0yXCIsIFwiaW5zZXQtMi1kYXJrXCIgKi9cblxuXHQubUNTLWluc2V0LTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCxcblx0Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDFweDtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7IGJvcmRlci1jb2xvcjogIzAwMDsgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLDAuMik7IH1cblxuXG5cdC8qIHRoZW1lIFwiaW5zZXQtM1wiLCBcImluc2V0LTMtZGFya1wiICovXG5cblx0Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTsgfVxuXG5cdC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC42KTsgfVxuXG5cdC5tQ1MtaW5zZXQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSk7IH1cblxuXHQubUNTLWluc2V0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuODUpOyB9XG5cblx0Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXG5cdC5tQ1MtaW5zZXQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2JhcnsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjkpOyB9XG5cblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpOyB9XG5cblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODUpOyB9XG5cblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2Jhcixcblx0Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXJ7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC45KTsgfVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiIsImtzLW92ZXJmbG93KCB2YWx1ZSwgYXJncy4uLiApXG4gICAgaWYgdmFsdWUgPT0gZWxsaXBzaXNcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpc1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuXG4gICAgZWxzZVxuICAgICAgICBvdmVyZmxvdzogdmFsdWUgYXJnc1xuXG5vdmVyZmxvdyA9IGtzLW92ZXJmbG93IHVubGVzcyBrcy1uby1jb25mbGljdFxuIiwiY2FsbGVkLWZyb20gPSAoKVxuXG52ZW5kb3JzID0gbW96IHdlYmtpdCBvIG1zIG9mZmljaWFsXG5cbi8vIHN0cmluZ2lmeSB0aGUgZ2l2ZW4gYXJnXG5cbi1zdHJpbmcoYXJnKVxuICB0eXBlKGFyZykgKyAnICcgKyBhcmdcblxuLy8gcmVxdWlyZSBhIGNvbG9yXG5cbnJlcXVpcmUtY29sb3IoY29sb3IpXG4gIHVubGVzcyBjb2xvciBpcyBhICdjb2xvcidcbiAgICBlcnJvcignUkdCIG9yIEhTTCB2YWx1ZSBleHBlY3RlZCwgZ290IGEgJyArIC1zdHJpbmcoY29sb3IpKVxuXG4vLyByZXF1aXJlIGEgdW5pdFxuXG5yZXF1aXJlLXVuaXQobilcbiAgdW5sZXNzIG4gaXMgYSAndW5pdCdcbiAgICBlcnJvcigndW5pdCBleHBlY3RlZCwgZ290IGEgJyArIC1zdHJpbmcobikpXG5cbi8vIHJlcXVpcmUgYSBzdHJpbmdcblxucmVxdWlyZS1zdHJpbmcoc3RyKVxuICB1bmxlc3Mgc3RyIGlzIGEgJ3N0cmluZycgb3Igc3RyIGlzIGEgJ2lkZW50J1xuICAgIGVycm9yKCdzdHJpbmcgZXhwZWN0ZWQsIGdvdCBhICcgKyAtc3RyaW5nKHN0cikpXG5cbi8vIE1hdGggZnVuY3Rpb25zXG5cbmFicyhuKSB7IG1hdGgobiwgJ2FicycpIH1cbm1pbihhLCBiKSB7IGEgPCBiID8gYSA6IGIgfVxubWF4KGEsIGIpIHsgYSA+IGIgPyBhIDogYiB9XG5cbi8vIFRyaWdvbm9tZXRyaWNzXG5QSSA9IC1tYXRoLXByb3AoJ1BJJylcblxucmFkaWFucy10by1kZWdyZWVzKGFuZ2xlKVxuICBhbmdsZSAqICgxODAgLyBQSSlcblxuZGVncmVlcy10by1yYWRpYW5zKGFuZ2xlKVxuICB1bml0KGFuZ2xlICogKFBJIC8gMTgwKSwnJylcblxuc2luKG4pXG4gIG4gPSBkZWdyZWVzLXRvLXJhZGlhbnMobikgaWYgdW5pdChuKSA9PSAnZGVnJ1xuICByb3VuZChtYXRoKG4sICdzaW4nKSwgOSlcblxuY29zKG4pXG4gIG4gPSBkZWdyZWVzLXRvLXJhZGlhbnMobikgaWYgdW5pdChuKSA9PSAnZGVnJ1xuICByb3VuZChtYXRoKG4sICdjb3MnKSwgOSlcblxuLy8gUm91bmRpbmcgTWF0aCBmdW5jdGlvbnNcblxuY2VpbChuLCBwcmVjaXNpb24gPSAwKVxuICBtdWx0aXBsaWVyID0gMTAgKiogcHJlY2lzaW9uXG4gIG1hdGgobiAqIG11bHRpcGxpZXIsICdjZWlsJykgLyBtdWx0aXBsaWVyXG5cbmZsb29yKG4sIHByZWNpc2lvbiA9IDApXG4gIG11bHRpcGxpZXIgPSAxMCAqKiBwcmVjaXNpb25cbiAgbWF0aChuICogbXVsdGlwbGllciwgJ2Zsb29yJykgLyBtdWx0aXBsaWVyXG5cbnJvdW5kKG4sIHByZWNpc2lvbiA9IDApXG4gIG11bHRpcGxpZXIgPSAxMCAqKiBwcmVjaXNpb25cbiAgbWF0aChuICogbXVsdGlwbGllciwgJ3JvdW5kJykgLyBtdWx0aXBsaWVyXG5cbi8vIHJldHVybiB0aGUgc3VtIG9mIHRoZSBnaXZlbiBudW1iZXJzXG5cbnN1bShudW1zKVxuICBzdW0gPSAwXG4gIHN1bSArPSBuIGZvciBuIGluIG51bXNcblxuLy8gcmV0dXJuIHRoZSBhdmVyYWdlIG9mIHRoZSBnaXZlbiBudW1iZXJzXG5cbmF2ZyhudW1zKVxuICBzdW0obnVtcykgLyBsZW5ndGgobnVtcylcblxuLy8gcmV0dXJuIGEgdW5pdGxlc3MgbnVtYmVyLCBvciBwYXNzIHRocm91Z2hcblxucmVtb3ZlLXVuaXQobilcbiAgaWYgdHlwZW9mKG4pIGlzIFwidW5pdFwiXG4gICAgdW5pdChuLCBcIlwiKVxuICBlbHNlXG4gICAgblxuXG4vLyBjb252ZXJ0IGEgcGVyY2VudCB0byBhIGRlY2ltYWwsIG9yIHBhc3MgdGhyb3VnaFxuXG5wZXJjZW50LXRvLWRlY2ltYWwobilcbiAgaWYgdW5pdChuKSBpcyBcIiVcIlxuICAgIHJlbW92ZS11bml0KG4pIC8gMTAwXG4gIGVsc2VcbiAgICBuXG5cbi8vIGNoZWNrIGlmIG4gaXMgYW4gb2RkIG51bWJlclxuXG5vZGQobilcbiAgMSA9PSBuICUgMlxuXG4vLyBjaGVjayBpZiBuIGlzIGFuIGV2ZW4gbnVtYmVyXG5cbmV2ZW4obilcbiAgMCA9PSBuICUgMlxuXG4vLyBjaGVjayBpZiBjb2xvciBpcyBsaWdodFxuXG5saWdodChjb2xvcilcbiAgbGlnaHRuZXNzKGNvbG9yKSA+PSA1MCVcblxuLy8gY2hlY2sgaWYgY29sb3IgaXMgZGFya1xuXG5kYXJrKGNvbG9yKVxuICBsaWdodG5lc3MoY29sb3IpIDwgNTAlXG5cbi8vIGRlc2F0dXJhdGUgY29sb3IgYnkgYW1vdW50XG5cbmRlc2F0dXJhdGUoY29sb3IsIGFtb3VudClcbiAgYWRqdXN0KGNvbG9yLCAnc2F0dXJhdGlvbicsIC0gYW1vdW50KVxuXG4vLyBzYXR1cmF0ZSBjb2xvciBieSBhbW91bnRcblxuc2F0dXJhdGUoY29sb3IgPSAnJywgYW1vdW50ID0gMTAwJSlcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgYWRqdXN0KGNvbG9yLCAnc2F0dXJhdGlvbicsIGFtb3VudClcbiAgZWxzZVxuICAgIHVucXVvdGUoIFwic2F0dXJhdGUoXCIgKyBjb2xvciArIFwiKVwiIClcblxuLy8gZGFya2VuIGJ5IHRoZSBnaXZlbiBhbW91bnRcblxuZGFya2VuKGNvbG9yLCBhbW91bnQpXG4gIGFkanVzdChjb2xvciwgJ2xpZ2h0bmVzcycsIC0gYW1vdW50KVxuXG4vLyBsaWdodGVuIGJ5IHRoZSBnaXZlbiBhbW91bnRcblxubGlnaHRlbihjb2xvciwgYW1vdW50KVxuICBhZGp1c3QoY29sb3IsICdsaWdodG5lc3MnLCBhbW91bnQpXG5cbi8vIGRlY3JlYXNlIG9wYWNpdHkgYnkgYW1vdW50XG5cbmZhZGUtb3V0KGNvbG9yLCBhbW91bnQpXG4gIGNvbG9yIC0gcmdiYShibGFjaywgcGVyY2VudC10by1kZWNpbWFsKGFtb3VudCkpXG5cbi8vIGluY3JlYXNlIG9wYWNpdHkgYnkgYW1vdW50XG5cbmZhZGUtaW4oY29sb3IsIGFtb3VudClcbiAgY29sb3IgKyByZ2JhKGJsYWNrLCBwZXJjZW50LXRvLWRlY2ltYWwoYW1vdW50KSlcblxuLy8gc3BpbiBodWUgYnkgYSBnaXZlbiBhbW91bnRcblxuc3Bpbihjb2xvciwgYW1vdW50KVxuICBjb2xvciArIHVuaXQoYW1vdW50LCBkZWcpXG5cbi8vIG1peCB0d28gY29sb3JzIGJ5IGEgZ2l2ZW4gYW1vdW50XG5cbm1peChjb2xvcjEsIGNvbG9yMiwgd2VpZ2h0ID0gNTAlKVxuICB1bmxlc3Mgd2VpZ2h0IGluIDAuLjEwMFxuICAgIGVycm9yKFwiV2VpZ2h0IG11c3QgYmUgYmV0d2VlbiAwJSBhbmQgMTAwJVwiKVxuXG4gIGlmIGxlbmd0aChjb2xvcjEpID09IDJcbiAgICB3ZWlnaHQgPSBjb2xvcjFbMF1cbiAgICBjb2xvcjEgPSBjb2xvcjFbMV1cblxuICBlbHNlIGlmIGxlbmd0aChjb2xvcjIpID09IDJcbiAgICB3ZWlnaHQgPSAxMDAgLSBjb2xvcjJbMF1cbiAgICBjb2xvcjIgPSBjb2xvcjJbMV1cblxuICByZXF1aXJlLWNvbG9yKGNvbG9yMSlcbiAgcmVxdWlyZS1jb2xvcihjb2xvcjIpXG5cbiAgcCA9IHVuaXQod2VpZ2h0IC8gMTAwLCAnJylcbiAgdyA9IHAgKiAyIC0gMVxuXG4gIGEgPSBhbHBoYShjb2xvcjEpIC0gYWxwaGEoY29sb3IyKVxuXG4gIHcxID0gKCgodyAqIGEgPT0gLTEpID8gdyA6ICh3ICsgYSkgLyAoMSArIHcgKiBhKSkgKyAxKSAvIDJcbiAgdzIgPSAxIC0gdzFcblxuICBjaGFubmVscyA9IChyZWQoY29sb3IxKSByZWQoY29sb3IyKSkgKGdyZWVuKGNvbG9yMSkgZ3JlZW4oY29sb3IyKSkgKGJsdWUoY29sb3IxKSBibHVlKGNvbG9yMikpXG4gIHJnYiA9ICgpXG5cbiAgZm9yIHBhaXIgaW4gY2hhbm5lbHNcbiAgICBwdXNoKHJnYiwgZmxvb3IocGFpclswXSAqIHcxICsgcGFpclsxXSAqIHcyKSlcblxuICBhMSA9IGFscGhhKGNvbG9yMSkgKiBwXG4gIGEyID0gYWxwaGEoY29sb3IyKSAqICgxIC0gcClcbiAgYWxwaGEgPSBhMSArIGEyXG5cbiAgcmdiYShyZ2JbMF0sIHJnYlsxXSwgcmdiWzJdLCBhbHBoYSlcblxuLy8gaW52ZXJ0IGNvbG9ycywgbGVhdmUgYWxwaGEgaW50YWN0XG5cbmludmVydChjb2xvciA9ICcnKVxuICBpZiBjb2xvciBpcyBhICdjb2xvcidcbiAgICByZ2JhKCNmZmYgLSBjb2xvciwgYWxwaGEoY29sb3IpKVxuICBlbHNlXG4gICAgdW5xdW90ZSggXCJpbnZlcnQoXCIgKyBjb2xvciArIFwiKVwiIClcblxuLy8gZ2l2ZSBjb21wbGVtZW50IG9mIHRoZSBnaXZlbiBjb2xvclxuXG5jb21wbGVtZW50KCBjb2xvciApXG4gIHNwaW4oIGNvbG9yLCAxODAgKVxuXG4vLyBnaXZlIGdyYXlzY2FsZSBvZiB0aGUgZ2l2ZW4gY29sb3JcblxuZ3JheXNjYWxlKCBjb2xvciA9ICcnIClcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgZGVzYXR1cmF0ZSggY29sb3IsIDEwMCUgKVxuICBlbHNlXG4gICAgdW5xdW90ZSggXCJncmF5c2NhbGUoXCIgKyBjb2xvciArIFwiKVwiIClcblxuLy8gbWl4IHRoZSBnaXZlbiBjb2xvciB3aXRoIHdoaXRlXG5cbnRpbnQoIGNvbG9yLCBwZXJjZW50IClcbiAgbWl4KCB3aGl0ZSwgY29sb3IsIHBlcmNlbnQgKVxuXG4vLyBtaXggdGhlIGdpdmVuIGNvbG9yIHdpdGggYmxhY2tcblxuc2hhZGUoIGNvbG9yLCBwZXJjZW50IClcbiAgbWl4KCBibGFjaywgY29sb3IsIHBlcmNlbnQgKVxuXG4vLyByZXR1cm4gdGhlIGxhc3QgdmFsdWUgaW4gdGhlIGdpdmVuIGV4cHJcblxubGFzdChleHByKVxuICBleHByW2xlbmd0aChleHByKSAtIDFdXG5cbi8vIHJldHVybiBrZXlzIGluIHRoZSBnaXZlbiBwYWlycyBvciBvYmplY3Rcblxua2V5cyhwYWlycylcbiAgcmV0ID0gKClcbiAgaWYgdHlwZShwYWlycykgPT0gJ29iamVjdCdcbiAgICBmb3Iga2V5IGluIHBhaXJzXG4gICAgICBwdXNoKHJldCwga2V5KVxuICBlbHNlXG4gICAgZm9yIHBhaXIgaW4gcGFpcnNcbiAgICAgIHB1c2gocmV0LCBwYWlyWzBdKTtcbiAgcmV0XG5cbi8vIHJldHVybiB2YWx1ZXMgaW4gdGhlIGdpdmVuIHBhaXJzIG9yIG9iamVjdFxuXG52YWx1ZXMocGFpcnMpXG4gIHJldCA9ICgpXG4gIGlmIHR5cGUocGFpcnMpID09ICdvYmplY3QnXG4gICAgZm9yIGtleSwgdmFsIGluIHBhaXJzXG4gICAgICBwdXNoKHJldCwgdmFsKVxuICBlbHNlXG4gICAgZm9yIHBhaXIgaW4gcGFpcnNcbiAgICAgIHB1c2gocmV0LCBwYWlyWzFdKTtcbiAgcmV0XG5cbi8vIGpvaW4gdmFsdWVzIHdpdGggdGhlIGdpdmVuIGRlbGltaXRlclxuXG5qb2luKGRlbGltLCB2YWxzLi4uKVxuICBidWYgPSAnJ1xuICB2YWxzID0gdmFsc1swXSBpZiBsZW5ndGgodmFscykgPT0gMVxuICBmb3IgdmFsLCBpIGluIHZhbHNcbiAgICBidWYgKz0gaSA/IGRlbGltICsgdmFsIDogdmFsXG5cbi8vIGFkZCBhIENTUyBydWxlIHRvIHRoZSBjb250YWluaW5nIGJsb2NrXG5cbi8vIC0gVGhpcyBkZWZpbml0aW9uIGFsbG93cyBhZGQtcHJvcGVydHkgdG8gYmUgdXNlZCBhcyBhIG1peGluXG4vLyAtIEl0IGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgaW50ZXJwb2xhdGlvbiBidXQgYWxsb3dzIHVzZXJzXG4vLyAgIHRvIG9wdCBmb3IgYSBmdW5jdGlvbmFsIHN0eWxlXG5cbmFkZC1wcm9wZXJ0eS1mdW5jdGlvbiA9IGFkZC1wcm9wZXJ0eVxuYWRkLXByb3BlcnR5KG5hbWUsIGV4cHIpXG4gIGlmIG1peGluXG4gICAge25hbWV9IGV4cHJcbiAgZWxzZVxuICAgIGFkZC1wcm9wZXJ0eS1mdW5jdGlvbihuYW1lLCBleHByKVxuXG5wcmVmaXgtY2xhc3NlcyhwcmVmaXgpXG4gIC1wcmVmaXgtY2xhc3NlcyhwcmVmaXgsIGJsb2NrKVxuXG4vLyBDYWNoaW5nIG1peGluLCB1c2UgaW5zaWRlIHlvdXIgZnVuY3Rpb25zIHRvIGVuYWJsZSBjYWNoaW5nIGJ5IGV4dGVuZGluZy5cblxuJHN0eWx1c19taXhpbl9jYWNoZSA9IHt9XG5jYWNoZSgpXG4gICRrZXkgPSAoY3VycmVudC1tZWRpYSgpIG9yICduby1tZWRpYScpICsgJ19fJyArIGNhbGxlZC1mcm9tWzBdICsgJ19fJyArIGFyZ3VtZW50c1xuICBpZiAka2V5IGluICRzdHlsdXNfbWl4aW5fY2FjaGVcbiAgICBAZXh0ZW5kIHtcIiRjYWNoZV9wbGFjZWhvbGRlcl9mb3JfXCIgKyAkc3R5bHVzX21peGluX2NhY2hlWyRrZXldfVxuICBlbHNlIGlmICdjYWNoZScgaW4gY2FsbGVkLWZyb21cbiAgICB7YmxvY2t9XG4gIGVsc2VcbiAgICAkaWQgPSBsZW5ndGgoJHN0eWx1c19taXhpbl9jYWNoZSlcblxuICAgICYsXG4gICAgLyRjYWNoZV9wbGFjZWhvbGRlcl9mb3JfeyRpZH1cbiAgICAgICRzdHlsdXNfbWl4aW5fY2FjaGVbJGtleV0gPSAkaWRcbiAgICAgIHtibG9ja31cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTbGlkZWJhcnNcbiAqIERldmVsb3BtZW50IHZlcnNpb24gMC4xMC4zLCBkbyBub3QgdXNlIHRoaXMgaW4gYSBwcm9kdWN0aW9uIHNpdGUsIHVzZSB0aGUgbGF0ZXN0IGluIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyLlxuICogaHR0cDovL3BsdWdpbnMuYWRjaHNtLm1lL3NsaWRlYmFycy9cbiAqXG4gKiBXcml0dGVuIGJ5IEFkYW0gU21pdGhcbiAqIGh0dHA6Ly93d3cuYWRjaHNtLm1lL1xuICpcbiAqIFJlbGVhc2VkIHVuZGVyIE1JVCBMaWNlbnNlXG4gKiBodHRwOi8vcGx1Z2lucy5hZGNoc20ubWUvc2xpZGViYXJzL2xpY2Vuc2UudHh0XG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2xpZGViYXJzIENTUyBJbmRleFxuICpcbiAqIDAwMSAtIEJveCBNb2RlbCwgSHRtbCAmIEJvZHlcbiAqIDAwMiAtIFNpdGVcbiAqIDAwMyAtIFNsaWRlYmFyc1xuICogMDA0IC0gQW5pbWF0aW9uXG4gKiAwMDUgLSBIZWxwZXIgQ2xhc3Nlc1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIDAwMSAtIEJveCBNb2RlbCwgSHRtbCAmIEJvZHlcbiAqL1xuXG5odG1sLCBib2R5LCAjc2Itc2l0ZSwgLnNiLXNpdGUtY29udGFpbmVyLCAuc2Itc2xpZGViYXIge1xuXHQvKiBTZXQgYm94IG1vZGVsIHRvIHByZXZlbnQgYW55IHVzZXIgYWRkZWQgbWFyZ2lucyBvciBwYWRkaW5ncyBmcm9tIGFsdGVyaW5nIHRoZSB3aWR0aHMgb3IgaGVpZ2h0cy4gKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdCAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0ICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sLCBib2R5IHtcblx0d2lkdGg6IDEwMCU7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjsgLyogU3RvcHMgaG9yaXpvbnRhbCBzY3JvbGxpbmcuICovXG59XG5cbmh0bWwge1xuXHRoZWlnaHQ6IDEwMCU7IC8qIFNpdGUgaXMgYXMgdGFsbCBhcyBkZXZpY2UuICovXG59XG5cbmJvZHkge1xuXHRtaW4taGVpZ2h0OiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogUmVxdWlyZWQgZm9yIHN0YXRpYyBTbGlkZWJhcnMgdG8gZnVuY3Rpb24gcHJvcGVybHkuICovXG59XG5cbi8qIFNpdGUgc2Nyb2xsIGxvY2tpbmcgLSBwcmV2ZW50IHNpdGUgZnJvbSBzY3JvbGxpbmcgd2hlbiBhIFNsaWRlYmFyIGlzIG9wZW4sIGV4Y2VwdCB3aGVuIHN0YXRpYyBTbGlkZWJhcnMgYXJlIG9ubHkgYXZhaWxhYmxlLiAqL1xuaHRtbC5zYi1zY3JvbGwtbG9jay5zYi1hY3RpdmU6bm90KC5zYi1zdGF0aWMpIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogLS0tLS0tLS0tLVxuICogMDAyIC0gU2l0ZVxuICovXG5cbiNzYi1zaXRlLCAuc2Itc2l0ZS1jb250YWluZXIge1xuXHQvKiBZb3UgbWF5IG5vdyB1c2UgY2xhc3MgLnNiLXNpdGUtY29udGFpbmVyIGluc3RlYWQgb2YgI3NiLXNpdGUgYW5kIHVzZSB5b3VyIG93biBpZC4gSG93ZXZlciBwbGVhc2UgbWFrZSBzdXJlIHlvdSBkb24ndCBzZXQgYW55IG9mIHRoZSBmb2xsb3dpbmcgc3R5bGVzIGFueSBkaWZmZXJlbnRseSBvbiB5b3VyIGlkLiAqL1xuXHR3aWR0aDogMTAwJTtcblx0bWluLWhlaWdodDogMTAwdmg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTsgLyogU2l0ZSBzaXRzIGFib3ZlIFNsaWRlYmFycyAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAvKiBEZWZhdWx0IGJhY2tncm91bmQgY29sb3VyLCBvdmVyd3JpdGUgdGhpcyB3aXRoIHlvdXIgb3duIGNzcy4gSSBzdWdnZXN0IG1vdmluZyB5b3VyIGh0bWwgb3IgYm9keSBiYWNrZ3JvdW5kIHN0eWxpbmcgaGVyZS4gTWFraW5nIHRoaXMgdHJhbnNwYXJlbnQgd2lsbCBhbGxvdyB0aGUgU2xpZGViYXJzIGJlbmVhdGggdG8gYmUgdmlzaWJsZS4gKi9cbn1cblxuLyogTWljcm8gY2xlYXJmaXggYnkgTmljb2xhcyBHYWxsYWdoZXIsIGVuc3VyZXMgdGhlIHNpdGUgY29udGFpbmVyIGhpdHMgdGhlIHRvcCBhbmQgYm90dG9tIG9mIHRoZSBzY3JlZW4uICovXG4jc2Itc2l0ZTpiZWZvcmUsICNzYi1zaXRlOmFmdGVyLCAuc2Itc2l0ZS1jb250YWluZXI6YmVmb3JlLCAuc2Itc2l0ZS1jb250YWluZXI6YWZ0ZXIge1xuXHRjb250ZW50OiAnICc7XG5cdGRpc3BsYXk6IHRhYmxlO1xufVxuXG4jc2Itc2l0ZTpiZWZvcmUsICNzYi1zaXRlOmFmdGVyLCAuc2Itc2l0ZS1jb250YWluZXI6YmVmb3JlLCAuc2Itc2l0ZS1jb250YWluZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS1cbiAqIDAwMyAtIFNsaWRlYmFyc1xuICovXG5cbi5zYi1zbGlkZWJhciB7XG5cdGhlaWdodDogMTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bzsgLyogRW5hYmxlIHZlcnRpY2FsIHNjcm9sbGluZyBvbiBTbGlkZWJhcnMgd2hlbiBuZWVkZWQuICovXG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHR6LWluZGV4OiAwOyAvKiBTbGlkZWJhcnMgc2l0IGJlaGluZCBzYi1zaXRlLiAqL1xuXHRkaXNwbGF5OiBub25lOyAvKiBJbml0aWFsbHkgaGlkZSB0aGUgU2xpZGViYXJzLiBDaGFuZ2VkIGZyb20gdmlzaWJpbGl0eSB0byBkaXNwbGF5IHRvIGFsbG93IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nLiAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyOyAvKiBEZWZhdWx0IFNsaWRlYmFycyBiYWNrZ3JvdW5kIGNvbG91ciwgb3ZlcndyaXRlIHRoaXMgd2l0aCB5b3VyIG93biBjc3MuICovXG59XG5cbi5zYi1zbGlkZWJhciwgLnNiLXNsaWRlYmFyICoge1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWiggMHB4ICk7IC8qIEZpeGVzIGlzc3VlcyB3aXRoIHRyYW5zbGF0ZWQgYW5kIHotaW5kZXhlZCBlbGVtZW50cyBvbiBpT1MgNy4gKi9cbn1cblxuLnNiLWxlZnQge1xuXHRsZWZ0OiAwOyAvKiBTZXQgU2xpZGViYXIgdG8gdGhlIGxlZnQuICovXG59XG5cbi5zYi1yaWdodCB7XG5cdHJpZ2h0OiAwOyAvKiBTZXQgU2xpZGViYXIgdG8gdGhlIHJpZ2h0LiAqL1xufVxuXG5odG1sLnNiLXN0YXRpYyAuc2Itc2xpZGViYXIsXG4uc2Itc2xpZGViYXIuc2Itc3RhdGljIHtcblx0cG9zaXRpb246IGFic29sdXRlOyAvKiBNYWtlcyBTbGlkZWJhcnMgc2Nyb2xsIG5hdHVyYWxseSB3aXRoIHRoZSBzaXRlLCBhbmQgdW5maXhlcyB0aGVtIGZvciBBbmRyb2lkIEJyb3dzZXIgPCAzIGFuZCBpT1MgPCA1LiAqL1xufVxuXG4uc2Itc2xpZGViYXIuc2ItYWN0aXZlIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIE1ha2VzIFNsaWRlYmFycyB2aXNpYmlsZSB3aGVuIG9wZW4uIENoYW5nZWQgZnJvbSB2aXNpYmlsaXR5IHRvIGRpc3BsYXkgdG8gYWxsb3cgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmcuICovXG59XG5cbi5zYi1zdHlsZS1vdmVybGF5IHtcblx0ei1pbmRleDogOTk5OTsgLyogU2V0IHotaW5kZXggaGlnaCB0byBlbnN1cmUgaXQgb3ZlcmxheXMgYW55IG90aGVyIHNpdGUgZWxlbWVudHMuICovXG59XG5cbi5zYi1tb21lbnR1bS1zY3JvbGxpbmcge1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IC8qIEFkZHMgbmF0aXZlIG1vbWVudHVtIHNjcm9sbGluZyBmb3IgaU9TICYgQW5kcm9pZCBkZXZpY2VzLiAqL1xufVxuXG4vKiBTbGlkZWJhciB3aWR0aHMgZm9yIGJyb3dzZXJzL2RldmljZXMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuICovXG5cdC5zYi1zbGlkZWJhciB7XG5cdFx0d2lkdGg6IDMwJTtcblx0fVxuXG5cdC5zYi13aWR0aC10aGluIHtcblx0XHR3aWR0aDogMTUlO1xuXHR9XG5cblx0LnNiLXdpZHRoLXdpZGUge1xuXHRcdHdpZHRoOiA0NSU7XG5cdH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7IC8qIFNsaWRlYmFyIHdpZHRocyBvbiBleHRyYSBzbWFsbCBzY3JlZW5zLiAqL1xuXHQuc2Itc2xpZGViYXIge1xuXHRcdHdpZHRoOiA3MCU7XG5cdH1cblxuXHQuc2Itd2lkdGgtdGhpbiB7XG5cdFx0d2lkdGg6IDU1JTtcblx0fVxuXG5cdC5zYi13aWR0aC13aWRlIHtcblx0XHR3aWR0aDogODUlO1xuXHR9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkgeyAvKiBTbGlkZWJhciB3aWR0aHMgb24gc21hbGwgc2NyZWVucy4gKi9cblx0LnNiLXNsaWRlYmFyIHtcblx0XHR3aWR0aDogNTUlO1xuXHR9XG5cblx0LnNiLXdpZHRoLXRoaW4ge1xuXHRcdHdpZHRoOiA0MCU7XG5cdH1cblxuXHQuc2Itd2lkdGgtd2lkZSB7XG5cdFx0d2lkdGg6IDcwJTtcblx0fVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLyogU2xpZGViYXIgd2lkdGhzIG9uIG1lZGl1bSBzY3JlZW5zLiAqL1xuXHQuc2Itc2xpZGViYXIge1xuXHRcdHdpZHRoOiA0MCU7XG5cdH1cblxuXHQuc2Itd2lkdGgtdGhpbiB7XG5cdFx0d2lkdGg6IDI1JTtcblx0fVxuXG5cdC5zYi13aWR0aC13aWRlIHtcblx0XHR3aWR0aDogNTUlO1xuXHR9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgeyAvKiBTbGlkZWJhciB3aWR0aHMgb24gbGFyZ2Ugc2NyZWVucy4gKi9cblx0LnNiLXNsaWRlYmFyIHtcblx0XHR3aWR0aDogMzAlO1xuXHR9XG5cblx0LnNiLXdpZHRoLXRoaW4ge1xuXHRcdHdpZHRoOiAxNSU7XG5cdH1cblxuXHQuc2Itd2lkdGgtd2lkZSB7XG5cdFx0d2lkdGg6IDQ1JTtcblx0fVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7IC8qIFNsaWRlYmFyIHdpZHRocyBvbiBleHRyYSBsYXJnZSBzY3JlZW5zLiAqL1xuXHQuc2Itc2xpZGViYXIge1xuXHRcdHdpZHRoOiAyMCU7XG5cdH1cblxuXHQuc2Itd2lkdGgtdGhpbiB7XG5cdFx0d2lkdGg6IDUlO1xuXHR9XG5cblx0LnNiLXdpZHRoLXdpZGUge1xuXHRcdHdpZHRoOiAzNSU7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tXG4gKiAwMDQgLSBBbmltYXRpb25cbiAqL1xuXG4uc2Itc2xpZGUsICNzYi1zaXRlLCAuc2Itc2l0ZS1jb250YWluZXIsIC5zYi1zbGlkZWJhciB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoIDBweCApO1xuXHQgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKCAwcHggKTtcblx0ICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSggMHB4ICk7XG5cdCAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoIDBweCApO1xuXG5cdC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gNDAwbXMgZWFzZTtcblx0ICAgLW1vei10cmFuc2l0aW9uOiAgICAtbW96LXRyYW5zZm9ybSA0MDBtcyBlYXNlO1xuXHQgICAgIC1vLXRyYW5zaXRpb246ICAgICAgLW8tdHJhbnNmb3JtIDQwMG1zIGVhc2U7XG5cdCAgICAgICAgdHJhbnNpdGlvbjogICAgICAgICB0cmFuc2Zvcm0gNDAwbXMgZWFzZTtcblxuXHQtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtLCBsZWZ0LCByaWdodDsgLyogQWRkIGxlZnQvcmlnaHQgZm9yIEFuZHJvaWQgPCA0LjQuICovXG5cdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyAvKiBQcmV2ZW50cyBmbGlja2VyaW5nLiBUaGlzIGlzIG5vbiBlc3NlbnRpYWwsIGFuZCB5b3UgbWF5IHJlbW92ZSBpdCBpZiB5b3VyIGhhdmluZyBwcm9ibGVtcyB3aXRoIGZpeGVkIGJhY2tncm91bmQgaW1hZ2VzIGluIENocm9tZS4gKi9cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIDAwNSAtIEhlbHBlciBDbGFzc2VzXG4gKi9cblxuLnNiLWhpZGUge1xuXHRkaXNwbGF5OiBub25lOyAvKiBPcHRpb25hbGx5IGFwcGxpZWQgdG8gY29udHJvbCBjbGFzc2VzIHdoZW4gU2xpZGViYXJzIGlzIGRpc2FibGVkIG92ZXIgYSBjZXJ0YWluIHdpZHRoLiAqL1xufVxuIiwia3MtY2xlYXJmaXgoKVxuICAgIGlmIGtzLXN1cHBvcnQtaWUgPD0gN1xuICAgICAgICAqem9vbSAxXG4gICAgJjpiZWZvcmVcbiAgICAmOmFmdGVyXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXG4gICAgJjphZnRlclxuICAgICAgICBjbGVhcjogYm90aFxuXG5jbGVhcmZpeCA9IGtzLWNsZWFyZml4IHVubGVzcyBrcy1uby1jb25mbGljdFxuXG5rcy1jbGVhciggdmFsdWUsIGFyZ3MuLi4gKVxuICAgIGlmIHZhbHVlID09IGZpeFxuICAgICAgICBjbGVhcmZpeCgpXG4gICAgZWxzZVxuICAgICAgICBjbGVhcjogdmFsdWUgYXJnc1xuXG5jbGVhciA9IGtzLWNsZWFyIHVubGVzcyBrcy1uby1jb25mbGljdFxuXG5fa3MtZml4LXByb2Nlc3NpbmcoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgIGlmKCBjdXJyZW50LXByb3BlcnR5WyAwIF0gPT0gXCJjbGVhclwiIClcbiAgICAgICAgZml4XG4gICAgZWxzZVxuICAgICAgICBlcnJvciggXCJmaXgoKSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgY2xlYXIgcHJvcGVydHlcIiApXG5cbmtzLWZpeCgpXG4gICAgaWYoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgICAgICBfa3MtZml4LXByb2Nlc3NpbmcoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgIGVsc2VcbiAgICAgICAgZXJyb3IoIFwia3MtZml4KCkgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIGNsZWFyIHByb3BlcnR5XCIgKVxuXG51bmxlc3Mga3Mtbm8tY29uZmxpY3RcbiAgICBmaXgoKVxuICAgICAgICBpZiggY3VycmVudC1wcm9wZXJ0eSApXG4gICAgICAgICAgICBfa3MtZml4LXByb2Nlc3NpbmcoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBlcnJvciggXCJmaXgoKSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgY2xlYXIgcHJvcGVydHlcIiApXG4iLCIubWZwLWJnXG57XG5cdGJhY2tncm91bmQ6ICMwYjBiMGI7XG5cdGhlaWdodDogMTAwJTtcblx0bGVmdDogMDtcblx0b3BhY2l0eTogMC44O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IDEwNDI7XG59XG4ubWZwLXdyYXBcbntcblx0aGVpZ2h0OiAxMDAlO1xuXHRsZWZ0OiAwO1xuXHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHR3ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogMTA0Mztcbn1cbi5tZnAtY29udGFpbmVyXG57XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGhlaWdodDogMTAwJTtcblx0bGVmdDogMDtcblx0bW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHBhZGRpbmc6IDAgOHB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dG9wOiAwO1xuXHR3ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0d2lkdGg6IDEwMCU7XG59XG4ubWZwLWNvbnRhaW5lcjpiZWZvcmVcbntcblx0Y29udGVudDogJyc7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0aGVpZ2h0OiAxMDAlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm1mcC1hbGlnbi10b3AgLm1mcC1jb250YWluZXI6YmVmb3JlXG57XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ubWZwLWNvbnRlbnRcbntcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR6LWluZGV4OiAxMDQ1O1xufVxuLm1mcC1pbmxpbmUtaG9sZGVyIC5tZnAtY29udGVudCwgLm1mcC1hamF4LWhvbGRlciAubWZwLWNvbnRlbnRcbntcblx0Y3Vyc29yOiBhdXRvO1xuXHR3aWR0aDogMTAwJTtcbn1cbi5tZnAtYWpheC1jdXJcbntcblx0Y3Vyc29yOiBwcm9ncmVzcztcbn1cbi5tZnAtem9vbS1vdXQtY3VyLCAubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlXG57XG5cdGN1cnNvcjogLW1vei16b29tLW91dDtcblx0Y3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xuXHRjdXJzb3I6IHpvb20tb3V0O1xufVxuLm1mcC16b29tXG57XG5cdGN1cnNvcjogLW1vei16b29tLWluO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuXHRjdXJzb3I6IHpvb20taW47XG59XG4ubWZwLWF1dG8tY3Vyc29yIC5tZnAtY29udGVudFxue1xuXHRjdXJzb3I6IGF1dG87XG59XG4ubWZwLWNsb3NlLCAubWZwLWFycm93LCAubWZwLXByZWxvYWRlciwgLm1mcC1jb3VudGVyXG57XG5cdG1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdHdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tZnAtbG9hZGluZy5tZnAtZmlndXJlXG57XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ubWZwLWhpZGVcbntcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLm1mcC1wcmVsb2FkZXJcbntcblx0Y29sb3I6ICNDQ0M7XG5cdGxlZnQ6IDhweDtcblx0bWFyZ2luLXRvcDogLTAuOGVtO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiA4cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dG9wOiA1MCU7XG5cdHdpZHRoOiBhdXRvO1xuXHR6LWluZGV4OiAxMDQ0O1xufVxuLm1mcC1wcmVsb2FkZXIgYVxue1xuXHRjb2xvcjogI0NDQztcbn1cbi5tZnAtcHJlbG9hZGVyIGE6aG92ZXJcbntcblx0Y29sb3I6ICNGRkY7XG59XG4ubWZwLXMtcmVhZHkgLm1mcC1wcmVsb2FkZXJcbntcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5tZnAtcy1lcnJvciAubWZwLWNvbnRlbnRcbntcblx0ZGlzcGxheTogbm9uZTtcbn1cbmJ1dHRvbi5tZnAtY2xvc2UsIGJ1dHRvbi5tZnAtYXJyb3dcbntcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogMDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiBibG9jaztcblx0b3V0bGluZTogbm9uZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdHBhZGRpbmc6IDA7XG5cdHdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHR3ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcblx0ei1pbmRleDogMTA0Njtcbn1cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lclxue1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDA7XG59XG4ubWZwLWNsb3NlXG57XG5cdGNvbG9yOiAjRkZGO1xuXHRmb250LWZhbWlseTogQXJpYWwsIEJhc2tlcnZpbGxlLCBtb25vc3BhY2U7XG5cdGZvbnQtc2l6ZTogMjhweDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRoZWlnaHQ6IDQ0cHg7XG5cdGxpbmUtaGVpZ2h0OiA0NHB4O1xuXHRvcGFjaXR5OiAwLjY1O1xuXHRwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dG9wOiAwO1xuXHR3aWR0aDogNDRweDtcbn1cbi5tZnAtY2xvc2U6aG92ZXIsIC5tZnAtY2xvc2U6Zm9jdXNcbntcblx0b3BhY2l0eTogMTtcbn1cbi5tZnAtY2xvc2U6YWN0aXZlXG57XG5cdHRvcDogMXB4O1xufVxuLm1mcC1jbG9zZS1idG4taW4gLm1mcC1jbG9zZVxue1xuXHRjb2xvcjogIzMzMztcbn1cbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2UsIC5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlXG57XG5cdGNvbG9yOiAjRkZGO1xuXHRwYWRkaW5nLXJpZ2h0OiA2cHg7XG5cdHJpZ2h0OiAtNnB4O1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0d2lkdGg6IDEwMCU7XG59XG4ubWZwLWNvdW50ZXJcbntcblx0Y29sb3I6ICNDQ0M7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDE4cHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5tZnAtYXJyb3dcbntcblx0aGVpZ2h0OiAxMTBweDtcblx0bWFyZ2luOiAwO1xuXHRtYXJnaW4tdG9wOiAtNTVweDtcblx0b3BhY2l0eTogMC42NTtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0d2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG5cdHdpZHRoOiA5MHB4O1xufVxuLm1mcC1hcnJvdzphY3RpdmVcbntcblx0bWFyZ2luLXRvcDogLTU0cHg7XG59XG4ubWZwLWFycm93OmhvdmVyLCAubWZwLWFycm93OmZvY3VzXG57XG5cdG9wYWNpdHk6IDE7XG59XG4ubWZwLWFycm93OmJlZm9yZSwgLm1mcC1hcnJvdzphZnRlciwgLm1mcC1hcnJvdyAubWZwLWIsIC5tZnAtYXJyb3cgLm1mcC1hXG57XG5cdGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50O1xuXHRjb250ZW50OiAnJztcblx0ZGlzcGxheTogYmxvY2s7XG5cdGhlaWdodDogMDtcblx0bGVmdDogMDtcblx0bWFyZ2luLWxlZnQ6IDM1cHg7XG5cdG1hcmdpbi10b3A6IDM1cHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHR3aWR0aDogMDtcbn1cbi5tZnAtYXJyb3c6YWZ0ZXIsIC5tZnAtYXJyb3cgLm1mcC1hXG57XG5cdGJvcmRlci1ib3R0b20td2lkdGg6IDEzcHg7XG5cdGJvcmRlci10b3Atd2lkdGg6IDEzcHg7XG5cdHRvcDogOHB4O1xufVxuLm1mcC1hcnJvdzpiZWZvcmUsIC5tZnAtYXJyb3cgLm1mcC1iXG57XG5cdGJvcmRlci1ib3R0b20td2lkdGg6IDIxcHg7XG5cdGJvcmRlci10b3Atd2lkdGg6IDIxcHg7XG5cdG9wYWNpdHk6IDAuNztcbn1cbi5tZnAtYXJyb3ctbGVmdFxue1xuXHRsZWZ0OiAwO1xufVxuLm1mcC1hcnJvdy1sZWZ0OmFmdGVyLCAubWZwLWFycm93LWxlZnQgLm1mcC1hXG57XG5cdGJvcmRlci1yaWdodDogMTdweCBzb2xpZCAjRkZGO1xuXHRtYXJnaW4tbGVmdDogMzFweDtcbn1cbi5tZnAtYXJyb3ctbGVmdDpiZWZvcmUsIC5tZnAtYXJyb3ctbGVmdCAubWZwLWJcbntcblx0Ym9yZGVyLXJpZ2h0OiAyN3B4IHNvbGlkICMzRjNGM0Y7XG5cdG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuLm1mcC1hcnJvdy1yaWdodFxue1xuXHRyaWdodDogMDtcbn1cbi5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIsIC5tZnAtYXJyb3ctcmlnaHQgLm1mcC1hXG57XG5cdGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICNGRkY7XG5cdG1hcmdpbi1sZWZ0OiAzOXB4O1xufVxuLm1mcC1hcnJvdy1yaWdodDpiZWZvcmUsIC5tZnAtYXJyb3ctcmlnaHQgLm1mcC1iXG57XG5cdGJvcmRlci1sZWZ0OiAyN3B4IHNvbGlkICMzRjNGM0Y7XG59XG4ubWZwLWlmcmFtZS1ob2xkZXJcbntcblx0cGFkZGluZy1ib3R0b206IDQwcHg7XG5cdHBhZGRpbmctdG9wOiA0MHB4O1xufVxuLm1mcC1pZnJhbWUtaG9sZGVyIC5tZnAtY29udGVudFxue1xuXHRsaW5lLWhlaWdodDogMDtcblx0bWF4LXdpZHRoOiA5MDBweDtcblx0d2lkdGg6IDEwMCU7XG59XG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZVxue1xuXHR0b3A6IC00MHB4O1xufVxuLm1mcC1pZnJhbWUtc2NhbGVyXG57XG5cdGhlaWdodDogMDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZy10b3A6IDU2LjI1JTtcblx0d2lkdGg6IDEwMCU7XG59XG4ubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lXG57XG5cdGJhY2tncm91bmQ6ICMwMDA7XG5cdGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiAxMDAlO1xuXHRsZWZ0OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0d2lkdGg6IDEwMCU7XG59XG5pbWcubWZwLWltZ1xue1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiBhdXRvO1xuXHRsaW5lLWhlaWdodDogMDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdG1heC13aWR0aDogMTAwJTtcblx0bW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHBhZGRpbmc6IDQwcHggMCA0MHB4O1xuXHR3ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0d2lkdGg6IGF1dG87XG59XG4ubWZwLWZpZ3VyZVxue1xuXHRsaW5lLWhlaWdodDogMDtcbn1cbi5tZnAtZmlndXJlOmFmdGVyXG57XG5cdGJhY2tncm91bmQ6ICM0NDQ7XG5cdGJvdHRvbTogNDBweDtcblx0Ym94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG5cdGNvbnRlbnQ6ICcnO1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiBhdXRvO1xuXHRsZWZ0OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDQwcHg7XG5cdHdpZHRoOiBhdXRvO1xuXHR6LWluZGV4OiAtMTtcbn1cbi5tZnAtZmlndXJlIHNtYWxsXG57XG5cdGNvbG9yOiAjQkRCREJEO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRsaW5lLWhlaWdodDogMTRweDtcbn1cbi5tZnAtZmlndXJlIGZpZ3VyZVxue1xuXHRtYXJnaW46IDA7XG59XG4ubWZwLWJvdHRvbS1iYXJcbntcblx0Y3Vyc29yOiBhdXRvO1xuXHRsZWZ0OiAwO1xuXHRtYXJnaW4tdG9wOiAtMzZweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xufVxuLm1mcC10aXRsZVxue1xuXHRjb2xvcjogI0YzRjNGMztcblx0bGluZS1oZWlnaHQ6IDE4cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDM2cHg7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY29udGVudFxue1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG4ubWZwLWdhbGxlcnkgLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1maWd1cmVcbntcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSksIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KVxue1xuXHQubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXJcblx0e1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHR9XG5cdC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZ1xuXHR7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXHQubWZwLWltZy1tb2JpbGUgLm1mcC1maWd1cmU6YWZ0ZXJcblx0e1xuXHRcdGJvdHRvbTogMDtcblx0XHR0b3A6IDA7XG5cdH1cblx0Lm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsXG5cdHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0bWFyZ2luLWxlZnQ6IDVweDtcblx0fVxuXHQubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyXG5cdHtcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdG1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBhZGRpbmc6IDNweCA1cHg7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogYXV0bztcblx0XHR3ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXHQubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyOmVtcHR5XG5cdHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cdC5tZnAtaW1nLW1vYmlsZSAubWZwLWNvdW50ZXJcblx0e1xuXHRcdHJpZ2h0OiA1cHg7XG5cdFx0dG9wOiAzcHg7XG5cdH1cblx0Lm1mcC1pbWctbW9iaWxlIC5tZnAtY2xvc2Vcblx0e1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcblx0XHRoZWlnaHQ6IDM1cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDM1cHg7XG5cdFx0cGFkZGluZzogMDtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHRvcDogMDtcblx0XHR3aWR0aDogMzVweDtcblx0fVxufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTAwcHgpXG57XG5cdC5tZnAtYXJyb3dcblx0e1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG5cdFx0d2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG5cdH1cblx0Lm1mcC1hcnJvdy1sZWZ0XG5cdHtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAwO1xuXHRcdHdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwO1xuXHR9XG5cdC5tZnAtYXJyb3ctcmlnaHRcblx0e1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XG5cdFx0d2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XG5cdH1cblx0Lm1mcC1jb250YWluZXJcblx0e1xuXHRcdHBhZGRpbmctbGVmdDogNnB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0fVxufVxuLm1mcC1pZTcgLm1mcC1pbWdcbntcblx0cGFkZGluZzogMDtcbn1cbi5tZnAtaWU3IC5tZnAtYm90dG9tLWJhclxue1xuXHRsZWZ0OiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtMzAwcHg7XG5cdG1hcmdpbi10b3A6IDVweDtcblx0cGFkZGluZy1ib3R0b206IDVweDtcblx0d2lkdGg6IDYwMHB4O1xufVxuLm1mcC1pZTcgLm1mcC1jb250YWluZXJcbntcblx0cGFkZGluZzogMDtcbn1cbi5tZnAtaWU3IC5tZnAtY29udGVudFxue1xuXHRwYWRkaW5nLXRvcDogNDRweDtcbn1cbi5tZnAtaWU3IC5tZnAtY2xvc2Vcbntcblx0cGFkZGluZy10b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMSBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNCQVNFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcHJveGltYS1ub3ZhKCk7XG5cbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcblxuICBmb250LXNpemU6IDc1JTtcblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgK2Zyb20td2lkdGgoOTkycHgpIHtcbiAgICBmb250LXNpemU6IDkwJTtcbiAgfVxuXG4gICtmcm9tLXdpZHRoKDEyMDBweCkge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgfVxuXG5cblxufVxuXG5odG1sLCBib2R5IHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuXHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbmEge1xuXHRjb2xvcjogaW5oZXJpdDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkdSSUQgU0VUVElOR1NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vLyBMb3N0IEdyaWQgdjUuMS42IC0gaHR0cHM6Ly9naXRodWIuY29tL2NvcnlzaW1tb25zL2xvc3RcbiRndXR0ZXIgPSAzMHB4O1xuJHJ0bCA9IGZhbHNlO1xuXG5cblxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5DT0xPUiBTRVRUSU5HU1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8vIEFycmF5cyBvZiBjb2xvciBjYWxsIHlvdXIgY29sb3IgbGlrZSB0aGlzICRjb2xvcnNbXCJwcmltYXJ5XCJdLmRhcms7XG4kY29sb3JzID0ge1xuICBwcmltYXJ5OiB7XG4gICAgYmFzZTogIzM4NGE3NSxcbiAgICBsaWdodDogIzAwYWNlZCxcbiAgICBkYXJrOiAjMWYyOTQyXG4gIH0sXG4gIGFjY2VudDoge1xuICAgIGJhc2U6ICNlOTI3MzVcbiAgfSxcbiAgc2Vjb25kYXJ5OiB7XG4gICAgYmFzZTogIzc5Nzk3OSxcbiAgICBsaWdodDogI2Q3ZGFkZixcbiAgICBkYXJrZXI6ICM3MzczNzNcbiAgfSxcbiAgYmFja2dyb3VuZDoge1xuICAgIGJhc2U6ICNlYmVkZjFcbiAgfSxcbiAgc29jaWFsOiB7XG4gICAgdHdpdHRlcjogIzFkY2FmZlxuICB9XG59XG5cbi8vI2U5MjczNSByZWRcblxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5GT05UIFNFVFRJTkdTXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5wcm94aW1hLW5vdmEoKSB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbnByb3hpbWEtbm92YS1ib2xkKCkge1xuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5wcm94aW1hLW5vdmEtYmxhY2soKSB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG5cblxuXG5cblxuLyogQmFzZSBzaXplcyAqL1xuJGJhc2UtZm9udC1zaXplICAgICAgICAgICAgID0gMTZweDsgLyogYnJvd3NlciBkZWZhdWx0ICovXG4kYmFzZS1saW5lLWhlaWdodCAgICAgICAgICAgPSAkYmFzZS1mb250LXNpemUgKiAxLjU7XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNGT1JNUyBFTEVNRU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG5cdGJhY2tncm91bmQ6ICRjb2xvcnNbXCJiYWNrZ3JvdW5kXCJdLmJhc2U7XG5cdGNvbG9yOiAkY29sb3JzW1wic2Vjb25kYXJ5XCJdLmJhc2U7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyOiBub25lO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMCAzLjg0NjE1Mzg0NjIlO1xuXG5cbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5zZWxlY3Qge1xuXHRoZWlnaHQ6IDQwcHg7XG5cblx0K2Zyb20td2lkdGgoNzY4cHgpIHtcblx0XHRoZWlnaHQ6IDUwcHg7XG5cdH1cbn1cblxuXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhLFxuYnV0dG9uIHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuXG5zZWxlY3Qge1xuXHRhcHBlYXJhbmNlOiBub25lO1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3N2Zy90cmlhbmdsZS1kb3duLnN2ZycpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5NiUgY2VudGVyO1xuXHR0ZXh0LWluZGVudDogMC4wMXB4O1xuXHR0ZXh0LW92ZXJmbG93OiBcIlwiO1xuXG5cdCYuZXJyb3Ige1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcnNbXCJhY2NlbnRcIl0uYmFzZTtcblx0fVxufVxuXG5sZWdlbmQge1xuXHRjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcnNbXCJiYWNrZ3JvdW5kXCJdLmJhc2U7XG5cdHdpZHRoOiAxMDAlO1xuXHRwcm94aW1hLW5vdmEtYm9sZCgpO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHNldC1mb250LXNpemUoMjBweCk7XG5cdHBhZGRpbmctbGVmdDogMTVweDtcblx0cGFkZGluZy1ib3R0b206IDI0cHg7XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogNHB4O1xuXHRcdGhlaWdodDogMTRweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JzW1wicHJpbWFyeVwiXS5iYXNlO1xuXHRcdHRvcDogNHB4O1xuXHRcdGxlZnQ6IDBweDtcblx0fVxufVxuXG5maWVsZHNldCB7XG5cdGJvcmRlcjogbm9uZTtcblx0bWFyZ2luLWJvdHRvbTogNTBweDtcblx0cGFkZGluZzogMDtcbn1cblxubGFiZWwge1xuXHRjb2xvcjogJGNvbG9yc1tcInNlY29uZGFyeVwiXS5kYXJrZXI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdCtmcm9tLXdpZHRoKDc2OHB4KSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxufVxuXG50ZXh0YXJlYSB7XG5cdHBhZGRpbmc6IDE1cHg7XG5cdGhlaWdodDogMTUwcHg7XG5cdHJlc2l6ZTogbm9uZTtcblxuXHQmLmVycm9yIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3JzW1wiYWNjZW50XCJdLmJhc2U7XG5cdH1cbn1cblxuLnNlbGVjdC1wcmV2aWV3IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPUk1TIEVSUk9SU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaW5wdXQge1xuXHQmLmVycm9yIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3JzW1wiYWNjZW50XCJdLmJhc2U7XG5cdH1cbn1cblxuXG4uZXJyb3ItbWVzc2FnZSB7XG5cdGNvbG9yOiAkY29sb3JzW1wiYWNjZW50XCJdLmJhc2U7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDE1cHggMHB4IDIwcHg7XG59XG5cbi5lcnJvci16b25lIHtcblx0Y29sb3I6ICRjb2xvcnNbXCJhY2NlbnRcIl0uYmFzZTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0dMT0JBTCBMQVlPVVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5sLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgLy8gbWF4LXdpZHRoOiAxOTIwcHg7XG4gIC8vIG1hcmdpbjogMCBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLmwtY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcblxuICArZnJvbS13aWR0aCgxMjAwcHgpIHtcbiAgICBwYWRkaW5nOiAwIDAgMCAyMS4wOTM3NSU7XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xBWU9VVCBGT1JNU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZvcm0tcm93IHtcblx0Y2xlYXJmaXgoKTtcblx0bWFyZ2luLWJvdHRvbTogMTVweDtcblxuXHQuZm9ybS1ncm91cCB7XG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG5cdFx0XHQrZnJvbS13aWR0aCg0ODBweCkge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZm9ybS1ncm91cCB7XG5cblx0K2Zyb20td2lkdGgoNDgwcHgpIHtcblx0XHRjb2x1bW4oJzEvMicpO1xuXHR9XG59XG4iLCIvLyBMb3N0IEdyaWQgdjUuMS42IC0gaHR0cHM6Ly9naXRodWIuY29tL2NvcnlzaW1tb25zL2xvc3RcblxuJGd1dHRlciA9IDMwcHhcbiRydGwgPSBmYWxzZVxuJGZsZXhib3ggPSBmYWxzZVxuXG5cbi8qKlxuICogU2V0cyBhIHRyYW5zbHVjZW50IGJhY2tncm91bmQgY29sb3IgdG8gYWxsIGVsZW1lbnRzIGl0IGFmZmVjdHMuIEhlbHBmdWwgd2hpbGUgc2V0dGluZyB1cCwgb3IgZGVidWdnaW5nLCB0aGUgc3RydWN0dXJlIG9mIHlvdXIgc2l0ZSB0byBtYWtlIHN1cmUgYWxsIGl0ZW1zIGFyZSBjbGVhcmVkIGNvcnJlY3RseS5cbiAqXG4gKiBAcGFyYW0ge2NvbG9yfSBbJGJnPWJsdWVdIC0gQSBjb2xvciB0byBiZSBsaWdodGVuZWQsIHNvIG1ha2Ugc3VyZSB5b3UgcGljayBhIGRhcmtpc2ggY29sb3IuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgc2VjdGlvblxuICogICAgIGVkaXQocmVkKVxuICovXG5cbmVkaXQoJGJnID0gYmx1ZSlcbiAgKlxuICAgIGJhY2tncm91bmQ6IHJnYmEoJGJnLCAxMCUpXG5cblxuLyoqXG4gKiBDbGVhcmZpeCB1c2VkIHRvIGNsZWFyIGZsb2F0ZWQgY2hpbGRyZW4gZWxlbWVudHMuIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrXG4gKlxuICogQGV4YW1wbGVcbiAqICAgLnBhcmVudFxuICogICAgIGNsZWFyZml4KClcbiAqICAgICAuY2hpbGRcbiAqICAgICAgIGNvbHVtbignMS8yJylcbiAqL1xuXG5jbGVhcmZpeCgpXG4gICp6b29tOiAxXG4gICY6YmVmb3JlLCAmOmFmdGVyXG4gICAgY29udGVudDogJydcbiAgICBkaXNwbGF5OiB0YWJsZVxuICAmOmFmdGVyXG4gICAgY2xlYXI6IGJvdGhcblxuXG4vKipcbiAqIENyZWF0ZXMgYSBGbGV4Ym94IGNvbnRhaW5lci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRkaXJlY3Rpb249cm93XSAtIFRoZSBmbGV4LWRpcmVjdGlvbiB0aGUgY29udGFpbmVyIHNob3VsZCBjcmVhdGUuIFRoaXMgaXMgdHlwaWNhbGx5IG9wcG9zaXRlIHRvIHRoZSBlbGVtZW50IHlvdSdyZSBjcmVhdGluZyBzbyBhIHJvdygpIHdvdWxkIG5lZWQgZmxleC1jb250YWluZXIoY29sdW1uKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogICAkZmxleGJveCA9IHRydWVcbiAqXG4gKiAgIHNlY3Rpb25cbiAqICAgICBmbGV4LWNvbnRhaW5lcigpXG4gKiAgICAgZmlndXJlXG4gKiAgICAgICBjb2x1bW4oJzEvMicpXG4gKi9cblxuZmxleC1jb250YWluZXIoJGRpcmVjdGlvbiA9IHJvdylcbiAgZGlzcGxheTogZmxleFxuICBpZiAkZGlyZWN0aW9uIGlzIHJvd1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXBcbiAgaWYgJGRpcmVjdGlvbiBpcyBjb2x1bW5cbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXBcblxuXG4vKipcbiAqIEhvcml6b250YWxseSBjZW50ZXIgYSBjb250YWluZXIgZWxlbWVudCBhbmQgYXBwbHkgcGFkZGluZyB0byBpdC5cbiAqXG4gKiBAcGFyYW0ge3VuaXR9IFskbWF4LXNpemU9MTE0MHB4XSAtIEEgbWF4LXdpZHRoIHRvIGFzc2lnbi4gQ2FuIGJlIGFueSB1bml0LlxuICogQHBhcmFtIHt1bml0fSBbJHBhZD0wXSAtIFBhZGRpbmcgb24gdGhlIGxlZnQgYW5kIHJpZ2h0IG9mIHRoZSBlbGVtZW50LiBDYW4gYmUgYW55IHVuaXQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFskZmxleD0kZmxleGJveF0gLSBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBlbGVtZW50IHNob3VsZCB1c2UgRmxleGJveCBvciBub3QuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgc2VjdGlvblxuICogICAgIGNlbnRlcig5MDBweClcbiAqL1xuXG5jZW50ZXIoJG1heC1zaXplID0gMTE0MHB4LCAkcGFkID0gMCwgJGZsZXggPSAkZmxleGJveClcbiAgaWYgJGZsZXggaXMgZmFsc2VcbiAgICBjbGVhcmZpeCgpXG4gIGVsc2VcbiAgICBmbGV4LWNvbnRhaW5lcigpXG4gIGlmICRwYWQgaXMgbm90IDBcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkXG4gIG1heC13aWR0aDogJG1heC1zaXplXG4gIG1hcmdpbi1sZWZ0OiBhdXRvXG4gIG1hcmdpbi1yaWdodDogYXV0b1xuXG5cbi8qKlxuICogQWxpZ24gbmVzdGVkIGVsZW1lbnRzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGxvY2F0aW9uPW1pZGRsZS1jZW50ZXJdIC0gVGhlIHBvc2l0aW9uIHRoZSBuZXN0ZWQgZWxlbWVudCB0YWtlcyByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50LlxuICogQHBhcmFtIHtib29sZWFufSBbJGZsZXg9JGZsZXhib3hdIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgZWxlbWVudCBzaG91bGQgdXNlIEZsZXhib3ggb3Igbm90LlxuICpcbiAqIC0gcmVzZXRcbiAqIC0gdG9wLWxlZnRcbiAqIC0gdG9wLWNlbnRlciBvciB0b3BcbiAqIC0gdG9wLXJpZ2h0XG4gKiAtIG1pZGRsZS1sZWZ0IG9yIGxlZnRcbiAqIC0gbWlkZGxlLXJpZ2h0IG9yIHJpZ2h0XG4gKiAtIGJvdHRvbS1sZWZ0XG4gKiAtIGJvdHRvbS1jZW50ZXIgb3IgYm90dG9tXG4gKiAtIGJvdHRvbS1yaWdodFxuICpcbiAqIEBleGFtcGxlXG4gKiAgIC5wYXJlbnRcbiAqICAgICBhbGlnbihyaWdodClcbiAqICAgICB3aWR0aDogNjAwcHhcbiAqICAgICBoZWlnaHQ6IDQwMHB4XG4gKiAgICAgLmNoaWxkXG4gKiAgICAgICB3aWR0aDogMzAwcHhcbiAqICAgICAgIGhlaWdodDogMTUwcHhcbiAqL1xuXG5hbGlnbigkbG9jYXRpb24gPSBtaWRkbGUtY2VudGVyLCAkZmxleCA9ICRmbGV4Ym94KVxuICBpZiAkZmxleCBpcyBmYWxzZVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgID4gKlxuICAgICAgaWYgJGxvY2F0aW9uIGlzIHJlc2V0XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWNcbiAgICAgIGVsc2VcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICBpZiAkbG9jYXRpb24gaXMgcmVzZXRcbiAgICAgICAgdG9wOiBhdXRvXG4gICAgICAgIHJpZ2h0OiBhdXRvXG4gICAgICAgIGJvdHRvbTogYXV0b1xuICAgICAgICBsZWZ0OiBhdXRvXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMClcbiAgICAgIGVsc2UgaWYgJGxvY2F0aW9uIGlzIHRvcC1sZWZ0XG4gICAgICAgIHRvcDogMFxuICAgICAgICByaWdodDogYXV0b1xuICAgICAgICBib3R0b206IGF1dG9cbiAgICAgICAgbGVmdDogMFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyB0b3AtY2VudGVyIG9yICRsb2NhdGlvbiBpcyB0b3BcbiAgICAgICAgdG9wOiAwXG4gICAgICAgIHJpZ2h0OiBhdXRvXG4gICAgICAgIGJvdHRvbTogYXV0b1xuICAgICAgICBsZWZ0OiA1MCVcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKVxuICAgICAgZWxzZSBpZiAkbG9jYXRpb24gaXMgdG9wLXJpZ2h0XG4gICAgICAgIHRvcDogMFxuICAgICAgICByaWdodDogMFxuICAgICAgICBib3R0b206IGF1dG9cbiAgICAgICAgbGVmdDogYXV0b1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyBtaWRkbGUtbGVmdCBvciAkbG9jYXRpb24gaXMgbGVmdFxuICAgICAgICB0b3A6IDUwJVxuICAgICAgICByaWdodDogYXV0b1xuICAgICAgICBib3R0b206IGF1dG9cbiAgICAgICAgbGVmdDogMFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApXG4gICAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyBtaWRkbGUtcmlnaHQgb3IgJGxvY2F0aW9uIGlzIHJpZ2h0XG4gICAgICAgIHRvcDogNTAlXG4gICAgICAgIHJpZ2h0OiAwXG4gICAgICAgIGJvdHRvbTogYXV0b1xuICAgICAgICBsZWZ0OiBhdXRvXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMClcbiAgICAgIGVsc2UgaWYgJGxvY2F0aW9uIGlzIGJvdHRvbS1sZWZ0XG4gICAgICAgIHRvcDogYXV0b1xuICAgICAgICByaWdodDogYXV0b1xuICAgICAgICBib3R0b206IDBcbiAgICAgICAgbGVmdDogMFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyBib3R0b20tY2VudGVyIG9yICRsb2NhdGlvbiBpcyBib3R0b21cbiAgICAgICAgdG9wOiBhdXRvXG4gICAgICAgIHJpZ2h0OiBhdXRvXG4gICAgICAgIGJvdHRvbTogMFxuICAgICAgICBsZWZ0OiA1MCVcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKVxuICAgICAgZWxzZSBpZiAkbG9jYXRpb24gaXMgYm90dG9tLXJpZ2h0XG4gICAgICAgIHRvcDogYXV0b1xuICAgICAgICByaWdodDogMFxuICAgICAgICBib3R0b206IDBcbiAgICAgICAgbGVmdDogYXV0b1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApXG4gICAgICBlbHNlXG4gICAgICAgIHRvcDogNTAlXG4gICAgICAgIHJpZ2h0OiBhdXRvXG4gICAgICAgIGJvdHRvbTogYXV0b1xuICAgICAgICBsZWZ0OiA1MCVcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKVxuICBlbHNlXG4gICAgZGlzcGxheTogZmxleFxuICAgIGlmICRsb2NhdGlvbiBpcyByZXNldFxuICAgICAganVzdGlmeS1jb250ZW50OiBpbmhlcml0XG4gICAgICBhbGlnbi1pdGVtczogaW5oZXJpdFxuICAgIGVsc2UgaWYgJGxvY2F0aW9uIGlzIHRvcC1sZWZ0XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnRcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0XG4gICAgZWxzZSBpZiAkbG9jYXRpb24gaXMgdG9wLWNlbnRlciBvciAkbG9jYXRpb24gaXMgdG9wXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclxuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnRcbiAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyB0b3AtcmlnaHRcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmRcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0XG4gICAgZWxzZSBpZiAkbG9jYXRpb24gaXMgbWlkZGxlLWxlZnQgb3IgJGxvY2F0aW9uIGlzIGxlZnRcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlclxuICAgIGVsc2UgaWYgJGxvY2F0aW9uIGlzIG1pZGRsZS1yaWdodCBvciAkbG9jYXRpb24gaXMgcmlnaHRcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmRcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXJcbiAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyBib3R0b20tbGVmdFxuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmRcbiAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyBib3R0b20tY2VudGVyIG9yICRsb2NhdGlvbiBpcyBib3R0b21cbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmRcbiAgICBlbHNlIGlmICRsb2NhdGlvbiBpcyBib3R0b20tcmlnaHRcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmRcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZFxuICAgIGVsc2VcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyXG5cblxuLyoqXG4gKiBDcmVhdGVzIGEgY29sdW1uIHRoYXQgaXMgYSBmcmFjdGlvbiBvZiB0aGUgc2l6ZSBvZiBpdCdzIGNvbnRhaW5pbmcgZWxlbWVudCB3aXRoIGEgZ3V0dGVyLiBZb3UgZG9uJ3QgbmVlZCB0byBwYXNzIGFueSBhZGRpdGlvbmFsIHJhdGlvcyAoZnJhY3Rpb25zKSBhcyB0aGUgZ3JpZCBzeXN0ZW0gd2lsbCBtYWtlIHVzZSBvZiBjYWxjKCkuIE5vdGUgdGhhdCBmcmFjdGlvbnMgbXVzdCBhbHdheXMgYmUgd3JhcHBlZCBpbiBxdW90ZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFskZnJhY3Rpb249JzEvMSddIC0gVGhpcyBpcyBhIHNpbXBsZSBmcmFjdGlvbiBvZiB0aGUgY29udGFpbmluZyBlbGVtZW50J3Mgd2lkdGguIFRoaXMgbXVzdCBiZSBhIHN0cmluZyB3cml0dGVuIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRjeWNsZT1jb252ZXJ0KHVucXVvdGUoc3BsaXQoJy8nLCAkZnJhY3Rpb24pWzFdKSldIC0gTG9zdCB3b3JrcyBieSBhc3NpZ25pbmcgYSBtYXJnaW4tcmlnaHQgdG8gYWxsIGVsZW1lbnRzIGV4Y2VwdCB0aGUgbGFzdCBpbiB0aGUgcm93LiBJdCBkb2VzIHRoaXMgYnkgZGVmYXVsdCBieSB1c2luZyB0aGUgZGVub21pbmF0b3Igb2YgdGhlIGZyYWN0aW9uIHlvdSBwaWNrLiBUbyBvdmVycmlkZSB0aGlzIGRlZmF1bHQgdXNlIHRoaXMgcGFyYW0uIGUuZy4gY29sdW1uKCcyLzQnLCAkY3ljbGU6IDIpXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXQ9JGd1dHRlcl0gLSBUaGUgbWFyZ2luIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBlbGVtZW50IHVzZWQgdG8gY3JlYXRlIGEgZ3V0dGVyLiBUeXBpY2FsbHkgdGhpcyBpcyBsZWZ0IGFsb25lIGFuZCB0aGUgZ2xvYmFsICRndXR0ZXIgd2lsbCBiZSB1c2VkLCBidXQgeW91IGNhbiBvdmVycmlkZSBpdCBoZXJlIGlmIHlvdSB3YW50IGNlcnRhaW4gZWxlbWVudHMgdG8gaGF2ZSBhIHBhcnRpY3VsYXJseSBsYXJnZSBvciBzbWFsbCBndXR0ZXIgKHBhc3MgMCBmb3Igbm8gZ3V0dGVyIGF0IGFsbCkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFskZmxleD0kZmxleGJveF0gLSBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBlbGVtZW50IHNob3VsZCB1c2UgRmxleGJveCBvciBub3QuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgZmlndXJlXG4gKiAgICAgY29sdW1uKCcxLzMnKVxuICovXG5cbmNvbHVtbigkZnJhY3Rpb24gPSAnMS8xJywgJGN5Y2xlID0gY29udmVydCh1bnF1b3RlKHNwbGl0KCcvJywgJGZyYWN0aW9uKVsxXSkpLCAkZ3V0ID0gJGd1dHRlciwgJGZsZXggPSAkZmxleGJveClcbiAgX2dldC1zaXplKClcbiAgICBpZiAkZ3V0IGlzIDBcbiAgICAgIHJldHVybiBzKCdjYWxjKDk5Ljk5OTk5OSUgKiAlcyknLCB1bnF1b3RlKCRmcmFjdGlvbikpXG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTklICogJXMgLSAoJXMgLSAlcyAqICVzKSknLCB1bnF1b3RlKCRmcmFjdGlvbiksICRndXQsICRndXQsIHVucXVvdGUoJGZyYWN0aW9uKSlcbiAgd2lkdGg6IF9nZXQtc2l6ZSgpXG4gIGlmICRmbGV4IGlzIGZhbHNlXG4gICAgaWYgJHJ0bFxuICAgICAgJjpudGgtY2hpbGQobilcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRndXRcbiAgICAgICAgZmxvYXQ6IHJpZ2h0XG4gICAgICAgIGNsZWFyOiBub25lXG4gICAgICAmOmxhc3QtY2hpbGRcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBcbiAgICAgICY6bnRoLWNoaWxkKHskY3ljbGV9bilcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBcbiAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICY6bnRoLWNoaWxkKHskY3ljbGV9biArIDEpXG4gICAgICAgIGNsZWFyOiByaWdodFxuICAgIGVsc2VcbiAgICAgICY6bnRoLWNoaWxkKG4pXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGd1dFxuICAgICAgICBmbG9hdDogbGVmdFxuICAgICAgICBjbGVhcjogbm9uZVxuICAgICAgJjpsYXN0LWNoaWxkXG4gICAgICAgIG1hcmdpbi1yaWdodDogMFxuICAgICAgJjpudGgtY2hpbGQoeyRjeWNsZX1uKVxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBcbiAgICAgICAgZmxvYXQ6IHJpZ2h0XG4gICAgICAmOm50aC1jaGlsZCh7JGN5Y2xlfW4gKyAxKVxuICAgICAgICBjbGVhcjogbGVmdFxuICBlbHNlXG4gICAgZmxleDogMCAwIGF1dG9cbiAgICBpZiAkcnRsXG4gICAgICAmOm50aC1jaGlsZChuKVxuICAgICAgICBtYXJnaW4tbGVmdDogJGd1dFxuICAgICAgJjpsYXN0LWNoaWxkXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwXG4gICAgICAmOm50aC1jaGlsZCh7JGN5Y2xlfW4pXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwXG4gICAgZWxzZVxuICAgICAgJjpudGgtY2hpbGQobilcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ3V0XG4gICAgICAmOmxhc3QtY2hpbGRcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwXG4gICAgICAmOm50aC1jaGlsZCh7JGN5Y2xlfW4pXG4gICAgICAgIG1hcmdpbi1yaWdodDogMFxuXG5cbi8qKlxuICogQ3JlYXRlcyBhIHJvdyB0aGF0IGlzIGEgZnJhY3Rpb24gb2YgdGhlIHNpemUgb2YgaXQncyBjb250YWluaW5nIGVsZW1lbnQgd2l0aCBhIGd1dHRlci4gWW91IGRvbid0IG5lZWQgdG8gcGFzcyBhbnkgYWRkaXRpb25hbCByYXRpb3MgKGZyYWN0aW9ucykgYXMgdGhlIGdyaWQgc3lzdGVtIHdpbGwgbWFrZSB1c2Ugb2YgY2FsYygpLiBOb3RlIHRoYXQgZnJhY3Rpb25zIG11c3QgYWx3YXlzIGJlIHdyYXBwZWQgaW4gcXVvdGVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGZyYWN0aW9uPScxLzEnXSAtIFRoaXMgaXMgYSBzaW1wbGUgZnJhY3Rpb24gb2YgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCdzIGhlaWdodC4gVGhpcyBtdXN0IGJlIGEgc3RyaW5nIHdyaXR0ZW4gYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dD0kZ3V0dGVyXSAtIFRoZSBtYXJnaW4gb24gdGhlIGJvdHRvbSBvZiB0aGUgZWxlbWVudCB1c2VkIHRvIGNyZWF0ZSBhIGd1dHRlci4gVHlwaWNhbGx5IHRoaXMgaXMgbGVmdCBhbG9uZSBhbmQgdGhlIGdsb2JhbCAkZ3V0dGVyIHdpbGwgYmUgdXNlZCwgYnV0IHlvdSBjYW4gb3ZlcnJpZGUgaXQgaGVyZSBpZiB5b3Ugd2FudCBjZXJ0YWluIGVsZW1lbnRzIHRvIGhhdmUgYSBwYXJ0aWN1bGFybHkgbGFyZ2Ugb3Igc21hbGwgZ3V0dGVyIChwYXNzIDAgZm9yIG5vIGd1dHRlciBhdCBhbGwpLlxuICogQHBhcmFtIHtib29sZWFufSBbJGZsZXg9JGZsZXhib3hdIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgZWxlbWVudCBzaG91bGQgdXNlIEZsZXhib3ggb3Igbm90LlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGZpZ3VyZVxuICogICAgIHJvdygnMS8zJylcbiAqL1xuXG5yb3coJGZyYWN0aW9uID0gJzEvMScsICRndXQgPSAkZ3V0dGVyLCAkZmxleCA9ICRmbGV4Ym94KVxuICBfZ2V0LXNpemUoKVxuICAgIGlmICRndXQgaXMgMFxuICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTk5OTk5JSAqICVzKScsIHVucXVvdGUoJGZyYWN0aW9uKSlcbiAgICBlbHNlXG4gICAgICByZXR1cm4gcygnY2FsYyg5OS45OSUgKiAlcyAtICglcyAtICVzICogJXMpKScsIHVucXVvdGUoJGZyYWN0aW9uKSwgJGd1dCwgJGd1dCwgdW5xdW90ZSgkZnJhY3Rpb24pKVxuICB3aWR0aDogMTAwJVxuICBoZWlnaHQ6IF9nZXQtc2l6ZSgpXG4gIG1hcmdpbi1ib3R0b206ICRndXRcbiAgaWYgJGZsZXggaXMgdHJ1ZVxuICAgIGZsZXg6IDAgMCBhdXRvXG4gICY6bGFzdC1jaGlsZFxuICAgIG1hcmdpbi1ib3R0b206IDBcblxuXG4vKipcbiAqIENyZWF0ZXMgYSBibG9jayB0aGF0IGlzIGEgZnJhY3Rpb24gb2YgdGhlIHNpemUgb2YgaXQncyBjb250YWluaW5nIGVsZW1lbnQgd2l0aCBhIGd1dHRlciBvbiB0aGUgcmlnaHQgYW5kIGJvdHRvbS4gWW91IGRvbid0IG5lZWQgdG8gcGFzcyBhbnkgYWRkaXRpb25hbCByYXRpb3MgKGZyYWN0aW9ucykgYXMgdGhlIGdyaWQgc3lzdGVtIHdpbGwgbWFrZSB1c2Ugb2YgY2FsYygpLiBOb3RlIHRoYXQgZnJhY3Rpb25zIG11c3QgYWx3YXlzIGJlIHdyYXBwZWQgaW4gcXVvdGVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGZyYWN0aW9uPScxLzEnXSAtIFRoaXMgaXMgYSBzaW1wbGUgZnJhY3Rpb24gb2YgdGhlIGNvbnRhaW5pbmcgZWxlbWVudCdzIHdpZHRoL2hlaWdodC4gVGhpcyBtdXN0IGJlIGEgc3RyaW5nIHdyaXR0ZW4gYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGN5Y2xlPWNvbnZlcnQodW5xdW90ZShzcGxpdCgnLycsICRmcmFjdGlvbilbMV0pKV0gLSBMb3N0IHdvcmtzIGJ5IGFzc2lnbmluZyBhIG1hcmdpbi1yaWdodC9ib3R0b20gdG8gYWxsIGVsZW1lbnRzIGV4Y2VwdCB0aGUgbGFzdCByb3cgKG5vIG1hcmdpbi1ib3R0b20pIGFuZCB0aGUgbGFzdCBjb2x1bW4gKG5vIG1hcmdpbi1yaWdodCkuIEl0IGRvZXMgdGhpcyBieSBkZWZhdWx0IGJ5IHVzaW5nIHRoZSBkZW5vbWluYXRvciBvZiB0aGUgZnJhY3Rpb24geW91IHBpY2suIFRvIG92ZXJyaWRlIHRoaXMgZGVmYXVsdCB1c2UgdGhpcyBwYXJhbS4gZS5nLiB3YWZmbGUoJzIvNCcsICRjeWNsZTogMilcbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dD0kZ3V0dGVyXSAtIFRoZSBtYXJnaW4gb24gdGhlIHJpZ2h0IGFuZCBib3R0b20gc2lkZSBvZiB0aGUgZWxlbWVudCB1c2VkIHRvIGNyZWF0ZSBhIGd1dHRlci4gVHlwaWNhbGx5IHRoaXMgaXMgbGVmdCBhbG9uZSBhbmQgdGhlIGdsb2JhbCAkZ3V0dGVyIHdpbGwgYmUgdXNlZCwgYnV0IHlvdSBjYW4gb3ZlcnJpZGUgaXQgaGVyZSBpZiB5b3Ugd2FudCBjZXJ0YWluIGVsZW1lbnRzIHRvIGhhdmUgYSBwYXJ0aWN1bGFybHkgbGFyZ2Ugb3Igc21hbGwgZ3V0dGVyIChwYXNzIDAgZm9yIG5vIGd1dHRlciBhdCBhbGwpLlxuICogQHBhcmFtIHtib29sZWFufSBbJGZsZXg9JGZsZXhib3hdIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgZWxlbWVudCBzaG91bGQgdXNlIEZsZXhib3ggb3Igbm90LlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGZpZ3VyZVxuICogICAgIHdhZmZsZSgnMS8zJylcbiAqL1xuXG53YWZmbGUoJGZyYWN0aW9uID0gJzEvMScsICRjeWNsZSA9IGNvbnZlcnQodW5xdW90ZShzcGxpdCgnLycsICRmcmFjdGlvbilbMV0pKSwgJGd1dCA9ICRndXR0ZXIsICRmbGV4ID0gJGZsZXhib3gpXG4gIF9nZXQtc2l6ZSgpXG4gICAgaWYgJGd1dCBpcyAwXG4gICAgICByZXR1cm4gcygnY2FsYyg5OS45OTk5OTklICogJXMpJywgdW5xdW90ZSgkZnJhY3Rpb24pKVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBzKCdjYWxjKDk5Ljk5JSAqICVzIC0gKCVzIC0gJXMgKiAlcykpJywgdW5xdW90ZSgkZnJhY3Rpb24pLCAkZ3V0LCAkZ3V0LCB1bnF1b3RlKCRmcmFjdGlvbikpXG4gIHdpZHRoOiBfZ2V0LXNpemUoKVxuICBoZWlnaHQ6IF9nZXQtc2l6ZSgpXG4gIGlmICRmbGV4IGlzIGZhbHNlXG4gICAgaWYgJHJ0bFxuICAgICAgJjpudGgtY2hpbGQobilcbiAgICAgICAgZmxvYXQ6IHJpZ2h0XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ3V0XG4gICAgICAgIGNsZWFyOiBub25lXG4gICAgICAmOm50aC1jaGlsZCh7JGN5Y2xlfW4pLCAmOmxhc3QtY2hpbGRcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBcbiAgICAgICY6bnRoLWNoaWxkKHskY3ljbGV9biArIDEpXG4gICAgICAgIGNsZWFyOiByaWdodFxuICAgIGVsc2VcbiAgICAgICY6bnRoLWNoaWxkKG4pXG4gICAgICAgIGZsb2F0OiBsZWZ0XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGd1dFxuICAgICAgICBjbGVhcjogbm9uZVxuICAgICAgJjpudGgtY2hpbGQoeyRjeWNsZX1uKSwgJjpsYXN0LWNoaWxkXG4gICAgICAgIG1hcmdpbi1yaWdodDogMFxuICAgICAgJjpudGgtY2hpbGQoeyRjeWNsZX1uICsgMSlcbiAgICAgICAgY2xlYXI6IGxlZnRcbiAgZWxzZVxuICAgIGZsZXg6IDAgMCBhdXRvXG4gICAgaWYgJHJ0bFxuICAgICAgJjpudGgtY2hpbGQobilcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRndXRcbiAgICAgICY6bnRoLWNoaWxkKHskY3ljbGV9biksICY6bGFzdC1jaGlsZFxuICAgICAgICBtYXJnaW4tbGVmdDogMFxuICAgIGVsc2VcbiAgICAgICY6bnRoLWNoaWxkKG4pXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGd1dFxuICAgICAgJjpudGgtY2hpbGQoeyRjeWNsZX1uKSwgJjpsYXN0LWNoaWxkXG4gICAgICAgIG1hcmdpbi1yaWdodDogMFxuICAmOm50aC1jaGlsZChuKVxuICAgIG1hcmdpbi1ib3R0b206ICRndXRcbiAgJjpsYXN0LWNoaWxkXG4gICAgbWFyZ2luLWJvdHRvbTogMFxuICAmOm50aC1sYXN0LWNoaWxkKC1uICsgeyRjeWNsZX0pXG4gICAgbWFyZ2luLWJvdHRvbTogMFxuXG4vKipcbiAqIE1hcmdpbiB0byB0aGUgbGVmdCwgcmlnaHQsIGJvdHRvbSwgb3IgdG9wLCBvZiBhbiBlbGVtZW50IGRlcGVuZGluZyBvbiBpZiB0aGUgZnJhY3Rpb24gcGFzc2VkIGlzIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLiBJdCB3b3JrcyBmb3IgYm90aCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBncmlkcyBidXQgbm90IGJvdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFskZnJhY3Rpb249JzEvMSddIC0gRnJhY3Rpb24gb2YgdGhlIGNvbnRhaW5lciB0byBiZSBvZmZzZXQuIE11c3QgYmUgYSBzdHJpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRkaXI9cm93XSAtIERpcmVjdGlvbiB0aGUgZ3JpZCBpcyBnb2luZy4gU2hvdWxkIGJlIHRoZSBvcHBvc2l0ZSBvZiB0aGUgY29sdW1uKCkgb3Igcm93KCkgaXQncyBiZWluZyB1c2VkIG9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0PSRndXR0ZXJdIC0gSG93IGxhcmdlIHRoZSBndXR0ZXIgaW52b2x2ZWQgaXMsIHR5cGljYWxseSB0aGlzIHdvbid0IGJlIGFkanVzdGVkLCBidXQgaWYgeW91IGhhdmUgc2V0IHRoZSBlbGVtZW50cyBmb3IgdGhhdCBjb250YWluZXIgdG8gaGF2ZSBkaWZmZXJlbnQgZ3V0dGVycyB0aGFuIGRlZmF1bHQsIHlvdSB3aWxsIG5lZWQgdG8gbWF0Y2ggdGhhdCBndXR0ZXIgaGVyZSBhcyB3ZWxsLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIC50d28tZWxlbWVudHNcbiAqICAgICBjb2x1bW4oJzEvMycpXG4gKiAgICAgJjpmaXJzdC1jaGlsZFxuICogICAgICAgb2Zmc2V0KCcxLzMnKVxuICovXG5cbm9mZnNldCgkZnJhY3Rpb24gPSAnMS8xJywgJGRpciA9IHJvdywgJGd1dCA9ICRndXR0ZXIpXG4gICRudW1lcmF0b3IgPSBjb252ZXJ0KHVucXVvdGUoc3BsaXQoJy8nLCAkZnJhY3Rpb24pWzBdKSlcbiAgX2dldC1zaXplKClcbiAgICBpZiAkZGlyIGlzIHJvd1xuICAgICAgaWYgJG51bWVyYXRvciA+IDBcbiAgICAgICAgaWYgJGd1dCBpcyAwXG4gICAgICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTk5OTk5JSAqICVzKScsIHVucXVvdGUoJGZyYWN0aW9uKSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHJldHVybiBzKCdjYWxjKDk5Ljk5JSAqICVzIC0gKCVzIC0gJXMgKiAlcykgKyAoJXMgKiAyKSknLCB1bnF1b3RlKCRmcmFjdGlvbiksICRndXQsICRndXQsIHVucXVvdGUoJGZyYWN0aW9uKSwgJGd1dClcbiAgICAgIGlmICRudW1lcmF0b3IgPCAwXG4gICAgICAgIGlmICRndXQgaXMgMFxuICAgICAgICAgIHJldHVybiBzKCdjYWxjKDk5Ljk5OTk5OSUgKiAoJXMgKiAtMSkpJywgdW5xdW90ZSgkZnJhY3Rpb24pKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTklICogKCVzICogLTEpIC0gKCVzIC0gJXMgKiAoJXMgKiAtMSkpICsgJXMpJywgdW5xdW90ZSgkZnJhY3Rpb24pLCAkZ3V0LCAkZ3V0LCB1bnF1b3RlKCRmcmFjdGlvbiksICRndXQpXG4gICAgZWxzZVxuICAgICAgaWYgJG51bWVyYXRvciA+IDBcbiAgICAgICAgaWYgJGd1dCBpcyAwXG4gICAgICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTk5OTk5JSAqICVzKScsIHVucXVvdGUoJGZyYWN0aW9uKSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHJldHVybiBzKCdjYWxjKDk5Ljk5JSAqICVzIC0gKCVzIC0gJXMgKiAlcykgKyAoJXMgKiAyKSknLCB1bnF1b3RlKCRmcmFjdGlvbiksICRndXQsICRndXQsIHVucXVvdGUoJGZyYWN0aW9uKSwgJGd1dClcbiAgICAgIGlmICRudW1lcmF0b3IgPCAwXG4gICAgICAgIGlmICRndXQgaXMgMFxuICAgICAgICAgIHJldHVybiBzKCdjYWxjKDk5Ljk5OTk5OSUgKiAoJXMgKiAtMSkpJywgdW5xdW90ZSgkZnJhY3Rpb24pKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTklICogKCVzICogLTEpIC0gKCVzIC0gJXMgKiAoJXMgKiAtMSkpICsgKCVzICogMikpJywgdW5xdW90ZSgkZnJhY3Rpb24pLCAkZ3V0LCAkZ3V0LCB1bnF1b3RlKCRmcmFjdGlvbiksICRndXQpXG4gIGlmICRkaXIgaXMgcm93XG4gICAgaWYgJG51bWVyYXRvciA+IDBcbiAgICAgIG1hcmdpbi1yaWdodDogX2dldC1zaXplKCkgIWltcG9ydGFudFxuICAgIGVsc2UgaWYgJG51bWVyYXRvciA8IDBcbiAgICAgIG1hcmdpbi1sZWZ0OiBfZ2V0LXNpemUoKSAhaW1wb3J0YW50XG4gICAgZWxzZVxuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudFxuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ3V0ICFpbXBvcnRhbnRcbiAgZWxzZVxuICAgIGlmICRudW1lcmF0b3IgPiAwXG4gICAgICBtYXJnaW4tYm90dG9tOiBfZ2V0LXNpemUoKSAhaW1wb3J0YW50XG4gICAgZWxzZSBpZiAkbnVtZXJhdG9yIDwgMFxuICAgICAgbWFyZ2luLXRvcDogX2dldC1zaXplKCkgIWltcG9ydGFudFxuICAgIGVsc2VcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudFxuICAgICAgbWFyZ2luLWJvdHRvbTogJGd1dCAhaW1wb3J0YW50XG5cblxuLyoqXG4gKiBTb3VyY2Ugb3JkZXJpbmcuIFNoaWZ0IGVsZW1lbnRzIGxlZnQsIHJpZ2h0LCB1cCwgb3IgZG93biwgYnkgdGhlaXIgbGVmdCBvciB0b3AgcG9zaXRpb24gYnkgcGFzc2luZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGZyYWN0aW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGZyYWN0aW9uPScxLzEnXSAtIEZyYWN0aW9uIG9mIHRoZSBjb250YWluZXIgdG8gYmUgc2hpZnRlZC4gTXVzdCBiZSBhIHN0cmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGRpcj1yb3ddIC0gRGlyZWN0aW9uIHRoZSBncmlkIGlzIGdvaW5nLiBTaG91bGQgYmUgdGhlIG9wcG9zaXRlIG9mIHRoZSBjb2x1bW4oKSBvciByb3coKSBpdCdzIGJlaW5nIHVzZWQgb24uXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXQ9JGd1dHRlcl0gLSBBZGp1c3QgdGhlIHNpemUgb2YgdGhlIGd1dHRlciBmb3IgdGhpcyBtb3ZlbWVudC4gU2hvdWxkIG1hdGNoIHRoZSBlbGVtZW50J3MgJGd1dC5cbiAqXG4gKiBAZXhhbXBsZVxuICogICBmaWd1cmVcbiAqICAgICBjb2x1bW4oJzEvMicpXG4gKiAgICAgJjpmaXJzdC1jaGlsZFxuICogICAgICAgbW92ZSgnMS8yJylcbiAqL1xuXG5tb3ZlKCRmcmFjdGlvbiA9ICcxLzEnLCAkZGlyID0gcm93LCAkZ3V0ID0gJGd1dHRlcilcbiAgX2dldC1zaXplKClcbiAgICBpZiAkZ3V0IGlzIDBcbiAgICAgIHJldHVybiBzKCdjYWxjKDk5Ljk5OTk5OSUgKiAlcyknLCB1bnF1b3RlKCRmcmFjdGlvbikpXG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTklICogJXMgLSAoJXMgLSAlcyAqICVzKSArICVzKScsIHVucXVvdGUoJGZyYWN0aW9uKSwgJGd1dCwgJGd1dCwgdW5xdW90ZSgkZnJhY3Rpb24pLCAkZ3V0KVxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgaWYgJGRpciBpcyByb3dcbiAgICBsZWZ0OiBfZ2V0LXNpemUoKVxuICBlbHNlXG4gICAgdG9wOiBfZ2V0LXNpemUoKVxuXG5cbi8qKlxuICogQ3JlYXRlcyBhIHdyYXBwaW5nIGVsZW1lbnQgZm9yIHdvcmtpbmcgd2l0aCBKUyBtYXNvbnJ5IGxpYnJhcmllcyBsaWtlIElzb3RvcGUuIEFzc2lnbnMgYSBuZWdhdGl2ZSBtYXJnaW4gb24gZWFjaCBzaWRlIG9mIHRoaXMgd3JhcHBpbmcgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gWyRndXQ9JGd1dHRlcl0gLSBIb3cgbGFyZ2UgdGhlIGd1dHRlciBpbnZvbHZlZCBpcywgdHlwaWNhbGx5IHRoaXMgd29uJ3QgYmUgYWRqdXN0ZWQgYW5kIHdpbGwgaW5oZXJpdCB0aGUgZ2xvYmFsICRndXR0ZXIgc2V0dGluZywgYnV0IGl0J3MgbWFkZSBhdmFpbGFibGUgaWYgeW91IHdhbnQgeW91ciBtYXNvbnJ5IGdyaWQgdG8gaGF2ZSBhIHNwZWNpYWwgJGd1dCwgaXQgc2hvdWxkIG1hdGNoIHlvdXIgbWFzb25yeS1jb2x1bW4ncyAkZ3V0LlxuICogQHBhcmFtIHtib29sZWFufSBbJGZsZXg9JGZsZXhib3hdIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgZWxlbWVudCBzaG91bGQgdXNlIEZsZXhib3ggb3Igbm90LlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIHNlY3Rpb25cbiAqICAgICBtYXNvbnJ5LXdyYXAoKVxuICogICBmaWd1cmVcbiAqICAgICBtYXNvbnJ5LWNvbHVtbignMS8zJylcbiAqL1xuXG5tYXNvbnJ5LXdyYXAoJGd1dCA9ICRndXR0ZXIsICRmbGV4ID0gJGZsZXhib3gpXG4gIGlmICRmbGV4IGlzIGZhbHNlXG4gICAgY2xlYXJmaXgoKVxuICBlbHNlXG4gICAgZmxleC1jb250YWluZXIoKVxuICBtYXJnaW4tbGVmdDogLSgkZ3V0IC8gMilcbiAgbWFyZ2luLXJpZ2h0OiAtKCRndXQgLyAyKVxuXG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbHVtbiBmb3Igd29ya2luZyB3aXRoIEpTIG1hc29ucnkgbGlicmFyaWVzIGxpa2UgSXNvdG9wZS4gQXNzaWducyBhIG1hcmdpbiB0byBlYWNoIHNpZGUgb2YgdGhlIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFskZ3V0PSRndXR0ZXJdIC0gSG93IGxhcmdlIHRoZSBndXR0ZXIgaW52b2x2ZWQgaXMsIHR5cGljYWxseSB0aGlzIHdvbid0IGJlIGFkanVzdGVkIGFuZCB3aWxsIGluaGVyaXQgdGhlIGdsb2JhbCAkZ3V0dGVyIHNldHRpbmcsIGJ1dCBpdCdzIG1hZGUgYXZhaWxhYmxlIGlmIHlvdSB3YW50IHlvdXIgbWFzb25yeSBncmlkIHRvIGhhdmUgYSBzcGVjaWFsICRndXQsIGl0IHNob3VsZCBtYXRjaCB5b3VyIG1hc29ucnktcm93J3MgJGd1dC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRmbGV4PSRmbGV4Ym94XSAtIERldGVybWluZXMgd2hldGhlciB0aGlzIGVsZW1lbnQgc2hvdWxkIHVzZSBGbGV4Ym94IG9yIG5vdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogICBzZWN0aW9uXG4gKiAgICAgbWFzb25yeS13cmFwKClcbiAqICAgZmlndXJlXG4gKiAgICAgbWFzb25yeS1jb2x1bW4oJzEvMycpXG4gKi9cblxubWFzb25yeS1jb2x1bW4oJGZyYWN0aW9uID0gJzEvMScsICRndXQgPSAkZ3V0dGVyLCAkZmxleCA9ICRmbGV4Ym94KVxuICBfZ2V0LXNpemUoKVxuICAgIGlmICRndXQgaXMgMFxuICAgICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTk5OTk5JSAqICVzKScsIHVucXVvdGUoJGZyYWN0aW9uKSlcbiAgICBlbHNlXG4gICAgICByZXR1cm4gcygnY2FsYyg5OS45OSUgKiAlcyAtICVzKScsIHVucXVvdGUoJGZyYWN0aW9uKSwgJGd1dClcbiAgaWYgJGZsZXggaXMgdHJ1ZVxuICAgIGZsZXg6IDAgMCBhdXRvXG4gIHdpZHRoOiBfZ2V0LXNpemUoKVxuICBtYXJnaW4tbGVmdDogKCRndXQgLyAyKVxuICBtYXJnaW4tcmlnaHQ6ICgkZ3V0IC8gMilcblxuXG4vKipcbiAqIEEgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBzaXplIG9mIGEgY29sdW1uIG1pbnVzIGl0J3MgZ3V0dGVyIGlmIGEgZ3V0dGVyIGlzIGFzc2lnbmVkLiBIYW5keSBmb3IgZ2VuZXJhdGluZyBDU1MgY2xhc3Nlcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRmcmFjdGlvbj0nMS8xJ10gLSBUaGlzIGlzIGEgc2ltcGxlIGZyYWN0aW9uIG9mIHRoZSBjb250YWluaW5nIGVsZW1lbnQncyB3aWR0aC4gVGhpcyBtdXN0IGJlIGEgc3RyaW5nIHdyaXR0ZW4gYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJGd1dD0kZ3V0dGVyXSAtIFRoZSBndXR0ZXIgYXNzaWduZWQgdG8gdGhpcyBzaXplLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIFtjbGFzcyo9XCJjb2wtXCJdXG4gKiAgICAgZmxvYXQ6IGxlZnRcbiAqICAgICBtYXJnaW4tcmlnaHQ6ICRndXR0ZXJcbiAqICAgICAmOmxhc3QtY2hpbGRcbiAqICAgICAgIG1hcmdpbi1yaWdodDogMFxuICpcbiAqICAgZm9yICRpIGluIDEuLjEyXG4gKiAgICAgLmNvbC17JGl9XG4gKiAgICAgICB3aWR0aDogZ2V0LXNpemUocygnJXMvMTInLCAkaSkpXG4gKi9cblxuZ2V0LXNpemUoJGZyYWN0aW9uID0gJzEvMScsICRndXQgPSAkZ3V0dGVyKVxuICBpZiAkZ3V0IGlzIDBcbiAgICByZXR1cm4gcygnY2FsYyg5OS45OTk5OTklICogJXMpJywgdW5xdW90ZSgkZnJhY3Rpb24pKVxuICBlbHNlXG4gICAgcmV0dXJuIHMoJ2NhbGMoOTkuOTklICogJXMgLSAoJXMgLSAlcyAqICVzKSknLCB1bnF1b3RlKCRmcmFjdGlvbiksICRndXQsICRndXQsIHVucXVvdGUoJGZyYWN0aW9uKSlcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JVVFRPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcHJveGltYS1ub3ZhLWJvbGQoKTtcbiAgc2V0LWZvbnQtc2l6ZSgxOHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JzW1wicHJpbWFyeVwiXS5saWdodDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yc1tcInByaW1hcnlcIl0ubGlnaHQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLWluLW91dCwgbGV0dGVyLXNwYWNpbmcgMC4zcyBlYXNlLWluLW91dCwgY29sb3IgMC4zcyBlYXNlLWluLW91dDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjFyZW07XG4gIH1cbn1cblxuLmJ1dHRvbi0tc3VibWl0IHtcbiAgY29sb3I6IHdoaXRlO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3JzW1wic2Vjb25kYXJ5XCJdLmRhcmtlcjtcbiAgfVxufVxuXG5cblxuXG4ucmVhZC1tb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMC4ycmVtO1xuICBjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi10b3A6IDI1cHg7XG5cbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJztcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmJhc2U7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAxJSwwLDApO1xuICB9XG5cblxuICAmOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yc1tcImJhY2tncm91bmRcIl0uYmFzZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuXG4gICAgJjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB9XG4gIH1cblxufVxuXG5cblxuXG5cbi5yZWdpc3Rlci1ub3cge1xuICBwcm94aW1hLW5vdmEtYmxhY2soKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4ycmVtO1xuICBjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcbiAgYmFja2dyb3VuZDogJGNvbG9yc1tcImJhY2tncm91bmRcIl0uYmFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1pbi1vdXQsIGxldHRlci1zcGFjaW5nIDAuM3MgZWFzZS1pbi1vdXQ7XG5cbiAgK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgICBtYXJnaW4tdG9wOiA0NXB4O1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMXJlbTtcbiAgfVxufVxuXG4ucmVnaXN0ZXItbm93X19hcnJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmJhc2U7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3N2Zy9yaWdodC1hcnJvdy1ibGFjay5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxOHB4IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0JVVFRPTiBBREQgS0lEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYnV0dG9uLWFkZGtpZCB7XG5cdHNldC1mb250LXNpemUoMTZweCk7XG5cdGJhY2tncm91bmQ6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmJhc2U7XG5cdGNvbG9yOiB3aGl0ZTtcblx0Ym9yZGVyLXJhZGl1czogMjVweDtcblx0cGFkZGluZzogMTRweCA2MHB4IDE0cHggMjRweDtcblx0bWluLXdpZHRoOiAyMThweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogMDtcblx0XHR3aWR0aDogNDhweDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyNXB4O1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNXB4O1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmxpZ2h0IHVybCgnLi4vaW1hZ2VzL3N2Zy9wbHVzLnN2ZycpIDEycHggY2VudGVyIG5vLXJlcGVhdDtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1pbi1vdXQ7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHQmOmFmdGVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmxpZ2h0O1xuXHRcdH1cblx0fVxuXG59XG5cbi5mb3JtIC5idXR0b24tYWRka2lkOmhvdmVyIHtcblx0Y29sb3I6IGdyYXlMaWdodDtcbn1cblxuXG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDTE9TRSBWSURFT1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm1mcC1jbG9zZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtc2l6ZTogNDBweDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01PRFVMRSBBU0lERVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmFzaWRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uZGFyaztcbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgK2Zyb20td2lkdGgoMTIwMHB4KSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIC8vIHdpZHRoOiAyMS4wNiU7XG4gICAgLy8gbWF4LXdpZHRoOiA0MDVweDtcbiAgfVxuXG59XG5cblxuLmhlcm9fX21lbnUge1xuICBjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcbiAgc2V0LWZvbnQtc2l6ZSgyMHB4KTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbWFyZ2luOiAyNXB4IDAgMTJweCA1JTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvc3ZnL21lbnUtYmx1ZS5zdmcnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0O1xuXG5cbiAgYmFja2dyb3VuZC1zaXplOiAxOHB4IDE4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG5cblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTlweCAxOXB4O1xuICB9XG5cbiAgK2Zyb20td2lkdGgoOTkycHgpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyOHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1xuICB9XG5cblxuICArZnJvbS13aWR0aCgxMjAwcHgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnBhZ2UtaG9tZSAmIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9zdmcvbWVudS13aGl0ZS5zdmcnKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUlO1xuICAgIHRvcDogNyU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuLnNiLXNsaWRlYmFyLnNiLWxlZnQge1xuICArZnJvbS13aWR0aCgxMjAwcHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiA5O1xuICAgIHdpZHRoOiAyMS4wOTM3NSU7XG4gIH1cbn1cblxuXG4uYXNpZGVfX2xvZ28ge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmJhc2U7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3N2Zy9sb2dvLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBrcy1yYXRpby1ib3goIDIvMSApO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwJSBhdXRvO1xuXG4gICtmcm9tLXdpZHRoKDc2OHB4KSB7XG4gICAga3MtcmF0aW8tYm94KCAxICk7XG4gICAgYmFja2dyb3VuZC1zaXplOiA3NSUgNzUlO1xuICB9XG5cblxufVxuXG5cbi5hc2lkZV9fbmF2IHtcbiAgcHJveGltYS1ub3ZhLWJvbGQoKTtcbiAgcGFkZGluZzogMTAlIDE0LjU2NzkwMTIzNSUgMCAxNC41Njc5MDEyMzUlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuXG4uYXNpZGVfX25hdi1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBzZXQtZm9udC1zaXplKDE2cHgpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xuXG4gICtmcm9tLXdpZHRoKDE0MDBweCkge1xuICAgIHNldC1mb250LXNpemUoMTlweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHRvcDogNnB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yc1tcImFjY2VudFwiXS5iYXNlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yc1tcImFjY2VudFwiXS5iYXNlO1xuICAgIH1cbiAgfVxuXG4gICYuaXMtc2VsZWN0ZWQge1xuICAgIGNvbG9yOiAkY29sb3JzW1wiYWNjZW50XCJdLmJhc2U7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JzW1wiYWNjZW50XCJdLmJhc2U7XG4gICAgfVxuICB9XG5cbn1cblxuXG4uYXNpZGVfX2J1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA1JTtcbiAgbGVmdDogMTQuNTY3OTAxMjM1JTtcbiAgcmlnaHQ6IDE0LjU2NzkwMTIzNSU7XG4gIHNldC1mb250LXNpemUoMTJweCk7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcblxuICArZnJvbS13aWR0aCg3NjhweCkge1xuICAgIHNldC1mb250LXNpemUoMThweCk7XG4gIH1cblxuXG4gICtmcm9tLXdpZHRoKDEyMDBweCkge1xuICAgIHNldC1mb250LXNpemUoMTRweCk7XG4gIH1cblxuICArZnJvbS13aWR0aCgxMzUwcHgpIHtcbiAgICBzZXQtZm9udC1zaXplKDE4cHgpO1xuICAgIHBhZGRpbmc6IDE4cHggMTVweDtcbiAgfVxufVxuIiwia3MtcmF0aW8tYm94KCByYXRpbyA9IDEvMSApXG4gICAgcmF0aW8gPSBfc3RyaXAtdW5pdHMoIHJhdGlvIClcblxuICAgIG92ZXJmbG93OiBoaWRkZW5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcblxuICAgIC8vIFRoZSBjb250YWluZXIncyBoZWlnaHQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGVcbiAgICAvLyBjb250YWluZXIncyB3aWR0aCwgaXMgc2V0IGJ5IGFzc2lnbmluZ1xuICAgIC8vIHBhZGRpbmctdG9wIHRvIGEgcHNldWRvLWVsZW1lbnQuXG4gICAgJjpiZWZvcmVcbiAgICAgIGNvbnRlbnQ6IFwiXCJcbiAgICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgICBoZWlnaHQ6IDBcbiAgICAgIHBhZGRpbmctdG9wOiAoMSAvIHJhdGlvKSAqIDEwMCVcblxucmF0aW8tYm94ID0ga3MtcmF0aW8tYm94IHVubGVzcyBrcy1uby1jb25mbGljdFxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTU9EVUxFIEhFUk9cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5oZXJvIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaGVyb190YWJsZXQuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2hlcm8uanBnJyk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMC41KSApLCB1cmwoJy4uL2ltYWdlcy9oZXJvLmpwZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cbn1cblxuLmhlcm9fX21lbnUtaWNvbiB7XG4gICtmcm9tLXdpZHRoKDEyMDBweCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmhlcm9fX2NvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTAlO1xuICBsZWZ0OiA1JTtcbiAgbWF4LXdpZHRoOiA4MCU7XG5cbiAgK2Zyb20td2lkdGgoNzY4cHgpIHtcbiAgICBtYXgtd2lkdGg6IDY1JTtcbiAgICBib3R0b206IDclO1xuICB9XG5cbn1cblxuLmhlcm9fX3RpdGxlIHtcbiAgcHJveGltYS1ub3ZhLWJsYWNrKCk7XG4gIGNvbG9yOiAkY29sb3JzW1wicHJpbWFyeVwiXS5kYXJrO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHNldC1mb250LXNpemUoMzVweCk7XG4gIG1hcmdpbjogMCAwIDI0cHggMDtcblxuICArZnJvbS13aWR0aCg3NjhweCkge1xuICAgIHNldC1mb250LXNpemUoNzBweCk7XG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICB9XG59XG5cblxuLmhlcm9fX3RpdGxlLS13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwIDZweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi5oZXJvX19saXN0IHtcbiAgcHJveGltYS1ub3ZhLWJvbGQoKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMCAwIDAgMDtcbiAgbWFyZ2luOiAwIDAgMCAwO1xuXG4gICtmcm9tLXdpZHRoKDc2OHB4KSB7XG4gICAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICB9XG59XG5cbi5oZXJvX19saXN0LWl0ZW0ge1xuICBzZXQtZm9udC1zaXplKDEycHgpO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTVyZW07XG5cbiAgK2Zyb20td2lkdGgoNzY4cHgpIHtcbiAgICBzZXQtZm9udC1zaXplKDIwcHgpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3N2Zy9yaWdodC1hcnJvdy1saWdodC1ibHVlLnN2ZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCA0cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxuLmhlcm9fX2Rlc2Mge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICtmcm9tLXdpZHRoKDc2OHB4KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIHByb3hpbWEtbm92YS1ib2xkKCk7XG4gICAgc2V0LWZvbnQtc2l6ZSgyMHB4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMjtcbiAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICB9XG59XG5cbi5oZXJvX190d2l0dGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDUlO1xuICB0b3A6IDclO1xuICBmaWxsOiAkY29sb3JzW1wic29jaWFsXCJdLnR3aXR0ZXI7XG59XG5cbi5oZXJvX190d2l0dGVyLWljb24ge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAyMXB4O1xuXG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgd2lkdGg6IDQ2cHg7XG4gICAgaGVpZ2h0OiAzN3B4O1xuICB9XG59XG5cbi5oZXJvX19wbGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNSU7XG4gIGJvdHRvbTogOSU7XG4gIGZpbGw6IHdoaXRlO1xuIFxuICArZnJvbS13aWR0aCg3NjhweCkge1xuICAgIGJvdHRvbTogNyU7XG4gIH1cbn1cblxuLmhlcm9fX3BsYXktaWNvbiB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG5cbiAgK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgICB3aWR0aDogODFweDtcbiAgICBoZWlnaHQ6IDgxcHg7XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI01PRFVMRSBTRUNUSU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICRjb2xvcnNbXCJzZWNvbmRhcnlcIl0uYmFzZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGNsZWFyZml4KCk7XG5cbiAgK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgICBtaW4taGVpZ2h0OiAxMDgwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgK2Zyb20td2lkdGgoMTk2MHB4KSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiA1MCUgYXV0bztcbiAgfVxufVxuXG5cbi5zZWN0aW9uX19jb250ZW50IHtcbiAgcGFkZGluZzogNSUgNSU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIGhlaWdodDogODAwcHg7XG4gICAgcGFkZGluZzogMiUgNSU7XG4gIH1cblxuICAmLnNlY3Rpb25fX2NvbnRlbnQtLWZ1bGwge1xuICAgIHBhZGRpbmc6IDIlIDA7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2NvbnRlbnQtLWhhbGYge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMCAwIDAgIWltcG9ydGFudDtcblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2NvbnRlbnQtLWxlZnQge1xuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi5zZWN0aW9uX19jb250ZW50LS1yaWdodCB7XG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cbi5zZWN0aW9uX190aXRsZSB7XG4gIGNvbG9yOiAkY29sb3JzW1wicHJpbWFyeVwiXS5iYXNlO1xuICBwcm94aW1hLW5vdmEtYmxhY2soKTtcbiAgc2V0LWZvbnQtc2l6ZSgzMHB4KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDEuMDY7XG4gIG1hcmdpbi10b3A6IDA7XG5cbiAgK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgICBzZXQtZm9udC1zaXplKDU4cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gIH1cblxuICArZnJvbS13aWR0aCgxMzAwcHgpIHtcbiAgICBzZXQtZm9udC1zaXplKDY2cHgpO1xuICB9XG59XG5cblxuLnNlY3Rpb25fX2xpc3Qge1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5cbi5zZWN0aW9uX19saXN0LWl0ZW0ge1xuICBzZXQtZm9udC1zaXplKDE2cHgpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvc3ZnL3JpZ2h0LWFycm93LWRhcmstYmx1ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cblxuLnNlY3Rpb25fX2Rlc2Mge1xuICBzZXQtZm9udC1zaXplKDE2cHgpO1xufVxuXG5cbi5zZWN0aW9uLS1mdWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yc1tcImJhY2tncm91bmRcIl0uYmFzZTtcbiAgcGFkZGluZzogMiUgNSU7XG59XG5cblxuLnNlY3Rpb25fX3RodW1icyB7XG4gIGNsZWFyZml4KCk7XG5cbiAgLy8gK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgLy8gICBkaXNwbGF5OiBmbGV4O1xuICAvLyB9XG59XG5cbi5zZWN0aW9uX190aHVtYiB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgY29sdW1uKCcxLzMnKTtcbiAgICAvLyBmbGV4OiAxO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbn1cblxuXG4udGh1bWJfX2ltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuXG4uc2VjdGlvbl9fdGh1bWItaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi5zZWN0aW9uX190aHVtYi1mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogOSU7XG59XG5cblxuLnNlY3Rpb25fX3RodW1iLXRpdGxlIHtcbiAgcHJveGltYS1ub3ZhLWJvbGQoKTtcbiAgY29sb3I6ICRjb2xvcnNbXCJwcmltYXJ5XCJdLmJhc2U7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbjogMCAwIDAgMDtcbn1cblxuLnNlY3Rpb25fX3RodW1iLWRlc2Mge31cblxuXG4uc2VjdGlvbl9fY29udGVudC0tbW9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3R0b206IC0xMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAyJSAwO1xuICAvLyBsZWZ0OiAwO1xuICAvLyByaWdodDogMDtcbiAgLy8gYm90dG9tOiAwO1xuICAvLyB6LWluZGV4OiA5O1xuICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuM3MsIG9wYWNpdHkgMC4zcztcbiAgb3BhY2l0eTogMDtcblxuICAmLmlzLW9wZW4ge1xuICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuM3M7XG4gICAgYm90dG9tOiAwO1xuICAgIC8vIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgIC50ZXN0ICYge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuXG4uc2VjdGlvbl9fY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQgLTMwcHg7XG59XG5cbi5zZWN0aW9uX19jbG9zZS1pY29uIHtcbiAgb3ZlcmZsb3c6aGlkZGVuO1xuICB3aWR0aDogMTlweDtcbiAgaGVpZ2h0OiAxOXB4O1xuICBmaWxsOiAkY29sb3JzW1wicHJpbWFyeVwiXS5iYXNlO1xuICB0cmFuc2l0aW9uOiBmaWxsIDAuM3MgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuXG4gICY6aG92ZXIge1xuICAgIGZpbGw6ICRjb2xvcnNbXCJhY2NlbnRcIl0uYmFzZTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cblxuXG4uc2VjdGlvbl9fbW9iaWxlIHtcblx0d2lkdGg6IDEwMCU7XG5cdGtzLXJhdGlvLWJveCggOS82ICk7XG5cblx0K2Zyb20td2lkdGgoNzY5cHgpIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cblxuXG4uc2VjdGlvbl9fb3JnYW5pemF0aW9uIHtcbiAgbWFyZ2luOiA0MHB4IDA7XG59XG5cbi5kZXNjX19zdWJ0aXRsZSB7XG4gIHNldC1mb250LXNpemUoMThweCk7XG4gIGNvbG9yOiAkY29sb3JzW1wicHJpbWFyeVwiXS5iYXNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc2VjdGlvbl9fZGVzYyB7XG4gIHNldC1mb250LXNpemUoMTZweCk7XG59XG5cbi5vcmdhbml6YXRpb25fX2xpbmsge1xuICBzZXQtZm9udC1zaXplKDE2cHgpO1xuICBjb2xvcjogJGNvbG9yc1tcImFjY2VudFwiXS5iYXNlO1xufVxuXG4ucGljdHVyZV9fdGFnIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICRjb2xvcnNbXCJzZWNvbmRhcnlcIl0uZGFya2VyO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ub3JnYW5pemF0aW9uX19waWN0dXJlcyB7XG4gIGNsZWFyZml4KCk7XG59XG5cbi5vcmdhbml6YXRpb25fX3BpY3R1cmUge1xuICBjb2x1bW4oJzEvMicsIDEwcHgpO1xuXG4gID4gaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuXG5cbi50YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi50YWJsZS1jZWxsIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAmLm1pZGRsZSB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG5cblxuXG4uc2VjdGlvbl9fY29udGVudC0tZGVmYXVsdCB7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogNSUgMTAlO1xufVxuXG4uc2VjdGlvbl9fY29udGVudC0tbW9yZSB7XG4gIHBhZGRpbmc6IDUlIDEwJTtcbn1cblxuLm1DU0JfY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNNT0RVTEUgRk9PVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yc1tcImJhY2tncm91bmRcIl0uYmFzZTtcbiAgY29sb3I6ICRjb2xvcnNbXCJzZWNvbmRhcnlcIl0uZGFya2VyO1xuICBwYWRkaW5nOiAyJSA1JTtcbn1cblxuXG5cbi5mb290ZXIge1xuXG4gIC5wYWdlLWhvbWUgJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgK2Zyb20td2lkdGgoMTIwMHB4KSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogaW5oZXJpdDtcbiAgfVxufVxuXG4ubC1zdWJwYWdlIHtcbiAgK2Zyb20td2lkdGgoMTIwMHB4KSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuXG4uZm9vdGVyX19jb3B5cmlnaHQsXG4uZm9vdGVyX19uYXYge1xuICBjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMC42cHgpO1xuICB9XG5cbn1cblxuLmZvb3Rlcl9fY29weXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4uZm9vdGVyX19uYXYge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuXG4uZm9vdGVyX19uYXYtaXRlbSB7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gICtmcm9tLXdpZHRoKDgxOXB4KSB7XG4gICAgcGFkZGluZzogMCAwIDAgMjBweDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3JzW1wiYWNjZW50XCJdLmJhc2U7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4uZm9vdGVyX19uYXYtYm9yZGVyIHtcblxufVxuXG4uZm9vdGVyX19kZXNjIHtcbiAgbWFyZ2luOiAwIDAgMCAwO1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcnNbXCJzZWNvbmRhcnlcIl0ubGlnaHQ7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQUdFIEhPTUVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuLm1haW4ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gcGFkZGluZzogMCAwIDAgMjEuMDkzNzUlO1xufVxuXG5cbi5zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbn1cblxuLnNlY3Rpb24tMSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3NlY3Rpb24xX2JnLmpwZycpO1xuXG4gICtmcm9tLXdpZHRoKDc2OXB4KSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gIH1cbn1cblxuLnNlY3Rpb24tMyB7XG4gIC8qYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvc2VjdGlvbjNfYmcuanBnJyk7XG4gIGhlaWdodDogNTAwcHg7Ki9cbiAgbWluLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50OyBcblxuICArZnJvbS13aWR0aCg3NjlweCkge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCB0b3A7XG4gIH1cbiAgLnNlY3Rpb25fX2NvbnRlbnQtLWhhbGYge1xuICAgIGhlaWdodDogNjUwcHg7XG4gIH1cbn1cblxuXG4uc2VjdGlvbi00IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvc2VjdGlvbjRfYmcuanBnJyk7XG5cbiAgK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbiAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjUEFHRSBTVUJQQUdFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi5zdWJwYWdlLWhlYWRlcntcbiAgcGFkZGluZzogMyUgNSU7XG59XG5cbi5zdWJwYWdlIHtcbiAgcGFkZGluZzogMCUgNSUgNSUgNSU7XG4gIGNvbG9yOiAkY29sb3JzW1wic2Vjb25kYXJ5XCJdLmJhc2U7XG59XG5cbi5zdWJwYWdlX190aXRsZSxcbi5zdWJwYWdlX19zdWJ0aXRsZSB7XG4gIHByb3hpbWEtbm92YS1ib2xkKCk7XG4gIGNvbG9yOiAkY29sb3JzW1wicHJpbWFyeVwiXS5iYXNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5cbi5zdWJwYWdlLWhlYWRlcl9fdGl0bGUge1xuICBjb2xvcjogJGNvbG9yc1tcInByaW1hcnlcIl0uYmFzZTtcbiAgcHJveGltYS1ub3ZhLWJsYWNrKCk7XG4gIHNldC1mb250LXNpemUoMzBweCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxLjA2O1xuICBtYXJnaW46IDA7XG5cbiAgK2Zyb20td2lkdGgoNzY5cHgpIHtcbiAgICBzZXQtZm9udC1zaXplKDY2cHgpO1xuICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQUdFIFJFR0lTVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYWRkaXRpb25hbC1raWRzLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiA1MHB4O1xufVxuXG4udGVybXMtc3VibWl0X19zdWJtaXQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmZvcm0ge1xuICArZnJvbS13aWR0aCgxMjAwcHgpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgfVxufVxuIl19 */

@media only screen and (min-width: 480px) {

.form-row .form-group:first-child {
	margin-bottom: 0;
}

.form-group {
	width: calc(99.99% * 1/2 - (30px - 30px * 1/2));
}

.form-group:nth-child(n) {
	margin-right: 30px;
	float: left;
	clear: none;
}

.form-group:last-child {
	margin-right: 0;
}

.form-group:nth-child(2n) {
	margin-right: 0;
	float: right;
}

.form-group:nth-child(2n + 1) {
	clear: left;
}

}

@media (min-width: 481px) {

.sb-slidebar {
	width: 55%;
}

.sb-width-thin {
	width: 40%;
}

.sb-width-wide {
	width: 70%;
}

}

@media (min-width: 768px) {

.sb-slidebar {
	width: 40%;
}

.sb-width-thin {
	width: 25%;
}

.sb-width-wide {
	width: 55%;
}

}

@media only screen and (min-width: 768px) {

input[type="text"],
select {
	height: 50px;
}

label {
	margin-bottom: 10px;
}

.aside__logo {
	overflow: hidden;
	position: relative;
	background-size: 75% 75%;
}

.aside__logo:before {
	content: "";
	display: block;
	height: 0;
	padding-top: 100%;
}

.aside__button {
	font-size: 18px;
	font-size: 1.125rem;
}

.hero__content {
	max-width: 70%;
	top: 3%;
}

.hero__title {
	font-size: 70px;
	font-size: 4.375rem;
	margin: 0 0 10px 0;
}

.hero__list {
	margin: 0 0 30px 0;
}

.hero__list-item {
	font-size: 20px;
	font-size: 1.25rem;
	background-image: url("../images/svg/right-arrow-light-blue.svg");
	background-repeat: no-repeat;
	background-position: left 4px;
	padding-left: 2rem;
	margin-bottom: 20px;
	line-height: inherit;
}

.hero__desc {
	display: block;
}

.hero__play {
	bottom: 7%;
}

}
@media only screen and (min-width: 1400px) {

}

@media only screen and (min-width: 769px) {

.section-1__photo-credit:after {
	display: none;
}

.section-3__photo-credit:after {
	display: none;
}

.section-4__photo-credit:after {
	display: none;
}

html {
	font-size: 80%;
}

.register-now {
	margin-top: 45px;
}

.hero__menu {
	background-size: 19px 19px;
}

.hero {
	background-image: -webkit-linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5));
	background-image: -webkit-linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../images/hero.jpg");
	background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)), url("../images/hero.jpg");
	background-size: cover;
}

.hero__desc {
	font-family: proxima-nova, sans-serif;
	font-weight: 700;
	font-size: 20px;
	font-size: 1.25rem;
	letter-spacing: 0.15rem;
	line-height: 2;
	//max-width: 680px;
}

.hero__twitter-icon {
	width: 46px;
	height: 37px;
}

.hero__play-icon {
	width: 81px;
	height: 81px;
}

.section {
	min-height: 1080px;
	background-size: inherit;
}

.section__content {
	height: 800px;
	padding: 2% 5%;
}

.section__content--half {
	width: 50%;
}

.section__content--left {
	float: left;
}

.section__content--right {
	float: right;
}

.section__title {
	font-size: 58px;
	font-size: 3.625rem;
	margin-bottom: 35px;
}

.section__thumb {
	width: calc(99.99% * 1/3 - (30px - 30px * 1/3));
	margin-top: 0;
}

.section__thumb:nth-child(n) {
	margin-right: 30px;
	float: left;
	clear: none;
}

.section__thumb:last-child {
	margin-right: 0;
}

.section__thumb:nth-child(3n) {
	margin-right: 0;
	float: right;
}

.section__thumb:nth-child(3n + 1) {
	clear: left;
}

.section__mobile {
	display: none;
}

.footer__copyright,
.footer__nav {
	display: inline-block;
	vertical-align: top;
	margin-top: 16px;
	width: calc(49.4%);
}

.footer__copyright {
	text-align: left;
}

.footer__nav {
	text-align: right;
}

.footer__nav-item {
	display: inline-block;
}

.section-1 {
	background-position: left top;
}

.section-3 {
	background-position: -120px top;
}

.section-4 {
	background-position: left top;
}

.subpage-header__title {
	font-size: 66px;
	font-size: 4.125rem;
}

}

@media only screen and (min-width: 819px) {

.footer__nav-item {
	padding: 0 0 0 20px;
}

}

@media only screen and (min-width: 992px) {

html {
	font-size: 90%;
}

.hero__menu {
	padding-right: 28px;
	background-size: 20px 20px;
}

}

@media (min-width: 992px) {

.sb-slidebar {
	width: 30%;
}

.sb-width-thin {
	width: 15%;
}

.sb-width-wide {
	width: 45%;
}

}

@media (min-width: 1200px) {

.sb-slidebar {
	width: 20%;
}

.sb-width-thin {
	width: 5%;
}

.sb-width-wide {
	width: 35%;
}

}

@media only screen and (min-width: 1200px) {

.photo-credit {
	font-size: 12px;
	font-size: 0.75rem;
}

html {
	font-size: 100%;
}

.l-content {
	padding: 0 0 0 21.09375%;
}

.aside {
	position: relative;
	z-index: 9999;
	top: 0;
	left: 0;
	bottom: 0;
}

.hero__menu {
	display: none;
}

.sb-slidebar.sb-left {
	display: block;
	z-index: 9;
	width: 21.09375%;
}

.aside__button {
	font-size: 14px;
	font-size: 0.875rem;
}

.hero__menu-icon {
	display: none;
}

.footer {
	position: absolute;
	bottom: 0;
	right: inherit;
}

.l-subpage {
	padding-bottom: 90px;
	position: relative;
	min-height: 100%;
}

.form {
	margin-bottom: 100px;
}

}

@media only screen and (min-width: 1300px) {

.section__title {
	font-size: 66px;
	font-size: 4.125rem;
}

}

@media only screen and (min-width: 1350px) {

.aside__button {
	font-size: 18px;
	font-size: 1.125rem;
	padding: 18px 15px;
}

}

@media only screen and (min-width: 1400px) {

.photo-credit {
	display: block;
	font-size: 14px;
	font-size: 0.875rem;
}

.aside__nav-item {
	font-size: 19px;
	font-size: 1.1875rem;
	margin-bottom: 25px;
}

}

@media only screen and (min-width: 1960px) {

.section {
	background-size: 50% auto;
}

}

@media all and (max-width: 900px) {

.mfp-arrow {
	-webkit-transform: scale(0.75);
	transform: scale(0.75);
	webkit-transform: scale(0.75);
}

.mfp-arrow-left {
	-webkit-transform-origin: 0;
	transform-origin: 0;
	webkit-transform-origin: 0;
}

.mfp-arrow-right {
	-webkit-transform-origin: 100%;
	transform-origin: 100%;
	webkit-transform-origin: 100%;
}

.mfp-container {
	padding-left: 6px;
	padding-right: 6px;
}

}

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {

.mfp-img-mobile .mfp-image-holder {
	padding-left: 0;
	padding-right: 0;
}

.mfp-img-mobile img.mfp-img {
	padding: 0;
}

.mfp-img-mobile .mfp-figure:after {
	bottom: 0;
	top: 0;
}

.mfp-img-mobile .mfp-figure small {
	display: inline;
	margin-left: 5px;
}

.mfp-img-mobile .mfp-bottom-bar {
	background: rgba(0,0,0,0.6);
	bottom: 0;
	box-sizing: border-box;
	margin: 0;
	moz-box-sizing: border-box;
	padding: 3px 5px;
	position: fixed;
	top: auto;
	webkit-box-sizing: border-box;
}

.mfp-img-mobile .mfp-bottom-bar:empty {
	padding: 0;
}

.mfp-img-mobile .mfp-counter {
	right: 5px;
	top: 3px;
}

.mfp-img-mobile .mfp-close {
	background: rgba(0,0,0,0.6);
	height: 35px;
	line-height: 35px;
	padding: 0;
	position: fixed;
	right: 0;
	text-align: center;
	top: 0;
	width: 35px;
}

}

@media (max-width: 480px) {

.sb-slidebar {
	width: 70%;
}

.sb-width-thin {
	width: 55%;
}

.sb-width-wide {
	width: 85%;
}

}

