@charset "UTF-8";
/*
 *  Version 3.7.3
 */
/* ========================================================================
   Component: Base
 ========================================================================== */
/*
 * 1. Set `font-size` to support `rem` units
 *    Not using `font` property because a leading hyphen (e.g. -apple-system) causes the font to break in IE11 and Edge
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Style
 */
html {
	/* 1 */
	font-family: "游ゴシック", YuGothic, "Yu Gothic", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Hiragino Maru Gothic W4 JIS2004", "メイリオ", "Meiryo", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
	font-size: 16px;
	font-weight: normal;
	line-height: 1.5;
	/* 2 */
	-webkit-text-size-adjust: 100%;
	/* 3 */
	background: #fff;
	color: #666;
}

/*
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/* Links
 ========================================================================== */
/*
 * Remove the outline on focused links when they are also active or hovered
 */
a:active,
a:hover {
	outline: none;
}

/*
 * Style
 */
a,
.uk-link {
	color: #1e87f0;
	text-decoration: none;
	cursor: pointer;
}

a:hover,
.uk-link:hover,
.uk-link-toggle:hover .uk-link,
.uk-link-toggle:focus .uk-link {
	color: #0f6ecd;
	text-decoration: underline;
}

/* Text-level semantics
 ========================================================================== */
/*
 * 1. Add the correct text decoration in Edge.
 * 2. The shorthand declaration `underline dotted` is not supported in Safari.
 */
abbr[title] {
	/* 1 */
	text-decoration: underline dotted;
	/* 2 */
	-webkit-text-decoration-style: dotted;
}

/*
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/*
 * 1. Consolas has a better baseline in running text compared to `Courier`
 * 2. Correct the odd `em` font sizing in all browsers.
 * 3. Style
 */
:not(pre) > code,
:not(pre) > kbd,
:not(pre) > samp {
	/* 1 */
	font-family: Consolas, monaco, monospace;
	/* 2 */
	font-size: 0.875rem;
	/* 3 */
	color: #f0506e;
	white-space: nowrap;
	padding: 2px 6px;
	background: #f8f8f8;
}

/*
 * Emphasize
 */
em {
	color: #f0506e;
}

/*
 * Insert
 */
ins {
	background: #ffd;
	color: #666;
	text-decoration: none;
}

/*
 * Mark
 */
mark {
	background: #ffd;
	color: #666;
}

/*
 * Quote
 */
q {
	font-style: italic;
}

/*
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/*
 * Prevents `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

/* Embedded content
 ========================================================================== */
/*
 * Remove the gap between embedded content and the bottom of their containers.
 */
audio,
canvas,
iframe,
img,
svg,
video {
	vertical-align: middle;
}

/*
 * 1. Add responsiveness.
 * 2. Auto-scale the height. Only needed if `height` attribute is present.
 * 3. Corrects responsive `max-width` behavior if padding and border are used.
 * 4. Exclude SVGs for IE11 because they don't preserve their aspect ratio.
 */
canvas,
img,
video {
	/* 1 */
	max-width: 100%;
	/* 2 */
	height: auto;
	/* 3 */
	box-sizing: border-box;
}

/* 4 */
@supports (display: block) {
	svg {
		max-width: 100%;
		height: auto;
		box-sizing: border-box;
	}
}
/*
 * Hide the overflow in IE.
 */
svg:not(:root) {
	overflow: hidden;
}

/*
 * 1. Fix lazy loading images if parent element is set to `display: inline` and has `overflow: hidden`.
 * 2. Hide `alt` text for lazy loading images.
 * Note: Selector for background while loading img[data-src*='.jpg'][src*='data:image'] { background: grey; }
 */
img:not([src]) {
	/* 1 */
	min-width: 1px;
	/* 2 */
	visibility: hidden;
}

/*
 * Iframe
 * Remove border in all browsers
 */
iframe {
	border: 0;
}

/* Block elements
 ========================================================================== */
/*
 * Margins
 */
p,
ul,
ol,
dl,
pre,
address,
fieldset,
figure {
	margin: 0 0 20px 0;
}

/* Add margin if adjacent element */
* + p,
* + ul,
* + ol,
* + dl,
* + pre,
* + address,
* + fieldset,
* + figure {
	margin-top: 20px;
}

/* Headings
 ========================================================================== */
h1, .uk-h1,
h2, .uk-h2,
h3, .uk-h3,
h4, .uk-h4,
h5, .uk-h5,
h6, .uk-h6,
.uk-heading-small,
.uk-heading-medium,
.uk-heading-large,
.uk-heading-xlarge,
.uk-heading-2xlarge {
	margin: 0 0 20px 0;
	font-family: "游ゴシック", YuGothic, "Yu Gothic", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Hiragino Maru Gothic W4 JIS2004", "メイリオ", "Meiryo", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
	font-weight: normal;
	color: #333;
	text-transform: none;
}

/* Add margin if adjacent element */
* + h1, * + .uk-h1,
* + h2, * + .uk-h2,
* + h3, * + .uk-h3,
* + h4, * + .uk-h4,
* + h5, * + .uk-h5,
* + h6, * + .uk-h6,
* + .uk-heading-small,
* + .uk-heading-medium,
* + .uk-heading-large,
* + .uk-heading-xlarge,
* + .uk-heading-2xlarge {
	margin-top: 40px;
}

/*
 * Sizes
 */
h1, .uk-h1 {
	font-size: 2.23125rem;
	line-height: 1.2;
}

h2, .uk-h2 {
	font-size: 1.7rem;
	line-height: 1.3;
}

h3, .uk-h3 {
	font-size: 1.5rem;
	line-height: 1.4;
}

h4, .uk-h4 {
	font-size: 1.25rem;
	line-height: 1.4;
}

h5, .uk-h5 {
	font-size: 16px;
	line-height: 1.4;
}

h6, .uk-h6 {
	font-size: 0.875rem;
	line-height: 1.4;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	h1, .uk-h1 {
		font-size: 2.625rem;
	}

	h2, .uk-h2 {
		font-size: 2rem;
	}
}
/* Lists
 ========================================================================== */
ul,
ol {
	padding-left: 30px;
}

/*
 * Reset margin for nested lists
 */
ul > li > ul,
ul > li > ol,
ol > li > ol,
ol > li > ul {
	margin: 0;
}

/* Description lists
 ========================================================================== */
dt {
	font-weight: bold;
}

dd {
	margin-left: 0;
}

/* Horizontal rules
 ========================================================================== */
/*
 * 1. Show the overflow in Chrome, Edge and IE.
 * 2. Add the correct text-align in Edge and IE.
 * 3. Style
 */
hr, .uk-hr {
	/* 1 */
	overflow: visible;
	/* 2 */
	text-align: inherit;
	/* 3 */
	margin: 0 0 20px 0;
	border: 0;
	border-top: 1px solid #396e90;
}

/* Add margin if adjacent element */
* + hr,
* + .uk-hr {
	margin-top: 20px;
}

/* Address
 ========================================================================== */
address {
	font-style: normal;
}

/* Blockquotes
 ========================================================================== */
blockquote {
	margin: 0 0 20px 0;
	font-size: 1.25rem;
	line-height: 1.5;
	font-style: italic;
	color: #333;
}

/* Add margin if adjacent element */
* + blockquote {
	margin-top: 20px;
}

/*
 * Content
 */
blockquote p:last-of-type {
	margin-bottom: 0;
}

blockquote footer {
	margin-top: 10px;
	font-size: 0.875rem;
	line-height: 1.5;
	color: #666;
}
blockquote footer::before {
	content: "— ";
}

/* Preformatted text
 ========================================================================== */
/*
 * 1. Contain overflow in all browsers.
 */
pre {
	font: 0.875rem / 1.5 Consolas, monaco, monospace;
	color: #666;
	-moz-tab-size: 4;
	tab-size: 4;
	/* 1 */
	overflow: auto;
	padding: 10px;
	border: 1px solid #396e90;
	border-radius: 3px;
	background: #fff;
}

pre code {
	font-family: Consolas, monaco, monospace;
}

/* Selection pseudo-element
 ========================================================================== */
::selection {
	background: #39f;
	color: #fff;
	text-shadow: none;
}

/* HTML5 elements
 ========================================================================== */
/*
 * 1. Add the correct display in Edge, IE 10+, and Firefox.
 * 2. Add the correct display in IE.
 */
details,
main {
	/* 2 */
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/*
 * Add the correct display in IE.
 */
template {
	display: none;
}

/* Pass media breakpoints to JS
 ========================================================================== */
/*
 * Breakpoints
 */
.uk-breakpoint-s::before {
	content: "640px";
}

.uk-breakpoint-m::before {
	content: "960px";
}

.uk-breakpoint-l::before {
	content: "1200px";
}

.uk-breakpoint-xl::before {
	content: "1600px";
}

:root {
	--uk-breakpoint-s: 640px;
	--uk-breakpoint-m: 960px;
	--uk-breakpoint-l: 1200px;
	--uk-breakpoint-xl: 1600px;
}

/* ========================================================================
   Component: Link
 ========================================================================== */
/* Muted
 ========================================================================== */
a.uk-link-muted,
.uk-link-muted a {
	color: #999;
}

a.uk-link-muted:hover,
.uk-link-muted a:hover,
.uk-link-toggle:hover .uk-link-muted,
.uk-link-toggle:focus .uk-link-muted {
	color: #666;
}

/* Text
 ========================================================================== */
a.uk-link-text,
.uk-link-text a {
	color: inherit;
}

a.uk-link-text:hover,
.uk-link-text a:hover,
.uk-link-toggle:hover .uk-link-text,
.uk-link-toggle:focus .uk-link-text {
	color: #999;
}

/* Heading
 ========================================================================== */
a.uk-link-heading,
.uk-link-heading a {
	color: inherit;
}

a.uk-link-heading:hover,
.uk-link-heading a:hover,
.uk-link-toggle:hover .uk-link-heading,
.uk-link-toggle:focus .uk-link-heading {
	color: #1e87f0;
	text-decoration: none;
}

/* Reset
 ========================================================================== */
/*
 * `!important` needed to override inverse component
 */
a.uk-link-reset,
.uk-link-reset a {
	color: inherit !important;
	text-decoration: none !important;
}

/* Toggle
 ========================================================================== */
.uk-link-toggle {
	color: inherit !important;
	text-decoration: none !important;
}

.uk-link-toggle:focus {
	outline: none;
}

/* ========================================================================
   Component: Heading
 ========================================================================== */
.uk-heading-small {
	font-size: 2.6rem;
	line-height: 1.2;
}

.uk-heading-medium {
	font-size: 2.8875rem;
	line-height: 1.1;
}

.uk-heading-large {
	font-size: 3.4rem;
	line-height: 1.1;
}

.uk-heading-xlarge {
	font-size: 4rem;
	line-height: 1;
}

.uk-heading-2xlarge {
	font-size: 6rem;
	line-height: 1;
}

/* Tablet Landscape and bigger */
@media (min-width: 960px) {
	.uk-heading-small {
		font-size: 3.25rem;
	}

	.uk-heading-medium {
		font-size: 3.5rem;
	}

	.uk-heading-large {
		font-size: 4rem;
	}

	.uk-heading-xlarge {
		font-size: 6rem;
	}

	.uk-heading-2xlarge {
		font-size: 8rem;
	}
}
/* Laptop and bigger */
@media (min-width: 1200px) {
	.uk-heading-medium {
		font-size: 4rem;
	}

	.uk-heading-large {
		font-size: 6rem;
	}

	.uk-heading-xlarge {
		font-size: 8rem;
	}

	.uk-heading-2xlarge {
		font-size: 11rem;
	}
}
/* Primary
   Deprecated: Use `uk-heading-medium` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Hero
   Deprecated: Use `uk-heading-xlarge` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Divider
 ========================================================================== */
.uk-heading-divider {
	padding-bottom: calc(5px + 0.1em);
	border-bottom: calc(0.2px + 0.05em) solid #396e90;
}

/* Bullet
 ========================================================================== */
.uk-heading-bullet {
	position: relative;
}

/*
 * 1. Using `inline-block` to make it work with text alignment
 * 2. Center vertically
 * 3. Style
 */
.uk-heading-bullet::before {
	content: "";
	/* 1 */
	display: inline-block;
	/* 2 */
	position: relative;
	top: calc(-0.1 * 1em);
	vertical-align: middle;
	/* 3 */
	height: calc(4px + 0.7em);
	margin-right: calc(5px + 0.2em);
	border-left: calc(5px + 0.1em) solid #396e90;
}

/* Line
 ========================================================================== */
/*
 * Clip the child element
 */
.uk-heading-line {
	overflow: hidden;
}

/*
 * Extra markup is needed to make it work with text align
 */
.uk-heading-line > * {
	display: inline-block;
	position: relative;
}

/*
 * 1. Center vertically
 * 2. Make the element as large as possible. It's clipped by the container.
 * 3. Style
 */
.uk-heading-line > ::before,
.uk-heading-line > ::after {
	content: "";
	/* 1 */
	position: absolute;
	top: calc(50% - (calc(0.2px + 0.05em) / 2));
	/* 2 */
	width: 2000px;
	/* 3 */
	border-bottom: calc(0.2px + 0.05em) solid #396e90;
}

.uk-heading-line > ::before {
	right: 100%;
	margin-right: calc(5px + 0.3em);
}

.uk-heading-line > ::after {
	left: 100%;
	margin-left: calc(5px + 0.3em);
}

/* ========================================================================
   Component: Divider
 ========================================================================== */
/*
 * 1. Reset default `hr`
 * 2. Set margin if a `div` is used for semantical reason
 */
[class*=uk-divider] {
	/* 1 */
	border: none;
	/* 2 */
	margin-bottom: 20px;
}

/* Add margin if adjacent element */
* + [class*=uk-divider] {
	margin-top: 20px;
}

/* Icon
 ========================================================================== */
.uk-divider-icon {
	position: relative;
	height: 20px;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22%23396e90%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
	background-repeat: no-repeat;
	background-position: 50% 50%;
}

.uk-divider-icon::before,
.uk-divider-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	max-width: calc(50% - (50px / 2));
	border-bottom: 1px solid #396e90;
}

.uk-divider-icon::before {
	right: calc(50% + (50px / 2));
	width: 100%;
}

.uk-divider-icon::after {
	left: calc(50% + (50px / 2));
	width: 100%;
}

/* Small
 ========================================================================== */
/*
 * 1. Fix height because of `inline-block`
 * 2. Using ::after and inline-block to make `text-align` work
 */
/* 1 */
.uk-divider-small {
	line-height: 0;
}

/* 2 */
.uk-divider-small::after {
	content: "";
	display: inline-block;
	width: 100px;
	max-width: 100%;
	border-top: 1px solid #396e90;
	vertical-align: top;
}

/* Vertical
 ========================================================================== */
.uk-divider-vertical {
	width: 1px;
	height: 100px;
	margin-left: auto;
	margin-right: auto;
	border-left: 1px solid #396e90;
}

/* ========================================================================
   Component: List
 ========================================================================== */
.uk-list {
	padding: 0;
	list-style: none;
}

/*
 * Remove margin from the last-child
 */
.uk-list > * > :last-child {
	margin-bottom: 0;
}

/*
 * Style
 */
.uk-list > :nth-child(n+2),
.uk-list > * > ul {
	margin-top: 10px;
}

/* Marker modifiers
 * Moving `::marker` inside `::before` to style it differently
 * To style the `::marker` is currently only supported in Firefox and Safari
 ========================================================================== */
.uk-list-disc > *,
.uk-list-circle > *,
.uk-list-square > *,
.uk-list-decimal > *,
.uk-list-hyphen > * {
	padding-left: 30px;
}

/*
 * Type modifiers
 */
.uk-list-decimal {
	counter-reset: decimal;
}

.uk-list-decimal > * {
	counter-increment: decimal;
}

[class*=uk-list] > ::before {
	content: "";
	position: relative;
	left: -30px;
	width: 30px;
	height: 1.5em;
	margin-bottom: -1.5em;
	display: list-item;
	list-style-position: inside;
	text-align: right;
}

.uk-list-disc > ::before {
	list-style-type: disc;
}

.uk-list-circle > ::before {
	list-style-type: circle;
}

.uk-list-square > ::before {
	list-style-type: square;
}

.uk-list-decimal > ::before {
	content: counter(decimal, decimal) " . ";
}

.uk-list-hyphen > ::before {
	content: "–  ";
}

/*
 * Color modifiers
 */
.uk-list-muted > ::before {
	color: #999 !important;
}

.uk-list-emphasis > ::before {
	color: #333 !important;
}

.uk-list-primary > ::before {
	color: #1e87f0 !important;
}

.uk-list-secondary > ::before {
	color: #222 !important;
}

/* Image bullet modifier
 ========================================================================== */
.uk-list-bullet > * {
	padding-left: 30px;
}

.uk-list-bullet > ::before {
	content: "";
	position: relative;
	left: -30px;
	width: 30px;
	height: 1.5em;
	margin-bottom: -1.5em;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");
	background-repeat: no-repeat;
	background-position: 50% 50%;
}

/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-list-divider > :nth-child(n+2) {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #396e90;
}

/*
 * Striped
 */
.uk-list-striped > * {
	padding: 10px 10px;
}
.uk-list-striped > *:nth-of-type(odd) {
	border-top: 1px solid #396e90;
	border-bottom: 1px solid #396e90;
}

.uk-list-striped > :nth-of-type(odd) {
	background: #f8f8f8;
}

.uk-list-striped > :nth-child(n+2) {
	margin-top: 0;
}

/* Size modifier
 ========================================================================== */
.uk-list-large > :nth-child(n+2),
.uk-list-large > * > ul {
	margin-top: 20px;
}

.uk-list-collapse > :nth-child(n+2),
.uk-list-collapse > * > ul {
	margin-top: 0;
}

/*
 * Divider
 */
.uk-list-large.uk-list-divider > :nth-child(n+2) {
	margin-top: 20px;
	padding-top: 20px;
}

.uk-list-collapse.uk-list-divider > :nth-child(n+2) {
	margin-top: 0;
	padding-top: 0;
}

/*
 * Striped
 */
.uk-list-large.uk-list-striped > * {
	padding: 20px 10px;
}

.uk-list-collapse.uk-list-striped > * {
	padding-top: 0;
	padding-bottom: 0;
}

.uk-list-large.uk-list-striped > :nth-child(n+2),
.uk-list-collapse.uk-list-striped > :nth-child(n+2) {
	margin-top: 0;
}

/* ========================================================================
   Component: Description list
 ========================================================================== */
/*
 * Term
 */
.uk-description-list > dt {
	color: #333;
	font-size: 0.875rem;
	font-weight: normal;
	text-transform: uppercase;
}

.uk-description-list > dt:nth-child(n+2) {
	margin-top: 20px;
}

/*
 * Description
 */
/* Style modifier
 ========================================================================== */
/*
 * Line
 */
.uk-description-list-divider > dt:nth-child(n+2) {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #396e90;
}

/* ========================================================================
   Component: Table
 ========================================================================== */
/*
 * 1. Remove most spacing between table cells.
 * 2. Behave like a block element
 * 3. Style
 */
.uk-table {
	/* 1 */
	border-collapse: collapse;
	border-spacing: 0;
	/* 2 */
	width: 100%;
	/* 3 */
	margin-bottom: 20px;
}

/* Add margin if adjacent element */
* + .uk-table {
	margin-top: 20px;
}

/* Header cell
 ========================================================================== */
/*
 * 1. Style
 */
.uk-table th {
	padding: 16px 12px;
	text-align: left;
	vertical-align: bottom;
	/* 1 */
	font-size: 0.875rem;
	font-weight: normal;
	color: #999;
	text-transform: uppercase;
}

/* Cell
 ========================================================================== */
.uk-table td {
	padding: 16px 12px;
	vertical-align: top;
}

/*
 * Remove margin from the last-child
 */
.uk-table td > :last-child {
	margin-bottom: 0;
}

/* Footer
 ========================================================================== */
.uk-table tfoot {
	font-size: 0.875rem;
}

/* Caption
 ========================================================================== */
.uk-table caption {
	font-size: 0.875rem;
	text-align: left;
	color: #999;
}

/* Alignment modifier
 ========================================================================== */
.uk-table-middle,
.uk-table-middle td {
	vertical-align: middle !important;
}

/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-table-divider > tr:not(:first-child),
.uk-table-divider > :not(:first-child) > tr,
.uk-table-divider > :first-child > tr:not(:first-child) {
	border-top: 1px solid #c4d0d8;
}

/*
 * Striped
 */
.uk-table-striped > tr:nth-of-type(odd),
.uk-table-striped tbody tr:nth-of-type(odd) {
	background: #f8f8f8;
	border-top: 1px solid #c4d0d8;
	border-bottom: 1px solid #c4d0d8;
}

/*
 * Hover
 */
.uk-table-hover > tr:hover,
.uk-table-hover tbody tr:hover {
	background: #ffd;
}

/* Active state
 ========================================================================== */
.uk-table > tr.uk-active,
.uk-table tbody tr.uk-active {
	background: #ffd;
}

/* Size modifier
 ========================================================================== */
.uk-table-small th,
.uk-table-small td {
	padding: 10px 12px;
}

.uk-table-large th,
.uk-table-large td {
	padding: 22px 12px;
}

/* Justify modifier
 ========================================================================== */
.uk-table-justify th:first-child,
.uk-table-justify td:first-child {
	padding-left: 0;
}

.uk-table-justify th:last-child,
.uk-table-justify td:last-child {
	padding-right: 0;
}

/* Cell size modifier
 ========================================================================== */
.uk-table-shrink {
	width: 1px;
}

.uk-table-expand {
	min-width: 150px;
}

/* Cell link modifier
 ========================================================================== */
/*
 * Does not work with `uk-table-justify` at the moment
 */
.uk-table-link {
	padding: 0 !important;
}

.uk-table-link > a {
	display: block;
	padding: 16px 12px;
}

.uk-table-small .uk-table-link > a {
	padding: 10px 12px;
}

/* Responsive table
 ========================================================================== */
/* Phone landscape and smaller */
@media (max-width: 959px) {
	.uk-table-responsive,
.uk-table-responsive tbody,
.uk-table-responsive th,
.uk-table-responsive td,
.uk-table-responsive tr {
		display: block;
	}

	.uk-table-responsive thead {
		display: none;
	}

	.uk-table-responsive th,
.uk-table-responsive td {
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		overflow: visible !important;
		white-space: normal !important;
	}

	.uk-table-responsive th:not(:first-child):not(.uk-table-link),
.uk-table-responsive td:not(:first-child):not(.uk-table-link),
.uk-table-responsive .uk-table-link:not(:first-child) > a {
		padding-top: 5px !important;
	}

	.uk-table-responsive th:not(:last-child):not(.uk-table-link),
.uk-table-responsive td:not(:last-child):not(.uk-table-link),
.uk-table-responsive .uk-table-link:not(:last-child) > a {
		padding-bottom: 5px !important;
	}

	.uk-table-justify.uk-table-responsive th,
.uk-table-justify.uk-table-responsive td {
		padding-left: 0;
		padding-right: 0;
	}
}
.uk-table tbody tr {
	transition: background-color 0.1s linear;
}

/* ========================================================================
   Component: Icon
 ========================================================================== */
/*
 * Note: 1. - 7. is required for `button` elements. Needed for Close and Form Icon component.
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Remove border-radius in Chrome.
 * 4. Address `overflow` set to `hidden` in IE.
 * 5. Correct `font` properties and `color` not being inherited for `button`.
 * 6. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 7. Remove default `button` padding and background color
 * 8. Style
 * 9. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 10. Let the container fit the height of the icon
 */
.uk-icon {
	/* 1 */
	margin: 0;
	/* 2 */
	border: none;
	/* 3 */
	border-radius: 0;
	/* 4 */
	overflow: visible;
	/* 5 */
	font: inherit;
	color: inherit;
	/* 6 */
	text-transform: none;
	/* 7. */
	padding: 0;
	background-color: transparent;
	/* 8 */
	display: inline-block;
	/* 9 */
	fill: currentcolor;
	/* 10 */
	line-height: 0;
}

/* Required for `button`. */
button.uk-icon:not(:disabled) {
	cursor: pointer;
}

/*
 * Remove the inner border and padding in Firefox.
 */
.uk-icon::-moz-focus-inner {
	border: 0;
	padding: 0;
}

/*
 * Set the fill and stroke color of all SVG elements to the current text color
 */
.uk-icon:not(.uk-preserve) [fill*="#"]:not(.uk-preserve) {
	fill: currentcolor;
}

.uk-icon:not(.uk-preserve) [stroke*="#"]:not(.uk-preserve) {
	stroke: currentcolor;
}

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-icon > * {
	transform: translate(0, 0);
}

/* Image modifier
 ========================================================================== */
/*
 * Display images in icon dimensions
 */
.uk-icon-image {
	width: 20px;
	height: 20px;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: contain;
	vertical-align: middle;
}

/* Style modifiers
 ========================================================================== */
/*
 * Link
 */
.uk-icon-link {
	color: #999;
}

.uk-icon-link:hover,
.uk-icon-link:focus {
	color: #666;
	outline: none;
}

/* OnClick + Active */
.uk-icon-link:active,
.uk-active > .uk-icon-link {
	color: #595959;
}

/*
 * Button
 * 1. Center icon vertically and horizontally
 */
.uk-icon-button {
	box-sizing: border-box;
	width: 36px;
	height: 36px;
	border-radius: 500px;
	background: #f8f8f8;
	color: #999;
	vertical-align: middle;
	/* 1 */
	display: inline-flex;
	justify-content: center;
	align-items: center;
	transition: 0.1s ease-in-out;
	transition-property: color, background-color;
}

/* Hover + Focus */
.uk-icon-button:hover,
.uk-icon-button:focus {
	background-color: #ebebeb;
	color: #666;
	outline: none;
}

/* OnClick + Active */
.uk-icon-button:active,
.uk-active > .uk-icon-button {
	background-color: #dfdfdf;
	color: #666;
}

/* ========================================================================
   Component: Form Range
 ========================================================================== */
/*
 * 1. Normalize and defaults
 * 2. Prevent content overflow if a fixed width is used
 * 3. Take the full width
 * 4. Remove default style
 * 5. Remove white background in Chrome
 * 6. Remove padding in IE11
 */
.uk-range {
	/* 1 */
	box-sizing: border-box;
	margin: 0;
	vertical-align: middle;
	/* 2 */
	max-width: 100%;
	/* 3 */
	width: 100%;
	/* 4 */
	-webkit-appearance: none;
	/* 5 */
	background: transparent;
	/* 6 */
	padding: 0;
}

/* Focus */
.uk-range:focus {
	outline: none;
}

.uk-range::-moz-focus-outer {
	border: none;
}

/* IE11 Reset */
.uk-range::-ms-track {
	height: 15px;
	background: transparent;
	border-color: transparent;
	color: transparent;
}

/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-range:not(:disabled)::-webkit-slider-thumb {
	cursor: pointer;
}

.uk-range:not(:disabled)::-moz-range-thumb {
	cursor: pointer;
}

.uk-range:not(:disabled)::-ms-thumb {
	cursor: pointer;
}

/* Thumb
 ========================================================================== */
/*
 * 1. Reset
 * 2. Style
 */
/* Webkit */
.uk-range::-webkit-slider-thumb {
	/* 1 */
	-webkit-appearance: none;
	margin-top: -7px;
	/* 2 */
	height: 15px;
	width: 15px;
	border-radius: 500px;
	background: #fff;
	border: 1px solid #2b526b;
}

/* Firefox */
.uk-range::-moz-range-thumb {
	/* 1 */
	border: none;
	/* 2 */
	height: 15px;
	width: 15px;
	border-radius: 500px;
	background: #fff;
	border: 1px solid #2b526b;
}

/* Edge */
.uk-range::-ms-thumb {
	/* 1 */
	margin-top: 0;
}

/* IE11 */
.uk-range::-ms-thumb {
	/* 1 */
	border: none;
	/* 2 */
	height: 15px;
	width: 15px;
	border-radius: 500px;
	background: #fff;
	border: 1px solid #2b526b;
}

/* Edge + IE11 */
.uk-range::-ms-tooltip {
	display: none;
}

/* Track
 ========================================================================== */
/*
 * 1. Safari doesn't have a focus state. Using active instead.
 */
/* Webkit */
.uk-range::-webkit-slider-runnable-track {
	height: 3px;
	background: #ebebeb;
	border-radius: 500px;
}

.uk-range:focus::-webkit-slider-runnable-track,
.uk-range:active::-webkit-slider-runnable-track {
	background: #dfdfdf;
}

/* Firefox */
.uk-range::-moz-range-track {
	height: 3px;
	background: #ebebeb;
	border-radius: 500px;
}

.uk-range:focus::-moz-range-track {
	background: #dfdfdf;
}

/* Edge */
.uk-range::-ms-fill-lower,
.uk-range::-ms-fill-upper {
	height: 3px;
	background: #ebebeb;
	border-radius: 500px;
}

.uk-range:focus::-ms-fill-lower,
.uk-range:focus::-ms-fill-upper {
	background: #dfdfdf;
}

/* ========================================================================
   Component: Form
 ========================================================================== */
/*
 * 1. Define consistent box sizing.
 *    Default is `content-box` with following exceptions set to `border-box`
 *    `select`, `input[type="checkbox"]` and `input[type="radio"]`
 *    `input[type="search"]` in Chrome, Safari and Opera
 *    `input[type="color"]` in Firefox
 * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera.
 * 3. Remove `border-radius` in iOS.
 * 4. Change font properties to `inherit` in all browsers.
 */
.uk-input,
.uk-select,
.uk-textarea,
.uk-radio,
.uk-checkbox {
	/* 1 */
	box-sizing: border-box;
	/* 2 */
	margin: 0;
	/* 3 */
	border-radius: 0;
	/* 4 */
	font: inherit;
}

/*
 * Show the overflow in Edge.
 */
.uk-input {
	overflow: visible;
}

/*
 * Remove the inheritance of text transform in Firefox.
 */
.uk-select {
	text-transform: none;
}

/*
 * 1. Change font properties to `inherit` in all browsers
 * 2. Don't inherit the `font-weight` and use `bold` instead.
 * NOTE: Both declarations don't work in Chrome, Safari and Opera.
 */
.uk-select optgroup {
	/* 1 */
	font: inherit;
	/* 2 */
	font-weight: bold;
}

/*
 * Remove the default vertical scrollbar in IE 10+.
 */
.uk-textarea {
	overflow: auto;
}

/*
 * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X.
 */
.uk-input[type=search]::-webkit-search-cancel-button,
.uk-input[type=search]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/*
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
.uk-input[type=number]::-webkit-inner-spin-button,
.uk-input[type=number]::-webkit-outer-spin-button {
	height: auto;
}

/*
 * Removes placeholder transparency in Firefox.
 */
.uk-input::-moz-placeholder,
.uk-textarea::-moz-placeholder {
	opacity: 1;
}

/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-radio:not(:disabled),
.uk-checkbox:not(:disabled) {
	cursor: pointer;
}

/*
 * Define consistent border, margin, and padding.
 */
.uk-fieldset {
	border: none;
	margin: 0;
	padding: 0;
}

/* Input, select and textarea
 * Allowed: `text`, `password`, `datetime`, `datetime-local`, `date`,  `month`,
            `time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color`
 * Disallowed: `range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image`
 ========================================================================== */
/*
 * Remove default style in iOS.
 */
.uk-input,
.uk-textarea {
	-webkit-appearance: none;
}

/*
 * 1. Prevent content overflow if a fixed width is used
 * 2. Take the full width
 * 3. Reset default
 * 4. Style
 */
.uk-input,
.uk-select,
.uk-textarea {
	/* 1 */
	max-width: 100%;
	/* 2 */
	width: 100%;
	/* 3 */
	border: 0 none;
	/* 4 */
	padding: 0 10px;
	background: #fff;
	color: #666;
	border: 1px solid #396e90;
	transition: 0.2s ease-in-out;
	transition-property: color, background-color, border;
}

/*
 * Single-line
 * 1. Allow any element to look like an `input` or `select` element
 * 2. Make sure line-height is not larger than height
 *    Also needed to center the text vertically
 */
.uk-input,
.uk-select:not([multiple]):not([size]) {
	height: 40px;
	vertical-align: middle;
	/* 1 */
	display: inline-block;
}

/* 2 */
.uk-input:not(input),
.uk-select:not(select) {
	line-height: 38px;
}

/*
 * Multi-line
 */
.uk-select[multiple],
.uk-select[size],
.uk-textarea {
	padding-top: 6px;
	padding-bottom: 6px;
	vertical-align: top;
}

.uk-select[multiple],
.uk-select[size] {
	resize: vertical;
}

/* Focus */
.uk-input:focus,
.uk-select:focus,
.uk-textarea:focus {
	outline: none;
	background-color: #fff;
	color: #666;
	border-color: #1e87f0;
}

/* Disabled */
.uk-input:disabled,
.uk-select:disabled,
.uk-textarea:disabled {
	background-color: #f8f8f8;
	color: #999;
	border-color: #396e90;
}

/*
 * Placeholder
 */
.uk-input::-ms-input-placeholder {
	color: #999 !important;
}

.uk-input::placeholder {
	color: #999;
}

.uk-textarea::-ms-input-placeholder {
	color: #999 !important;
}

.uk-textarea::placeholder {
	color: #999;
}

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Small
 */
.uk-form-small {
	font-size: 0.875rem;
}

/* Single-line */
.uk-form-small:not(textarea):not([multiple]):not([size]) {
	height: 30px;
	padding-left: 8px;
	padding-right: 8px;
}

/* Multi-line */
textarea.uk-form-small,
[multiple].uk-form-small,
[size].uk-form-small {
	padding: 5px 8px;
}

.uk-form-small:not(select):not(input):not(textarea) {
	line-height: 28px;
}

/*
 * Large
 */
.uk-form-large {
	font-size: 1.25rem;
}

/* Single-line */
.uk-form-large:not(textarea):not([multiple]):not([size]) {
	height: 55px;
	padding-left: 12px;
	padding-right: 12px;
}

/* Multi-line */
textarea.uk-form-large,
[multiple].uk-form-large,
[size].uk-form-large {
	padding: 7px 12px;
}

.uk-form-large:not(select):not(input):not(textarea) {
	line-height: 53px;
}

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Error
 */
.uk-form-danger,
.uk-form-danger:focus {
	color: #f0506e;
	border-color: #f0506e;
}

/*
 * Success
 */
.uk-form-success,
.uk-form-success:focus {
	color: #32d296;
	border-color: #32d296;
}

/*
 * Blank
 */
.uk-form-blank {
	background: none;
	border-color: transparent;
}

.uk-form-blank:focus {
	border-color: #396e90;
	border-style: dashed;
}

/* Width modifiers (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Fixed widths
 * Different widths for mini sized `input` and `select` elements
 */
input.uk-form-width-xsmall {
	width: 50px;
}

select.uk-form-width-xsmall {
	width: 75px;
}

.uk-form-width-small {
	width: 130px;
}

.uk-form-width-medium {
	width: 200px;
}

.uk-form-width-large {
	width: 500px;
}

/* Select
 ========================================================================== */
/*
 * 1. Remove default style. Also works in Firefox
 * 2. Style
 * 3. Remove default style in IE 10/11
 * 4. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
 */
.uk-select:not([multiple]):not([size]) {
	/* 1 */
	-webkit-appearance: none;
	-moz-appearance: none;
	/* 2 */
	padding-right: 20px;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
	background-repeat: no-repeat;
	background-position: 100% 50%;
}

/* 3 */
.uk-select:not([multiple]):not([size])::-ms-expand {
	display: none;
}

/* 4 */
.uk-select:not([multiple]):not([size]) option {
	color: #666;
}

/*
 * Disabled
 */
.uk-select:not([multiple]):not([size]):disabled {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}

/* Datalist
 ========================================================================== */
/*
 * 1. Remove default style in Chrome
 */
.uk-input[list] {
	padding-right: 20px;
	background-repeat: no-repeat;
	background-position: 100% 50%;
}

.uk-input[list]:hover,
.uk-input[list]:focus {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2012%208%206%2016%206%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}

/* 1 */
.uk-input[list]::-webkit-calendar-picker-indicator {
	display: none !important;
}

/* Radio and checkbox
 * Note: Does not work in IE11
 ========================================================================== */
/*
 * 1. Style
 * 2. Make box more robust so it clips the child element
 * 3. Vertical alignment
 * 4. Remove default style
 * 5. Fix black background on iOS
 * 6. Center icons
 */
.uk-radio,
.uk-checkbox {
	/* 1 */
	display: inline-block;
	height: 16px;
	width: 16px;
	/* 2 */
	overflow: hidden;
	/* 3 */
	margin-top: -4px;
	vertical-align: middle;
	/* 4 */
	-webkit-appearance: none;
	-moz-appearance: none;
	/* 5 */
	background-color: transparent;
	/* 6 */
	background-repeat: no-repeat;
	background-position: 50% 50%;
	border: 1px solid #2b526b;
	transition: 0.2s ease-in-out;
	transition-property: background-color, border;
}

.uk-radio {
	border-radius: 50%;
}

/* Focus */
.uk-radio:focus,
.uk-checkbox:focus {
	background-color: rgba(0, 0, 0, 0);
	outline: none;
	border-color: #1e87f0;
}

/*
 * Checked
 */
.uk-radio:checked,
.uk-checkbox:checked,
.uk-checkbox:indeterminate {
	background-color: #1e87f0;
	border-color: transparent;
}

/* Focus */
.uk-radio:checked:focus,
.uk-checkbox:checked:focus,
.uk-checkbox:indeterminate:focus {
	background-color: #0e6ecd;
}

/*
 * Icons
 */
.uk-radio:checked {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E");
}

.uk-checkbox:checked {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}

.uk-checkbox:indeterminate {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23fff%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E");
}

/*
 * Disabled
 */
.uk-radio:disabled,
.uk-checkbox:disabled {
	background-color: #f8f8f8;
	border-color: #396e90;
}

.uk-radio:disabled:checked {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23999%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E");
}

.uk-checkbox:disabled:checked {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}

.uk-checkbox:disabled:indeterminate {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23999%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E");
}

/* Legend
 ========================================================================== */
/*
 * Legend
 * 1. Behave like block element
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove padding so people aren't caught out if they zero out fieldsets.
 * 4. Style
 */
.uk-legend {
	/* 1 */
	width: 100%;
	/* 2 */
	color: inherit;
	/* 3 */
	padding: 0;
	/* 4 */
	font-size: 1.5rem;
	line-height: 1.4;
}

/* Custom controls
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 */
.uk-form-custom {
	/* 1 */
	display: inline-block;
	/* 2 */
	position: relative;
	/* 3 */
	max-width: 100%;
	/* 4 */
	vertical-align: middle;
}

/*
 * 1. Position and resize the form control to always cover its container
 * 2. Required for Firefox for positioning to the left
 * 3. Required for Webkit to make `height` work
 * 4. Hide controle and show cursor
 * 5. Needed for the cursor
 * 6. Clip height caused by 5. Needed for Webkit only
 */
.uk-form-custom select,
.uk-form-custom input[type=file] {
	/* 1 */
	position: absolute;
	top: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	/* 2 */
	left: 0;
	/* 3 */
	-webkit-appearance: none;
	/* 4 */
	opacity: 0;
	cursor: pointer;
}

.uk-form-custom input[type=file] {
	/* 5 */
	font-size: 500px;
	/* 6 */
	overflow: hidden;
}

/* Label
 ========================================================================== */
.uk-form-label {
	color: #333;
	font-size: 0.875rem;
}

/* Layout
 ========================================================================== */
/*
 * Stacked
 */
.uk-form-stacked .uk-form-label {
	display: block;
	margin-bottom: 5px;
}

/*
 * Horizontal
 */
/* Tablet portrait and smaller */
@media (max-width: 959px) {
	/* Behave like `uk-form-stacked` */
	.uk-form-horizontal .uk-form-label {
		display: block;
		margin-bottom: 5px;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-form-horizontal .uk-form-label {
		width: 200px;
		margin-top: 7px;
		float: left;
	}

	.uk-form-horizontal .uk-form-controls {
		margin-left: 215px;
	}

	/* Better vertical alignment if controls are checkboxes and radio buttons with text */
	.uk-form-horizontal .uk-form-controls-text {
		padding-top: 7px;
	}
}
/* Icons
 ========================================================================== */
/*
 * 1. Set position
 * 2. Set width
 * 3. Center icon vertically and horizontally
 * 4. Style
 */
.uk-form-icon {
	/* 1 */
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	/* 2 */
	width: 40px;
	/* 3 */
	display: inline-flex;
	justify-content: center;
	align-items: center;
	/* 4 */
	color: #999;
}

/*
 * Required for `a`.
 */
.uk-form-icon:hover {
	color: #666;
}

/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-form-icon:not(a):not(button):not(input) {
	pointer-events: none;
}

/*
 * Input padding
 */
.uk-form-icon:not(.uk-form-icon-flip) ~ .uk-input {
	padding-left: 40px !important;
}

/*
 * Position modifier
 */
.uk-form-icon-flip {
	right: 0;
	left: auto;
}

.uk-form-icon-flip ~ .uk-input {
	padding-right: 40px !important;
}

/* ========================================================================
   Component: Button
 ========================================================================== */
/*
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Address `overflow` set to `hidden` in IE.
 * 4. Correct `font` properties and `color` not being inherited for `button`.
 * 5. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 6. Remove default style for `input type="submit"`in iOS.
 * 7. Style
 * 8. `line-height` is used to create a height because it also centers the text vertically for `a` elements.
 *    Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements.
 * 9. Align text if button has a width
 * 10. Required for `a`.
 */
.uk-button {
	/* 1 */
	margin: 0;
	/* 2 */
	border: none;
	/* 3 */
	overflow: visible;
	/* 4 */
	font: inherit;
	color: inherit;
	/* 5 */
	text-transform: none;
	/* 6 */
	-webkit-appearance: none;
	border-radius: 0;
	/* 7 */
	display: inline-block;
	box-sizing: border-box;
	padding: 0 30px;
	vertical-align: middle;
	font-size: 0.875rem;
	/* 8 */
	line-height: 38px;
	/* 9 */
	text-align: center;
	/* 10 */
	text-decoration: none;
	text-transform: uppercase;
	transition: 0.1s ease-in-out;
	transition-property: color, background-color, border-color;
}

.uk-button:not(:disabled) {
	cursor: pointer;
}

/*
 * Remove the inner border and padding in Firefox.
 */
.uk-button::-moz-focus-inner {
	border: 0;
	padding: 0;
}

/* Hover */
.uk-button:hover {
	/* 9 */
	text-decoration: none;
}

/* Focus */
.uk-button:focus {
	outline: none;
}

/* OnClick + Active */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-button-default {
	background-color: transparent;
	color: #333;
	border: 1px solid #396e90;
}

/* Hover + Focus */
.uk-button-default:hover,
.uk-button-default:focus {
	background-color: transparent;
	color: #333;
	border-color: #1c3647;
}

/* OnClick + Active */
.uk-button-default:active,
.uk-button-default.uk-active {
	background-color: transparent;
	color: #333;
	border-color: #0e1a22;
}

/*
 * Primary
 */
.uk-button-primary {
	background-color: #1e87f0;
	color: #fff;
	border: 1px solid transparent;
}

/* Hover + Focus */
.uk-button-primary:hover,
.uk-button-primary:focus {
	background-color: #0f7ae5;
	color: #fff;
}

/* OnClick + Active */
.uk-button-primary:active,
.uk-button-primary.uk-active {
	background-color: #0e6ecd;
	color: #fff;
}

/*
 * Secondary
 */
.uk-button-secondary {
	background-color: #222;
	color: #fff;
	border: 1px solid transparent;
}

/* Hover + Focus */
.uk-button-secondary:hover,
.uk-button-secondary:focus {
	background-color: #151515;
	color: #fff;
}

/* OnClick + Active */
.uk-button-secondary:active,
.uk-button-secondary.uk-active {
	background-color: #090909;
	color: #fff;
}

/*
 * Danger
 */
.uk-button-danger {
	background-color: #f0506e;
	color: #fff;
	border: 1px solid transparent;
}

/* Hover + Focus */
.uk-button-danger:hover,
.uk-button-danger:focus {
	background-color: #ee395b;
	color: #fff;
}

/* OnClick + Active */
.uk-button-danger:active,
.uk-button-danger.uk-active {
	background-color: #ec2147;
	color: #fff;
}

/*
 * Disabled
 * The same for all style modifiers
 */
.uk-button-default:disabled,
.uk-button-primary:disabled,
.uk-button-secondary:disabled,
.uk-button-danger:disabled {
	background-color: transparent;
	color: #999;
	border-color: #396e90;
}

/* Size modifiers
 ========================================================================== */
.uk-button-small {
	padding: 0 15px;
	line-height: 28px;
	font-size: 0.875rem;
}

.uk-button-large {
	padding: 0 40px;
	line-height: 53px;
	font-size: 0.875rem;
}

/* Text modifiers
 ========================================================================== */
/*
 * Text
 * 1. Reset
 * 2. Style
 */
.uk-button-text {
	/* 1 */
	padding: 0;
	line-height: 1.5;
	background: none;
	/* 2 */
	color: #333;
	position: relative;
}
.uk-button-text::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 100%;
	border-bottom: 1px solid #333;
	transition: right 0.3s ease-out;
}

/* Hover + Focus */
.uk-button-text:hover,
.uk-button-text:focus {
	color: #333;
}
.uk-button-text:hover::before,
.uk-button-text:focus::before {
	right: 0;
}

/* Disabled */
.uk-button-text:disabled {
	color: #999;
}
.uk-button-text:disabled::before {
	display: none;
}

/*
 * Link
 * 1. Reset
 * 2. Style
 */
.uk-button-link {
	/* 1 */
	padding: 0;
	line-height: 1.5;
	background: none;
	/* 2 */
	color: #333;
}

/* Hover + Focus */
.uk-button-link:hover,
.uk-button-link:focus {
	color: #999;
	text-decoration: none;
}

/* Disabled */
.uk-button-link:disabled {
	color: #999;
	text-decoration: none;
}

/* Group
 ========================================================================== */
/*
 * 1. Using `flex` instead of `inline-block` to prevent whitespace betweent child elements
 * 2. Behave like button
 * 3. Create position context
 */
.uk-button-group {
	/* 1 */
	display: inline-flex;
	/* 2 */
	vertical-align: middle;
	/* 3 */
	position: relative;
}

/* Group
 ========================================================================== */
/*
 * Collapse border
 */
.uk-button-group > .uk-button:nth-child(n+2),
.uk-button-group > div:nth-child(n+2) .uk-button {
	margin-left: -1px;
}

/*
 * Create position context to superimpose the successor elements border
 * Known issue: If you use an `a` element as button and an icon inside,
 * the active state will not work if you click the icon inside the button
 * Workaround: Just use a `button` or `input` element as button
 */
.uk-button-group .uk-button:hover,
.uk-button-group .uk-button:focus,
.uk-button-group .uk-button:active,
.uk-button-group .uk-button.uk-active {
	position: relative;
	z-index: 1;
}

/* ========================================================================
   Component: Progress
 ========================================================================== */
/*
 * 1. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 * 2. Remove default style
 * 3. Behave like a block element
 * 4. Remove borders in Firefox and Edge
 * 5. Set background color for progress container in Firefox, IE11 and Edge
 * 6. Style
 */
.uk-progress {
	/* 1 */
	vertical-align: baseline;
	/* 2 */
	-webkit-appearance: none;
	-moz-appearance: none;
	/* 3 */
	display: block;
	width: 100%;
	/* 4 */
	border: 0;
	/* 5 */
	background-color: #f8f8f8;
	/* 6 */
	margin-bottom: 20px;
	height: 15px;
	border-radius: 500px;
	overflow: hidden;
}

/* Add margin if adjacent element */
* + .uk-progress {
	margin-top: 20px;
}

/*
 * Remove animated circles for indeterminate state in IE11 and Edge
 */
.uk-progress:indeterminate {
	color: transparent;
}

/*
 * Progress container
 * 2. Remove progress bar for indeterminate state in Firefox
 */
.uk-progress::-webkit-progress-bar {
	background-color: #f8f8f8;
	border-radius: 500px;
	overflow: hidden;
}

/* 2 */
.uk-progress:indeterminate::-moz-progress-bar {
	width: 0;
}

/*
 * Progress bar
 * 1. Remove right border in IE11 and Edge
 */
.uk-progress::-webkit-progress-value {
	background-color: #1e87f0;
	transition: width 0.6s ease;
}

.uk-progress::-moz-progress-bar {
	background-color: #1e87f0;
}

.uk-progress::-ms-fill {
	background-color: #1e87f0;
	transition: width 0.6s ease;
	/* 1 */
	border: 0;
}

/* ========================================================================
   Component: Section
 ========================================================================== */
/*
 * 1. Make it work with `100vh` and height in general
 */
.uk-section {
	display: flow-root;
	box-sizing: border-box;
	/* 1 */
	padding-top: 40px;
	padding-bottom: 40px;
}

/* Desktop and bigger */
@media (min-width: 960px) {
	.uk-section {
		padding-top: 70px;
		padding-bottom: 70px;
	}
}
/*
 * Remove margin from the last-child
 */
.uk-section > :last-child {
	margin-bottom: 0;
}

/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-section-xsmall {
	padding-top: 20px;
	padding-bottom: 20px;
}

/*
 * Small
 */
.uk-section-small {
	padding-top: 40px;
	padding-bottom: 40px;
}

/*
 * Large
 */
.uk-section-large {
	padding-top: 70px;
	padding-bottom: 70px;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-section-large {
		padding-top: 140px;
		padding-bottom: 140px;
	}
}
/*
 * XLarge
 */
.uk-section-xlarge {
	padding-top: 140px;
	padding-bottom: 140px;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-section-xlarge {
		padding-top: 210px;
		padding-bottom: 210px;
	}
}
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-section-default {
	background: #fff;
}

/*
 * Muted
 */
.uk-section-muted {
	background: #f8f8f8;
}

/*
 * Primary
 */
.uk-section-primary {
	background: #1e87f0;
}

/*
 * Secondary
 */
.uk-section-secondary {
	background: #222;
}

/* Overlap modifier
 ========================================================================== */
/*
 * Reserved modifier to make a section overlap another section with an border image
 * Implemented by the theme
 */
/* ========================================================================
   Component: Container
 ========================================================================== */
/*
 * 1. Box sizing has to be `content-box` so the max-width is always the same and
 *    unaffected by the padding on different breakpoints. It's important for the size modifiers.
 */
.uk-container {
	display: flow-root;
	/* 1 */
	box-sizing: content-box;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-container {
		padding-left: 30px;
		padding-right: 30px;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-container {
		padding-left: 40px;
		padding-right: 40px;
	}
}
/*
 * Remove margin from the last-child
 */
.uk-container > :last-child {
	margin-bottom: 0;
}

/*
 * Remove padding from nested containers
 */
.uk-container .uk-container {
	padding-left: 0;
	padding-right: 0;
}

/* Size modifier
 ========================================================================== */
.uk-container-xsmall {
	max-width: 750px;
}

.uk-container-small {
	max-width: 900px;
}

.uk-container-large {
	max-width: 1400px;
}

.uk-container-xlarge {
	max-width: 1600px;
}

.uk-container-expand {
	max-width: none;
}

/* Expand modifier
 ========================================================================== */
/*
 * Expand one side only
 */
.uk-container-expand-left {
	margin-left: 0;
}

.uk-container-expand-right {
	margin-right: 0;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-container-expand-left.uk-container-xsmall,
.uk-container-expand-right.uk-container-xsmall {
		max-width: calc(50% + (750px / 2) - 30px);
	}

	.uk-container-expand-left.uk-container-small,
.uk-container-expand-right.uk-container-small {
		max-width: calc(50% + (900px / 2) - 30px);
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-container-expand-left,
.uk-container-expand-right {
		max-width: calc(50% + (1200px / 2) - 40px);
	}

	.uk-container-expand-left.uk-container-xsmall,
.uk-container-expand-right.uk-container-xsmall {
		max-width: calc(50% + (750px / 2) - 40px);
	}

	.uk-container-expand-left.uk-container-small,
.uk-container-expand-right.uk-container-small {
		max-width: calc(50% + (900px / 2) - 40px);
	}

	.uk-container-expand-left.uk-container-large,
.uk-container-expand-right.uk-container-large {
		max-width: calc(50% + (1400px / 2) - 40px);
	}

	.uk-container-expand-left.uk-container-xlarge,
.uk-container-expand-right.uk-container-xlarge {
		max-width: calc(50% + (1600px / 2) - 40px);
	}
}
/* Item
 ========================================================================== */
/*
 * Utility classes to reset container padding on the left or right side
 * Note: It has to be negative margin on the item, because it's specific to the item.
 */
.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right {
	width: calc(100% + 15px);
}

.uk-container-item-padding-remove-left {
	margin-left: -15px;
}

.uk-container-item-padding-remove-right {
	margin-right: -15px;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right {
		width: calc(100% + 30px);
	}

	.uk-container-item-padding-remove-left {
		margin-left: -30px;
	}

	.uk-container-item-padding-remove-right {
		margin-right: -30px;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right {
		width: calc(100% + 40px);
	}

	.uk-container-item-padding-remove-left {
		margin-left: -40px;
	}

	.uk-container-item-padding-remove-right {
		margin-right: -40px;
	}
}
/* ========================================================================
   Component: Tile
 ========================================================================== */
.uk-tile {
	display: flow-root;
	position: relative;
	box-sizing: border-box;
	padding-left: 15px;
	padding-right: 15px;
	padding-top: 40px;
	padding-bottom: 40px;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-tile {
		padding-left: 30px;
		padding-right: 30px;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-tile {
		padding-left: 40px;
		padding-right: 40px;
		padding-top: 70px;
		padding-bottom: 70px;
	}
}
/*
 * Remove margin from the last-child
 */
.uk-tile > :last-child {
	margin-bottom: 0;
}

/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-tile-xsmall {
	padding-top: 20px;
	padding-bottom: 20px;
}

/*
 * Small
 */
.uk-tile-small {
	padding-top: 40px;
	padding-bottom: 40px;
}

/*
 * Large
 */
.uk-tile-large {
	padding-top: 70px;
	padding-bottom: 70px;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-tile-large {
		padding-top: 140px;
		padding-bottom: 140px;
	}
}
/*
 * XLarge
 */
.uk-tile-xlarge {
	padding-top: 140px;
	padding-bottom: 140px;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-tile-xlarge {
		padding-top: 210px;
		padding-bottom: 210px;
	}
}
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-tile-default {
	background-color: #fff;
}

/*
 * Muted
 */
.uk-tile-muted {
	background-color: #f8f8f8;
}

/*
 * Primary
 */
.uk-tile-primary {
	background-color: #1e87f0;
}

/*
 * Secondary
 */
.uk-tile-secondary {
	background-color: #222;
}

/* ========================================================================
   Component: Card
 ========================================================================== */
.uk-card {
	position: relative;
	box-sizing: border-box;
	transition: box-shadow 0.1s ease-in-out;
}

/* Sections
 ========================================================================== */
.uk-card-body {
	display: flow-root;
	padding: 30px 30px;
}

.uk-card-header {
	display: flow-root;
	padding: 15px 30px;
}

.uk-card-footer {
	display: flow-root;
	padding: 15px 30px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-card-body {
		padding: 40px 40px;
	}

	.uk-card-header {
		padding: 20px 40px;
	}

	.uk-card-footer {
		padding: 20px 40px;
	}
}
/*
 * Remove margin from the last-child
 */
.uk-card-body > :last-child,
.uk-card-header > :last-child,
.uk-card-footer > :last-child {
	margin-bottom: 0;
}

/* Media
 ========================================================================== */
/*
 * Reserved alignment modifier to style the media element, e.g. with `border-radius`
 * Implemented by the theme
 */
/* Title
 ========================================================================== */
.uk-card-title {
	font-size: 1.5rem;
	line-height: 1.4;
}

/* Badge
 ========================================================================== */
/*
 * 1. Position
 * 2. Size
 * 3. Style
 * 4. Center child vertically
 */
.uk-card-badge {
	/* 1 */
	position: absolute;
	top: 15px;
	right: 15px;
	z-index: 1;
	/* 2 */
	height: 22px;
	padding: 0 10px;
	/* 3 */
	background: #1e87f0;
	color: #fff;
	font-size: 0.875rem;
	/* 4 */
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 0;
	border-radius: 2px;
	text-transform: uppercase;
}

/*
 * Remove margin from adjacent element
 */
.uk-card-badge:first-child + * {
	margin-top: 0;
}

/* Hover modifier
 ========================================================================== */
.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover {
	background-color: #fff;
	box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
}

/* Style modifiers
 ========================================================================== */
/*
 * Default
 * Note: Header and Footer are only implemented for the default style
 */
.uk-card-default {
	background-color: #fff;
	color: #666;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}

.uk-card-default .uk-card-title {
	color: #333;
}

.uk-card-default.uk-card-hover:hover {
	background-color: #fff;
	box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
}

.uk-card-default .uk-card-header {
	border-bottom: 1px solid #396e90;
}

.uk-card-default .uk-card-footer {
	border-top: 1px solid #396e90;
}

/*
 * Primary
 */
.uk-card-primary {
	background-color: #1e87f0;
	color: #fff;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}

.uk-card-primary .uk-card-title {
	color: #fff;
}

.uk-card-primary.uk-card-hover:hover {
	background-color: #1e87f0;
	box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
}

/*
 * Secondary
 */
.uk-card-secondary {
	background-color: #222;
	color: #fff;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}

.uk-card-secondary .uk-card-title {
	color: #fff;
}

.uk-card-secondary.uk-card-hover:hover {
	background-color: #222;
	box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
}

/* Size modifier
 ========================================================================== */
/*
 * Small
 */
.uk-card-small.uk-card-body,
.uk-card-small .uk-card-body {
	padding: 20px 20px;
}

.uk-card-small .uk-card-header {
	padding: 13px 20px;
}

.uk-card-small .uk-card-footer {
	padding: 13px 20px;
}

/*
 * Large
 */
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-card-large.uk-card-body,
.uk-card-large .uk-card-body {
		padding: 70px 70px;
	}

	.uk-card-large .uk-card-header {
		padding: 35px 70px;
	}

	.uk-card-large .uk-card-footer {
		padding: 35px 70px;
	}
}
/*
 * Default
 */
.uk-card-body > .uk-nav-default {
	margin-left: -30px;
	margin-right: -30px;
}

.uk-card-body > .uk-nav-default:only-child {
	margin-top: -15px;
	margin-bottom: -15px;
}

.uk-card-body > .uk-nav-default > li > a,
.uk-card-body > .uk-nav-default .uk-nav-header,
.uk-card-body > .uk-nav-default .uk-nav-divider {
	padding-left: 30px;
	padding-right: 30px;
}

.uk-card-body > .uk-nav-default .uk-nav-sub {
	padding-left: 45px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-card-body > .uk-nav-default {
		margin-left: -40px;
		margin-right: -40px;
	}

	.uk-card-body > .uk-nav-default:only-child {
		margin-top: -25px;
		margin-bottom: -25px;
	}

	.uk-card-body > .uk-nav-default > li > a,
.uk-card-body > .uk-nav-default .uk-nav-header,
.uk-card-body > .uk-nav-default .uk-nav-divider {
		padding-left: 40px;
		padding-right: 40px;
	}

	.uk-card-body > .uk-nav-default .uk-nav-sub {
		padding-left: 55px;
	}
}
/*
 * Small
 */
.uk-card-small > .uk-nav-default {
	margin-left: -20px;
	margin-right: -20px;
}

.uk-card-small > .uk-nav-default:only-child {
	margin-top: -5px;
	margin-bottom: -5px;
}

.uk-card-small > .uk-nav-default > li > a,
.uk-card-small > .uk-nav-default .uk-nav-header,
.uk-card-small > .uk-nav-default .uk-nav-divider {
	padding-left: 20px;
	padding-right: 20px;
}

.uk-card-small > .uk-nav-default .uk-nav-sub {
	padding-left: 35px;
}

/*
 * Large
 */
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-card-large > .uk-nav-default {
		margin: 0;
	}

	.uk-card-large > .uk-nav-default:only-child {
		margin: 0;
	}

	.uk-card-large > .uk-nav-default > li > a,
.uk-card-large > .uk-nav-default .uk-nav-header,
.uk-card-large > .uk-nav-default .uk-nav-divider {
		padding-left: 0;
		padding-right: 0;
	}

	.uk-card-large > .uk-nav-default .uk-nav-sub {
		padding-left: 15px;
	}
}
/* ========================================================================
   Component: Close
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-close {
	color: #999;
	transition: 0.1s ease-in-out;
	transition-property: color, opacity;
}

/* Hover + Focus */
.uk-close:hover,
.uk-close:focus {
	color: #666;
	outline: none;
}

/* ========================================================================
   Component: Spinner
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
/* SVG
 ========================================================================== */
.uk-spinner > * {
	animation: uk-spinner-rotate 1.4s linear infinite;
}

@keyframes uk-spinner-rotate {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(270deg);
	}
}
/*
 * Circle
 */
.uk-spinner > * > * {
	stroke-dasharray: 88px;
	stroke-dashoffset: 0;
	transform-origin: center;
	animation: uk-spinner-dash 1.4s ease-in-out infinite;
	stroke-width: 1;
	stroke-linecap: round;
}

@keyframes uk-spinner-dash {
	0% {
		stroke-dashoffset: 88px;
	}
	50% {
		stroke-dashoffset: 22px;
		transform: rotate(135deg);
	}
	100% {
		stroke-dashoffset: 88px;
		transform: rotate(450deg);
	}
}
/* ========================================================================
   Component: Totop
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-totop {
	padding: 5px;
	color: #999;
	transition: color 0.1s ease-in-out;
}

/* Hover + Focus */
.uk-totop:hover,
.uk-totop:focus {
	color: #666;
	outline: none;
}

/* OnClick */
.uk-totop:active {
	color: #333;
}

/* ========================================================================
   Component: Marker
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-marker {
	padding: 5px;
	background: #222;
	color: #fff;
	border-radius: 500px;
}

/* Hover + Focus */
.uk-marker:hover,
.uk-marker:focus {
	color: #fff;
	outline: none;
}

/* ========================================================================
   Component: Alert
 ========================================================================== */
.uk-alert {
	position: relative;
	margin-bottom: 20px;
	padding: 15px 29px 15px 15px;
	background: #f8f8f8;
	color: #666;
}

/* Add margin if adjacent element */
* + .uk-alert {
	margin-top: 20px;
}

/*
 * Remove margin from the last-child
 */
.uk-alert > :last-child {
	margin-bottom: 0;
}

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-alert-close {
	position: absolute;
	top: 20px;
	right: 15px;
	color: inherit;
	opacity: 0.4;
}

/*
 * Remove margin from adjacent element
 */
.uk-alert-close:first-child + * {
	margin-top: 0;
}

/*
 * Hover + Focus
 */
.uk-alert-close:hover,
.uk-alert-close:focus {
	color: inherit;
	opacity: 0.8;
}

/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-alert-primary {
	background: #d8eafc;
	color: #1e87f0;
}

/*
 * Success
 */
.uk-alert-success {
	background: #edfbf6;
	color: #32d296;
}

/*
 * Warning
 */
.uk-alert-warning {
	background: #fef5ee;
	color: #faa05a;
}

/*
 * Danger
 */
.uk-alert-danger {
	background: #fef4f6;
	color: #f0506e;
}

/*
 * Content
 */
.uk-alert h1,
.uk-alert h2,
.uk-alert h3,
.uk-alert h4,
.uk-alert h5,
.uk-alert h6 {
	color: inherit;
}

.uk-alert a:not([class]) {
	color: inherit;
	text-decoration: underline;
}

.uk-alert a:not([class]):hover {
	color: inherit;
	text-decoration: underline;
}

/* ========================================================================
   Component: Placeholder
 ========================================================================== */
.uk-placeholder {
	margin-bottom: 20px;
	padding: 30px 30px;
	background: transparent;
	border: 1px dashed #396e90;
}

/* Add margin if adjacent element */
* + .uk-placeholder {
	margin-top: 20px;
}

/*
 * Remove margin from the last-child
 */
.uk-placeholder > :last-child {
	margin-bottom: 0;
}

/* ========================================================================
   Component: Badge
 ========================================================================== */
/*
 * 1. Style
 * 2. Center child vertically and horizontally
 */
.uk-badge {
	box-sizing: border-box;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 500px;
	vertical-align: middle;
	/* 1 */
	background: #1e87f0;
	color: #fff !important;
	font-size: 11px;
	/* 2 */
	display: inline-flex;
	justify-content: center;
	align-items: center;
	line-height: 0;
}

/*
 * Required for `a`
 */
.uk-badge:hover,
.uk-badge:focus {
	text-decoration: none;
	outline: none;
}

/* ========================================================================
   Component: Label
 ========================================================================== */
.uk-label {
	display: inline-block;
	padding: 0 10px;
	background: #1e87f0;
	line-height: 1.5;
	font-size: 0.875rem;
	color: #fff;
	vertical-align: middle;
	white-space: nowrap;
	border-radius: 2px;
	text-transform: uppercase;
}

/* Color modifiers
 ========================================================================== */
/*
 * Success
 */
.uk-label-success {
	background-color: #32d296;
	color: #fff;
}

/*
 * Warning
 */
.uk-label-warning {
	background-color: #faa05a;
	color: #fff;
}

/*
 * Danger
 */
.uk-label-danger {
	background-color: #f0506e;
	color: #fff;
}

/* ========================================================================
   Component: Overlay
 ========================================================================== */
.uk-overlay {
	padding: 30px 30px;
}

/*
 * Remove margin from the last-child
 */
.uk-overlay > :last-child {
	margin-bottom: 0;
}

/* Icon
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-overlay-default {
	background: rgba(255, 255, 255, 0.8);
}

/*
 * Primary
 */
.uk-overlay-primary {
	background: rgba(34, 34, 34, 0.8);
}

/* ========================================================================
   Component: Article
 ========================================================================== */
.uk-article {
	display: flow-root;
}

/*
 * Remove margin from the last-child
 */
.uk-article > :last-child {
	margin-bottom: 0;
}

/* Adjacent sibling
 ========================================================================== */
.uk-article + .uk-article {
	margin-top: 70px;
}

/* Title
 ========================================================================== */
.uk-article-title {
	font-size: 2.23125rem;
	line-height: 1.2;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-article-title {
		font-size: 2.625rem;
	}
}
/* Meta
 ========================================================================== */
.uk-article-meta {
	font-size: 0.875rem;
	line-height: 1.4;
	color: #999;
}
.uk-article-meta a {
	color: #999;
}
.uk-article-meta a:hover {
	color: #666;
	text-decoration: none;
}

/* ========================================================================
   Component: Comment
 ========================================================================== */
/* Sections
 ========================================================================== */
.uk-comment-body {
	display: flow-root;
	overflow-wrap: break-word;
	word-wrap: break-word;
}

.uk-comment-header {
	display: flow-root;
	margin-bottom: 20px;
}

/*
 * Remove margin from the last-child
 */
.uk-comment-body > :last-child,
.uk-comment-header > :last-child {
	margin-bottom: 0;
}

/* Title
 ========================================================================== */
.uk-comment-title {
	font-size: 1.25rem;
	line-height: 1.4;
}

/* Meta
 ========================================================================== */
.uk-comment-meta {
	font-size: 0.875rem;
	line-height: 1.4;
	color: #999;
}

/* Avatar
 ========================================================================== */
/* List
 ========================================================================== */
.uk-comment-list {
	padding: 0;
	list-style: none;
}

/* Adjacent siblings */
.uk-comment-list > :nth-child(n+2) {
	margin-top: 70px;
}

/*
 * Sublists
 * Note: General sibling selector allows reply block between comment and sublist
 */
.uk-comment-list .uk-comment ~ ul {
	margin: 70px 0 0 0;
	padding-left: 30px;
	list-style: none;
}

/* Tablet and bigger */
@media (min-width: 960px) {
	.uk-comment-list .uk-comment ~ ul {
		padding-left: 100px;
	}
}
/* Adjacent siblings */
.uk-comment-list .uk-comment ~ ul > :nth-child(n+2) {
	margin-top: 70px;
}

/* Style modifier
 ========================================================================== */
.uk-comment-primary {
	padding: 30px;
	background-color: #f8f8f8;
}

/* ========================================================================
   Component: Search
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Reset `form`
 */
.uk-search {
	/* 1 */
	display: inline-block;
	/* 2 */
	position: relative;
	/* 3 */
	max-width: 100%;
	/* 4 */
	margin: 0;
}

/* Input
 ========================================================================== */
/*
 * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X.
 */
.uk-search-input::-webkit-search-cancel-button,
.uk-search-input::-webkit-search-decoration {
	-webkit-appearance: none;
}

/*
 * Removes placeholder transparency in Firefox.
 */
.uk-search-input::-moz-placeholder {
	opacity: 1;
}

/*
 * 1. Define consistent box sizing.
 * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera.
 * 3. Remove `border-radius` in iOS.
 * 4. Change font properties to `inherit` in all browsers
 * 5. Show the overflow in Edge.
 * 6. Remove default style in iOS.
 * 7. Vertical alignment
 * 8. Take the full container width
 * 9. Style
 */
.uk-search-input {
	/* 1 */
	box-sizing: border-box;
	/* 2 */
	margin: 0;
	/* 3 */
	border-radius: 0;
	/* 4 */
	font: inherit;
	/* 5 */
	overflow: visible;
	/* 6 */
	-webkit-appearance: none;
	/* 7 */
	vertical-align: middle;
	/* 8 */
	width: 100%;
	/* 9 */
	border: none;
	color: #666;
}

.uk-search-input:focus {
	outline: none;
}

/* Placeholder */
.uk-search-input:-ms-input-placeholder {
	color: #999 !important;
}

.uk-search-input::placeholder {
	color: #999;
}

/* Icon (Adopts `uk-icon`)
 ========================================================================== */
/*
 * Remove default focus style
 */
.uk-search-icon:focus {
	outline: none;
}

/*
 * Position above input
 * 1. Set position
 * 2. Center icon vertically and horizontally
 * 3. Style
 */
.uk-search .uk-search-icon {
	/* 1 */
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	/* 2 */
	display: inline-flex;
	justify-content: center;
	align-items: center;
	/* 3 */
	color: #999;
}

/*
 * Required for `a`.
 */
.uk-search .uk-search-icon:hover {
	color: #999;
}

/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-search .uk-search-icon:not(a):not(button):not(input) {
	pointer-events: none;
}

/*
 * Position modifier
 */
.uk-search .uk-search-icon-flip {
	right: 0;
	left: auto;
}

/* Default modifier
 ========================================================================== */
.uk-search-default {
	width: 240px;
}

/*
 * Input
 */
.uk-search-default .uk-search-input {
	height: 40px;
	padding-left: 10px;
	padding-right: 10px;
	background: transparent;
	border: 1px solid #396e90;
}

/* Focus */
.uk-search-default .uk-search-input:focus {
	background-color: rgba(0, 0, 0, 0);
	border-color: #1e87f0;
}

/*
 * Icon
 */
.uk-search-default .uk-search-icon {
	width: 40px;
}

.uk-search-default .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
	padding-left: 40px;
}

.uk-search-default .uk-search-icon-flip ~ .uk-search-input {
	padding-right: 40px;
}

/* Navbar modifier
 ========================================================================== */
.uk-search-navbar {
	width: 400px;
}

/*
 * Input
 */
.uk-search-navbar .uk-search-input {
	height: 40px;
	background: transparent;
	font-size: 1.5rem;
}

/*
 * Icon
 */
.uk-search-navbar .uk-search-icon {
	width: 40px;
}

.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
	padding-left: 40px;
}

.uk-search-navbar .uk-search-icon-flip ~ .uk-search-input {
	padding-right: 40px;
}

/* Large modifier
 ========================================================================== */
.uk-search-large {
	width: 500px;
}

/*
 * Input
 */
.uk-search-large .uk-search-input {
	height: 80px;
	background: transparent;
	font-size: 2.625rem;
}

/*
 * Icon
 */
.uk-search-large .uk-search-icon {
	width: 80px;
}

.uk-search-large .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
	padding-left: 80px;
}

.uk-search-large .uk-search-icon-flip ~ .uk-search-input {
	padding-right: 80px;
}

/* Toggle
 ========================================================================== */
.uk-search-toggle {
	color: #999;
}

/* Hover + Focus */
.uk-search-toggle:hover,
.uk-search-toggle:focus {
	color: #666;
}

/* ========================================================================
   Component: Accordion
 ========================================================================== */
.uk-accordion {
	padding: 0;
	list-style: none;
}

/* Item
 ========================================================================== */
.uk-accordion > :nth-child(n+2) {
	margin-top: 20px;
}

/* Title
 ========================================================================== */
.uk-accordion-title {
	display: block;
	font-size: 1.25rem;
	line-height: 1.4;
	color: #333;
	overflow: hidden;
}
.uk-accordion-title::before {
	content: "";
	width: 1.4em;
	height: 1.4em;
	margin-left: 10px;
	float: right;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E");
	background-repeat: no-repeat;
	background-position: 50% 50%;
}
.uk-open > .uk-accordion-title::before {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E");
}

/* Hover + Focus */
.uk-accordion-title:hover,
.uk-accordion-title:focus {
	color: #666;
	text-decoration: none;
	outline: none;
}

/* Content
 ========================================================================== */
.uk-accordion-content {
	display: flow-root;
	margin-top: 20px;
}

/*
 * Remove margin from the last-child
 */
.uk-accordion-content > :last-child {
	margin-bottom: 0;
}

/* ========================================================================
   Component: Drop
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 */
.uk-drop {
	/* 1 */
	display: none;
	/* 2 */
	position: absolute;
	z-index: 1020;
	/* 3 */
	box-sizing: border-box;
	width: 300px;
}

/* Show */
.uk-drop.uk-open {
	display: block;
}

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*=uk-drop-top] {
	margin-top: -20px;
}

[class*=uk-drop-bottom] {
	margin-top: 20px;
}

[class*=uk-drop-left] {
	margin-left: -20px;
}

[class*=uk-drop-right] {
	margin-left: 20px;
}

/* Grid modifiers
 ========================================================================== */
.uk-drop-stack .uk-drop-grid > * {
	width: 100% !important;
}

/* ========================================================================
   Component: Dropdown
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-dropdown {
	/* 1 */
	display: none;
	/* 2 */
	position: absolute;
	z-index: 1020;
	/* 3 */
	box-sizing: border-box;
	min-width: 200px;
	/* 4 */
	padding: 25px;
	background: #fff;
	color: #666;
	box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15);
}

/* Show */
.uk-dropdown.uk-open {
	display: block;
}

/* Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-dropdown-nav {
	white-space: nowrap;
	font-size: 0.875rem;
}

/*
 * Items
 */
.uk-dropdown-nav > li > a {
	color: #999;
}

/* Hover + Focus + Active */
.uk-dropdown-nav > li > a:hover,
.uk-dropdown-nav > li > a:focus,
.uk-dropdown-nav > li.uk-active > a {
	color: #666;
}

/*
 * Header
 */
.uk-dropdown-nav .uk-nav-header {
	color: #333;
}

/*
 * Divider
 */
.uk-dropdown-nav .uk-nav-divider {
	border-top: 1px solid #396e90;
}

/*
 * Sublists
 */
.uk-dropdown-nav .uk-nav-sub a {
	color: #999;
}

.uk-dropdown-nav .uk-nav-sub a:hover,
.uk-dropdown-nav .uk-nav-sub a:focus,
.uk-dropdown-nav .uk-nav-sub li.uk-active > a {
	color: #666;
}

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*=uk-dropdown-top] {
	margin-top: -10px;
}

[class*=uk-dropdown-bottom] {
	margin-top: 10px;
}

[class*=uk-dropdown-left] {
	margin-left: -10px;
}

[class*=uk-dropdown-right] {
	margin-left: 10px;
}

/* Grid modifiers
 ========================================================================== */
.uk-dropdown-stack .uk-dropdown-grid > * {
	width: 100% !important;
}

/* ========================================================================
   Component: Modal
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 */
.uk-modal {
	/* 1 */
	display: none;
	/* 2 */
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1010;
	/* 3 */
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	/* 4 */
	padding: 15px 15px;
	/* 5 */
	background: rgba(0, 0, 0, 0.6);
	/* 6 */
	opacity: 0;
	transition: opacity 0.15s linear;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-modal {
		padding: 50px 30px;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-modal {
		padding-left: 40px;
		padding-right: 40px;
	}
}
/*
 * Open
 */
.uk-modal.uk-open {
	opacity: 1;
}

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-modal-page {
	overflow: hidden;
}

/* Dialog
 ========================================================================== */
/*
 * 1. Create position context for spinner and close button
 * 2. Dimensions
 * 3. Fix `max-width: 100%` not working in combination with flex and responsive images in IE11
 *    `!important` needed to overwrite `uk-width-auto`. See `#modal-media-image` in tests
 * 4. Style
 * 5. Slide-in transition
 */
.uk-modal-dialog {
	/* 1 */
	position: relative;
	/* 2 */
	box-sizing: border-box;
	margin: 0 auto;
	width: 600px;
	/* 3 */
	max-width: calc(100% - 0.01px) !important;
	/* 4 */
	background: #fff;
	/* 5 */
	opacity: 0;
	transform: translateY(-100px);
	transition: 0.3s linear;
	transition-property: opacity, transform;
}

/*
 * Open
 */
.uk-open > .uk-modal-dialog {
	opacity: 1;
	transform: translateY(0);
}

/* Size modifier
 ========================================================================== */
/*
 * Container size
 * Take the same size as the Container component
 */
.uk-modal-container .uk-modal-dialog {
	width: 1200px;
}

/*
 * Full size
 * 1. Remove padding and background from modal
 * 2. Reset all default declarations from modal dialog
 */
/* 1 */
.uk-modal-full {
	padding: 0;
	background: none;
}

/* 2 */
.uk-modal-full .uk-modal-dialog {
	margin: 0;
	width: 100%;
	max-width: 100%;
	transform: translateY(0);
}

/* Sections
 ========================================================================== */
.uk-modal-body {
	display: flow-root;
	padding: 30px 30px;
}

.uk-modal-header {
	display: flow-root;
	padding: 15px 30px;
	background: #fff;
	border-bottom: 1px solid #396e90;
}

.uk-modal-footer {
	display: flow-root;
	padding: 15px 30px;
	background: #fff;
	border-top: 1px solid #396e90;
}

/*
 * Remove margin from the last-child
 */
.uk-modal-body > :last-child,
.uk-modal-header > :last-child,
.uk-modal-footer > :last-child {
	margin-bottom: 0;
}

/* Title
 ========================================================================== */
.uk-modal-title {
	font-size: 2rem;
	line-height: 1.3;
}

/* Close
 * Adopts `uk-close`
 ========================================================================== */
[class*=uk-modal-close-] {
	position: absolute;
	z-index: 1010;
	top: 10px;
	right: 10px;
	padding: 5px;
}

/*
 * Remove margin from adjacent element
 */
[class*=uk-modal-close-]:first-child + * {
	margin-top: 0;
}

/*
 * Hover
 */
/*
 * Default
 */
/*
 * Outside
 * 1. Prevent scrollbar on small devices
 */
.uk-modal-close-outside {
	top: 0;
	/* 1 */
	right: -5px;
	transform: translate(0, -100%);
	color: white;
}

.uk-modal-close-outside:hover {
	color: #fff;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	/* 1 */
	.uk-modal-close-outside {
		right: 0;
		transform: translate(100%, -100%);
	}
}
/*
 * Full
 */
.uk-modal-close-full {
	top: 0;
	right: 0;
	padding: 20px;
	background: #fff;
}

/* ========================================================================
   Component: Slideshow
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slideshow {
	/* 1 */
	-webkit-tap-highlight-color: transparent;
}

/* Items
 ========================================================================== */
/*
 * 1. Create position and stacking context
 * 2. Reset list
 * 3. Clip child elements
 * 4. Prevent displaying the callout information on iOS.
 */
.uk-slideshow-items {
	/* 1 */
	position: relative;
	z-index: 0;
	/* 2 */
	margin: 0;
	padding: 0;
	list-style: none;
	/* 3 */
	overflow: hidden;
	/* 4 */
	-webkit-touch-callout: none;
}

/* Item
 ========================================================================== */
/*
 * 1. Position items above each other
 * 2. Take the full width
 * 3. Clip child elements, e.g. for `uk-cover`
 * 4. Optimize animation
 * 5. Disable horizontal panning gestures in IE11 and Edge
 * 6. Suppress outline on focus
 */
.uk-slideshow-items > * {
	/* 1 */
	position: absolute;
	top: 0;
	left: 0;
	/* 2 */
	right: 0;
	bottom: 0;
	/* 3 */
	overflow: hidden;
	/* 4 */
	will-change: transform, opacity;
	/* 5 */
	touch-action: pan-y;
}

/* 6 */
.uk-slideshow-items > :focus {
	outline: none;
}

/*
 * Hide not active items
 */
.uk-slideshow-items > :not(.uk-active) {
	display: none;
}

/* ========================================================================
   Component: Slider
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slider {
	/* 1 */
	-webkit-tap-highlight-color: transparent;
}

/* Container
 ========================================================================== */
/*
 * Clip child elements
 */
.uk-slider-container {
	overflow: hidden;
}

/*
 * Widen container to prevent box-shadows from clipping, `large-box-shadow`
 */
.uk-slider-container-offset {
	margin: -11px -25px -39px -25px;
	padding: 11px 25px 39px 25px;
}

/* Items
 ========================================================================== */
/*
 * 1. Optimize animation
 * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`.
 */
.uk-slider-items {
	/* 1 */
	will-change: transform;
	/* 2 */
	position: relative;
}

/*
 * 1. Reset list style without interfering with grid
 * 2. Prevent displaying the callout information on iOS.
 */
.uk-slider-items:not(.uk-grid) {
	display: flex;
	/* 1 */
	margin: 0;
	padding: 0;
	list-style: none;
	/* 2 */
	-webkit-touch-callout: none;
}

.uk-slider-items.uk-grid {
	flex-wrap: nowrap;
}

/* Item
 ========================================================================== */
/*
 * 1. Let items take content dimensions (0 0 auto)
 *    `max-width` needed to keep image responsiveness and prevent content overflow
 * 3. Create position context
 * 4. Disable horizontal panning gestures in IE11 and Edge
 * 5. Suppress outline on focus
 */
.uk-slider-items > * {
	/* 1 */
	flex: none;
	max-width: 100%;
	/* 3 */
	position: relative;
	/* 4 */
	touch-action: pan-y;
}

/* 5 */
.uk-slider-items > :focus {
	outline: none;
}

/* ========================================================================
   Component: Sticky
 ========================================================================== */
/*
 * 1. Force new layer to resolve frame rate issues on devices with lower frame rates
 */
.uk-sticky-fixed {
	z-index: 980;
	box-sizing: border-box;
	margin: 0 !important;
	/* 1 */
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

/*
 * Faster animations
 */
.uk-sticky[class*=uk-animation-] {
	animation-duration: 0.2s;
}

.uk-sticky.uk-animation-reverse {
	animation-duration: 0.2s;
}

/* ========================================================================
   Component: Off-canvas
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 */
.uk-offcanvas {
	/* 1 */
	display: none;
	/* 2 */
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 1000;
}

/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas {
	right: 0;
	left: auto;
}

/* Bar
 ========================================================================== */
/*
 * 1. Set position
 * 2. Size and style
 * 3. Allow scrolling
 */
.uk-offcanvas-bar {
	/* 1 */
	position: absolute;
	top: 0;
	bottom: 0;
	left: -270px;
	/* 2 */
	box-sizing: border-box;
	width: 270px;
	padding: 20px 20px;
	background: #222;
	/* 3 */
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-offcanvas-bar {
		left: -350px;
		width: 350px;
		padding: 40px 40px;
	}
}
/* Flip modifier */
.uk-offcanvas-flip .uk-offcanvas-bar {
	left: auto;
	right: -270px;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-offcanvas-flip .uk-offcanvas-bar {
		right: -350px;
	}
}
/*
 * Open
 */
.uk-open > .uk-offcanvas-bar {
	left: 0;
}

.uk-offcanvas-flip .uk-open > .uk-offcanvas-bar {
	left: auto;
	right: 0;
}

/*
 * Slide Animation (Used in slide and push mode)
 */
.uk-offcanvas-bar-animation {
	transition: left 0.3s ease-out;
}

.uk-offcanvas-flip .uk-offcanvas-bar-animation {
	transition-property: right;
}

/*
 * Reveal Animation
 * 1. Set position
 * 2. Clip the bar
 * 3. Animation
 * 4. Reset position
 */
.uk-offcanvas-reveal {
	/* 1 */
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	/* 2 */
	width: 0;
	overflow: hidden;
	/* 3 */
	transition: width 0.3s ease-out;
}

.uk-offcanvas-reveal .uk-offcanvas-bar {
	/* 4 */
	left: 0;
}

.uk-offcanvas-flip .uk-offcanvas-reveal .uk-offcanvas-bar {
	/* 4 */
	left: auto;
	right: 0;
}

.uk-open > .uk-offcanvas-reveal {
	width: 270px;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-open > .uk-offcanvas-reveal {
		width: 350px;
	}
}
/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas-reveal {
	right: 0;
	left: auto;
}

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-offcanvas-close {
	position: absolute;
	z-index: 1000;
	top: 20px;
	right: 20px;
	padding: 5px;
}

/* Overlay
 ========================================================================== */
/*
 * Overlay the whole page. Needed for the `::before`
 * 1. Using `100vw` so no modification is needed when off-canvas is flipped
 * 2. Allow for closing with swipe gesture on devices with pointer events.
 */
.uk-offcanvas-overlay {
	/* 1 */
	width: 100vw;
	/* 2 */
	touch-action: none;
}

/*
 * 1. Mask the whole page
 * 2. Fade-in transition
 */
.uk-offcanvas-overlay::before {
	/* 1 */
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(0, 0, 0, 0.1);
	/* 2 */
	opacity: 0;
	transition: opacity 0.15s linear;
}

.uk-offcanvas-overlay.uk-open::before {
	opacity: 1;
}

/* Prevent scrolling
 ========================================================================== */
/*
 * Prevent horizontal scrollbar when the content is slide-out
 * Has to be on the `html` element too to make it work on the `body`
 */
.uk-offcanvas-page,
.uk-offcanvas-container {
	overflow-x: hidden;
}

/* Container
 ========================================================================== */
/*
 * Prepare slide-out animation (Used in reveal and push mode)
 * Using `position: left` instead of `transform` because position `fixed` elements like sticky navbars
 * lose their fixed state and behaves like `absolute` within a transformed container
 * 1. Provide a fixed width and prevent shrinking
 */
.uk-offcanvas-container {
	position: relative;
	left: 0;
	transition: left 0.3s ease-out;
	/* 1 */
	box-sizing: border-box;
	width: 100%;
}

/*
 * Activate slide-out animation
 */
:not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
	left: 270px;
}

.uk-offcanvas-flip.uk-offcanvas-container-animation {
	left: -270px;
}

/* Tablet landscape and bigger */
@media (min-width: 960px) {
	:not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
		left: 350px;
	}

	.uk-offcanvas-flip.uk-offcanvas-container-animation {
		left: -350px;
	}
}
/* ========================================================================
   Component: Switcher
 ========================================================================== */
/*
 * Reset list
 */
.uk-switcher {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Items
 ========================================================================== */
/*
 * Hide not active items
 */
.uk-switcher > :not(.uk-active) {
	display: none;
}

/*
 * Remove margin from the last-child
 */
.uk-switcher > * > :last-child {
	margin-bottom: 0;
}

/* ========================================================================
   Component: Leader
 ========================================================================== */
.uk-leader {
	overflow: hidden;
}

/*
 * 1. Place element in text flow
 * 2. Never break into a new line
 * 3. Get a string back with as many repeating characters to fill the container
 * 4. Prevent wrapping. Overflowing characters will be clipped by the container
 */
.uk-leader-fill::after {
	/* 1 */
	display: inline-block;
	margin-left: 15px;
	/* 2 */
	width: 0;
	/* 3 */
	content: attr(data-fill);
	/* 4 */
	white-space: nowrap;
}

/*
 * Hide if media does not match
 */
.uk-leader-fill.uk-leader-hide::after {
	display: none;
}

/*
 * Pass fill character to JS
 */
.uk-leader-fill-content::before {
	content: ".";
}

:root {
	--uk-leader-fill-content: .;
}

/* ========================================================================
   Component: Notification
 ========================================================================== */
/*
 * 1. Set position
 * 2. Dimensions
 */
.uk-notification {
	/* 1 */
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 1040;
	/* 2 */
	box-sizing: border-box;
	width: 350px;
}

/* Position modifiers
========================================================================== */
.uk-notification-top-right,
.uk-notification-bottom-right {
	left: auto;
	right: 10px;
}

.uk-notification-top-center,
.uk-notification-bottom-center {
	left: 50%;
	margin-left: -175px;
}

.uk-notification-bottom-left,
.uk-notification-bottom-right,
.uk-notification-bottom-center {
	top: auto;
	bottom: 10px;
}

/* Responsiveness
========================================================================== */
/* Phones portrait and smaller */
@media (max-width: 639px) {
	.uk-notification {
		left: 10px;
		right: 10px;
		width: auto;
		margin: 0;
	}
}
/* Message
========================================================================== */
.uk-notification-message {
	position: relative;
	padding: 15px;
	background: #f8f8f8;
	color: #666;
	font-size: 1.25rem;
	line-height: 1.4;
	cursor: pointer;
}

* + .uk-notification-message {
	margin-top: 10px;
}

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-notification-close {
	display: none;
	position: absolute;
	top: 20px;
	right: 15px;
}

.uk-notification-message:hover .uk-notification-close {
	display: block;
}

/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-notification-message-primary {
	color: #1e87f0;
}

/*
 * Success
 */
.uk-notification-message-success {
	color: #32d296;
}

/*
 * Warning
 */
.uk-notification-message-warning {
	color: #faa05a;
}

/*
 * Danger
 */
.uk-notification-message-danger {
	color: #f0506e;
}

/* ========================================================================
   Component: Tooltip
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Position
 * 3. Remove tooltip from document flow to keep the UIkit container from changing its size when injected into the document initially
 * 4. Dimensions
 * 5. Style
 */
.uk-tooltip {
	/* 1 */
	display: none;
	/* 2 */
	position: absolute;
	z-index: 1030;
	/* 3 */
	top: 0;
	/* 4 */
	box-sizing: border-box;
	max-width: 200px;
	padding: 3px 6px;
	/* 5 */
	background: #666;
	border-radius: 2px;
	color: #fff;
	font-size: 12px;
}

/* Show */
.uk-tooltip.uk-active {
	display: block;
}

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*=uk-tooltip-top] {
	margin-top: -10px;
}

[class*=uk-tooltip-bottom] {
	margin-top: 10px;
}

[class*=uk-tooltip-left] {
	margin-left: -10px;
}

[class*=uk-tooltip-right] {
	margin-left: 10px;
}

/* ========================================================================
   Component: Sortable
 ========================================================================== */
.uk-sortable {
	position: relative;
}

/*
 * Remove margin from the last-child
 */
.uk-sortable > :last-child {
	margin-bottom: 0;
}

/* Drag
 ========================================================================== */
.uk-sortable-drag {
	position: fixed !important;
	z-index: 1050 !important;
	pointer-events: none;
}

/* Placeholder
 ========================================================================== */
.uk-sortable-placeholder {
	opacity: 0;
	pointer-events: none;
}

/* Empty modifier
 ========================================================================== */
.uk-sortable-empty {
	min-height: 50px;
}

/* Handle
 ========================================================================== */
/* Hover */
.uk-sortable-handle:hover {
	cursor: move;
}

/* ========================================================================
   Component: Countdown
 ========================================================================== */
/* Item
 ========================================================================== */
/* Number
 ========================================================================== */
/*
 * 1. Make numbers all of the same size to prevent jumping. Must be supported by the font.
 * 2. Style
 */
.uk-countdown-number {
	/* 1 */
	font-variant-numeric: tabular-nums;
	/* 2 */
	font-size: 2rem;
	line-height: 0.8;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-countdown-number {
		font-size: 4rem;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-countdown-number {
		font-size: 6rem;
	}
}
/* Separator
 ========================================================================== */
.uk-countdown-separator {
	font-size: 1rem;
	line-height: 1.6;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-countdown-separator {
		font-size: 2rem;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-countdown-separator {
		font-size: 3rem;
	}
}
/* Label
 ========================================================================== */
/* ========================================================================
   Component: Grid
 ========================================================================== */
/*
 * 1. Allow cells to wrap into the next line
 * 2. Reset list
 */
.uk-grid {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
	/* 2 */
	margin: 0;
	padding: 0;
	list-style: none;
}

/*
 * Grid cell
 * Note: Space is allocated solely based on content dimensions, but shrinks: 0 1 auto
 * Reset margin for e.g. paragraphs
 */
.uk-grid > * {
	margin: 0;
}

/*
 * Remove margin from the last-child
 */
.uk-grid > * > :last-child {
	margin-bottom: 0;
}

/* Gutter
 ========================================================================== */
/*
 * Default
 */
/* Horizontal */
.uk-grid {
	margin-left: -30px;
}

.uk-grid > * {
	padding-left: 30px;
}

/* Vertical */
.uk-grid + .uk-grid,
.uk-grid > .uk-grid-margin,
* + .uk-grid-margin {
	margin-top: 30px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	/* Horizontal */
	.uk-grid {
		margin-left: -40px;
	}

	.uk-grid > * {
		padding-left: 40px;
	}

	/* Vertical */
	.uk-grid + .uk-grid,
.uk-grid > .uk-grid-margin,
* + .uk-grid-margin {
		margin-top: 40px;
	}
}
/*
 * Small
 */
/* Horizontal */
.uk-grid-small,
.uk-grid-column-small {
	margin-left: -15px;
}

.uk-grid-small > *,
.uk-grid-column-small > * {
	padding-left: 15px;
}

/* Vertical */
.uk-grid + .uk-grid-small,
.uk-grid + .uk-grid-row-small,
.uk-grid-small > .uk-grid-margin,
.uk-grid-row-small > .uk-grid-margin,
* + .uk-grid-margin-small {
	margin-top: 15px;
}

/*
 * Medium
 */
/* Horizontal */
.uk-grid-medium,
.uk-grid-column-medium {
	margin-left: -30px;
}

.uk-grid-medium > *,
.uk-grid-column-medium > * {
	padding-left: 30px;
}

/* Vertical */
.uk-grid + .uk-grid-medium,
.uk-grid + .uk-grid-row-medium,
.uk-grid-medium > .uk-grid-margin,
.uk-grid-row-medium > .uk-grid-margin,
* + .uk-grid-margin-medium {
	margin-top: 30px;
}

/*
 * Large
 */
/* Horizontal */
.uk-grid-large,
.uk-grid-column-large {
	margin-left: -40px;
}

.uk-grid-large > *,
.uk-grid-column-large > * {
	padding-left: 40px;
}

/* Vertical */
.uk-grid + .uk-grid-large,
.uk-grid + .uk-grid-row-large,
.uk-grid-large > .uk-grid-margin,
.uk-grid-row-large > .uk-grid-margin,
* + .uk-grid-margin-large {
	margin-top: 40px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	/* Horizontal */
	.uk-grid-large,
.uk-grid-column-large {
		margin-left: -70px;
	}

	.uk-grid-large > *,
.uk-grid-column-large > * {
		padding-left: 70px;
	}

	/* Vertical */
	.uk-grid + .uk-grid-large,
.uk-grid + .uk-grid-row-large,
.uk-grid-large > .uk-grid-margin,
.uk-grid-row-large > .uk-grid-margin,
* + .uk-grid-margin-large {
		margin-top: 70px;
	}
}
/*
 * Collapse
 */
/* Horizontal */
.uk-grid-collapse,
.uk-grid-column-collapse {
	margin-left: 0;
}

.uk-grid-collapse > *,
.uk-grid-column-collapse > * {
	padding-left: 0;
}

/* Vertical */
.uk-grid + .uk-grid-collapse,
.uk-grid + .uk-grid-row-collapse,
.uk-grid-collapse > .uk-grid-margin,
.uk-grid-row-collapse > .uk-grid-margin {
	margin-top: 0;
}

/* Divider
 ========================================================================== */
.uk-grid-divider > * {
	position: relative;
}

.uk-grid-divider > :not(.uk-first-column)::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	border-left: 1px solid #396e90;
}

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	border-top: 1px solid #396e90;
}

/*
 * Default
 */
/* Horizontal */
.uk-grid-divider {
	margin-left: -60px;
}

.uk-grid-divider > * {
	padding-left: 60px;
}

.uk-grid-divider > :not(.uk-first-column)::before {
	left: 30px;
}

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin {
	margin-top: 60px;
}

.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
	top: -30px;
	left: 60px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	/* Horizontal */
	.uk-grid-divider {
		margin-left: -80px;
	}

	.uk-grid-divider > * {
		padding-left: 80px;
	}

	.uk-grid-divider > :not(.uk-first-column)::before {
		left: 40px;
	}

	/* Vertical */
	.uk-grid-divider.uk-grid-stack > .uk-grid-margin {
		margin-top: 80px;
	}

	.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
		top: -40px;
		left: 80px;
	}
}
/*
 * Small
 */
/* Horizontal */
.uk-grid-divider.uk-grid-small,
.uk-grid-divider.uk-grid-column-small {
	margin-left: -30px;
}

.uk-grid-divider.uk-grid-small > *,
.uk-grid-divider.uk-grid-column-small > * {
	padding-left: 30px;
}

.uk-grid-divider.uk-grid-small > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-small > :not(.uk-first-column)::before {
	left: 15px;
}

/* Vertical */
.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin {
	margin-top: 30px;
}

.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin::before {
	top: -15px;
	left: 30px;
}

.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin::before {
	top: -15px;
}

.uk-grid-divider.uk-grid-column-small.uk-grid-stack > .uk-grid-margin::before {
	left: 30px;
}

/*
 * Medium
 */
/* Horizontal */
.uk-grid-divider.uk-grid-medium,
.uk-grid-divider.uk-grid-column-medium {
	margin-left: -60px;
}

.uk-grid-divider.uk-grid-medium > *,
.uk-grid-divider.uk-grid-column-medium > * {
	padding-left: 60px;
}

.uk-grid-divider.uk-grid-medium > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-medium > :not(.uk-first-column)::before {
	left: 30px;
}

/* Vertical */
.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin {
	margin-top: 60px;
}

.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin::before {
	top: -30px;
	left: 60px;
}

.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin::before {
	top: -30px;
}

.uk-grid-divider.uk-grid-column-medium.uk-grid-stack > .uk-grid-margin::before {
	left: 60px;
}

/*
 * Large
 */
/* Horizontal */
.uk-grid-divider.uk-grid-large,
.uk-grid-divider.uk-grid-column-large {
	margin-left: -80px;
}

.uk-grid-divider.uk-grid-large > *,
.uk-grid-divider.uk-grid-column-large > * {
	padding-left: 80px;
}

.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
	left: 40px;
}

/* Vertical */
.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
	margin-top: 80px;
}

.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
	top: -40px;
	left: 80px;
}

.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
	top: -40px;
}

.uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
	left: 80px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	/* Horizontal */
	.uk-grid-divider.uk-grid-large,
.uk-grid-divider.uk-grid-column-large {
		margin-left: -140px;
	}

	.uk-grid-divider.uk-grid-large > *,
.uk-grid-divider.uk-grid-column-large > * {
		padding-left: 140px;
	}

	.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
		left: 70px;
	}

	/* Vertical */
	.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
		margin-top: 140px;
	}

	.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
		top: -70px;
		left: 140px;
	}

	.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
		top: -70px;
	}

	.uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
		left: 140px;
	}
}
/* Match child of a grid cell
 ========================================================================== */
/*
 * Behave like a block element
 * 1. Wrap into the next line
 * 2. Take the full width, at least 100%. Only if no class from the Width component is set.
 * 3. Expand width even if larger than 100%, e.g. because of negative margin (Needed for nested grids)
 */
.uk-grid-match > *,
.uk-grid-item-match {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
}

.uk-grid-match > * > :not([class*=uk-width]),
.uk-grid-item-match > :not([class*=uk-width]) {
	/* 2 */
	box-sizing: border-box;
	width: 100%;
	/* 3 */
	flex: auto;
}

/* ========================================================================
   Component: Nav
 ========================================================================== */
/*
 * Reset
 */
.uk-nav,
.uk-nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

/*
* 1. Center content vertically, e.g. an icon
* 2. Imitate white space gap when using flexbox
* 3. Reset link
* 4. Space is allocated solely based on content dimensions: 0 0 auto
 */
.uk-nav li > a {
	/* 1 */
	display: flex;
	align-items: center;
	/* 2 */
	column-gap: 0.25em;
	/* 3*/
	text-decoration: none;
}

/* 4 */
.uk-nav li > a > * {
	flex: none;
}

/*
 * Remove default focus style
 */
.uk-nav li > a:focus {
	outline: none;
}

/*
 * Items
 * Must target `a` elements to exclude other elements (e.g. lists)
 */
.uk-nav > li > a {
	padding: 5px 0;
}

/* Sublists
 ========================================================================== */
/*
 * Level 2
 * `ul` needed for higher specificity to override padding
 */
ul.uk-nav-sub {
	padding: 5px 0 5px 15px;
}

/*
 * Level 3 and deeper
 */
.uk-nav-sub ul {
	padding-left: 15px;
}

/*
 * Items
 */
.uk-nav-sub a {
	padding: 2px 0;
}

/* Parent icon modifier
 ========================================================================== */
.uk-nav-parent-icon > .uk-parent > a::after {
	content: "";
	width: 1.5em;
	height: 1.5em;
	margin-left: auto;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E");
	background-repeat: no-repeat;
	background-position: 50% 50%;
}

.uk-nav-parent-icon > .uk-parent.uk-open > a::after {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E");
}

/* Header
 ========================================================================== */
.uk-nav-header {
	padding: 5px 0;
	text-transform: uppercase;
	font-size: 0.875rem;
}

.uk-nav-header:not(:first-child) {
	margin-top: 20px;
}

/* Divider
 ========================================================================== */
.uk-nav > .uk-nav-divider {
	margin: 5px 0;
}

/* Default modifier
 ========================================================================== */
.uk-nav-default {
	font-size: 0.875rem;
}

/*
 * Items
 */
.uk-nav-default > li > a {
	color: #999;
}

/* Hover + Focus */
.uk-nav-default > li > a:hover,
.uk-nav-default > li > a:focus {
	color: #666;
}

/* Active */
.uk-nav-default > li.uk-active > a {
	color: #333;
}

/*
 * Header
 */
.uk-nav-default .uk-nav-header {
	color: #333;
}

/*
 * Divider
 */
.uk-nav-default .uk-nav-divider {
	border-top: 1px solid #396e90;
}

/*
 * Sublists
 */
.uk-nav-default .uk-nav-sub a {
	color: #999;
}

.uk-nav-default .uk-nav-sub a:hover,
.uk-nav-default .uk-nav-sub a:focus {
	color: #666;
}

.uk-nav-default .uk-nav-sub li.uk-active > a {
	color: #333;
}

/* Primary modifier
 ========================================================================== */
/*
 * Items
 */
.uk-nav-primary > li > a {
	font-size: 1.5rem;
	line-height: 1.5;
	color: #999;
}

/* Hover + Focus */
.uk-nav-primary > li > a:hover,
.uk-nav-primary > li > a:focus {
	color: #666;
}

/* Active */
.uk-nav-primary > li.uk-active > a {
	color: #333;
}

/*
 * Header
 */
.uk-nav-primary .uk-nav-header {
	color: #333;
}

/*
 * Divider
 */
.uk-nav-primary .uk-nav-divider {
	border-top: 1px solid #396e90;
}

/*
 * Sublists
 */
.uk-nav-primary .uk-nav-sub a {
	color: #999;
}

.uk-nav-primary .uk-nav-sub a:hover,
.uk-nav-primary .uk-nav-sub a:focus {
	color: #666;
}

.uk-nav-primary .uk-nav-sub li.uk-active > a {
	color: #333;
}

/* Alignment modifier
 ========================================================================== */
/*
 * 1. Center header
 * 2. Center items
 */
/* 1 */
.uk-nav-center {
	text-align: center;
}

/* 2 */
.uk-nav-center li > a {
	justify-content: center;
}

/* Sublists */
.uk-nav-center .uk-nav-sub,
.uk-nav-center .uk-nav-sub ul {
	padding-left: 0;
}

/* Parent icon modifier  */
.uk-nav-center.uk-nav-parent-icon > .uk-parent > a::after {
	margin-left: 0;
}

/* Style modifier
 ========================================================================== */
.uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider) {
	margin-top: 0;
	padding-top: 0;
	border-top: 1px solid #396e90;
}

/* ========================================================================
   Component: Navbar
 ========================================================================== */
/*
 * 1. Create position context to center navbar group
 */
.uk-navbar {
	display: flex;
	/* 1 */
	position: relative;
}

/* Container
 ========================================================================== */
.uk-navbar-container:not(.uk-navbar-transparent) {
	background: #f8f8f8;
}

/*
 * Remove pseudo elements created by micro clearfix as precaution (if Container component is used)
 */
.uk-navbar-container > ::before,
.uk-navbar-container > ::after {
	display: none !important;
}

/* Groups
 ========================================================================== */
/*
 * 1. Align navs and items vertically if they have a different height
 * 2. Note: IE 11 requires an extra `div` which affects the center selector
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center,
.uk-navbar-center-left > *,
.uk-navbar-center-right > * {
	display: flex;
	/* 1 */
	align-items: center;
}

/*
 * Horizontal alignment
 * 1. Create position context for centered navbar with sub groups (left/right)
 * 2. Fix text wrapping if content is larger than 50% of the container.
 * 3. Needed for dropdowns because a new position context is created
 *    `z-index` must be smaller than off-canvas
 * 4. Align sub groups for centered navbar
 */
.uk-navbar-right {
	margin-left: auto;
}

.uk-navbar-center:only-child {
	margin-left: auto;
	margin-right: auto;
	/* 1 */
	position: relative;
}

.uk-navbar-center:not(:only-child) {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	/* 2 */
	width: max-content;
	box-sizing: border-box;
	/* 3 */
	z-index: 990;
}

/* 4 */
.uk-navbar-center-left,
.uk-navbar-center-right {
	position: absolute;
	top: 0;
}

.uk-navbar-center-left {
	right: 100%;
}

.uk-navbar-center-right {
	left: 100%;
}

[class*=uk-navbar-center-] {
	width: max-content;
	box-sizing: border-box;
}

/* Nav
 ========================================================================== */
/*
 * 1. Reset list
 */
.uk-navbar-nav {
	display: flex;
	/* 1 */
	margin: 0;
	padding: 0;
	list-style: none;
}

/*
 * Allow items to wrap into the next line
 * Only not `absolute` positioned groups
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center:only-child {
	flex-wrap: wrap;
}

/*
 * Items
 * 1. Center content vertically and horizontally
 * 2. Imitate white space gap when using flexbox
 * 3. Dimensions
 * 4. Style
 * 5. Required for `a`
 */
.uk-navbar-nav > li > a,
.uk-navbar-item,
.uk-navbar-toggle {
	/* 1 */
	display: flex;
	justify-content: center;
	align-items: center;
	/* 2 */
	column-gap: 0.25em;
	/* 3 */
	box-sizing: border-box;
	min-height: 80px;
	padding: 0 15px;
	/* 4 */
	font-size: 0.875rem;
	font-family: "游ゴシック", YuGothic, "Yu Gothic", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Hiragino Maru Gothic W4 JIS2004", "メイリオ", "Meiryo", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
	/* 5 */
	text-decoration: none;
}

/*
 * Nav items
 */
.uk-navbar-nav > li > a {
	color: #999;
	text-transform: uppercase;
	transition: 0.1s ease-in-out;
	transition-property: color, background-color;
}

/*
 * Hover
 * Apply hover style also to focus state and if dropdown is opened
 */
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li > a:focus,
.uk-navbar-nav > li > a[aria-expanded=true] {
	color: #666;
	outline: none;
}

/* OnClick */
.uk-navbar-nav > li > a:active {
	color: #333;
}

/* Active */
.uk-navbar-nav > li.uk-active > a {
	color: #333;
}

/* Item
 ========================================================================== */
.uk-navbar-item {
	color: #666;
}

/*
 * Remove margin from the last-child
 */
.uk-navbar-item > :last-child {
	margin-bottom: 0;
}

/* Toggle
 ========================================================================== */
.uk-navbar-toggle {
	color: #999;
}

.uk-navbar-toggle:hover,
.uk-navbar-toggle:focus,
.uk-navbar-toggle.uk-open {
	color: #666;
	outline: none;
	text-decoration: none;
}

/*
 * Icon
 * Adopts `uk-icon`
 */
/* Hover + Focus */
/* Subtitle
 ========================================================================== */
.uk-navbar-subtitle {
	font-size: 0.875rem;
}

/* Style modifiers
 ========================================================================== */
/* Dropdown
 ========================================================================== */
/*
 * Adopts `uk-dropdown`
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-navbar-dropdown {
	/* 1 */
	display: none;
	/* 2 */
	position: absolute;
	z-index: 1020;
	/* 3 */
	box-sizing: border-box;
	width: 200px;
	/* 4 */
	padding: 25px;
	background: #fff;
	color: #666;
	box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15);
}

/* Show */
.uk-navbar-dropdown.uk-open {
	display: block;
}

/*
 * Direction / Alignment modifiers
 */
/* Direction */
[class*=uk-navbar-dropdown-top] {
	margin-top: -15px;
}

[class*=uk-navbar-dropdown-bottom] {
	margin-top: 15px;
}

[class*=uk-navbar-dropdown-left] {
	margin-left: -15px;
}

[class*=uk-navbar-dropdown-right] {
	margin-left: 15px;
}

/*
 * Grid
 * Adopts `uk-grid`
 */
/* Gutter Horizontal */
.uk-navbar-dropdown-grid {
	margin-left: -50px;
}

.uk-navbar-dropdown-grid > * {
	padding-left: 50px;
}

/* Gutter Vertical */
.uk-navbar-dropdown-grid > .uk-grid-margin {
	margin-top: 50px;
}

/* Stack */
.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid > * {
	width: 100% !important;
}

/*
 * Width modifier
 */
.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack) {
	width: 400px;
}

.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack) {
	width: 600px;
}

.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) {
	width: 800px;
}

.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) {
	width: 1000px;
}

/*
 * Dropbar modifier
 */
.uk-navbar-dropdown-dropbar {
	margin-top: 0;
	margin-bottom: 0;
	box-shadow: none;
}

/* Dropdown Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-navbar-dropdown-nav {
	font-size: 0.875rem;
}

/*
 * Items
 */
.uk-navbar-dropdown-nav > li > a {
	color: #999;
}

/* Hover + Focus */
.uk-navbar-dropdown-nav > li > a:hover,
.uk-navbar-dropdown-nav > li > a:focus {
	color: #666;
}

/* Active */
.uk-navbar-dropdown-nav > li.uk-active > a {
	color: #333;
}

/*
 * Header
 */
.uk-navbar-dropdown-nav .uk-nav-header {
	color: #333;
}

/*
 * Divider
 */
.uk-navbar-dropdown-nav .uk-nav-divider {
	border-top: 1px solid #396e90;
}

/*
 * Sublists
 */
.uk-navbar-dropdown-nav .uk-nav-sub a {
	color: #999;
}

.uk-navbar-dropdown-nav .uk-nav-sub a:hover,
.uk-navbar-dropdown-nav .uk-nav-sub a:focus {
	color: #666;
}

.uk-navbar-dropdown-nav .uk-nav-sub li.uk-active > a {
	color: #333;
}

/* Dropbar
 ========================================================================== */
.uk-navbar-dropbar {
	background: #fff;
}

/*
 * Slide modifier
 */
.uk-navbar-dropbar-slide {
	position: absolute;
	z-index: 980;
	left: 0;
	right: 0;
	box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05);
}

/*
 * Navbar
 */
.uk-navbar-container > .uk-container .uk-navbar-left {
	margin-left: -15px;
	margin-right: -15px;
}

.uk-navbar-container > .uk-container .uk-navbar-right {
	margin-right: -15px;
}

/*
 * Grid Divider
 */
.uk-navbar-dropdown-grid > * {
	position: relative;
}

.uk-navbar-dropdown-grid > :not(.uk-first-column)::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 25px;
	border-left: 1px solid #396e90;
}

/* Vertical */
.uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before {
	content: "";
	position: absolute;
	top: -25px;
	left: 50px;
	right: 0;
	border-top: 1px solid #396e90;
}

/* ========================================================================
   Component: Subnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Center items vertically if they have a different height
 * 3. Gutter
 * 4. Reset list
 */
.uk-subnav {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
	/* 2 */
	align-items: center;
	/* 3 */
	margin-left: -20px;
	/* 4 */
	padding: 0;
	list-style: none;
}

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-subnav > * {
	/* 1 */
	flex: none;
	/* 2 */
	padding-left: 20px;
	/* 3 */
	position: relative;
}

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * Using `:first-child` instead of `a` to support `span` elements for text
 * 1. Center content vertically, e.g. an icon
 * 2. Imitate white space gap when using flexbox
 * 3. Style
 */
.uk-subnav > * > :first-child {
	/* 1 */
	display: flex;
	align-items: center;
	/* 2 */
	column-gap: 0.25em;
	/* 3 */
	color: #999;
	font-size: 0.875rem;
	text-transform: uppercase;
	transition: 0.1s ease-in-out;
	transition-property: color, background-color;
}

/* Hover + Focus */
.uk-subnav > * > a:hover,
.uk-subnav > * > a:focus {
	color: #666;
	text-decoration: none;
	outline: none;
}

/* Active */
.uk-subnav > .uk-active > a {
	color: #333;
}

/* Divider modifier
 ========================================================================== */
/*
 * Set gutter 
 */
.uk-subnav-divider {
	margin-left: -41px;
}

/*
 * Align items and divider vertically
 */
.uk-subnav-divider > * {
	display: flex;
	align-items: center;
}

/*
 * Divider
 * 1. `nth-child` makes it also work without JS if it's only one row
 */
.uk-subnav-divider > ::before {
	content: "";
	height: 1.5em;
	margin-left: 0px;
	margin-right: 20px;
	border-left: 1px solid transparent;
}

/* 1 */
.uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before {
	border-left-color: #396e90;
}

/* Pill modifier
 ========================================================================== */
.uk-subnav-pill > * > :first-child {
	padding: 5px 10px;
	background: transparent;
	color: #999;
}

/* Hover + Focus */
.uk-subnav-pill > * > a:hover,
.uk-subnav-pill > * > a:focus {
	background-color: #f8f8f8;
	color: #666;
}

/* OnClick */
.uk-subnav-pill > * > a:active {
	background-color: #f8f8f8;
	color: #666;
}

/* Active */
.uk-subnav-pill > .uk-active > a {
	background-color: #1e87f0;
	color: #fff;
}

/* Disabled
 * The same for all style modifiers
 ========================================================================== */
.uk-subnav > .uk-disabled > a {
	color: #999;
}

/* ========================================================================
   Component: Breadcrumb
 ========================================================================== */
/*
 * Reset list
 */
.uk-breadcrumb {
	padding: 0;
	list-style: none;
}

/*
 * 1. Doesn't generate any box and replaced by child boxes
 */
.uk-breadcrumb > * {
	display: contents;
}

/* Items
 ========================================================================== */
.uk-breadcrumb > * > * {
	font-size: 0.875rem;
	color: #999;
}

/* Hover + Focus */
.uk-breadcrumb > * > :hover,
.uk-breadcrumb > * > :focus {
	color: #666;
	text-decoration: none;
}

/* Disabled */
/* Active */
.uk-breadcrumb > :last-child > span,
.uk-breadcrumb > :last-child > a:not([href]) {
	color: #666;
}

/*
 * Divider
 * `nth-child` makes it also work without JS if it's only one row
 * 1. Remove space between inline block elements.
 * 2. Style
 */
.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
	content: "/";
	display: inline-block;
	/* 1 */
	margin: 0 20px 0 calc(20px - 4px);
	/* 2 */
	font-size: 0.875rem;
	color: #999;
}

/* ========================================================================
   Component: Pagination
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-pagination {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
	/* 2 */
	margin-left: 0;
	/* 3 */
	padding: 0;
	list-style: none;
}

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-pagination > * {
	/* 1 */
	flex: none;
	/* 2 */
	padding-left: 0;
	/* 3 */
	position: relative;
}

/* Items
 ========================================================================== */
/*
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-pagination > * > * {
	/* 1 */
	display: block;
	/* 2 */
	padding: 5px 10px;
	color: #999;
	transition: color 0.1s ease-in-out;
}

/* Hover + Focus */
.uk-pagination > * > :hover,
.uk-pagination > * > :focus {
	color: #666;
	text-decoration: none;
}

/* Active */
.uk-pagination > .uk-active > * {
	color: #666;
}

/* Disabled */
.uk-pagination > .uk-disabled > * {
	color: #999;
}

/* ========================================================================
   Component: Tab
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-tab {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
	/* 2 */
	margin-left: -20px;
	/* 3 */
	padding: 0;
	list-style: none;
	position: relative;
}
.uk-tab::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 20px;
	right: 0;
	border-bottom: 1px solid #396e90;
}

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-tab > * {
	/* 1 */
	flex: none;
	/* 2 */
	padding-left: 20px;
	/* 3 */
	position: relative;
}

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Center content vertically, e.g. an icon
 * 2. Imitate white space gap when using flexbox
 * 3. Center content if a width is set
 * 4. Style
 */
.uk-tab > * > a {
	/* 1 */
	display: flex;
	align-items: center;
	/* 2 */
	column-gap: 0.25em;
	/* 3 */
	justify-content: center;
	/* 4 */
	padding: 5px 10px;
	color: #999;
	border-bottom: 1px solid transparent;
	font-size: 0.875rem;
	text-transform: uppercase;
	transition: color 0.1s ease-in-out;
}

/* Hover + Focus */
.uk-tab > * > a:hover,
.uk-tab > * > a:focus {
	color: #666;
	text-decoration: none;
}

/* Active */
.uk-tab > .uk-active > a {
	color: #333;
	border-color: #1e87f0;
}

/* Disabled */
.uk-tab > .uk-disabled > a {
	color: #999;
}

/* Position modifier
 ========================================================================== */
/*
 * Bottom
 */
.uk-tab-bottom::before {
	top: 0;
	bottom: auto;
}

.uk-tab-bottom > * > a {
	border-top: 1px solid transparent;
	border-bottom: none;
}

/*
 * Left + Right
 * 1. Reset Gutter
 */
.uk-tab-left,
.uk-tab-right {
	flex-direction: column;
	/* 1 */
	margin-left: 0;
}

/* 1 */
.uk-tab-left > *,
.uk-tab-right > * {
	padding-left: 0;
}

.uk-tab-left::before {
	top: 0;
	bottom: 0;
	left: auto;
	right: 0;
	border-left: 1px solid #396e90;
	border-bottom: none;
}

.uk-tab-right::before {
	top: 0;
	bottom: 0;
	left: 0;
	right: auto;
	border-left: 1px solid #396e90;
	border-bottom: none;
}

.uk-tab-left > * > a {
	justify-content: left;
	border-right: 1px solid transparent;
	border-bottom: none;
}

.uk-tab-right > * > a {
	justify-content: left;
	border-left: 1px solid transparent;
	border-bottom: none;
}

.uk-tab .uk-dropdown {
	margin-left: 30px;
}

/* ========================================================================
   Component: Slidenav
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-slidenav {
	padding: 5px 10px;
	color: rgba(102, 102, 102, 0.5);
	transition: color 0.1s ease-in-out;
}

/* Hover + Focus */
.uk-slidenav:hover,
.uk-slidenav:focus {
	color: rgba(102, 102, 102, 0.9);
	outline: none;
}

/* OnClick */
.uk-slidenav:active {
	color: rgba(102, 102, 102, 0.5);
}

/* Icon modifier
 ========================================================================== */
/*
 * Previous
 */
/*
 * Next
 */
/* Size modifier
 ========================================================================== */
.uk-slidenav-large {
	padding: 10px 10px;
}

/* Container
 ========================================================================== */
.uk-slidenav-container {
	display: flex;
}

/* ========================================================================
   Component: Dotnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-dotnav {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
	/* 2 */
	margin: 0;
	padding: 0;
	list-style: none;
	/* 3 */
	margin-left: -12px;
}

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 */
.uk-dotnav > * {
	/* 1 */
	flex: none;
	/* 2 */
	padding-left: 12px;
}

/* Items
 ========================================================================== */
/*
 * Items
 * 1. Hide text if present
 */
.uk-dotnav > * > * {
	display: block;
	box-sizing: border-box;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: transparent;
	/* 1 */
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	border: 1px solid rgba(102, 102, 102, 0.4);
	transition: 0.2s ease-in-out;
	transition-property: background-color, border-color;
}

/* Hover + Focus */
.uk-dotnav > * > :hover,
.uk-dotnav > * > :focus {
	background-color: rgba(102, 102, 102, 0.6);
	outline: none;
	border-color: transparent;
}

/* OnClick */
.uk-dotnav > * > :active {
	background-color: rgba(102, 102, 102, 0.2);
	border-color: transparent;
}

/* Active */
.uk-dotnav > .uk-active > * {
	background-color: rgba(102, 102, 102, 0.6);
	border-color: transparent;
}

/* Modifier: 'uk-dotnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-dotnav-vertical {
	/* 1 */
	flex-direction: column;
	/* 2 */
	margin-left: 0;
	margin-top: -12px;
}

/* 2 */
.uk-dotnav-vertical > * {
	padding-left: 0;
	padding-top: 12px;
}

/* ========================================================================
   Component: Thumbnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-thumbnav {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
	/* 2 */
	margin: 0;
	padding: 0;
	list-style: none;
	/* 3 */
	margin-left: -15px;
}

/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-thumbnav > * {
	/* 1 */
	padding-left: 15px;
}

/* Items
 ========================================================================== */
/*
 * Items
 */
.uk-thumbnav > * > * {
	display: inline-block;
	position: relative;
}
.uk-thumbnav > * > *::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(255, 255, 255, 0.4);
	transition: background-color 0.1s ease-in-out;
}

/* Hover + Focus */
.uk-thumbnav > * > :hover,
.uk-thumbnav > * > :focus {
	outline: none;
}
.uk-thumbnav > * > :hover::after,
.uk-thumbnav > * > :focus::after {
	background-color: transparent;
}

/* Active */
.uk-thumbnav > .uk-active > *::after {
	background-color: transparent;
}

/* Modifier: 'uk-thumbnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-thumbnav-vertical {
	/* 1 */
	flex-direction: column;
	/* 2 */
	margin-left: 0;
	margin-top: -15px;
}

/* 2 */
.uk-thumbnav-vertical > * {
	padding-left: 0;
	padding-top: 15px;
}

/* ========================================================================
   Component: Iconnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-iconnav {
	display: flex;
	/* 1 */
	flex-wrap: wrap;
	/* 2 */
	margin: 0;
	padding: 0;
	list-style: none;
	/* 3 */
	margin-left: -10px;
}

/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-iconnav > * {
	/* 1 */
	padding-left: 10px;
}

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Center content vertically if there is still some text
 * 2. Imitate white space gap when using flexbox
 * 3. Force text not to affect item height
 * 4. Style
 * 5. Required for `a` if there is still some text
 */
.uk-iconnav > * > a {
	/* 1 */
	display: flex;
	align-items: center;
	/* 2 */
	column-gap: 0.25em;
	/* 3 */
	line-height: 0;
	/* 4 */
	color: #999;
	/* 5 */
	text-decoration: none;
	font-size: 0.875rem;
	transition: 0.1s ease-in-out;
	transition-property: color, background-color;
}

/* Hover + Focus */
.uk-iconnav > * > a:hover,
.uk-iconnav > * > a:focus {
	color: #666;
	outline: none;
}

/* Active */
.uk-iconnav > .uk-active > a {
	color: #666;
}

/* Modifier: 'uk-iconnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-iconnav-vertical {
	/* 1 */
	flex-direction: column;
	/* 2 */
	margin-left: 0;
	margin-top: -10px;
}

/* 2 */
.uk-iconnav-vertical > * {
	padding-left: 0;
	padding-top: 10px;
}

/* ========================================================================
   Component: Lightbox
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 * 7. Prevent cancellation of pointer events while dragging
 */
.uk-lightbox {
	/* 1 */
	display: none;
	/* 2 */
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1010;
	/* 5 */
	background: #000;
	/* 6 */
	opacity: 0;
	transition: opacity 0.15s linear;
	/* 7 */
	touch-action: pinch-zoom;
}

/*
 * Open
 * 1. Center child
 * 2. Fade-in
 */
.uk-lightbox.uk-open {
	display: block;
	/* 2 */
	opacity: 1;
}

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-lightbox-page {
	overflow: hidden;
}

/* Item
 ========================================================================== */
/*
 * 1. Center child within the viewport
 * 2. Not visible by default
 * 3. Color needed for spinner icon
 * 4. Optimize animation
 * 5. Responsiveness
 *    Using `vh` for `max-height` to fix image proportions after resize in Safari and Opera
 *    Using `vh` and `vw` to make responsive image work in IE11
 * 6. Suppress outline on focus
 */
.uk-lightbox-items > * {
	/* 1 */
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	/* 2 */
	display: none;
	justify-content: center;
	align-items: center;
	/* 3 */
	color: rgba(255, 255, 255, 0.7);
	/* 4 */
	will-change: transform, opacity;
}

/* 5 */
.uk-lightbox-items > * > * {
	max-width: 100vw;
	max-height: 100vh;
}

/* 6 */
.uk-lightbox-items > :focus {
	outline: none;
}

.uk-lightbox-items > * > :not(iframe) {
	width: auto;
	height: auto;
}

.uk-lightbox-items > .uk-active {
	display: flex;
}

/* Toolbar
 ========================================================================== */
.uk-lightbox-toolbar {
	padding: 10px 10px;
	background: rgba(0, 0, 0, 0.3);
	color: rgba(255, 255, 255, 0.7);
}

.uk-lightbox-toolbar > * {
	color: rgba(255, 255, 255, 0.7);
}

/* Toolbar Icon (Close)
 ========================================================================== */
.uk-lightbox-toolbar-icon {
	padding: 5px;
	color: rgba(255, 255, 255, 0.7);
}

/*
 * Hover
 */
.uk-lightbox-toolbar-icon:hover {
	color: #fff;
}

/* Button (Slidenav)
 ========================================================================== */
/*
 * 1. Center icon vertically and horizontally
 */
.uk-lightbox-button {
	box-sizing: border-box;
	width: 50px;
	height: 50px;
	background: rgba(0, 0, 0, 0.3);
	color: rgba(255, 255, 255, 0.7);
	/* 1 */
	display: inline-flex;
	justify-content: center;
	align-items: center;
}

/* Hover + Focus */
.uk-lightbox-button:hover,
.uk-lightbox-button:focus {
	color: #fff;
}

/* OnClick */
/* Caption
 ========================================================================== */
.uk-lightbox-caption:empty {
	display: none;
}

/* Iframe
 ========================================================================== */
.uk-lightbox-iframe {
	width: 80%;
	height: 80%;
}

/* ========================================================================
   Component: Animation
 ========================================================================== */
[class*=uk-animation-] {
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: both;
}

/* Animations
 ========================================================================== */
/*
 * Fade
 */
.uk-animation-fade {
	animation-name: uk-fade;
	animation-duration: 0.8s;
	animation-timing-function: linear;
}

/*
 * Scale
 */
.uk-animation-scale-up {
	animation-name: uk-fade-scale-02;
}

.uk-animation-scale-down {
	animation-name: uk-fade-scale-18;
}

/*
 * Slide
 */
.uk-animation-slide-top {
	animation-name: uk-fade-top;
}

.uk-animation-slide-bottom {
	animation-name: uk-fade-bottom;
}

.uk-animation-slide-left {
	animation-name: uk-fade-left;
}

.uk-animation-slide-right {
	animation-name: uk-fade-right;
}

/*
 * Slide Small
 */
.uk-animation-slide-top-small {
	animation-name: uk-fade-top-small;
}

.uk-animation-slide-bottom-small {
	animation-name: uk-fade-bottom-small;
}

.uk-animation-slide-left-small {
	animation-name: uk-fade-left-small;
}

.uk-animation-slide-right-small {
	animation-name: uk-fade-right-small;
}

/*
 * Slide Medium
 */
.uk-animation-slide-top-medium {
	animation-name: uk-fade-top-medium;
}

.uk-animation-slide-bottom-medium {
	animation-name: uk-fade-bottom-medium;
}

.uk-animation-slide-left-medium {
	animation-name: uk-fade-left-medium;
}

.uk-animation-slide-right-medium {
	animation-name: uk-fade-right-medium;
}

/*
 * Kenburns
 */
.uk-animation-kenburns {
	animation-name: uk-scale-kenburns;
	animation-duration: 15s;
}

/*
 * Shake
 */
.uk-animation-shake {
	animation-name: uk-shake;
}

/*
 * SVG Stroke
 * The `--uk-animation-stroke` custom property contains the longest path length.
 * Set it manually or use `uk-svg="stroke-animation: true"` to set it automatically.
 * All strokes are animated by the same pace and doesn't end simultaneously.
 * To end simultaneously, `pathLength="1"` could be used, but it's not working in Safari yet.
 */
.uk-animation-stroke {
	animation-name: uk-stroke;
	stroke-dasharray: var(--uk-animation-stroke);
	animation-duration: 2s;
}

/* Direction modifier
 ========================================================================== */
.uk-animation-reverse {
	animation-direction: reverse;
	animation-timing-function: ease-in;
}

/* Duration modifier
 ========================================================================== */
.uk-animation-fast {
	animation-duration: 0.1s;
}

/* Toggle (Hover + Focus)
========================================================================== */
/*
 * The toggle is triggered on touch devices using `:focus` and tabindex
 */
.uk-animation-toggle:not(:hover):not(:focus) [class*=uk-animation-] {
	animation-name: none;
}

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-animation-toggle {
	/* 1 */
	-webkit-tap-highlight-color: transparent;
}

/*
 * Remove outline for `tabindex`
 */
.uk-animation-toggle:focus {
	outline: none;
}

/* Keyframes used by animation classes
 ========================================================================== */
/*
 * Fade
 */
@keyframes uk-fade {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
/*
 * Slide Top
 */
@keyframes uk-fade-top {
	0% {
		opacity: 0;
		transform: translateY(-100%);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/*
 * Slide Bottom
 */
@keyframes uk-fade-bottom {
	0% {
		opacity: 0;
		transform: translateY(100%);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/*
 * Slide Left
 */
@keyframes uk-fade-left {
	0% {
		opacity: 0;
		transform: translateX(-100%);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/*
 * Slide Right
 */
@keyframes uk-fade-right {
	0% {
		opacity: 0;
		transform: translateX(100%);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/*
 * Slide Top Small
 */
@keyframes uk-fade-top-small {
	0% {
		opacity: 0;
		transform: translateY(-10px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/*
 * Slide Bottom Small
 */
@keyframes uk-fade-bottom-small {
	0% {
		opacity: 0;
		transform: translateY(10px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/*
 * Slide Left Small
 */
@keyframes uk-fade-left-small {
	0% {
		opacity: 0;
		transform: translateX(-10px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/*
 * Slide Right Small
 */
@keyframes uk-fade-right-small {
	0% {
		opacity: 0;
		transform: translateX(10px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/*
 * Slide Top Medium
 */
@keyframes uk-fade-top-medium {
	0% {
		opacity: 0;
		transform: translateY(-50px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/*
 * Slide Bottom Medium
 */
@keyframes uk-fade-bottom-medium {
	0% {
		opacity: 0;
		transform: translateY(50px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}
/*
 * Slide Left Medium
 */
@keyframes uk-fade-left-medium {
	0% {
		opacity: 0;
		transform: translateX(-50px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/*
 * Slide Right Medium
 */
@keyframes uk-fade-right-medium {
	0% {
		opacity: 0;
		transform: translateX(50px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}
/*
 * Scale Up
 */
@keyframes uk-fade-scale-02 {
	0% {
		opacity: 0;
		transform: scale(0.2);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}
/*
 * Scale Down
 */
@keyframes uk-fade-scale-18 {
	0% {
		opacity: 0;
		transform: scale(1.8);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}
/*
 * Kenburns
 */
@keyframes uk-scale-kenburns {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.2);
	}
}
/*
 * Shake
 */
@keyframes uk-shake {
	0%, 100% {
		transform: translateX(0);
	}
	10% {
		transform: translateX(-9px);
	}
	20% {
		transform: translateX(8px);
	}
	30% {
		transform: translateX(-7px);
	}
	40% {
		transform: translateX(6px);
	}
	50% {
		transform: translateX(-5px);
	}
	60% {
		transform: translateX(4px);
	}
	70% {
		transform: translateX(-3px);
	}
	80% {
		transform: translateX(2px);
	}
	90% {
		transform: translateX(-1px);
	}
}
/*
 * Stroke
 */
@keyframes uk-stroke {
	0% {
		stroke-dashoffset: var(--uk-animation-stroke);
	}
	100% {
		stroke-dashoffset: 0;
	}
}
/* ========================================================================
   Component: Width
 ========================================================================== */
/* Equal child widths
 ========================================================================== */
[class*=uk-child-width] > * {
	box-sizing: border-box;
	width: 100%;
}

.uk-child-width-1-2 > * {
	width: 50%;
}

.uk-child-width-1-3 > * {
	width: calc(100% * 1 / 3.001);
}

.uk-child-width-1-4 > * {
	width: 25%;
}

.uk-child-width-1-5 > * {
	width: 20%;
}

.uk-child-width-1-6 > * {
	width: calc(100% * 1 / 6.001);
}

.uk-child-width-auto > * {
	width: auto;
}

/*
 * 1. Reset the `min-width`, which is set to auto by default, because
 *    flex items won't shrink below their minimum intrinsic content size.
 *    Using `1px` instead of `0`, so items still wrap into the next line,
 *    if they have zero width and padding and the predecessor is 100% wide.
 */
.uk-child-width-expand > :not([class*=uk-width]) {
	flex: 1;
	/* 1 */
	min-width: 1px;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-child-width-1-1\@s > * {
		width: 100%;
	}

	.uk-child-width-1-2\@s > * {
		width: 50%;
	}

	.uk-child-width-1-3\@s > * {
		width: calc(100% * 1 / 3.001);
	}

	.uk-child-width-1-4\@s > * {
		width: 25%;
	}

	.uk-child-width-1-5\@s > * {
		width: 20%;
	}

	.uk-child-width-1-6\@s > * {
		width: calc(100% * 1 / 6.001);
	}

	.uk-child-width-auto\@s > * {
		width: auto;
	}

	.uk-child-width-expand\@s > :not([class*=uk-width]) {
		flex: 1;
		min-width: 1px;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-child-width-1-1\@m > * {
		width: 100%;
	}

	.uk-child-width-1-2\@m > * {
		width: 50%;
	}

	.uk-child-width-1-3\@m > * {
		width: calc(100% * 1 / 3.001);
	}

	.uk-child-width-1-4\@m > * {
		width: 25%;
	}

	.uk-child-width-1-5\@m > * {
		width: 20%;
	}

	.uk-child-width-1-6\@m > * {
		width: calc(100% * 1 / 6.001);
	}

	.uk-child-width-auto\@m > * {
		width: auto;
	}

	.uk-child-width-expand\@m > :not([class*=uk-width]) {
		flex: 1;
		min-width: 1px;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-child-width-1-1\@l > * {
		width: 100%;
	}

	.uk-child-width-1-2\@l > * {
		width: 50%;
	}

	.uk-child-width-1-3\@l > * {
		width: calc(100% * 1 / 3.001);
	}

	.uk-child-width-1-4\@l > * {
		width: 25%;
	}

	.uk-child-width-1-5\@l > * {
		width: 20%;
	}

	.uk-child-width-1-6\@l > * {
		width: calc(100% * 1 / 6.001);
	}

	.uk-child-width-auto\@l > * {
		width: auto;
	}

	.uk-child-width-expand\@l > :not([class*=uk-width]) {
		flex: 1;
		min-width: 1px;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-child-width-1-1\@xl > * {
		width: 100%;
	}

	.uk-child-width-1-2\@xl > * {
		width: 50%;
	}

	.uk-child-width-1-3\@xl > * {
		width: calc(100% * 1 / 3.001);
	}

	.uk-child-width-1-4\@xl > * {
		width: 25%;
	}

	.uk-child-width-1-5\@xl > * {
		width: 20%;
	}

	.uk-child-width-1-6\@xl > * {
		width: calc(100% * 1 / 6.001);
	}

	.uk-child-width-auto\@xl > * {
		width: auto;
	}

	.uk-child-width-expand\@xl > :not([class*=uk-width]) {
		flex: 1;
		min-width: 1px;
	}
}
/* Single Widths
 ========================================================================== */
/*
 * 1. `max-width` is needed for the pixel-based classes
 */
[class*=uk-width] {
	box-sizing: border-box;
	width: 100%;
	/* 1 */
	max-width: 100%;
}

/* Halves */
.uk-width-1-2 {
	width: 50%;
}

/* Thirds */
.uk-width-1-3 {
	width: calc(100% * 1 / 3.001);
}

.uk-width-2-3 {
	width: calc(100% * 2 / 3.001);
}

/* Quarters */
.uk-width-1-4 {
	width: 25%;
}

.uk-width-3-4 {
	width: 75%;
}

/* Fifths */
.uk-width-1-5 {
	width: 20%;
}

.uk-width-2-5 {
	width: 40%;
}

.uk-width-3-5 {
	width: 60%;
}

.uk-width-4-5 {
	width: 80%;
}

/* Sixths */
.uk-width-1-6 {
	width: calc(100% * 1 / 6.001);
}

.uk-width-5-6 {
	width: calc(100% * 5 / 6.001);
}

/* Pixel */
.uk-width-small {
	width: 150px;
}

.uk-width-medium {
	width: 300px;
}

.uk-width-large {
	width: 450px;
}

.uk-width-xlarge {
	width: 600px;
}

.uk-width-2xlarge {
	width: 750px;
}

/* Auto */
.uk-width-auto {
	width: auto;
}

/* Expand */
.uk-width-expand {
	flex: 1;
	min-width: 1px;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	/* Whole */
	.uk-width-1-1\@s {
		width: 100%;
	}

	/* Halves */
	.uk-width-1-2\@s {
		width: 50%;
	}

	/* Thirds */
	.uk-width-1-3\@s {
		width: calc(100% * 1 / 3.001);
	}

	.uk-width-2-3\@s {
		width: calc(100% * 2 / 3.001);
	}

	/* Quarters */
	.uk-width-1-4\@s {
		width: 25%;
	}

	.uk-width-3-4\@s {
		width: 75%;
	}

	/* Fifths */
	.uk-width-1-5\@s {
		width: 20%;
	}

	.uk-width-2-5\@s {
		width: 40%;
	}

	.uk-width-3-5\@s {
		width: 60%;
	}

	.uk-width-4-5\@s {
		width: 80%;
	}

	/* Sixths */
	.uk-width-1-6\@s {
		width: calc(100% * 1 / 6.001);
	}

	.uk-width-5-6\@s {
		width: calc(100% * 5 / 6.001);
	}

	/* Pixel */
	.uk-width-small\@s {
		width: 150px;
	}

	.uk-width-medium\@s {
		width: 300px;
	}

	.uk-width-large\@s {
		width: 450px;
	}

	.uk-width-xlarge\@s {
		width: 600px;
	}

	.uk-width-2xlarge\@s {
		width: 750px;
	}

	/* Auto */
	.uk-width-auto\@s {
		width: auto;
	}

	/* Expand */
	.uk-width-expand\@s {
		flex: 1;
		min-width: 1px;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	/* Whole */
	.uk-width-1-1\@m {
		width: 100%;
	}

	/* Halves */
	.uk-width-1-2\@m {
		width: 50%;
	}

	/* Thirds */
	.uk-width-1-3\@m {
		width: calc(100% * 1 / 3.001);
	}

	.uk-width-2-3\@m {
		width: calc(100% * 2 / 3.001);
	}

	/* Quarters */
	.uk-width-1-4\@m {
		width: 25%;
	}

	.uk-width-3-4\@m {
		width: 75%;
	}

	/* Fifths */
	.uk-width-1-5\@m {
		width: 20%;
	}

	.uk-width-2-5\@m {
		width: 40%;
	}

	.uk-width-3-5\@m {
		width: 60%;
	}

	.uk-width-4-5\@m {
		width: 80%;
	}

	/* Sixths */
	.uk-width-1-6\@m {
		width: calc(100% * 1 / 6.001);
	}

	.uk-width-5-6\@m {
		width: calc(100% * 5 / 6.001);
	}

	/* Pixel */
	.uk-width-small\@m {
		width: 150px;
	}

	.uk-width-medium\@m {
		width: 300px;
	}

	.uk-width-large\@m {
		width: 450px;
	}

	.uk-width-xlarge\@m {
		width: 600px;
	}

	.uk-width-2xlarge\@m {
		width: 750px;
	}

	/* Auto */
	.uk-width-auto\@m {
		width: auto;
	}

	/* Expand */
	.uk-width-expand\@m {
		flex: 1;
		min-width: 1px;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	/* Whole */
	.uk-width-1-1\@l {
		width: 100%;
	}

	/* Halves */
	.uk-width-1-2\@l {
		width: 50%;
	}

	/* Thirds */
	.uk-width-1-3\@l {
		width: calc(100% * 1 / 3.001);
	}

	.uk-width-2-3\@l {
		width: calc(100% * 2 / 3.001);
	}

	/* Quarters */
	.uk-width-1-4\@l {
		width: 25%;
	}

	.uk-width-3-4\@l {
		width: 75%;
	}

	/* Fifths */
	.uk-width-1-5\@l {
		width: 20%;
	}

	.uk-width-2-5\@l {
		width: 40%;
	}

	.uk-width-3-5\@l {
		width: 60%;
	}

	.uk-width-4-5\@l {
		width: 80%;
	}

	/* Sixths */
	.uk-width-1-6\@l {
		width: calc(100% * 1 / 6.001);
	}

	.uk-width-5-6\@l {
		width: calc(100% * 5 / 6.001);
	}

	/* Pixel */
	.uk-width-small\@l {
		width: 150px;
	}

	.uk-width-medium\@l {
		width: 300px;
	}

	.uk-width-large\@l {
		width: 450px;
	}

	.uk-width-xlarge\@l {
		width: 600px;
	}

	.uk-width-2xlarge\@l {
		width: 750px;
	}

	/* Auto */
	.uk-width-auto\@l {
		width: auto;
	}

	/* Expand */
	.uk-width-expand\@l {
		flex: 1;
		min-width: 1px;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	/* Whole */
	.uk-width-1-1\@xl {
		width: 100%;
	}

	/* Halves */
	.uk-width-1-2\@xl {
		width: 50%;
	}

	/* Thirds */
	.uk-width-1-3\@xl {
		width: calc(100% * 1 / 3.001);
	}

	.uk-width-2-3\@xl {
		width: calc(100% * 2 / 3.001);
	}

	/* Quarters */
	.uk-width-1-4\@xl {
		width: 25%;
	}

	.uk-width-3-4\@xl {
		width: 75%;
	}

	/* Fifths */
	.uk-width-1-5\@xl {
		width: 20%;
	}

	.uk-width-2-5\@xl {
		width: 40%;
	}

	.uk-width-3-5\@xl {
		width: 60%;
	}

	.uk-width-4-5\@xl {
		width: 80%;
	}

	/* Sixths */
	.uk-width-1-6\@xl {
		width: calc(100% * 1 / 6.001);
	}

	.uk-width-5-6\@xl {
		width: calc(100% * 5 / 6.001);
	}

	/* Pixel */
	.uk-width-small\@xl {
		width: 150px;
	}

	.uk-width-medium\@xl {
		width: 300px;
	}

	.uk-width-large\@xl {
		width: 450px;
	}

	.uk-width-xlarge\@xl {
		width: 600px;
	}

	.uk-width-2xlarge\@xl {
		width: 750px;
	}

	/* Auto */
	.uk-width-auto\@xl {
		width: auto;
	}

	/* Expand */
	.uk-width-expand\@xl {
		flex: 1;
		min-width: 1px;
	}
}
/* ========================================================================
   Component: Height
 ========================================================================== */
[class*=uk-height] {
	box-sizing: border-box;
}

/*
 * Only works if parent element has a height set
 */
.uk-height-1-1 {
	height: 100%;
}

/*
 * Useful to create image teasers
 */
.uk-height-viewport {
	min-height: 100vh;
}

/*
 * Pixel
 * Useful for `overflow: auto`
 */
.uk-height-small {
	height: 150px;
}

.uk-height-medium {
	height: 300px;
}

.uk-height-large {
	height: 450px;
}

.uk-height-max-small {
	max-height: 150px;
}

.uk-height-max-medium {
	max-height: 300px;
}

.uk-height-max-large {
	max-height: 450px;
}

/* ========================================================================
   Component: Text
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
.uk-text-lead {
	font-size: 1.5rem;
	line-height: 1.5;
	color: #333;
}

.uk-text-meta {
	font-size: 0.875rem;
	line-height: 1.4;
	color: #999;
}
.uk-text-meta a {
	color: #999;
}
.uk-text-meta a:hover {
	color: #666;
	text-decoration: none;
}

/* Size modifiers
 ========================================================================== */
.uk-text-small {
	font-size: 0.875rem;
	line-height: 1.5;
}

.uk-text-large {
	font-size: 1.5rem;
	line-height: 1.5;
}

.uk-text-default {
	font-size: 16px;
	line-height: 1.5;
}

/* Weight modifier
 ========================================================================== */
.uk-text-light {
	font-weight: 300;
}

.uk-text-normal {
	font-weight: 400;
}

.uk-text-bold {
	font-weight: 700;
}

.uk-text-lighter {
	font-weight: lighter;
}

.uk-text-bolder {
	font-weight: bolder;
}

/* Style modifier
 ========================================================================== */
.uk-text-italic {
	font-style: italic;
}

/* Transform modifier
 ========================================================================== */
.uk-text-capitalize {
	text-transform: capitalize !important;
}

.uk-text-uppercase {
	text-transform: uppercase !important;
}

.uk-text-lowercase {
	text-transform: lowercase !important;
}

/* Decoration modifier
 ========================================================================== */
.uk-text-decoration-none {
	text-decoration: none !important;
}

/* Color modifiers
 ========================================================================== */
.uk-text-muted {
	color: #999 !important;
}

.uk-text-emphasis {
	color: #333 !important;
}

.uk-text-primary {
	color: #1e87f0 !important;
}

.uk-text-secondary {
	color: #222 !important;
}

.uk-text-success {
	color: #32d296 !important;
}

.uk-text-warning {
	color: #faa05a !important;
}

.uk-text-danger {
	color: #f0506e !important;
}

/* Background modifier
 ========================================================================== */
/*
 * 1. The background clips to the foreground text. Works in Chrome, Firefox, Safari, Edge and Opera
 *    Default color is set to transparent
 * 2. Container fits the text
 * 3. Fallback color for IE11
 */
.uk-text-background {
	/* 1 */
	-webkit-background-clip: text;
	/* 2 */
	display: inline-block;
	/* 3 */
	color: #1e87f0 !important;
}

@supports (-webkit-background-clip: text) {
	.uk-text-background {
		background-color: #1e87f0;
		color: transparent !important;
	}
}
/* Alignment modifiers
 ========================================================================== */
.uk-text-left {
	text-align: left !important;
}

.uk-text-right {
	text-align: right !important;
}

.uk-text-center {
	text-align: center !important;
}

.uk-text-justify {
	text-align: justify !important;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-text-left\@s {
		text-align: left !important;
	}

	.uk-text-right\@s {
		text-align: right !important;
	}

	.uk-text-center\@s {
		text-align: center !important;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-text-left\@m {
		text-align: left !important;
	}

	.uk-text-right\@m {
		text-align: right !important;
	}

	.uk-text-center\@m {
		text-align: center !important;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-text-left\@l {
		text-align: left !important;
	}

	.uk-text-right\@l {
		text-align: right !important;
	}

	.uk-text-center\@l {
		text-align: center !important;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-text-left\@xl {
		text-align: left !important;
	}

	.uk-text-right\@xl {
		text-align: right !important;
	}

	.uk-text-center\@xl {
		text-align: center !important;
	}
}
/*
 * Vertical
 */
.uk-text-top {
	vertical-align: top !important;
}

.uk-text-middle {
	vertical-align: middle !important;
}

.uk-text-bottom {
	vertical-align: bottom !important;
}

.uk-text-baseline {
	vertical-align: baseline !important;
}

/* Wrap modifiers
 ========================================================================== */
/*
 * Prevent text from wrapping onto multiple lines
 */
.uk-text-nowrap {
	white-space: nowrap;
}

/*
 * 1. Make sure a max-width is set after which truncation can occur
 * 2. Prevent text from wrapping onto multiple lines, and truncate with an ellipsis
 * 3. Fix for table cells
 */
.uk-text-truncate {
	/* 1 */
	max-width: 100%;
	/* 2 */
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* 2 */
th.uk-text-truncate,
td.uk-text-truncate {
	max-width: 0;
}

/*
 * 1. Wrap long words onto the next line and break them if they are too long to fit
 * 2. Legacy `word-wrap` as fallback for `overflow-wrap`
 * 3. Fix `overflow-wrap` which doesn't work with table cells in Chrome, Opera, IE11 and Edge
 *    Must use `break-all` to support IE11 and Edge
 * Note: Not using `hyphens: auto;` because it hyphenates text even if not needed
 */
.uk-text-break {
	/* 1 */
	overflow-wrap: break-word;
	/* 2 */
	word-wrap: break-word;
}

/* 3 */
th.uk-text-break,
td.uk-text-break {
	word-break: break-all;
}

/* ========================================================================
   Component: Column
 ========================================================================== */
[class*=uk-column-] {
	column-gap: 30px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	[class*=uk-column-] {
		column-gap: 40px;
	}
}
/*
 * Fix image 1px line wrapping into the next column in Chrome
 */
[class*=uk-column-] img {
	transform: translate3d(0, 0, 0);
}

/* Divider
 ========================================================================== */
/*
 * 1. Double the column gap
 */
.uk-column-divider {
	column-rule: 1px solid #396e90;
	/* 1 */
	column-gap: 60px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-column-divider {
		column-gap: 80px;
	}
}
/* Width modifiers
 ========================================================================== */
.uk-column-1-2 {
	column-count: 2;
}

.uk-column-1-3 {
	column-count: 3;
}

.uk-column-1-4 {
	column-count: 4;
}

.uk-column-1-5 {
	column-count: 5;
}

.uk-column-1-6 {
	column-count: 6;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-column-1-2\@s {
		column-count: 2;
	}

	.uk-column-1-3\@s {
		column-count: 3;
	}

	.uk-column-1-4\@s {
		column-count: 4;
	}

	.uk-column-1-5\@s {
		column-count: 5;
	}

	.uk-column-1-6\@s {
		column-count: 6;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-column-1-2\@m {
		column-count: 2;
	}

	.uk-column-1-3\@m {
		column-count: 3;
	}

	.uk-column-1-4\@m {
		column-count: 4;
	}

	.uk-column-1-5\@m {
		column-count: 5;
	}

	.uk-column-1-6\@m {
		column-count: 6;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-column-1-2\@l {
		column-count: 2;
	}

	.uk-column-1-3\@l {
		column-count: 3;
	}

	.uk-column-1-4\@l {
		column-count: 4;
	}

	.uk-column-1-5\@l {
		column-count: 5;
	}

	.uk-column-1-6\@l {
		column-count: 6;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-column-1-2\@xl {
		column-count: 2;
	}

	.uk-column-1-3\@xl {
		column-count: 3;
	}

	.uk-column-1-4\@xl {
		column-count: 4;
	}

	.uk-column-1-5\@xl {
		column-count: 5;
	}

	.uk-column-1-6\@xl {
		column-count: 6;
	}
}
/* Make element span across all columns
 * Does not work in Firefox yet
 ========================================================================== */
.uk-column-span {
	column-span: all;
}

/* ========================================================================
   Component: Cover
 ========================================================================== */
/*
 * Works with iframes and embedded content
 * 1. Reset responsiveness for embedded content
 * 2. Center object
 * Note: Percent values on the `top` property only works if this element
 *       is absolute positioned or if the container has a height
 */
.uk-cover {
	/* 1 */
	max-width: none;
	/* 2 */
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

iframe.uk-cover {
	pointer-events: none;
}

/* Container
 ========================================================================== */
/*
 * 1. Parent container which clips resized object
 * 2. Needed if the child is positioned absolute. See note above
 */
.uk-cover-container {
	/* 1 */
	overflow: hidden;
	/* 2 */
	position: relative;
}

/* ========================================================================
   Component: Background
 ========================================================================== */
/* Color
 ========================================================================== */
.uk-background-default {
	background-color: #fff;
}

.uk-background-muted {
	background-color: #f8f8f8;
}

.uk-background-primary {
	background-color: #1e87f0;
}

.uk-background-secondary {
	background-color: #222;
}

/* Size
 ========================================================================== */
.uk-background-cover,
.uk-background-contain,
.uk-background-width-1-1,
.uk-background-height-1-1 {
	background-position: 50% 50%;
	background-repeat: no-repeat;
}

.uk-background-cover {
	background-size: cover;
}

.uk-background-contain {
	background-size: contain;
}

.uk-background-width-1-1 {
	background-size: 100%;
}

.uk-background-height-1-1 {
	background-size: auto 100%;
}

/* Position
 ========================================================================== */
.uk-background-top-left {
	background-position: 0 0;
}

.uk-background-top-center {
	background-position: 50% 0;
}

.uk-background-top-right {
	background-position: 100% 0;
}

.uk-background-center-left {
	background-position: 0 50%;
}

.uk-background-center-center {
	background-position: 50% 50%;
}

.uk-background-center-right {
	background-position: 100% 50%;
}

.uk-background-bottom-left {
	background-position: 0 100%;
}

.uk-background-bottom-center {
	background-position: 50% 100%;
}

.uk-background-bottom-right {
	background-position: 100% 100%;
}

/* Repeat
 ========================================================================== */
.uk-background-norepeat {
	background-repeat: no-repeat;
}

/* Attachment
 ========================================================================== */
/*
 * 1. Fix bug introduced in Chrome 67: the background image is not visible if any element on the page uses `translate3d`
 */
.uk-background-fixed {
	background-attachment: fixed;
	/* 1 */
	backface-visibility: hidden;
}

/*
 * Exclude touch devices because `fixed` doesn't work on iOS and Android
 */
@media (pointer: coarse) {
	.uk-background-fixed {
		background-attachment: scroll;
	}
}
/* Image
 ========================================================================== */
/* Phone portrait and smaller */
@media (max-width: 639px) {
	.uk-background-image\@s {
		background-image: none !important;
	}
}
/* Phone landscape and smaller */
@media (max-width: 959px) {
	.uk-background-image\@m {
		background-image: none !important;
	}
}
/* Tablet landscape and smaller */
@media (max-width: 1199px) {
	.uk-background-image\@l {
		background-image: none !important;
	}
}
/* Desktop and smaller */
@media (max-width: 1599px) {
	.uk-background-image\@xl {
		background-image: none !important;
	}
}
/* Blend modes
 ========================================================================== */
.uk-background-blend-multiply {
	background-blend-mode: multiply;
}

.uk-background-blend-screen {
	background-blend-mode: screen;
}

.uk-background-blend-overlay {
	background-blend-mode: overlay;
}

.uk-background-blend-darken {
	background-blend-mode: darken;
}

.uk-background-blend-lighten {
	background-blend-mode: lighten;
}

.uk-background-blend-color-dodge {
	background-blend-mode: color-dodge;
}

.uk-background-blend-color-burn {
	background-blend-mode: color-burn;
}

.uk-background-blend-hard-light {
	background-blend-mode: hard-light;
}

.uk-background-blend-soft-light {
	background-blend-mode: soft-light;
}

.uk-background-blend-difference {
	background-blend-mode: difference;
}

.uk-background-blend-exclusion {
	background-blend-mode: exclusion;
}

.uk-background-blend-hue {
	background-blend-mode: hue;
}

.uk-background-blend-saturation {
	background-blend-mode: saturation;
}

.uk-background-blend-color {
	background-blend-mode: color;
}

.uk-background-blend-luminosity {
	background-blend-mode: luminosity;
}

/* ========================================================================
   Component: Align
 ========================================================================== */
/*
 * Default
 */
[class*=uk-align] {
	display: block;
	margin-bottom: 30px;
}

* + [class*=uk-align] {
	margin-top: 30px;
}

/*
 * Center
 */
.uk-align-center {
	margin-left: auto;
	margin-right: auto;
}

/*
 * Left/Right
 */
.uk-align-left {
	margin-top: 0;
	margin-right: 30px;
	float: left;
}

.uk-align-right {
	margin-top: 0;
	margin-left: 30px;
	float: right;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-align-left\@s {
		margin-top: 0;
		margin-right: 30px;
		float: left;
	}

	.uk-align-right\@s {
		margin-top: 0;
		margin-left: 30px;
		float: right;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-align-left\@m {
		margin-top: 0;
		margin-right: 30px;
		float: left;
	}

	.uk-align-right\@m {
		margin-top: 0;
		margin-left: 30px;
		float: right;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-align-left\@l {
		margin-top: 0;
		float: left;
	}

	.uk-align-right\@l {
		margin-top: 0;
		float: right;
	}

	.uk-align-left,
.uk-align-left\@s,
.uk-align-left\@m,
.uk-align-left\@l {
		margin-right: 40px;
	}

	.uk-align-right,
.uk-align-right\@s,
.uk-align-right\@m,
.uk-align-right\@l {
		margin-left: 40px;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-align-left\@xl {
		margin-top: 0;
		margin-right: 40px;
		float: left;
	}

	.uk-align-right\@xl {
		margin-top: 0;
		margin-left: 40px;
		float: right;
	}
}
/* ========================================================================
   Component: SVG
 ========================================================================== */
/*
 * 1. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 2. Set the fill and stroke color of all SVG elements to the current text color
 */
/* 1 */
.uk-svg,
.uk-svg:not(.uk-preserve) [fill*="#"]:not(.uk-preserve) {
	fill: currentcolor;
}

.uk-svg:not(.uk-preserve) [stroke*="#"]:not(.uk-preserve) {
	stroke: currentcolor;
}

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-svg {
	transform: translate(0, 0);
}

/* ========================================================================
   Component: Utility
 ========================================================================== */
/* Panel
 ========================================================================== */
.uk-panel {
	display: flow-root;
	position: relative;
	box-sizing: border-box;
}

/*
 * Remove margin from the last-child
 */
.uk-panel > :last-child {
	margin-bottom: 0;
}

/*
 * Scrollable
 */
.uk-panel-scrollable {
	height: 170px;
	padding: 10px;
	border: 1px solid #396e90;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	resize: both;
}

/* Clearfix
 ========================================================================== */
/*
 * 1. `table-cell` is used with `::before` because `table` creates a 1px gap when it becomes a flex item, only in Webkit
 * 2. `table` is used again with `::after` because `clear` only works with block elements.
 * Note: `display: block` with `overflow: hidden` is currently not working in the latest Safari
 */
/* 1 */
.uk-clearfix::before {
	content: "";
	display: table-cell;
}

/* 2 */
.uk-clearfix::after {
	content: "";
	display: table;
	clear: both;
}

/* Float
 ========================================================================== */
/*
 * 1. Prevent content overflow
 */
.uk-float-left {
	float: left;
}

.uk-float-right {
	float: right;
}

/* 1 */
[class*=uk-float-] {
	max-width: 100%;
}

/* Overfow
 ========================================================================== */
.uk-overflow-hidden {
	overflow: hidden;
}

/*
 * Enable scrollbars if content is clipped
 * Note: Firefox ignores `padding-bottom` for the scrollable overflow https://bugzilla.mozilla.org/show_bug.cgi?id=748518
 */
.uk-overflow-auto {
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.uk-overflow-auto > :last-child {
	margin-bottom: 0;
}

/* Resize
 ========================================================================== */
.uk-resize {
	resize: both;
}

.uk-resize-vertical {
	resize: vertical;
}

/* Display
 ========================================================================== */
.uk-display-block {
	display: block !important;
}

.uk-display-inline {
	display: inline !important;
}

.uk-display-inline-block {
	display: inline-block !important;
}

/* Inline
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 * 5. Force new layer without creating a new stacking context
 *    to fix 1px glitch when combined with overlays and transitions in Webkit
 * 6. Clip child elements
 */
[class*=uk-inline] {
	/* 1 */
	display: inline-block;
	/* 2 */
	position: relative;
	/* 3 */
	max-width: 100%;
	/* 4 */
	vertical-align: middle;
	/* 5 */
	-webkit-backface-visibility: hidden;
}

.uk-inline-clip {
	/* 6 */
	overflow: hidden;
}

/* Responsive objects
 ========================================================================== */
/*
 * Preserve original dimensions
 * Because `img, `video`, `canvas` and  `audio` are already responsive by default, see Base component
 */
.uk-preserve-width,
.uk-preserve-width canvas,
.uk-preserve-width img,
.uk-preserve-width svg,
.uk-preserve-width video {
	max-width: none;
}

/*
 * Responsiveness
 * Corrects `max-width` and `max-height` behavior if padding and border are used
 */
.uk-responsive-width,
.uk-responsive-height {
	box-sizing: border-box;
}

/*
 * 1. Set a maximum width. `important` needed to override `uk-preserve-width img`
 * 2. Auto scale the height. Only needed if `height` attribute is present
 */
.uk-responsive-width {
	/* 1 */
	max-width: 100% !important;
	/* 2 */
	height: auto;
}

/*
 * 1. Set a maximum height. Only works if the parent element has a fixed height
 * 2. Auto scale the width. Only needed if `width` attribute is present
 * 3. Reset max-width, which `img, `video`, `canvas` and  `audio` already have by default
 */
.uk-responsive-height {
	/* 1 */
	max-height: 100%;
	/* 2 */
	width: auto;
	/* 3 */
	max-width: none;
}

/* Border
 ========================================================================== */
.uk-border-circle {
	border-radius: 50%;
}

.uk-border-pill {
	border-radius: 500px;
}

.uk-border-rounded {
	border-radius: 5px;
}

/*
 * Fix `overflow: hidden` to be ignored with border-radius and CSS transforms in Webkit
 */
.uk-inline-clip[class*=uk-border-] {
	-webkit-transform: translateZ(0);
}

/* Box-shadow
 ========================================================================== */
.uk-box-shadow-small {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.uk-box-shadow-medium {
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}

.uk-box-shadow-large {
	box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
}

.uk-box-shadow-xlarge {
	box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16);
}

/*
 * Hover
 */
[class*=uk-box-shadow-hover] {
	transition: box-shadow 0.1s ease-in-out;
}

.uk-box-shadow-hover-small:hover {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.uk-box-shadow-hover-medium:hover {
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}

.uk-box-shadow-hover-large:hover {
	box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
}

.uk-box-shadow-hover-xlarge:hover {
	box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16);
}

/* Box-shadow bottom
 ========================================================================== */
/*
 * 1. Set position.
 * 2. Set style
 * 3. Fix shadow being clipped in Safari if container is animated
 */
@supports (filter: blur(0)) {
	.uk-box-shadow-bottom {
		display: inline-block;
		position: relative;
		z-index: 0;
		max-width: 100%;
		vertical-align: middle;
	}

	.uk-box-shadow-bottom::after {
		content: "";
		/* 1 */
		position: absolute;
		bottom: -30px;
		left: 0;
		right: 0;
		z-index: -1;
		/* 2 */
		height: 30px;
		border-radius: 100%;
		background: #444;
		filter: blur(20px);
		/* 3 */
		will-change: filter;
	}
}
/* Drop cap
 ========================================================================== */
/*
 * 1. Firefox doesn't apply `::first-letter` if the first letter is inside child elements
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=214004
 * 2. In Firefox, a floating `::first-letter` doesn't have a line box and there for no `line-height`
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=317933
 * 3. Caused by 1.: Edge creates two nested `::first-letter` containers, one for each selector
 *    This doubles the `font-size` exponential when using the `em` unit.
 */
.uk-dropcap::first-letter,
.uk-dropcap > p:first-of-type::first-letter {
	display: block;
	margin-right: 10px;
	float: left;
	font-size: 4.5em;
	line-height: 1;
	margin-bottom: -2px;
}

/* 2 */
@-moz-document url-prefix() {
	.uk-dropcap::first-letter,
.uk-dropcap > p:first-of-type::first-letter {
		margin-top: 1.1%;
	}
}
/* 3 */
@supports (-ms-ime-align: auto) {
	.uk-dropcap > p:first-of-type::first-letter {
		font-size: 1em;
	}
}
/* Logo
 ========================================================================== */
/*
 * 1. Required for `a`
 */
.uk-logo {
	font-size: 1.5rem;
	font-family: "游ゴシック", YuGothic, "Yu Gothic", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Hiragino Maru Gothic W4 JIS2004", "メイリオ", "Meiryo", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
	color: #666;
	/* 1 */
	text-decoration: none;
}

/* Hover + Focus */
.uk-logo:hover,
.uk-logo:focus {
	color: #666;
	outline: none;
	/* 1 */
	text-decoration: none;
}

.uk-logo-inverse {
	display: none;
}

/* Disabled State
 ========================================================================== */
.uk-disabled {
	pointer-events: none;
}

/* Drag State
 ========================================================================== */
/*
 * 1. Needed if moving over elements with have their own cursor on hover, e.g. links or buttons
 * 2. Fix dragging over iframes
 */
.uk-drag,
.uk-drag * {
	cursor: move;
}

/* 2 */
.uk-drag iframe {
	pointer-events: none;
}

/* Dragover State
 ========================================================================== */
/*
 * Create a box-shadow when dragging a file over the upload area
 */
.uk-dragover {
	box-shadow: 0 0 20px rgba(100, 100, 100, 0.3);
}

/* Blend modes
 ========================================================================== */
.uk-blend-multiply {
	mix-blend-mode: multiply;
}

.uk-blend-screen {
	mix-blend-mode: screen;
}

.uk-blend-overlay {
	mix-blend-mode: overlay;
}

.uk-blend-darken {
	mix-blend-mode: darken;
}

.uk-blend-lighten {
	mix-blend-mode: lighten;
}

.uk-blend-color-dodge {
	mix-blend-mode: color-dodge;
}

.uk-blend-color-burn {
	mix-blend-mode: color-burn;
}

.uk-blend-hard-light {
	mix-blend-mode: hard-light;
}

.uk-blend-soft-light {
	mix-blend-mode: soft-light;
}

.uk-blend-difference {
	mix-blend-mode: difference;
}

.uk-blend-exclusion {
	mix-blend-mode: exclusion;
}

.uk-blend-hue {
	mix-blend-mode: hue;
}

.uk-blend-saturation {
	mix-blend-mode: saturation;
}

.uk-blend-color {
	mix-blend-mode: color;
}

.uk-blend-luminosity {
	mix-blend-mode: luminosity;
}

/* Transform
========================================================================== */
.uk-transform-center {
	transform: translate(-50%, -50%);
}

/* Transform Origin
========================================================================== */
.uk-transform-origin-top-left {
	transform-origin: 0 0;
}

.uk-transform-origin-top-center {
	transform-origin: 50% 0;
}

.uk-transform-origin-top-right {
	transform-origin: 100% 0;
}

.uk-transform-origin-center-left {
	transform-origin: 0 50%;
}

.uk-transform-origin-center-right {
	transform-origin: 100% 50%;
}

.uk-transform-origin-bottom-left {
	transform-origin: 0 100%;
}

.uk-transform-origin-bottom-center {
	transform-origin: 50% 100%;
}

.uk-transform-origin-bottom-right {
	transform-origin: 100% 100%;
}

/* ========================================================================
   Component: Flex
 ========================================================================== */
.uk-flex {
	display: flex;
}

.uk-flex-inline {
	display: inline-flex;
}

/*
 * Remove pseudo elements created by micro clearfix as precaution
 */
.uk-flex::before,
.uk-flex::after,
.uk-flex-inline::before,
.uk-flex-inline::after {
	display: none;
}

/* Alignment
 ========================================================================== */
/*
 * Align items along the main axis of the current line of the flex container
 * Row: Horizontal
 */
.uk-flex-left {
	justify-content: flex-start;
}

.uk-flex-center {
	justify-content: center;
}

.uk-flex-right {
	justify-content: flex-end;
}

.uk-flex-between {
	justify-content: space-between;
}

.uk-flex-around {
	justify-content: space-around;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-flex-left\@s {
		justify-content: flex-start;
	}

	.uk-flex-center\@s {
		justify-content: center;
	}

	.uk-flex-right\@s {
		justify-content: flex-end;
	}

	.uk-flex-between\@s {
		justify-content: space-between;
	}

	.uk-flex-around\@s {
		justify-content: space-around;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-flex-left\@m {
		justify-content: flex-start;
	}

	.uk-flex-center\@m {
		justify-content: center;
	}

	.uk-flex-right\@m {
		justify-content: flex-end;
	}

	.uk-flex-between\@m {
		justify-content: space-between;
	}

	.uk-flex-around\@m {
		justify-content: space-around;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-flex-left\@l {
		justify-content: flex-start;
	}

	.uk-flex-center\@l {
		justify-content: center;
	}

	.uk-flex-right\@l {
		justify-content: flex-end;
	}

	.uk-flex-between\@l {
		justify-content: space-between;
	}

	.uk-flex-around\@l {
		justify-content: space-around;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-flex-left\@xl {
		justify-content: flex-start;
	}

	.uk-flex-center\@xl {
		justify-content: center;
	}

	.uk-flex-right\@xl {
		justify-content: flex-end;
	}

	.uk-flex-between\@xl {
		justify-content: space-between;
	}

	.uk-flex-around\@xl {
		justify-content: space-around;
	}
}
/*
 * Align items in the cross axis of the current line of the flex container
 * Row: Vertical
 */
.uk-flex-stretch {
	align-items: stretch;
}

.uk-flex-top {
	align-items: flex-start;
}

.uk-flex-middle {
	align-items: center;
}

.uk-flex-bottom {
	align-items: flex-end;
}

/* Direction
 ========================================================================== */
.uk-flex-row {
	flex-direction: row;
}

.uk-flex-row-reverse {
	flex-direction: row-reverse;
}

.uk-flex-column {
	flex-direction: column;
}

.uk-flex-column-reverse {
	flex-direction: column-reverse;
}

/* Wrap
 ========================================================================== */
.uk-flex-nowrap {
	flex-wrap: nowrap;
}

.uk-flex-wrap {
	flex-wrap: wrap;
}

.uk-flex-wrap-reverse {
	flex-wrap: wrap-reverse;
}

/*
 * Aligns items within the flex container when there is extra space in the cross-axis
 * Only works if there is more than one line of flex items
 */
.uk-flex-wrap-stretch {
	align-content: stretch;
}

.uk-flex-wrap-top {
	align-content: flex-start;
}

.uk-flex-wrap-middle {
	align-content: center;
}

.uk-flex-wrap-bottom {
	align-content: flex-end;
}

.uk-flex-wrap-between {
	align-content: space-between;
}

.uk-flex-wrap-around {
	align-content: space-around;
}

/* Item ordering
 ========================================================================== */
/*
 * Default is 0
 */
.uk-flex-first {
	order: -1;
}

.uk-flex-last {
	order: 99;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-flex-first\@s {
		order: -1;
	}

	.uk-flex-last\@s {
		order: 99;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-flex-first\@m {
		order: -1;
	}

	.uk-flex-last\@m {
		order: 99;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-flex-first\@l {
		order: -1;
	}

	.uk-flex-last\@l {
		order: 99;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-flex-first\@xl {
		order: -1;
	}

	.uk-flex-last\@xl {
		order: 99;
	}
}
/* Item dimensions
 ========================================================================== */
/*
 * Initial: 0 1 auto
 * Content dimensions, but shrinks
 */
/*
 * No Flex: 0 0 auto
 * Content dimensions
 */
.uk-flex-none {
	flex: none;
}

/*
 * Relative Flex: 1 1 auto
 * Space is allocated considering content
 */
.uk-flex-auto {
	flex: auto;
}

/*
 * Absolute Flex: 1 1 0%
 * Space is allocated solely based on flex
 */
.uk-flex-1 {
	flex: 1;
}

/* ========================================================================
   Component: Margin
 ========================================================================== */
/*
 * Default
 */
.uk-margin {
	margin-bottom: 20px;
}

* + .uk-margin {
	margin-top: 20px !important;
}

.uk-margin-top {
	margin-top: 20px !important;
}

.uk-margin-bottom {
	margin-bottom: 20px !important;
}

.uk-margin-left {
	margin-left: 20px !important;
}

.uk-margin-right {
	margin-right: 20px !important;
}

/* Small
 ========================================================================== */
.uk-margin-small {
	margin-bottom: 10px;
}

* + .uk-margin-small {
	margin-top: 10px !important;
}

.uk-margin-small-top {
	margin-top: 10px !important;
}

.uk-margin-small-bottom {
	margin-bottom: 10px !important;
}

.uk-margin-small-left {
	margin-left: 10px !important;
}

.uk-margin-small-right {
	margin-right: 10px !important;
}

/* Medium
 ========================================================================== */
.uk-margin-medium {
	margin-bottom: 40px;
}

* + .uk-margin-medium {
	margin-top: 40px !important;
}

.uk-margin-medium-top {
	margin-top: 40px !important;
}

.uk-margin-medium-bottom {
	margin-bottom: 40px !important;
}

.uk-margin-medium-left {
	margin-left: 40px !important;
}

.uk-margin-medium-right {
	margin-right: 40px !important;
}

/* Large
 ========================================================================== */
.uk-margin-large {
	margin-bottom: 40px;
}

* + .uk-margin-large {
	margin-top: 40px !important;
}

.uk-margin-large-top {
	margin-top: 40px !important;
}

.uk-margin-large-bottom {
	margin-bottom: 40px !important;
}

.uk-margin-large-left {
	margin-left: 40px !important;
}

.uk-margin-large-right {
	margin-right: 40px !important;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-margin-large {
		margin-bottom: 70px;
	}

	* + .uk-margin-large {
		margin-top: 70px !important;
	}

	.uk-margin-large-top {
		margin-top: 70px !important;
	}

	.uk-margin-large-bottom {
		margin-bottom: 70px !important;
	}

	.uk-margin-large-left {
		margin-left: 70px !important;
	}

	.uk-margin-large-right {
		margin-right: 70px !important;
	}
}
/* XLarge
 ========================================================================== */
.uk-margin-xlarge {
	margin-bottom: 70px;
}

* + .uk-margin-xlarge {
	margin-top: 70px !important;
}

.uk-margin-xlarge-top {
	margin-top: 70px !important;
}

.uk-margin-xlarge-bottom {
	margin-bottom: 70px !important;
}

.uk-margin-xlarge-left {
	margin-left: 70px !important;
}

.uk-margin-xlarge-right {
	margin-right: 70px !important;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-margin-xlarge {
		margin-bottom: 140px;
	}

	* + .uk-margin-xlarge {
		margin-top: 140px !important;
	}

	.uk-margin-xlarge-top {
		margin-top: 140px !important;
	}

	.uk-margin-xlarge-bottom {
		margin-bottom: 140px !important;
	}

	.uk-margin-xlarge-left {
		margin-left: 140px !important;
	}

	.uk-margin-xlarge-right {
		margin-right: 140px !important;
	}
}
/* Auto
 ========================================================================== */
.uk-margin-auto {
	margin-left: auto !important;
	margin-right: auto !important;
}

.uk-margin-auto-top {
	margin-top: auto !important;
}

.uk-margin-auto-bottom {
	margin-bottom: auto !important;
}

.uk-margin-auto-left {
	margin-left: auto !important;
}

.uk-margin-auto-right {
	margin-right: auto !important;
}

.uk-margin-auto-vertical {
	margin-top: auto !important;
	margin-bottom: auto !important;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-margin-auto\@s {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.uk-margin-auto-left\@s {
		margin-left: auto !important;
	}

	.uk-margin-auto-right\@s {
		margin-right: auto !important;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-margin-auto\@m {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.uk-margin-auto-left\@m {
		margin-left: auto !important;
	}

	.uk-margin-auto-right\@m {
		margin-right: auto !important;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-margin-auto\@l {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.uk-margin-auto-left\@l {
		margin-left: auto !important;
	}

	.uk-margin-auto-right\@l {
		margin-right: auto !important;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-margin-auto\@xl {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.uk-margin-auto-left\@xl {
		margin-left: auto !important;
	}

	.uk-margin-auto-right\@xl {
		margin-right: auto !important;
	}
}
/* Remove
 ========================================================================== */
.uk-margin-remove {
	margin: 0 !important;
}

.uk-margin-remove-top {
	margin-top: 0 !important;
}

.uk-margin-remove-bottom {
	margin-bottom: 0 !important;
}

.uk-margin-remove-left {
	margin-left: 0 !important;
}

.uk-margin-remove-right {
	margin-right: 0 !important;
}

.uk-margin-remove-vertical {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.uk-margin-remove-adjacent + *,
.uk-margin-remove-first-child > :first-child {
	margin-top: 0 !important;
}

.uk-margin-remove-last-child > :last-child {
	margin-bottom: 0 !important;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-margin-remove-left\@s {
		margin-left: 0 !important;
	}

	.uk-margin-remove-right\@s {
		margin-right: 0 !important;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-margin-remove-left\@m {
		margin-left: 0 !important;
	}

	.uk-margin-remove-right\@m {
		margin-right: 0 !important;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-margin-remove-left\@l {
		margin-left: 0 !important;
	}

	.uk-margin-remove-right\@l {
		margin-right: 0 !important;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-margin-remove-left\@xl {
		margin-left: 0 !important;
	}

	.uk-margin-remove-right\@xl {
		margin-right: 0 !important;
	}
}
/* ========================================================================
   Component: Padding
 ========================================================================== */
.uk-padding {
	padding: 30px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-padding {
		padding: 40px;
	}
}
/* Small
 ========================================================================== */
.uk-padding-small {
	padding: 15px;
}

/* Large
 ========================================================================== */
.uk-padding-large {
	padding: 30px;
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-padding-large {
		padding: 70px;
	}
}
/* Remove
 ========================================================================== */
.uk-padding-remove {
	padding: 0 !important;
}

.uk-padding-remove-top {
	padding-top: 0 !important;
}

.uk-padding-remove-bottom {
	padding-bottom: 0 !important;
}

.uk-padding-remove-left {
	padding-left: 0 !important;
}

.uk-padding-remove-right {
	padding-right: 0 !important;
}

.uk-padding-remove-vertical {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.uk-padding-remove-horizontal {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* ========================================================================
   Component: Position
 ========================================================================== */
/* Directions
 ========================================================================== */
/*
 * 1. Prevent content overflow if `max-width: 100%` is used inside position container.
 */
[class*=uk-position-top],
[class*=uk-position-bottom],
[class*=uk-position-left],
[class*=uk-position-right],
[class*=uk-position-center] {
	position: absolute !important;
	/* 1 */
	max-width: 100%;
}

/* Edges
 ========================================================================== */
/* Don't use `width: 100%` because it is wrong if the parent has padding. */
.uk-position-top {
	top: 0;
	left: 0;
	right: 0;
}

.uk-position-bottom {
	bottom: 0;
	left: 0;
	right: 0;
}

.uk-position-left {
	top: 0;
	bottom: 0;
	left: 0;
}

.uk-position-right {
	top: 0;
	bottom: 0;
	right: 0;
}

/* Corners
 ========================================================================== */
.uk-position-top-left {
	top: 0;
	left: 0;
}

.uk-position-top-right {
	top: 0;
	right: 0;
}

.uk-position-bottom-left {
	bottom: 0;
	left: 0;
}

.uk-position-bottom-right {
	bottom: 0;
	right: 0;
}

/*
 * Center
 * 1. Fix text wrapping if content is larger than 50% of the container.
 */
.uk-position-center {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	/* 1 */
	width: max-content;
	max-width: 100%;
	box-sizing: border-box;
}

/* Vertical */
[class*=uk-position-center-left],
[class*=uk-position-center-right] {
	top: 50%;
	transform: translateY(-50%);
}

.uk-position-center-left {
	left: 0;
}

.uk-position-center-right {
	right: 0;
}

.uk-position-center-left-out {
	right: 100%;
	width: max-content;
}

.uk-position-center-right-out {
	left: 100%;
	width: max-content;
}

/* Horizontal */
.uk-position-top-center,
.uk-position-bottom-center {
	left: 50%;
	transform: translateX(-50%);
	/* 1 */
	width: max-content;
	max-width: 100%;
	box-sizing: border-box;
}

.uk-position-top-center {
	top: 0;
}

.uk-position-bottom-center {
	bottom: 0;
}

/* Cover
 ========================================================================== */
.uk-position-cover {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

/* Utility
 ========================================================================== */
.uk-position-relative {
	position: relative !important;
}

.uk-position-absolute {
	position: absolute !important;
}

.uk-position-fixed {
	position: fixed !important;
}

.uk-position-z-index {
	z-index: 1;
}

/* Margin modifier
 ========================================================================== */
/*
 * Small
 */
.uk-position-small {
	max-width: calc(100% - (15px * 2));
	margin: 15px;
}

.uk-position-small.uk-position-center {
	transform: translate(-50%, -50%) translate(-15px, -15px);
}

.uk-position-small[class*=uk-position-center-left],
.uk-position-small[class*=uk-position-center-right] {
	transform: translateY(-50%) translateY(-15px);
}

.uk-position-small.uk-position-top-center,
.uk-position-small.uk-position-bottom-center {
	transform: translateX(-50%) translateX(-15px);
}

/*
 * Medium
 */
.uk-position-medium {
	max-width: calc(100% - (30px * 2));
	margin: 30px;
}

.uk-position-medium.uk-position-center {
	transform: translate(-50%, -50%) translate(-30px, -30px);
}

.uk-position-medium[class*=uk-position-center-left],
.uk-position-medium[class*=uk-position-center-right] {
	transform: translateY(-50%) translateY(-30px);
}

.uk-position-medium.uk-position-top-center,
.uk-position-medium.uk-position-bottom-center {
	transform: translateX(-50%) translateX(-30px);
}

/*
 * Large
 */
.uk-position-large {
	max-width: calc(100% - (30px * 2));
	margin: 30px;
}

.uk-position-large.uk-position-center {
	transform: translate(-50%, -50%) translate(-30px, -30px);
}

.uk-position-large[class*=uk-position-center-left],
.uk-position-large[class*=uk-position-center-right] {
	transform: translateY(-50%) translateY(-30px);
}

.uk-position-large.uk-position-top-center,
.uk-position-large.uk-position-bottom-center {
	transform: translateX(-50%) translateX(-30px);
}

/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-position-large {
		max-width: calc(100% - (50px * 2));
		margin: 50px;
	}

	.uk-position-large.uk-position-center {
		transform: translate(-50%, -50%) translate(-50px, -50px);
	}

	.uk-position-large[class*=uk-position-center-left],
.uk-position-large[class*=uk-position-center-right] {
		transform: translateY(-50%) translateY(-50px);
	}

	.uk-position-large.uk-position-top-center,
.uk-position-large.uk-position-bottom-center {
		transform: translateX(-50%) translateX(-50px);
	}
}
/* ========================================================================
   Component: Transition
 ========================================================================== */
/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-transition-toggle {
	/* 1 */
	-webkit-tap-highlight-color: transparent;
}

/*
 * Remove outline for `tabindex`
 */
.uk-transition-toggle:focus {
	outline: none;
}

/* Transitions
 ========================================================================== */
/*
 * The toggle is triggered on touch devices by two methods:
 * 1. Using `:focus` and tabindex
 * 2. Using `:hover` and a `touchstart` event listener registered on the document
 *    (Doesn't work on Surface touch devices)
 *
 * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform`,
 *       therefore it's recommended to use an extra `div` for the transition.
 */
.uk-transition-fade,
[class*=uk-transition-scale],
[class*=uk-transition-slide] {
	transition: 0.3s ease-out;
	transition-property: opacity, transform, filter;
	opacity: 0;
}

/*
 * Fade
 */
.uk-transition-toggle:hover .uk-transition-fade,
.uk-transition-toggle:focus .uk-transition-fade,
.uk-transition-active.uk-active .uk-transition-fade {
	opacity: 1;
}

/*
 * Scale
 */
.uk-transition-scale-up {
	transform: scale(1, 1);
}

.uk-transition-scale-down {
	transform: scale(1.03, 1.03);
}

/* Show */
.uk-transition-toggle:hover .uk-transition-scale-up,
.uk-transition-toggle:focus .uk-transition-scale-up,
.uk-transition-active.uk-active .uk-transition-scale-up {
	opacity: 1;
	transform: scale(1.03, 1.03);
}

.uk-transition-toggle:hover .uk-transition-scale-down,
.uk-transition-toggle:focus .uk-transition-scale-down,
.uk-transition-active.uk-active .uk-transition-scale-down {
	opacity: 1;
	transform: scale(1, 1);
}

/*
 * Slide
 */
.uk-transition-slide-top {
	transform: translateY(-100%);
}

.uk-transition-slide-bottom {
	transform: translateY(100%);
}

.uk-transition-slide-left {
	transform: translateX(-100%);
}

.uk-transition-slide-right {
	transform: translateX(100%);
}

.uk-transition-slide-top-small {
	transform: translateY(-10px);
}

.uk-transition-slide-bottom-small {
	transform: translateY(10px);
}

.uk-transition-slide-left-small {
	transform: translateX(-10px);
}

.uk-transition-slide-right-small {
	transform: translateX(10px);
}

.uk-transition-slide-top-medium {
	transform: translateY(-50px);
}

.uk-transition-slide-bottom-medium {
	transform: translateY(50px);
}

.uk-transition-slide-left-medium {
	transform: translateX(-50px);
}

.uk-transition-slide-right-medium {
	transform: translateX(50px);
}

/* Show */
.uk-transition-toggle:hover [class*=uk-transition-slide],
.uk-transition-toggle:focus [class*=uk-transition-slide],
.uk-transition-active.uk-active [class*=uk-transition-slide] {
	opacity: 1;
	transform: translate(0, 0);
}

/* Opacity modifier
 ========================================================================== */
.uk-transition-opaque {
	opacity: 1;
}

/* Duration modifiers
 ========================================================================== */
.uk-transition-slow {
	transition-duration: 0.7s;
}

/* ========================================================================
   Component: Visibility
 ========================================================================== */
/*
 * Hidden
 * `hidden` attribute also set here to make it stronger
 */
[hidden],
.uk-hidden {
	display: none !important;
}

/* Phone landscape and bigger */
@media (min-width: 640px) {
	.uk-hidden\@s {
		display: none !important;
	}
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
	.uk-hidden\@m {
		display: none !important;
	}
}
/* Desktop and bigger */
@media (min-width: 1200px) {
	.uk-hidden\@l {
		display: none !important;
	}
}
/* Large screen and bigger */
@media (min-width: 1600px) {
	.uk-hidden\@xl {
		display: none !important;
	}
}
/*
 * Visible
 */
/* Phone portrait and smaller */
@media (max-width: 639px) {
	.uk-visible\@s {
		display: none !important;
	}
}
/* Phone landscape and smaller */
@media (max-width: 959px) {
	.uk-visible\@m {
		display: none !important;
	}
}
/* Tablet landscape and smaller */
@media (max-width: 1199px) {
	.uk-visible\@l {
		display: none !important;
	}
}
/* Desktop and smaller */
@media (max-width: 1599px) {
	.uk-visible\@xl {
		display: none !important;
	}
}
/* Visibility
 ========================================================================== */
.uk-invisible {
	visibility: hidden !important;
}

/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * Hidden
 * 1. The toggle is triggered on touch devices using `:focus` and tabindex
 * 2. The target stays visible if any element within receives focus through keyboard
 *    Doesn't work in Edge, yet.
 * 3. Can't use `display: none` nor `visibility: hidden` because both are not focusable.
 *
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-hidden-hover:not(:focus-within) {
	/* 3 */
	position: absolute !important;
	width: 0 !important;
	height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
}

/*
 * Invisible
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-invisible-hover:not(:focus-within) {
	/* 3 */
	opacity: 0 !important;
}

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-visible-toggle {
	/* 1 */
	-webkit-tap-highlight-color: transparent;
}

/*
 * Remove outline for `tabindex`
 */
.uk-visible-toggle:focus {
	outline: none;
}

/* Touch
 ========================================================================== */
/*
 * Hide if primary pointing device has limited accuracy, e.g. a touch screen.
 * Works on mobile browsers: Safari, Chrome and Android browser
 */
@media (pointer: coarse) {
	.uk-hidden-touch {
		display: none !important;
	}
}
/*
 * Hide if primary pointing device is accurate, e.g. mouse.
 * 1. Fallback for IE11 and Firefox, because `pointer` is not supported
 * 2. Reset if supported
 */
/* 1 */
.uk-hidden-notouch {
	display: none !important;
}

@media (pointer: coarse) {
	.uk-hidden-notouch {
		display: block !important;
	}
}
/* ========================================================================
   Component: Inverse
 ========================================================================== */
/*
 * Implemented class depends on the general theme color
 * `uk-light` is for light colors on dark backgrounds
 * `uk-dark` is or dark colors on light backgrounds
 */
.uk-light, .uk-section-primary:not(.uk-preserve-color), .uk-section-secondary:not(.uk-preserve-color), .uk-tile-primary:not(.uk-preserve-color), .uk-tile-secondary:not(.uk-preserve-color), .uk-card-primary.uk-card-body, .uk-card-primary > :not([class*=uk-card-media]), .uk-card-secondary.uk-card-body, .uk-card-secondary > :not([class*=uk-card-media]), .uk-overlay-primary, .uk-offcanvas-bar {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light a, .uk-section-primary:not(.uk-preserve-color) a, .uk-section-secondary:not(.uk-preserve-color) a, .uk-tile-primary:not(.uk-preserve-color) a, .uk-tile-secondary:not(.uk-preserve-color) a, .uk-card-primary.uk-card-body a, .uk-card-primary > :not([class*=uk-card-media]) a, .uk-card-secondary.uk-card-body a, .uk-card-secondary > :not([class*=uk-card-media]) a, .uk-overlay-primary a, .uk-offcanvas-bar a,
.uk-light .uk-link,
.uk-section-primary:not(.uk-preserve-color) .uk-link,
.uk-section-secondary:not(.uk-preserve-color) .uk-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link,
.uk-card-primary.uk-card-body .uk-link,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link,
.uk-card-secondary.uk-card-body .uk-link,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link,
.uk-overlay-primary .uk-link,
.uk-offcanvas-bar .uk-link {
	color: #fff;
}
.uk-light a:hover, .uk-section-primary:not(.uk-preserve-color) a:hover, .uk-section-secondary:not(.uk-preserve-color) a:hover, .uk-tile-primary:not(.uk-preserve-color) a:hover, .uk-tile-secondary:not(.uk-preserve-color) a:hover, .uk-card-primary.uk-card-body a:hover, .uk-card-primary > :not([class*=uk-card-media]) a:hover, .uk-card-secondary.uk-card-body a:hover, .uk-card-secondary > :not([class*=uk-card-media]) a:hover, .uk-overlay-primary a:hover, .uk-offcanvas-bar a:hover,
.uk-light .uk-link:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link:hover,
.uk-section-secondary:not(.uk-preserve-color) .uk-link:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link:hover,
.uk-card-primary.uk-card-body .uk-link:hover,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link:hover,
.uk-card-secondary.uk-card-body .uk-link:hover,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link:hover,
.uk-overlay-primary .uk-link:hover,
.uk-offcanvas-bar .uk-link:hover,
.uk-light .uk-link-toggle:hover .uk-link,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link,
.uk-card-secondary.uk-card-body .uk-link-toggle:hover .uk-link,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link,
.uk-overlay-primary .uk-link-toggle:hover .uk-link,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link,
.uk-light .uk-link-toggle:focus .uk-link,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link,
.uk-card-primary.uk-card-body .uk-link-toggle:focus .uk-link,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link,
.uk-card-secondary.uk-card-body .uk-link-toggle:focus .uk-link,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link,
.uk-overlay-primary .uk-link-toggle:focus .uk-link,
.uk-offcanvas-bar .uk-link-toggle:focus .uk-link {
	color: #fff;
}
.uk-light :not(pre) > code, .uk-section-primary:not(.uk-preserve-color) :not(pre) > code, .uk-section-secondary:not(.uk-preserve-color) :not(pre) > code, .uk-tile-primary:not(.uk-preserve-color) :not(pre) > code, .uk-tile-secondary:not(.uk-preserve-color) :not(pre) > code, .uk-card-primary.uk-card-body :not(pre) > code, .uk-card-primary > :not([class*=uk-card-media]) :not(pre) > code, .uk-card-secondary.uk-card-body :not(pre) > code, .uk-card-secondary > :not([class*=uk-card-media]) :not(pre) > code, .uk-overlay-primary :not(pre) > code, .uk-offcanvas-bar :not(pre) > code,
.uk-light :not(pre) > kbd,
.uk-section-primary:not(.uk-preserve-color) :not(pre) > kbd,
.uk-section-secondary:not(.uk-preserve-color) :not(pre) > kbd,
.uk-tile-primary:not(.uk-preserve-color) :not(pre) > kbd,
.uk-tile-secondary:not(.uk-preserve-color) :not(pre) > kbd,
.uk-card-primary.uk-card-body :not(pre) > kbd,
.uk-card-primary > :not([class*=uk-card-media]) :not(pre) > kbd,
.uk-card-secondary.uk-card-body :not(pre) > kbd,
.uk-card-secondary > :not([class*=uk-card-media]) :not(pre) > kbd,
.uk-overlay-primary :not(pre) > kbd,
.uk-offcanvas-bar :not(pre) > kbd,
.uk-light :not(pre) > samp,
.uk-section-primary:not(.uk-preserve-color) :not(pre) > samp,
.uk-section-secondary:not(.uk-preserve-color) :not(pre) > samp,
.uk-tile-primary:not(.uk-preserve-color) :not(pre) > samp,
.uk-tile-secondary:not(.uk-preserve-color) :not(pre) > samp,
.uk-card-primary.uk-card-body :not(pre) > samp,
.uk-card-primary > :not([class*=uk-card-media]) :not(pre) > samp,
.uk-card-secondary.uk-card-body :not(pre) > samp,
.uk-card-secondary > :not([class*=uk-card-media]) :not(pre) > samp,
.uk-overlay-primary :not(pre) > samp,
.uk-offcanvas-bar :not(pre) > samp {
	color: rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.1);
}
.uk-light em, .uk-section-primary:not(.uk-preserve-color) em, .uk-section-secondary:not(.uk-preserve-color) em, .uk-tile-primary:not(.uk-preserve-color) em, .uk-tile-secondary:not(.uk-preserve-color) em, .uk-card-primary.uk-card-body em, .uk-card-primary > :not([class*=uk-card-media]) em, .uk-card-secondary.uk-card-body em, .uk-card-secondary > :not([class*=uk-card-media]) em, .uk-overlay-primary em, .uk-offcanvas-bar em {
	color: #fff;
}
.uk-light h1, .uk-section-primary:not(.uk-preserve-color) h1, .uk-section-secondary:not(.uk-preserve-color) h1, .uk-tile-primary:not(.uk-preserve-color) h1, .uk-tile-secondary:not(.uk-preserve-color) h1, .uk-card-primary.uk-card-body h1, .uk-card-primary > :not([class*=uk-card-media]) h1, .uk-card-secondary.uk-card-body h1, .uk-card-secondary > :not([class*=uk-card-media]) h1, .uk-overlay-primary h1, .uk-offcanvas-bar h1, .uk-light .uk-h1, .uk-section-primary:not(.uk-preserve-color) .uk-h1, .uk-section-secondary:not(.uk-preserve-color) .uk-h1, .uk-tile-primary:not(.uk-preserve-color) .uk-h1, .uk-tile-secondary:not(.uk-preserve-color) .uk-h1, .uk-card-primary.uk-card-body .uk-h1, .uk-card-primary > :not([class*=uk-card-media]) .uk-h1, .uk-card-secondary.uk-card-body .uk-h1, .uk-card-secondary > :not([class*=uk-card-media]) .uk-h1, .uk-overlay-primary .uk-h1, .uk-offcanvas-bar .uk-h1,
.uk-light h2,
.uk-section-primary:not(.uk-preserve-color) h2,
.uk-section-secondary:not(.uk-preserve-color) h2,
.uk-tile-primary:not(.uk-preserve-color) h2,
.uk-tile-secondary:not(.uk-preserve-color) h2,
.uk-card-primary.uk-card-body h2,
.uk-card-primary > :not([class*=uk-card-media]) h2,
.uk-card-secondary.uk-card-body h2,
.uk-card-secondary > :not([class*=uk-card-media]) h2,
.uk-overlay-primary h2,
.uk-offcanvas-bar h2, .uk-light .uk-h2, .uk-section-primary:not(.uk-preserve-color) .uk-h2, .uk-section-secondary:not(.uk-preserve-color) .uk-h2, .uk-tile-primary:not(.uk-preserve-color) .uk-h2, .uk-tile-secondary:not(.uk-preserve-color) .uk-h2, .uk-card-primary.uk-card-body .uk-h2, .uk-card-primary > :not([class*=uk-card-media]) .uk-h2, .uk-card-secondary.uk-card-body .uk-h2, .uk-card-secondary > :not([class*=uk-card-media]) .uk-h2, .uk-overlay-primary .uk-h2, .uk-offcanvas-bar .uk-h2,
.uk-light h3,
.uk-section-primary:not(.uk-preserve-color) h3,
.uk-section-secondary:not(.uk-preserve-color) h3,
.uk-tile-primary:not(.uk-preserve-color) h3,
.uk-tile-secondary:not(.uk-preserve-color) h3,
.uk-card-primary.uk-card-body h3,
.uk-card-primary > :not([class*=uk-card-media]) h3,
.uk-card-secondary.uk-card-body h3,
.uk-card-secondary > :not([class*=uk-card-media]) h3,
.uk-overlay-primary h3,
.uk-offcanvas-bar h3, .uk-light .uk-h3, .uk-section-primary:not(.uk-preserve-color) .uk-h3, .uk-section-secondary:not(.uk-preserve-color) .uk-h3, .uk-tile-primary:not(.uk-preserve-color) .uk-h3, .uk-tile-secondary:not(.uk-preserve-color) .uk-h3, .uk-card-primary.uk-card-body .uk-h3, .uk-card-primary > :not([class*=uk-card-media]) .uk-h3, .uk-card-secondary.uk-card-body .uk-h3, .uk-card-secondary > :not([class*=uk-card-media]) .uk-h3, .uk-overlay-primary .uk-h3, .uk-offcanvas-bar .uk-h3,
.uk-light h4,
.uk-section-primary:not(.uk-preserve-color) h4,
.uk-section-secondary:not(.uk-preserve-color) h4,
.uk-tile-primary:not(.uk-preserve-color) h4,
.uk-tile-secondary:not(.uk-preserve-color) h4,
.uk-card-primary.uk-card-body h4,
.uk-card-primary > :not([class*=uk-card-media]) h4,
.uk-card-secondary.uk-card-body h4,
.uk-card-secondary > :not([class*=uk-card-media]) h4,
.uk-overlay-primary h4,
.uk-offcanvas-bar h4, .uk-light .uk-h4, .uk-section-primary:not(.uk-preserve-color) .uk-h4, .uk-section-secondary:not(.uk-preserve-color) .uk-h4, .uk-tile-primary:not(.uk-preserve-color) .uk-h4, .uk-tile-secondary:not(.uk-preserve-color) .uk-h4, .uk-card-primary.uk-card-body .uk-h4, .uk-card-primary > :not([class*=uk-card-media]) .uk-h4, .uk-card-secondary.uk-card-body .uk-h4, .uk-card-secondary > :not([class*=uk-card-media]) .uk-h4, .uk-overlay-primary .uk-h4, .uk-offcanvas-bar .uk-h4,
.uk-light h5,
.uk-section-primary:not(.uk-preserve-color) h5,
.uk-section-secondary:not(.uk-preserve-color) h5,
.uk-tile-primary:not(.uk-preserve-color) h5,
.uk-tile-secondary:not(.uk-preserve-color) h5,
.uk-card-primary.uk-card-body h5,
.uk-card-primary > :not([class*=uk-card-media]) h5,
.uk-card-secondary.uk-card-body h5,
.uk-card-secondary > :not([class*=uk-card-media]) h5,
.uk-overlay-primary h5,
.uk-offcanvas-bar h5, .uk-light .uk-h5, .uk-section-primary:not(.uk-preserve-color) .uk-h5, .uk-section-secondary:not(.uk-preserve-color) .uk-h5, .uk-tile-primary:not(.uk-preserve-color) .uk-h5, .uk-tile-secondary:not(.uk-preserve-color) .uk-h5, .uk-card-primary.uk-card-body .uk-h5, .uk-card-primary > :not([class*=uk-card-media]) .uk-h5, .uk-card-secondary.uk-card-body .uk-h5, .uk-card-secondary > :not([class*=uk-card-media]) .uk-h5, .uk-overlay-primary .uk-h5, .uk-offcanvas-bar .uk-h5,
.uk-light h6,
.uk-section-primary:not(.uk-preserve-color) h6,
.uk-section-secondary:not(.uk-preserve-color) h6,
.uk-tile-primary:not(.uk-preserve-color) h6,
.uk-tile-secondary:not(.uk-preserve-color) h6,
.uk-card-primary.uk-card-body h6,
.uk-card-primary > :not([class*=uk-card-media]) h6,
.uk-card-secondary.uk-card-body h6,
.uk-card-secondary > :not([class*=uk-card-media]) h6,
.uk-overlay-primary h6,
.uk-offcanvas-bar h6, .uk-light .uk-h6, .uk-section-primary:not(.uk-preserve-color) .uk-h6, .uk-section-secondary:not(.uk-preserve-color) .uk-h6, .uk-tile-primary:not(.uk-preserve-color) .uk-h6, .uk-tile-secondary:not(.uk-preserve-color) .uk-h6, .uk-card-primary.uk-card-body .uk-h6, .uk-card-primary > :not([class*=uk-card-media]) .uk-h6, .uk-card-secondary.uk-card-body .uk-h6, .uk-card-secondary > :not([class*=uk-card-media]) .uk-h6, .uk-overlay-primary .uk-h6, .uk-offcanvas-bar .uk-h6,
.uk-light .uk-heading-small,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-small,
.uk-section-secondary:not(.uk-preserve-color) .uk-heading-small,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-small,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-small,
.uk-card-primary.uk-card-body .uk-heading-small,
.uk-card-primary > :not([class*=uk-card-media]) .uk-heading-small,
.uk-card-secondary.uk-card-body .uk-heading-small,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-small,
.uk-overlay-primary .uk-heading-small,
.uk-offcanvas-bar .uk-heading-small,
.uk-light .uk-heading-medium,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-medium,
.uk-section-secondary:not(.uk-preserve-color) .uk-heading-medium,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-medium,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-medium,
.uk-card-primary.uk-card-body .uk-heading-medium,
.uk-card-primary > :not([class*=uk-card-media]) .uk-heading-medium,
.uk-card-secondary.uk-card-body .uk-heading-medium,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-medium,
.uk-overlay-primary .uk-heading-medium,
.uk-offcanvas-bar .uk-heading-medium,
.uk-light .uk-heading-large,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-large,
.uk-section-secondary:not(.uk-preserve-color) .uk-heading-large,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-large,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-large,
.uk-card-primary.uk-card-body .uk-heading-large,
.uk-card-primary > :not([class*=uk-card-media]) .uk-heading-large,
.uk-card-secondary.uk-card-body .uk-heading-large,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-large,
.uk-overlay-primary .uk-heading-large,
.uk-offcanvas-bar .uk-heading-large,
.uk-light .uk-heading-xlarge,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-section-secondary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-card-primary.uk-card-body .uk-heading-xlarge,
.uk-card-primary > :not([class*=uk-card-media]) .uk-heading-xlarge,
.uk-card-secondary.uk-card-body .uk-heading-xlarge,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-xlarge,
.uk-overlay-primary .uk-heading-xlarge,
.uk-offcanvas-bar .uk-heading-xlarge,
.uk-light .uk-heading-2xlarge,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-section-secondary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-card-primary.uk-card-body .uk-heading-2xlarge,
.uk-card-primary > :not([class*=uk-card-media]) .uk-heading-2xlarge,
.uk-card-secondary.uk-card-body .uk-heading-2xlarge,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-2xlarge,
.uk-overlay-primary .uk-heading-2xlarge,
.uk-offcanvas-bar .uk-heading-2xlarge {
	color: #fff;
}
.uk-light blockquote, .uk-section-primary:not(.uk-preserve-color) blockquote, .uk-section-secondary:not(.uk-preserve-color) blockquote, .uk-tile-primary:not(.uk-preserve-color) blockquote, .uk-tile-secondary:not(.uk-preserve-color) blockquote, .uk-card-primary.uk-card-body blockquote, .uk-card-primary > :not([class*=uk-card-media]) blockquote, .uk-card-secondary.uk-card-body blockquote, .uk-card-secondary > :not([class*=uk-card-media]) blockquote, .uk-overlay-primary blockquote, .uk-offcanvas-bar blockquote {
	color: #fff;
}
.uk-light blockquote footer, .uk-section-primary:not(.uk-preserve-color) blockquote footer, .uk-section-secondary:not(.uk-preserve-color) blockquote footer, .uk-tile-primary:not(.uk-preserve-color) blockquote footer, .uk-tile-secondary:not(.uk-preserve-color) blockquote footer, .uk-card-primary.uk-card-body blockquote footer, .uk-card-primary > :not([class*=uk-card-media]) blockquote footer, .uk-card-secondary.uk-card-body blockquote footer, .uk-card-secondary > :not([class*=uk-card-media]) blockquote footer, .uk-overlay-primary blockquote footer, .uk-offcanvas-bar blockquote footer {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light hr, .uk-section-primary:not(.uk-preserve-color) hr, .uk-section-secondary:not(.uk-preserve-color) hr, .uk-tile-primary:not(.uk-preserve-color) hr, .uk-tile-secondary:not(.uk-preserve-color) hr, .uk-card-primary.uk-card-body hr, .uk-card-primary > :not([class*=uk-card-media]) hr, .uk-card-secondary.uk-card-body hr, .uk-card-secondary > :not([class*=uk-card-media]) hr, .uk-overlay-primary hr, .uk-offcanvas-bar hr, .uk-light .uk-hr, .uk-section-primary:not(.uk-preserve-color) .uk-hr, .uk-section-secondary:not(.uk-preserve-color) .uk-hr, .uk-tile-primary:not(.uk-preserve-color) .uk-hr, .uk-tile-secondary:not(.uk-preserve-color) .uk-hr, .uk-card-primary.uk-card-body .uk-hr, .uk-card-primary > :not([class*=uk-card-media]) .uk-hr, .uk-card-secondary.uk-card-body .uk-hr, .uk-card-secondary > :not([class*=uk-card-media]) .uk-hr, .uk-overlay-primary .uk-hr, .uk-offcanvas-bar .uk-hr {
	border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light a.uk-link-muted, .uk-section-primary:not(.uk-preserve-color) a.uk-link-muted, .uk-section-secondary:not(.uk-preserve-color) a.uk-link-muted, .uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted, .uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted, .uk-card-primary.uk-card-body a.uk-link-muted, .uk-card-primary > :not([class*=uk-card-media]) a.uk-link-muted, .uk-card-secondary.uk-card-body a.uk-link-muted, .uk-card-secondary > :not([class*=uk-card-media]) a.uk-link-muted, .uk-overlay-primary a.uk-link-muted, .uk-offcanvas-bar a.uk-link-muted,
.uk-light .uk-link-muted a,
.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-muted a,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a,
.uk-card-primary.uk-card-body .uk-link-muted a,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-muted a,
.uk-card-secondary.uk-card-body .uk-link-muted a,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-muted a,
.uk-overlay-primary .uk-link-muted a,
.uk-offcanvas-bar .uk-link-muted a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light a.uk-link-muted:hover, .uk-section-primary:not(.uk-preserve-color) a.uk-link-muted:hover, .uk-section-secondary:not(.uk-preserve-color) a.uk-link-muted:hover, .uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted:hover, .uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted:hover, .uk-card-primary.uk-card-body a.uk-link-muted:hover, .uk-card-primary > :not([class*=uk-card-media]) a.uk-link-muted:hover, .uk-card-secondary.uk-card-body a.uk-link-muted:hover, .uk-card-secondary > :not([class*=uk-card-media]) a.uk-link-muted:hover, .uk-overlay-primary a.uk-link-muted:hover, .uk-offcanvas-bar a.uk-link-muted:hover,
.uk-light .uk-link-muted a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a:hover,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-muted a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a:hover,
.uk-card-primary.uk-card-body .uk-link-muted a:hover,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-muted a:hover,
.uk-card-secondary.uk-card-body .uk-link-muted a:hover,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-muted a:hover,
.uk-overlay-primary .uk-link-muted a:hover,
.uk-offcanvas-bar .uk-link-muted a:hover,
.uk-light .uk-link-toggle:hover .uk-link-muted,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-muted,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-muted,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-muted,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-muted,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link-muted,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link-muted,
.uk-card-secondary.uk-card-body .uk-link-toggle:hover .uk-link-muted,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link-muted,
.uk-overlay-primary .uk-link-toggle:hover .uk-link-muted,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link-muted,
.uk-light .uk-link-toggle:focus .uk-link-muted,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-muted,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-muted,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-muted,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-muted,
.uk-card-primary.uk-card-body .uk-link-toggle:focus .uk-link-muted,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link-muted,
.uk-card-secondary.uk-card-body .uk-link-toggle:focus .uk-link-muted,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link-muted,
.uk-overlay-primary .uk-link-toggle:focus .uk-link-muted,
.uk-offcanvas-bar .uk-link-toggle:focus .uk-link-muted {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light a.uk-link-text:hover, .uk-section-primary:not(.uk-preserve-color) a.uk-link-text:hover, .uk-section-secondary:not(.uk-preserve-color) a.uk-link-text:hover, .uk-tile-primary:not(.uk-preserve-color) a.uk-link-text:hover, .uk-tile-secondary:not(.uk-preserve-color) a.uk-link-text:hover, .uk-card-primary.uk-card-body a.uk-link-text:hover, .uk-card-primary > :not([class*=uk-card-media]) a.uk-link-text:hover, .uk-card-secondary.uk-card-body a.uk-link-text:hover, .uk-card-secondary > :not([class*=uk-card-media]) a.uk-link-text:hover, .uk-overlay-primary a.uk-link-text:hover, .uk-offcanvas-bar a.uk-link-text:hover,
.uk-light .uk-link-text a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-text a:hover,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-text a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-text a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-text a:hover,
.uk-card-primary.uk-card-body .uk-link-text a:hover,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-text a:hover,
.uk-card-secondary.uk-card-body .uk-link-text a:hover,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-text a:hover,
.uk-overlay-primary .uk-link-text a:hover,
.uk-offcanvas-bar .uk-link-text a:hover,
.uk-light .uk-link-toggle:hover .uk-link-text,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-text,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-text,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-text,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-text,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link-text,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link-text,
.uk-card-secondary.uk-card-body .uk-link-toggle:hover .uk-link-text,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link-text,
.uk-overlay-primary .uk-link-toggle:hover .uk-link-text,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link-text,
.uk-light .uk-link-toggle:focus .uk-link-text,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-text,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-text,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-text,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-text,
.uk-card-primary.uk-card-body .uk-link-toggle:focus .uk-link-text,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link-text,
.uk-card-secondary.uk-card-body .uk-link-toggle:focus .uk-link-text,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link-text,
.uk-overlay-primary .uk-link-toggle:focus .uk-link-text,
.uk-offcanvas-bar .uk-link-toggle:focus .uk-link-text {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light a.uk-link-heading:hover, .uk-section-primary:not(.uk-preserve-color) a.uk-link-heading:hover, .uk-section-secondary:not(.uk-preserve-color) a.uk-link-heading:hover, .uk-tile-primary:not(.uk-preserve-color) a.uk-link-heading:hover, .uk-tile-secondary:not(.uk-preserve-color) a.uk-link-heading:hover, .uk-card-primary.uk-card-body a.uk-link-heading:hover, .uk-card-primary > :not([class*=uk-card-media]) a.uk-link-heading:hover, .uk-card-secondary.uk-card-body a.uk-link-heading:hover, .uk-card-secondary > :not([class*=uk-card-media]) a.uk-link-heading:hover, .uk-overlay-primary a.uk-link-heading:hover, .uk-offcanvas-bar a.uk-link-heading:hover,
.uk-light .uk-link-heading a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-heading a:hover,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-heading a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-heading a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-heading a:hover,
.uk-card-primary.uk-card-body .uk-link-heading a:hover,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-heading a:hover,
.uk-card-secondary.uk-card-body .uk-link-heading a:hover,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-heading a:hover,
.uk-overlay-primary .uk-link-heading a:hover,
.uk-offcanvas-bar .uk-link-heading a:hover,
.uk-light .uk-link-toggle:hover .uk-link-heading,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-heading,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-heading,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-heading,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-heading,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link-heading,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link-heading,
.uk-card-secondary.uk-card-body .uk-link-toggle:hover .uk-link-heading,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:hover .uk-link-heading,
.uk-overlay-primary .uk-link-toggle:hover .uk-link-heading,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link-heading,
.uk-light .uk-link-toggle:focus .uk-link-heading,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-heading,
.uk-section-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-heading,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-heading,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:focus .uk-link-heading,
.uk-card-primary.uk-card-body .uk-link-toggle:focus .uk-link-heading,
.uk-card-primary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link-heading,
.uk-card-secondary.uk-card-body .uk-link-toggle:focus .uk-link-heading,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-link-toggle:focus .uk-link-heading,
.uk-overlay-primary .uk-link-toggle:focus .uk-link-heading,
.uk-offcanvas-bar .uk-link-toggle:focus .uk-link-heading {
	color: #fff;
}
.uk-light .uk-heading-divider, .uk-section-primary:not(.uk-preserve-color) .uk-heading-divider, .uk-section-secondary:not(.uk-preserve-color) .uk-heading-divider, .uk-tile-primary:not(.uk-preserve-color) .uk-heading-divider, .uk-tile-secondary:not(.uk-preserve-color) .uk-heading-divider, .uk-card-primary.uk-card-body .uk-heading-divider, .uk-card-primary > :not([class*=uk-card-media]) .uk-heading-divider, .uk-card-secondary.uk-card-body .uk-heading-divider, .uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-divider, .uk-overlay-primary .uk-heading-divider, .uk-offcanvas-bar .uk-heading-divider {
	border-bottom-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-heading-bullet::before, .uk-section-primary:not(.uk-preserve-color) .uk-heading-bullet::before, .uk-section-secondary:not(.uk-preserve-color) .uk-heading-bullet::before, .uk-tile-primary:not(.uk-preserve-color) .uk-heading-bullet::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-heading-bullet::before, .uk-card-primary.uk-card-body .uk-heading-bullet::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-heading-bullet::before, .uk-card-secondary.uk-card-body .uk-heading-bullet::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-bullet::before, .uk-overlay-primary .uk-heading-bullet::before, .uk-offcanvas-bar .uk-heading-bullet::before {
	border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-heading-line > ::before, .uk-section-primary:not(.uk-preserve-color) .uk-heading-line > ::before, .uk-section-secondary:not(.uk-preserve-color) .uk-heading-line > ::before, .uk-tile-primary:not(.uk-preserve-color) .uk-heading-line > ::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line > ::before, .uk-card-primary.uk-card-body .uk-heading-line > ::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-heading-line > ::before, .uk-card-secondary.uk-card-body .uk-heading-line > ::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-line > ::before, .uk-overlay-primary .uk-heading-line > ::before, .uk-offcanvas-bar .uk-heading-line > ::before,
.uk-light .uk-heading-line > ::after,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-line > ::after,
.uk-section-secondary:not(.uk-preserve-color) .uk-heading-line > ::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-line > ::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line > ::after,
.uk-card-primary.uk-card-body .uk-heading-line > ::after,
.uk-card-primary > :not([class*=uk-card-media]) .uk-heading-line > ::after,
.uk-card-secondary.uk-card-body .uk-heading-line > ::after,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-heading-line > ::after,
.uk-overlay-primary .uk-heading-line > ::after,
.uk-offcanvas-bar .uk-heading-line > ::after {
	border-bottom-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-divider-icon, .uk-section-primary:not(.uk-preserve-color) .uk-divider-icon, .uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon, .uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon, .uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon, .uk-card-primary.uk-card-body .uk-divider-icon, .uk-card-primary > :not([class*=uk-card-media]) .uk-divider-icon, .uk-card-secondary.uk-card-body .uk-divider-icon, .uk-card-secondary > :not([class*=uk-card-media]) .uk-divider-icon, .uk-overlay-primary .uk-divider-icon, .uk-offcanvas-bar .uk-divider-icon {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22rgba(255, 255, 255, 0.2)%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}
.uk-light .uk-divider-icon::before, .uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::before, .uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon::before, .uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::before, .uk-card-primary.uk-card-body .uk-divider-icon::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-divider-icon::before, .uk-card-secondary.uk-card-body .uk-divider-icon::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-divider-icon::before, .uk-overlay-primary .uk-divider-icon::before, .uk-offcanvas-bar .uk-divider-icon::before,
.uk-light .uk-divider-icon::after,
.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::after,
.uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::after,
.uk-card-primary.uk-card-body .uk-divider-icon::after,
.uk-card-primary > :not([class*=uk-card-media]) .uk-divider-icon::after,
.uk-card-secondary.uk-card-body .uk-divider-icon::after,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-divider-icon::after,
.uk-overlay-primary .uk-divider-icon::after,
.uk-offcanvas-bar .uk-divider-icon::after {
	border-bottom-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-divider-small::after, .uk-section-primary:not(.uk-preserve-color) .uk-divider-small::after, .uk-section-secondary:not(.uk-preserve-color) .uk-divider-small::after, .uk-tile-primary:not(.uk-preserve-color) .uk-divider-small::after, .uk-tile-secondary:not(.uk-preserve-color) .uk-divider-small::after, .uk-card-primary.uk-card-body .uk-divider-small::after, .uk-card-primary > :not([class*=uk-card-media]) .uk-divider-small::after, .uk-card-secondary.uk-card-body .uk-divider-small::after, .uk-card-secondary > :not([class*=uk-card-media]) .uk-divider-small::after, .uk-overlay-primary .uk-divider-small::after, .uk-offcanvas-bar .uk-divider-small::after {
	border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-divider-vertical, .uk-section-primary:not(.uk-preserve-color) .uk-divider-vertical, .uk-section-secondary:not(.uk-preserve-color) .uk-divider-vertical, .uk-tile-primary:not(.uk-preserve-color) .uk-divider-vertical, .uk-tile-secondary:not(.uk-preserve-color) .uk-divider-vertical, .uk-card-primary.uk-card-body .uk-divider-vertical, .uk-card-primary > :not([class*=uk-card-media]) .uk-divider-vertical, .uk-card-secondary.uk-card-body .uk-divider-vertical, .uk-card-secondary > :not([class*=uk-card-media]) .uk-divider-vertical, .uk-overlay-primary .uk-divider-vertical, .uk-offcanvas-bar .uk-divider-vertical {
	border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-list-muted > ::before, .uk-section-primary:not(.uk-preserve-color) .uk-list-muted > ::before, .uk-section-secondary:not(.uk-preserve-color) .uk-list-muted > ::before, .uk-tile-primary:not(.uk-preserve-color) .uk-list-muted > ::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-list-muted > ::before, .uk-card-primary.uk-card-body .uk-list-muted > ::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-list-muted > ::before, .uk-card-secondary.uk-card-body .uk-list-muted > ::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-muted > ::before, .uk-overlay-primary .uk-list-muted > ::before, .uk-offcanvas-bar .uk-list-muted > ::before {
	color: rgba(255, 255, 255, 0.5) !important;
}
.uk-light .uk-list-emphasis > ::before, .uk-section-primary:not(.uk-preserve-color) .uk-list-emphasis > ::before, .uk-section-secondary:not(.uk-preserve-color) .uk-list-emphasis > ::before, .uk-tile-primary:not(.uk-preserve-color) .uk-list-emphasis > ::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-list-emphasis > ::before, .uk-card-primary.uk-card-body .uk-list-emphasis > ::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-list-emphasis > ::before, .uk-card-secondary.uk-card-body .uk-list-emphasis > ::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-emphasis > ::before, .uk-overlay-primary .uk-list-emphasis > ::before, .uk-offcanvas-bar .uk-list-emphasis > ::before {
	color: #fff !important;
}
.uk-light .uk-list-primary > ::before, .uk-section-primary:not(.uk-preserve-color) .uk-list-primary > ::before, .uk-section-secondary:not(.uk-preserve-color) .uk-list-primary > ::before, .uk-tile-primary:not(.uk-preserve-color) .uk-list-primary > ::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-list-primary > ::before, .uk-card-primary.uk-card-body .uk-list-primary > ::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-list-primary > ::before, .uk-card-secondary.uk-card-body .uk-list-primary > ::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-primary > ::before, .uk-overlay-primary .uk-list-primary > ::before, .uk-offcanvas-bar .uk-list-primary > ::before {
	color: #fff !important;
}
.uk-light .uk-list-secondary > ::before, .uk-section-primary:not(.uk-preserve-color) .uk-list-secondary > ::before, .uk-section-secondary:not(.uk-preserve-color) .uk-list-secondary > ::before, .uk-tile-primary:not(.uk-preserve-color) .uk-list-secondary > ::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-list-secondary > ::before, .uk-card-primary.uk-card-body .uk-list-secondary > ::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-list-secondary > ::before, .uk-card-secondary.uk-card-body .uk-list-secondary > ::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-secondary > ::before, .uk-overlay-primary .uk-list-secondary > ::before, .uk-offcanvas-bar .uk-list-secondary > ::before {
	color: #fff !important;
}
.uk-light .uk-list-bullet > ::before, .uk-section-primary:not(.uk-preserve-color) .uk-list-bullet > ::before, .uk-section-secondary:not(.uk-preserve-color) .uk-list-bullet > ::before, .uk-tile-primary:not(.uk-preserve-color) .uk-list-bullet > ::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-list-bullet > ::before, .uk-card-primary.uk-card-body .uk-list-bullet > ::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-list-bullet > ::before, .uk-card-secondary.uk-card-body .uk-list-bullet > ::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-bullet > ::before, .uk-overlay-primary .uk-list-bullet > ::before, .uk-offcanvas-bar .uk-list-bullet > ::before {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22rgba(255, 255, 255, 0.7)%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-list-divider > :nth-child(n+2), .uk-section-primary:not(.uk-preserve-color) .uk-list-divider > :nth-child(n+2), .uk-section-secondary:not(.uk-preserve-color) .uk-list-divider > :nth-child(n+2), .uk-tile-primary:not(.uk-preserve-color) .uk-list-divider > :nth-child(n+2), .uk-tile-secondary:not(.uk-preserve-color) .uk-list-divider > :nth-child(n+2), .uk-card-primary.uk-card-body .uk-list-divider > :nth-child(n+2), .uk-card-primary > :not([class*=uk-card-media]) .uk-list-divider > :nth-child(n+2), .uk-card-secondary.uk-card-body .uk-list-divider > :nth-child(n+2), .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-divider > :nth-child(n+2), .uk-overlay-primary .uk-list-divider > :nth-child(n+2), .uk-offcanvas-bar .uk-list-divider > :nth-child(n+2) {
	border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-list-striped > *:nth-of-type(odd), .uk-section-primary:not(.uk-preserve-color) .uk-list-striped > *:nth-of-type(odd), .uk-section-secondary:not(.uk-preserve-color) .uk-list-striped > *:nth-of-type(odd), .uk-tile-primary:not(.uk-preserve-color) .uk-list-striped > *:nth-of-type(odd), .uk-tile-secondary:not(.uk-preserve-color) .uk-list-striped > *:nth-of-type(odd), .uk-card-primary.uk-card-body .uk-list-striped > *:nth-of-type(odd), .uk-card-primary > :not([class*=uk-card-media]) .uk-list-striped > *:nth-of-type(odd), .uk-card-secondary.uk-card-body .uk-list-striped > *:nth-of-type(odd), .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-striped > *:nth-of-type(odd), .uk-overlay-primary .uk-list-striped > *:nth-of-type(odd), .uk-offcanvas-bar .uk-list-striped > *:nth-of-type(odd) {
	border-top-color: rgba(255, 255, 255, 0.2);
	border-bottom-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-list-striped > :nth-of-type(odd), .uk-section-primary:not(.uk-preserve-color) .uk-list-striped > :nth-of-type(odd), .uk-section-secondary:not(.uk-preserve-color) .uk-list-striped > :nth-of-type(odd), .uk-tile-primary:not(.uk-preserve-color) .uk-list-striped > :nth-of-type(odd), .uk-tile-secondary:not(.uk-preserve-color) .uk-list-striped > :nth-of-type(odd), .uk-card-primary.uk-card-body .uk-list-striped > :nth-of-type(odd), .uk-card-primary > :not([class*=uk-card-media]) .uk-list-striped > :nth-of-type(odd), .uk-card-secondary.uk-card-body .uk-list-striped > :nth-of-type(odd), .uk-card-secondary > :not([class*=uk-card-media]) .uk-list-striped > :nth-of-type(odd), .uk-overlay-primary .uk-list-striped > :nth-of-type(odd), .uk-offcanvas-bar .uk-list-striped > :nth-of-type(odd) {
	background-color: rgba(255, 255, 255, 0.1);
}
.uk-light .uk-icon-link, .uk-section-primary:not(.uk-preserve-color) .uk-icon-link, .uk-section-secondary:not(.uk-preserve-color) .uk-icon-link, .uk-tile-primary:not(.uk-preserve-color) .uk-icon-link, .uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link, .uk-card-primary.uk-card-body .uk-icon-link, .uk-card-primary > :not([class*=uk-card-media]) .uk-icon-link, .uk-card-secondary.uk-card-body .uk-icon-link, .uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-link, .uk-overlay-primary .uk-icon-link, .uk-offcanvas-bar .uk-icon-link {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-icon-link:hover, .uk-section-primary:not(.uk-preserve-color) .uk-icon-link:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:hover, .uk-card-primary.uk-card-body .uk-icon-link:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-icon-link:hover, .uk-card-secondary.uk-card-body .uk-icon-link:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-link:hover, .uk-overlay-primary .uk-icon-link:hover, .uk-offcanvas-bar .uk-icon-link:hover,
.uk-light .uk-icon-link:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:focus,
.uk-card-primary.uk-card-body .uk-icon-link:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-icon-link:focus,
.uk-card-secondary.uk-card-body .uk-icon-link:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-link:focus,
.uk-overlay-primary .uk-icon-link:focus,
.uk-offcanvas-bar .uk-icon-link:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-icon-link:active, .uk-section-primary:not(.uk-preserve-color) .uk-icon-link:active, .uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:active, .uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:active, .uk-card-primary.uk-card-body .uk-icon-link:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-icon-link:active, .uk-card-secondary.uk-card-body .uk-icon-link:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-link:active, .uk-overlay-primary .uk-icon-link:active, .uk-offcanvas-bar .uk-icon-link:active,
.uk-light .uk-active > .uk-icon-link,
.uk-section-primary:not(.uk-preserve-color) .uk-active > .uk-icon-link,
.uk-section-secondary:not(.uk-preserve-color) .uk-active > .uk-icon-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-active > .uk-icon-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-active > .uk-icon-link,
.uk-card-primary.uk-card-body .uk-active > .uk-icon-link,
.uk-card-primary > :not([class*=uk-card-media]) .uk-active > .uk-icon-link,
.uk-card-secondary.uk-card-body .uk-active > .uk-icon-link,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-active > .uk-icon-link,
.uk-overlay-primary .uk-active > .uk-icon-link,
.uk-offcanvas-bar .uk-active > .uk-icon-link {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-icon-button, .uk-section-primary:not(.uk-preserve-color) .uk-icon-button, .uk-section-secondary:not(.uk-preserve-color) .uk-icon-button, .uk-tile-primary:not(.uk-preserve-color) .uk-icon-button, .uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button, .uk-card-primary.uk-card-body .uk-icon-button, .uk-card-primary > :not([class*=uk-card-media]) .uk-icon-button, .uk-card-secondary.uk-card-body .uk-icon-button, .uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-button, .uk-overlay-primary .uk-icon-button, .uk-offcanvas-bar .uk-icon-button {
	background-color: rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-icon-button:hover, .uk-section-primary:not(.uk-preserve-color) .uk-icon-button:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:hover, .uk-card-primary.uk-card-body .uk-icon-button:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-icon-button:hover, .uk-card-secondary.uk-card-body .uk-icon-button:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-button:hover, .uk-overlay-primary .uk-icon-button:hover, .uk-offcanvas-bar .uk-icon-button:hover,
.uk-light .uk-icon-button:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:focus,
.uk-card-primary.uk-card-body .uk-icon-button:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-icon-button:focus,
.uk-card-secondary.uk-card-body .uk-icon-button:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-button:focus,
.uk-overlay-primary .uk-icon-button:focus,
.uk-offcanvas-bar .uk-icon-button:focus {
	background-color: fadein(rgba(255, 255, 255, 0.1), 5%);
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-icon-button:active, .uk-section-primary:not(.uk-preserve-color) .uk-icon-button:active, .uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:active, .uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:active, .uk-card-primary.uk-card-body .uk-icon-button:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-icon-button:active, .uk-card-secondary.uk-card-body .uk-icon-button:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-icon-button:active, .uk-overlay-primary .uk-icon-button:active, .uk-offcanvas-bar .uk-icon-button:active {
	background-color: fadein(rgba(255, 255, 255, 0.1), 10%);
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-input, .uk-section-primary:not(.uk-preserve-color) .uk-input, .uk-section-secondary:not(.uk-preserve-color) .uk-input, .uk-tile-primary:not(.uk-preserve-color) .uk-input, .uk-tile-secondary:not(.uk-preserve-color) .uk-input, .uk-card-primary.uk-card-body .uk-input, .uk-card-primary > :not([class*=uk-card-media]) .uk-input, .uk-card-secondary.uk-card-body .uk-input, .uk-card-secondary > :not([class*=uk-card-media]) .uk-input, .uk-overlay-primary .uk-input, .uk-offcanvas-bar .uk-input,
.uk-light .uk-select,
.uk-section-primary:not(.uk-preserve-color) .uk-select,
.uk-section-secondary:not(.uk-preserve-color) .uk-select,
.uk-tile-primary:not(.uk-preserve-color) .uk-select,
.uk-tile-secondary:not(.uk-preserve-color) .uk-select,
.uk-card-primary.uk-card-body .uk-select,
.uk-card-primary > :not([class*=uk-card-media]) .uk-select,
.uk-card-secondary.uk-card-body .uk-select,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-select,
.uk-overlay-primary .uk-select,
.uk-offcanvas-bar .uk-select,
.uk-light .uk-textarea,
.uk-section-primary:not(.uk-preserve-color) .uk-textarea,
.uk-section-secondary:not(.uk-preserve-color) .uk-textarea,
.uk-tile-primary:not(.uk-preserve-color) .uk-textarea,
.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea,
.uk-card-primary.uk-card-body .uk-textarea,
.uk-card-primary > :not([class*=uk-card-media]) .uk-textarea,
.uk-card-secondary.uk-card-body .uk-textarea,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-textarea,
.uk-overlay-primary .uk-textarea,
.uk-offcanvas-bar .uk-textarea {
	background-color: rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.7);
	background-clip: padding-box;
	border-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-input:focus, .uk-section-primary:not(.uk-preserve-color) .uk-input:focus, .uk-section-secondary:not(.uk-preserve-color) .uk-input:focus, .uk-tile-primary:not(.uk-preserve-color) .uk-input:focus, .uk-tile-secondary:not(.uk-preserve-color) .uk-input:focus, .uk-card-primary.uk-card-body .uk-input:focus, .uk-card-primary > :not([class*=uk-card-media]) .uk-input:focus, .uk-card-secondary.uk-card-body .uk-input:focus, .uk-card-secondary > :not([class*=uk-card-media]) .uk-input:focus, .uk-overlay-primary .uk-input:focus, .uk-offcanvas-bar .uk-input:focus,
.uk-light .uk-select:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-select:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-select:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-select:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-select:focus,
.uk-card-primary.uk-card-body .uk-select:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-select:focus,
.uk-card-secondary.uk-card-body .uk-select:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-select:focus,
.uk-overlay-primary .uk-select:focus,
.uk-offcanvas-bar .uk-select:focus,
.uk-light .uk-textarea:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-textarea:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-textarea:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-textarea:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea:focus,
.uk-card-primary.uk-card-body .uk-textarea:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-textarea:focus,
.uk-card-secondary.uk-card-body .uk-textarea:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-textarea:focus,
.uk-overlay-primary .uk-textarea:focus,
.uk-offcanvas-bar .uk-textarea:focus {
	background-color: fadein(rgba(255, 255, 255, 0.1), 5%);
	color: rgba(255, 255, 255, 0.7);
	border-color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-input::-ms-input-placeholder, .uk-section-primary:not(.uk-preserve-color) .uk-input::-ms-input-placeholder, .uk-section-secondary:not(.uk-preserve-color) .uk-input::-ms-input-placeholder, .uk-tile-primary:not(.uk-preserve-color) .uk-input::-ms-input-placeholder, .uk-tile-secondary:not(.uk-preserve-color) .uk-input::-ms-input-placeholder, .uk-card-primary.uk-card-body .uk-input::-ms-input-placeholder, .uk-card-primary > :not([class*=uk-card-media]) .uk-input::-ms-input-placeholder, .uk-card-secondary.uk-card-body .uk-input::-ms-input-placeholder, .uk-card-secondary > :not([class*=uk-card-media]) .uk-input::-ms-input-placeholder, .uk-overlay-primary .uk-input::-ms-input-placeholder, .uk-offcanvas-bar .uk-input::-ms-input-placeholder {
	color: rgba(255, 255, 255, 0.5) !important;
}
.uk-light .uk-input::placeholder, .uk-section-primary:not(.uk-preserve-color) .uk-input::placeholder, .uk-section-secondary:not(.uk-preserve-color) .uk-input::placeholder, .uk-tile-primary:not(.uk-preserve-color) .uk-input::placeholder, .uk-tile-secondary:not(.uk-preserve-color) .uk-input::placeholder, .uk-card-primary.uk-card-body .uk-input::placeholder, .uk-card-primary > :not([class*=uk-card-media]) .uk-input::placeholder, .uk-card-secondary.uk-card-body .uk-input::placeholder, .uk-card-secondary > :not([class*=uk-card-media]) .uk-input::placeholder, .uk-overlay-primary .uk-input::placeholder, .uk-offcanvas-bar .uk-input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-textarea::-ms-input-placeholder, .uk-section-primary:not(.uk-preserve-color) .uk-textarea::-ms-input-placeholder, .uk-section-secondary:not(.uk-preserve-color) .uk-textarea::-ms-input-placeholder, .uk-tile-primary:not(.uk-preserve-color) .uk-textarea::-ms-input-placeholder, .uk-tile-secondary:not(.uk-preserve-color) .uk-textarea::-ms-input-placeholder, .uk-card-primary.uk-card-body .uk-textarea::-ms-input-placeholder, .uk-card-primary > :not([class*=uk-card-media]) .uk-textarea::-ms-input-placeholder, .uk-card-secondary.uk-card-body .uk-textarea::-ms-input-placeholder, .uk-card-secondary > :not([class*=uk-card-media]) .uk-textarea::-ms-input-placeholder, .uk-overlay-primary .uk-textarea::-ms-input-placeholder, .uk-offcanvas-bar .uk-textarea::-ms-input-placeholder {
	color: rgba(255, 255, 255, 0.5) !important;
}
.uk-light .uk-textarea::placeholder, .uk-section-primary:not(.uk-preserve-color) .uk-textarea::placeholder, .uk-section-secondary:not(.uk-preserve-color) .uk-textarea::placeholder, .uk-tile-primary:not(.uk-preserve-color) .uk-textarea::placeholder, .uk-tile-secondary:not(.uk-preserve-color) .uk-textarea::placeholder, .uk-card-primary.uk-card-body .uk-textarea::placeholder, .uk-card-primary > :not([class*=uk-card-media]) .uk-textarea::placeholder, .uk-card-secondary.uk-card-body .uk-textarea::placeholder, .uk-card-secondary > :not([class*=uk-card-media]) .uk-textarea::placeholder, .uk-overlay-primary .uk-textarea::placeholder, .uk-offcanvas-bar .uk-textarea::placeholder {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-select:not([multiple]):not([size]), .uk-section-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]), .uk-section-secondary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]), .uk-tile-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]), .uk-tile-secondary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]), .uk-card-primary.uk-card-body .uk-select:not([multiple]):not([size]), .uk-card-primary > :not([class*=uk-card-media]) .uk-select:not([multiple]):not([size]), .uk-card-secondary.uk-card-body .uk-select:not([multiple]):not([size]), .uk-card-secondary > :not([class*=uk-card-media]) .uk-select:not([multiple]):not([size]), .uk-overlay-primary .uk-select:not([multiple]):not([size]), .uk-offcanvas-bar .uk-select:not([multiple]):not([size]) {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22rgba(255, 255, 255, 0.7)%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22rgba(255, 255, 255, 0.7)%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}
.uk-light .uk-input[list]:hover, .uk-section-primary:not(.uk-preserve-color) .uk-input[list]:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-input[list]:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-input[list]:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-input[list]:hover, .uk-card-primary.uk-card-body .uk-input[list]:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-input[list]:hover, .uk-card-secondary.uk-card-body .uk-input[list]:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-input[list]:hover, .uk-overlay-primary .uk-input[list]:hover, .uk-offcanvas-bar .uk-input[list]:hover,
.uk-light .uk-input[list]:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-input[list]:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-input[list]:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-input[list]:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-input[list]:focus,
.uk-card-primary.uk-card-body .uk-input[list]:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-input[list]:focus,
.uk-card-secondary.uk-card-body .uk-input[list]:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-input[list]:focus,
.uk-overlay-primary .uk-input[list]:focus,
.uk-offcanvas-bar .uk-input[list]:focus {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22rgba(255, 255, 255, 0.7)%22%20points%3D%2212%2012%208%206%2016%206%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}
.uk-light .uk-radio, .uk-section-primary:not(.uk-preserve-color) .uk-radio, .uk-section-secondary:not(.uk-preserve-color) .uk-radio, .uk-tile-primary:not(.uk-preserve-color) .uk-radio, .uk-tile-secondary:not(.uk-preserve-color) .uk-radio, .uk-card-primary.uk-card-body .uk-radio, .uk-card-primary > :not([class*=uk-card-media]) .uk-radio, .uk-card-secondary.uk-card-body .uk-radio, .uk-card-secondary > :not([class*=uk-card-media]) .uk-radio, .uk-overlay-primary .uk-radio, .uk-offcanvas-bar .uk-radio,
.uk-light .uk-checkbox,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox,
.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox,
.uk-card-primary.uk-card-body .uk-checkbox,
.uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox,
.uk-card-secondary.uk-card-body .uk-checkbox,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox,
.uk-overlay-primary .uk-checkbox,
.uk-offcanvas-bar .uk-checkbox {
	background-color: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-radio:focus, .uk-section-primary:not(.uk-preserve-color) .uk-radio:focus, .uk-section-secondary:not(.uk-preserve-color) .uk-radio:focus, .uk-tile-primary:not(.uk-preserve-color) .uk-radio:focus, .uk-tile-secondary:not(.uk-preserve-color) .uk-radio:focus, .uk-card-primary.uk-card-body .uk-radio:focus, .uk-card-primary > :not([class*=uk-card-media]) .uk-radio:focus, .uk-card-secondary.uk-card-body .uk-radio:focus, .uk-card-secondary > :not([class*=uk-card-media]) .uk-radio:focus, .uk-overlay-primary .uk-radio:focus, .uk-offcanvas-bar .uk-radio:focus,
.uk-light .uk-checkbox:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:focus,
.uk-card-primary.uk-card-body .uk-checkbox:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox:focus,
.uk-card-secondary.uk-card-body .uk-checkbox:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox:focus,
.uk-overlay-primary .uk-checkbox:focus,
.uk-offcanvas-bar .uk-checkbox:focus {
	background-color: fadein(rgba(255, 255, 255, 0.1), 5%);
	border-color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-radio:checked, .uk-section-primary:not(.uk-preserve-color) .uk-radio:checked, .uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked, .uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked, .uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked, .uk-card-primary.uk-card-body .uk-radio:checked, .uk-card-primary > :not([class*=uk-card-media]) .uk-radio:checked, .uk-card-secondary.uk-card-body .uk-radio:checked, .uk-card-secondary > :not([class*=uk-card-media]) .uk-radio:checked, .uk-overlay-primary .uk-radio:checked, .uk-offcanvas-bar .uk-radio:checked,
.uk-light .uk-checkbox:checked,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-card-primary.uk-card-body .uk-checkbox:checked,
.uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox:checked,
.uk-card-secondary.uk-card-body .uk-checkbox:checked,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox:checked,
.uk-overlay-primary .uk-checkbox:checked,
.uk-offcanvas-bar .uk-checkbox:checked,
.uk-light .uk-checkbox:indeterminate,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-card-primary.uk-card-body .uk-checkbox:indeterminate,
.uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox:indeterminate,
.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox:indeterminate,
.uk-overlay-primary .uk-checkbox:indeterminate,
.uk-offcanvas-bar .uk-checkbox:indeterminate {
	background-color: #fff;
	border-color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-radio:checked:focus, .uk-section-primary:not(.uk-preserve-color) .uk-radio:checked:focus, .uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked:focus, .uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked:focus, .uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked:focus, .uk-card-primary.uk-card-body .uk-radio:checked:focus, .uk-card-primary > :not([class*=uk-card-media]) .uk-radio:checked:focus, .uk-card-secondary.uk-card-body .uk-radio:checked:focus, .uk-card-secondary > :not([class*=uk-card-media]) .uk-radio:checked:focus, .uk-overlay-primary .uk-radio:checked:focus, .uk-offcanvas-bar .uk-radio:checked:focus,
.uk-light .uk-checkbox:checked:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked:focus,
.uk-card-primary.uk-card-body .uk-checkbox:checked:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox:checked:focus,
.uk-card-secondary.uk-card-body .uk-checkbox:checked:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox:checked:focus,
.uk-overlay-primary .uk-checkbox:checked:focus,
.uk-offcanvas-bar .uk-checkbox:checked:focus,
.uk-light .uk-checkbox:indeterminate:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,
.uk-card-primary.uk-card-body .uk-checkbox:indeterminate:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox:indeterminate:focus,
.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox:indeterminate:focus,
.uk-overlay-primary .uk-checkbox:indeterminate:focus,
.uk-offcanvas-bar .uk-checkbox:indeterminate:focus {
	background-color: fadein(#fff, 10%);
}
.uk-light .uk-radio:checked, .uk-section-primary:not(.uk-preserve-color) .uk-radio:checked, .uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked, .uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked, .uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked, .uk-card-primary.uk-card-body .uk-radio:checked, .uk-card-primary > :not([class*=uk-card-media]) .uk-radio:checked, .uk-card-secondary.uk-card-body .uk-radio:checked, .uk-card-secondary > :not([class*=uk-card-media]) .uk-radio:checked, .uk-overlay-primary .uk-radio:checked, .uk-offcanvas-bar .uk-radio:checked {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-checkbox:checked, .uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked, .uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked, .uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked, .uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked, .uk-card-primary.uk-card-body .uk-checkbox:checked, .uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox:checked, .uk-card-secondary.uk-card-body .uk-checkbox:checked, .uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox:checked, .uk-overlay-primary .uk-checkbox:checked, .uk-offcanvas-bar .uk-checkbox:checked {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}
.uk-light .uk-checkbox:indeterminate, .uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate, .uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate, .uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate, .uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate, .uk-card-primary.uk-card-body .uk-checkbox:indeterminate, .uk-card-primary > :not([class*=uk-card-media]) .uk-checkbox:indeterminate, .uk-card-secondary.uk-card-body .uk-checkbox:indeterminate, .uk-card-secondary > :not([class*=uk-card-media]) .uk-checkbox:indeterminate, .uk-overlay-primary .uk-checkbox:indeterminate, .uk-offcanvas-bar .uk-checkbox:indeterminate {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-form-label, .uk-section-primary:not(.uk-preserve-color) .uk-form-label, .uk-section-secondary:not(.uk-preserve-color) .uk-form-label, .uk-tile-primary:not(.uk-preserve-color) .uk-form-label, .uk-tile-secondary:not(.uk-preserve-color) .uk-form-label, .uk-card-primary.uk-card-body .uk-form-label, .uk-card-primary > :not([class*=uk-card-media]) .uk-form-label, .uk-card-secondary.uk-card-body .uk-form-label, .uk-card-secondary > :not([class*=uk-card-media]) .uk-form-label, .uk-overlay-primary .uk-form-label, .uk-offcanvas-bar .uk-form-label {
	color: #fff;
}
.uk-light .uk-form-icon, .uk-section-primary:not(.uk-preserve-color) .uk-form-icon, .uk-section-secondary:not(.uk-preserve-color) .uk-form-icon, .uk-tile-primary:not(.uk-preserve-color) .uk-form-icon, .uk-tile-secondary:not(.uk-preserve-color) .uk-form-icon, .uk-card-primary.uk-card-body .uk-form-icon, .uk-card-primary > :not([class*=uk-card-media]) .uk-form-icon, .uk-card-secondary.uk-card-body .uk-form-icon, .uk-card-secondary > :not([class*=uk-card-media]) .uk-form-icon, .uk-overlay-primary .uk-form-icon, .uk-offcanvas-bar .uk-form-icon {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-form-icon:hover, .uk-section-primary:not(.uk-preserve-color) .uk-form-icon:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-form-icon:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-form-icon:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-form-icon:hover, .uk-card-primary.uk-card-body .uk-form-icon:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-form-icon:hover, .uk-card-secondary.uk-card-body .uk-form-icon:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-form-icon:hover, .uk-overlay-primary .uk-form-icon:hover, .uk-offcanvas-bar .uk-form-icon:hover {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-button-default, .uk-section-primary:not(.uk-preserve-color) .uk-button-default, .uk-section-secondary:not(.uk-preserve-color) .uk-button-default, .uk-tile-primary:not(.uk-preserve-color) .uk-button-default, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-default, .uk-card-primary.uk-card-body .uk-button-default, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-default, .uk-card-secondary.uk-card-body .uk-button-default, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-default, .uk-overlay-primary .uk-button-default, .uk-offcanvas-bar .uk-button-default {
	background-color: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-button-default:hover, .uk-section-primary:not(.uk-preserve-color) .uk-button-default:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-button-default:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-button-default:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:hover, .uk-card-primary.uk-card-body .uk-button-default:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-default:hover, .uk-card-secondary.uk-card-body .uk-button-default:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-default:hover, .uk-overlay-primary .uk-button-default:hover, .uk-offcanvas-bar .uk-button-default:hover,
.uk-light .uk-button-default:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-button-default:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-default:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:focus,
.uk-card-primary.uk-card-body .uk-button-default:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-default:focus,
.uk-card-secondary.uk-card-body .uk-button-default:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-default:focus,
.uk-overlay-primary .uk-button-default:focus,
.uk-offcanvas-bar .uk-button-default:focus {
	background-color: transparent;
	color: #fff;
	border-color: #fff;
}
.uk-light .uk-button-default:active, .uk-section-primary:not(.uk-preserve-color) .uk-button-default:active, .uk-section-secondary:not(.uk-preserve-color) .uk-button-default:active, .uk-tile-primary:not(.uk-preserve-color) .uk-button-default:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:active, .uk-card-primary.uk-card-body .uk-button-default:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-default:active, .uk-card-secondary.uk-card-body .uk-button-default:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-default:active, .uk-overlay-primary .uk-button-default:active, .uk-offcanvas-bar .uk-button-default:active,
.uk-light .uk-button-default.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-default.uk-active,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-default.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-default.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default.uk-active,
.uk-card-primary.uk-card-body .uk-button-default.uk-active,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-default.uk-active,
.uk-card-secondary.uk-card-body .uk-button-default.uk-active,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-default.uk-active,
.uk-overlay-primary .uk-button-default.uk-active,
.uk-offcanvas-bar .uk-button-default.uk-active {
	background-color: transparent;
	color: #fff;
	border-color: #fff;
}
.uk-light .uk-button-primary, .uk-section-primary:not(.uk-preserve-color) .uk-button-primary, .uk-section-secondary:not(.uk-preserve-color) .uk-button-primary, .uk-tile-primary:not(.uk-preserve-color) .uk-button-primary, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary, .uk-card-primary.uk-card-body .uk-button-primary, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-primary, .uk-card-secondary.uk-card-body .uk-button-primary, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-primary, .uk-overlay-primary .uk-button-primary, .uk-offcanvas-bar .uk-button-primary {
	background-color: #fff;
	color: #666;
}
.uk-light .uk-button-primary:hover, .uk-section-primary:not(.uk-preserve-color) .uk-button-primary:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:hover, .uk-card-primary.uk-card-body .uk-button-primary:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-primary:hover, .uk-card-secondary.uk-card-body .uk-button-primary:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-primary:hover, .uk-overlay-primary .uk-button-primary:hover, .uk-offcanvas-bar .uk-button-primary:hover,
.uk-light .uk-button-primary:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:focus,
.uk-card-primary.uk-card-body .uk-button-primary:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-primary:focus,
.uk-card-secondary.uk-card-body .uk-button-primary:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-primary:focus,
.uk-overlay-primary .uk-button-primary:focus,
.uk-offcanvas-bar .uk-button-primary:focus {
	background-color: #f2f2f2;
	color: #666;
}
.uk-light .uk-button-primary:active, .uk-section-primary:not(.uk-preserve-color) .uk-button-primary:active, .uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:active, .uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:active, .uk-card-primary.uk-card-body .uk-button-primary:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-primary:active, .uk-card-secondary.uk-card-body .uk-button-primary:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-primary:active, .uk-overlay-primary .uk-button-primary:active, .uk-offcanvas-bar .uk-button-primary:active,
.uk-light .uk-button-primary.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary.uk-active,
.uk-card-primary.uk-card-body .uk-button-primary.uk-active,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-primary.uk-active,
.uk-card-secondary.uk-card-body .uk-button-primary.uk-active,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-primary.uk-active,
.uk-overlay-primary .uk-button-primary.uk-active,
.uk-offcanvas-bar .uk-button-primary.uk-active {
	background-color: #e6e6e6;
	color: #666;
}
.uk-light .uk-button-secondary, .uk-section-primary:not(.uk-preserve-color) .uk-button-secondary, .uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary, .uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary, .uk-card-primary.uk-card-body .uk-button-secondary, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-secondary, .uk-card-secondary.uk-card-body .uk-button-secondary, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-secondary, .uk-overlay-primary .uk-button-secondary, .uk-offcanvas-bar .uk-button-secondary {
	background-color: #fff;
	color: #666;
}
.uk-light .uk-button-secondary:hover, .uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:hover, .uk-card-primary.uk-card-body .uk-button-secondary:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-secondary:hover, .uk-card-secondary.uk-card-body .uk-button-secondary:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-secondary:hover, .uk-overlay-primary .uk-button-secondary:hover, .uk-offcanvas-bar .uk-button-secondary:hover,
.uk-light .uk-button-secondary:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:focus,
.uk-card-primary.uk-card-body .uk-button-secondary:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-secondary:focus,
.uk-card-secondary.uk-card-body .uk-button-secondary:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-secondary:focus,
.uk-overlay-primary .uk-button-secondary:focus,
.uk-offcanvas-bar .uk-button-secondary:focus {
	background-color: #f2f2f2;
	color: #666;
}
.uk-light .uk-button-secondary:active, .uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:active, .uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:active, .uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:active, .uk-card-primary.uk-card-body .uk-button-secondary:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-secondary:active, .uk-card-secondary.uk-card-body .uk-button-secondary:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-secondary:active, .uk-overlay-primary .uk-button-secondary:active, .uk-offcanvas-bar .uk-button-secondary:active,
.uk-light .uk-button-secondary.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary.uk-active,
.uk-card-primary.uk-card-body .uk-button-secondary.uk-active,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-secondary.uk-active,
.uk-card-secondary.uk-card-body .uk-button-secondary.uk-active,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-secondary.uk-active,
.uk-overlay-primary .uk-button-secondary.uk-active,
.uk-offcanvas-bar .uk-button-secondary.uk-active {
	background-color: #e6e6e6;
	color: #666;
}
.uk-light .uk-button-text, .uk-section-primary:not(.uk-preserve-color) .uk-button-text, .uk-section-secondary:not(.uk-preserve-color) .uk-button-text, .uk-tile-primary:not(.uk-preserve-color) .uk-button-text, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-text, .uk-card-primary.uk-card-body .uk-button-text, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-text, .uk-card-secondary.uk-card-body .uk-button-text, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-text, .uk-overlay-primary .uk-button-text, .uk-offcanvas-bar .uk-button-text {
	color: #fff;
}
.uk-light .uk-button-text::before, .uk-section-primary:not(.uk-preserve-color) .uk-button-text::before, .uk-section-secondary:not(.uk-preserve-color) .uk-button-text::before, .uk-tile-primary:not(.uk-preserve-color) .uk-button-text::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-text::before, .uk-card-primary.uk-card-body .uk-button-text::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-text::before, .uk-card-secondary.uk-card-body .uk-button-text::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-text::before, .uk-overlay-primary .uk-button-text::before, .uk-offcanvas-bar .uk-button-text::before {
	border-bottom-color: #fff;
}
.uk-light .uk-button-text:hover, .uk-section-primary:not(.uk-preserve-color) .uk-button-text:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-button-text:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-button-text:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:hover, .uk-card-primary.uk-card-body .uk-button-text:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-text:hover, .uk-card-secondary.uk-card-body .uk-button-text:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-text:hover, .uk-overlay-primary .uk-button-text:hover, .uk-offcanvas-bar .uk-button-text:hover,
.uk-light .uk-button-text:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-button-text:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-text:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:focus,
.uk-card-primary.uk-card-body .uk-button-text:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-text:focus,
.uk-card-secondary.uk-card-body .uk-button-text:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-text:focus,
.uk-overlay-primary .uk-button-text:focus,
.uk-offcanvas-bar .uk-button-text:focus {
	color: #fff;
}
.uk-light .uk-button-text:disabled, .uk-section-primary:not(.uk-preserve-color) .uk-button-text:disabled, .uk-section-secondary:not(.uk-preserve-color) .uk-button-text:disabled, .uk-tile-primary:not(.uk-preserve-color) .uk-button-text:disabled, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:disabled, .uk-card-primary.uk-card-body .uk-button-text:disabled, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-text:disabled, .uk-card-secondary.uk-card-body .uk-button-text:disabled, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-text:disabled, .uk-overlay-primary .uk-button-text:disabled, .uk-offcanvas-bar .uk-button-text:disabled {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-button-link, .uk-section-primary:not(.uk-preserve-color) .uk-button-link, .uk-section-secondary:not(.uk-preserve-color) .uk-button-link, .uk-tile-primary:not(.uk-preserve-color) .uk-button-link, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-link, .uk-card-primary.uk-card-body .uk-button-link, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-link, .uk-card-secondary.uk-card-body .uk-button-link, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-link, .uk-overlay-primary .uk-button-link, .uk-offcanvas-bar .uk-button-link {
	color: #fff;
}
.uk-light .uk-button-link:hover, .uk-section-primary:not(.uk-preserve-color) .uk-button-link:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-button-link:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-button-link:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-button-link:hover, .uk-card-primary.uk-card-body .uk-button-link:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-button-link:hover, .uk-card-secondary.uk-card-body .uk-button-link:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-button-link:hover, .uk-overlay-primary .uk-button-link:hover, .uk-offcanvas-bar .uk-button-link:hover,
.uk-light .uk-button-link:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-button-link:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-button-link:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-link:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link:focus,
.uk-card-primary.uk-card-body .uk-button-link:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-button-link:focus,
.uk-card-secondary.uk-card-body .uk-button-link:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-button-link:focus,
.uk-overlay-primary .uk-button-link:focus,
.uk-offcanvas-bar .uk-button-link:focus {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-grid-divider > :not(.uk-first-column)::before, .uk-section-primary:not(.uk-preserve-color) .uk-grid-divider > :not(.uk-first-column)::before, .uk-section-secondary:not(.uk-preserve-color) .uk-grid-divider > :not(.uk-first-column)::before, .uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider > :not(.uk-first-column)::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider > :not(.uk-first-column)::before, .uk-card-primary.uk-card-body .uk-grid-divider > :not(.uk-first-column)::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-grid-divider > :not(.uk-first-column)::before, .uk-card-secondary.uk-card-body .uk-grid-divider > :not(.uk-first-column)::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-grid-divider > :not(.uk-first-column)::before, .uk-overlay-primary .uk-grid-divider > :not(.uk-first-column)::before, .uk-offcanvas-bar .uk-grid-divider > :not(.uk-first-column)::before {
	border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-section-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-section-secondary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-card-primary.uk-card-body .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-card-secondary.uk-card-body .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-overlay-primary .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before, .uk-offcanvas-bar .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
	border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-close, .uk-section-primary:not(.uk-preserve-color) .uk-close, .uk-section-secondary:not(.uk-preserve-color) .uk-close, .uk-tile-primary:not(.uk-preserve-color) .uk-close, .uk-tile-secondary:not(.uk-preserve-color) .uk-close, .uk-card-primary.uk-card-body .uk-close, .uk-card-primary > :not([class*=uk-card-media]) .uk-close, .uk-card-secondary.uk-card-body .uk-close, .uk-card-secondary > :not([class*=uk-card-media]) .uk-close, .uk-overlay-primary .uk-close, .uk-offcanvas-bar .uk-close {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-close:hover, .uk-section-primary:not(.uk-preserve-color) .uk-close:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-close:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-close:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-close:hover, .uk-card-primary.uk-card-body .uk-close:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-close:hover, .uk-card-secondary.uk-card-body .uk-close:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-close:hover, .uk-overlay-primary .uk-close:hover, .uk-offcanvas-bar .uk-close:hover,
.uk-light .uk-close:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-close:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-close:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-close:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-close:focus,
.uk-card-primary.uk-card-body .uk-close:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-close:focus,
.uk-card-secondary.uk-card-body .uk-close:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-close:focus,
.uk-overlay-primary .uk-close:focus,
.uk-offcanvas-bar .uk-close:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-totop, .uk-section-primary:not(.uk-preserve-color) .uk-totop, .uk-section-secondary:not(.uk-preserve-color) .uk-totop, .uk-tile-primary:not(.uk-preserve-color) .uk-totop, .uk-tile-secondary:not(.uk-preserve-color) .uk-totop, .uk-card-primary.uk-card-body .uk-totop, .uk-card-primary > :not([class*=uk-card-media]) .uk-totop, .uk-card-secondary.uk-card-body .uk-totop, .uk-card-secondary > :not([class*=uk-card-media]) .uk-totop, .uk-overlay-primary .uk-totop, .uk-offcanvas-bar .uk-totop {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-totop:hover, .uk-section-primary:not(.uk-preserve-color) .uk-totop:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-totop:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-totop:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-totop:hover, .uk-card-primary.uk-card-body .uk-totop:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-totop:hover, .uk-card-secondary.uk-card-body .uk-totop:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-totop:hover, .uk-overlay-primary .uk-totop:hover, .uk-offcanvas-bar .uk-totop:hover,
.uk-light .uk-totop:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-totop:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-totop:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-totop:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:focus,
.uk-card-primary.uk-card-body .uk-totop:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-totop:focus,
.uk-card-secondary.uk-card-body .uk-totop:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-totop:focus,
.uk-overlay-primary .uk-totop:focus,
.uk-offcanvas-bar .uk-totop:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-totop:active, .uk-section-primary:not(.uk-preserve-color) .uk-totop:active, .uk-section-secondary:not(.uk-preserve-color) .uk-totop:active, .uk-tile-primary:not(.uk-preserve-color) .uk-totop:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-totop:active, .uk-card-primary.uk-card-body .uk-totop:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-totop:active, .uk-card-secondary.uk-card-body .uk-totop:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-totop:active, .uk-overlay-primary .uk-totop:active, .uk-offcanvas-bar .uk-totop:active {
	color: #fff;
}
.uk-light .uk-badge, .uk-section-primary:not(.uk-preserve-color) .uk-badge, .uk-section-secondary:not(.uk-preserve-color) .uk-badge, .uk-tile-primary:not(.uk-preserve-color) .uk-badge, .uk-tile-secondary:not(.uk-preserve-color) .uk-badge, .uk-card-primary.uk-card-body .uk-badge, .uk-card-primary > :not([class*=uk-card-media]) .uk-badge, .uk-card-secondary.uk-card-body .uk-badge, .uk-card-secondary > :not([class*=uk-card-media]) .uk-badge, .uk-overlay-primary .uk-badge, .uk-offcanvas-bar .uk-badge {
	background-color: #fff;
	color: #666 !important;
}
.uk-light .uk-label, .uk-section-primary:not(.uk-preserve-color) .uk-label, .uk-section-secondary:not(.uk-preserve-color) .uk-label, .uk-tile-primary:not(.uk-preserve-color) .uk-label, .uk-tile-secondary:not(.uk-preserve-color) .uk-label, .uk-card-primary.uk-card-body .uk-label, .uk-card-primary > :not([class*=uk-card-media]) .uk-label, .uk-card-secondary.uk-card-body .uk-label, .uk-card-secondary > :not([class*=uk-card-media]) .uk-label, .uk-overlay-primary .uk-label, .uk-offcanvas-bar .uk-label {
	background-color: #fff;
	color: #666;
}
.uk-light .uk-article-meta, .uk-section-primary:not(.uk-preserve-color) .uk-article-meta, .uk-section-secondary:not(.uk-preserve-color) .uk-article-meta, .uk-tile-primary:not(.uk-preserve-color) .uk-article-meta, .uk-tile-secondary:not(.uk-preserve-color) .uk-article-meta, .uk-card-primary.uk-card-body .uk-article-meta, .uk-card-primary > :not([class*=uk-card-media]) .uk-article-meta, .uk-card-secondary.uk-card-body .uk-article-meta, .uk-card-secondary > :not([class*=uk-card-media]) .uk-article-meta, .uk-overlay-primary .uk-article-meta, .uk-offcanvas-bar .uk-article-meta {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search-input, .uk-section-primary:not(.uk-preserve-color) .uk-search-input, .uk-section-secondary:not(.uk-preserve-color) .uk-search-input, .uk-tile-primary:not(.uk-preserve-color) .uk-search-input, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-input, .uk-card-primary.uk-card-body .uk-search-input, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-input, .uk-card-secondary.uk-card-body .uk-search-input, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-input, .uk-overlay-primary .uk-search-input, .uk-offcanvas-bar .uk-search-input {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-search-input:-ms-input-placeholder, .uk-section-primary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder, .uk-section-secondary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder, .uk-tile-primary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder, .uk-card-primary.uk-card-body .uk-search-input:-ms-input-placeholder, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-input:-ms-input-placeholder, .uk-card-secondary.uk-card-body .uk-search-input:-ms-input-placeholder, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-input:-ms-input-placeholder, .uk-overlay-primary .uk-search-input:-ms-input-placeholder, .uk-offcanvas-bar .uk-search-input:-ms-input-placeholder {
	color: rgba(255, 255, 255, 0.5) !important;
}
.uk-light .uk-search-input::placeholder, .uk-section-primary:not(.uk-preserve-color) .uk-search-input::placeholder, .uk-section-secondary:not(.uk-preserve-color) .uk-search-input::placeholder, .uk-tile-primary:not(.uk-preserve-color) .uk-search-input::placeholder, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-input::placeholder, .uk-card-primary.uk-card-body .uk-search-input::placeholder, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-input::placeholder, .uk-card-secondary.uk-card-body .uk-search-input::placeholder, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-input::placeholder, .uk-overlay-primary .uk-search-input::placeholder, .uk-offcanvas-bar .uk-search-input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search .uk-search-icon, .uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon, .uk-section-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon, .uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon, .uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon, .uk-card-primary.uk-card-body .uk-search .uk-search-icon, .uk-card-primary > :not([class*=uk-card-media]) .uk-search .uk-search-icon, .uk-card-secondary.uk-card-body .uk-search .uk-search-icon, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search .uk-search-icon, .uk-overlay-primary .uk-search .uk-search-icon, .uk-offcanvas-bar .uk-search .uk-search-icon {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search .uk-search-icon:hover, .uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover, .uk-card-primary.uk-card-body .uk-search .uk-search-icon:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-search .uk-search-icon:hover, .uk-card-secondary.uk-card-body .uk-search .uk-search-icon:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search .uk-search-icon:hover, .uk-overlay-primary .uk-search .uk-search-icon:hover, .uk-offcanvas-bar .uk-search .uk-search-icon:hover {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search-default .uk-search-input, .uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input, .uk-section-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input, .uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input, .uk-card-primary.uk-card-body .uk-search-default .uk-search-input, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-default .uk-search-input, .uk-card-secondary.uk-card-body .uk-search-default .uk-search-input, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-default .uk-search-input, .uk-overlay-primary .uk-search-default .uk-search-input, .uk-offcanvas-bar .uk-search-default .uk-search-input {
	background-color: transparent;
	border-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-search-default .uk-search-input:focus, .uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus, .uk-section-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus, .uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus, .uk-card-primary.uk-card-body .uk-search-default .uk-search-input:focus, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-default .uk-search-input:focus, .uk-card-secondary.uk-card-body .uk-search-default .uk-search-input:focus, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-default .uk-search-input:focus, .uk-overlay-primary .uk-search-default .uk-search-input:focus, .uk-offcanvas-bar .uk-search-default .uk-search-input:focus {
	background-color: fadein(transparent, 5%);
}
.uk-light .uk-search-navbar .uk-search-input, .uk-section-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input, .uk-section-secondary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input, .uk-tile-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input, .uk-card-primary.uk-card-body .uk-search-navbar .uk-search-input, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-navbar .uk-search-input, .uk-card-secondary.uk-card-body .uk-search-navbar .uk-search-input, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-navbar .uk-search-input, .uk-overlay-primary .uk-search-navbar .uk-search-input, .uk-offcanvas-bar .uk-search-navbar .uk-search-input {
	background-color: transparent;
}
.uk-light .uk-search-large .uk-search-input, .uk-section-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input, .uk-section-secondary:not(.uk-preserve-color) .uk-search-large .uk-search-input, .uk-tile-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-large .uk-search-input, .uk-card-primary.uk-card-body .uk-search-large .uk-search-input, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-large .uk-search-input, .uk-card-secondary.uk-card-body .uk-search-large .uk-search-input, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-large .uk-search-input, .uk-overlay-primary .uk-search-large .uk-search-input, .uk-offcanvas-bar .uk-search-large .uk-search-input {
	background-color: transparent;
}
.uk-light .uk-search-toggle, .uk-section-primary:not(.uk-preserve-color) .uk-search-toggle, .uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle, .uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle, .uk-card-primary.uk-card-body .uk-search-toggle, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-toggle, .uk-card-secondary.uk-card-body .uk-search-toggle, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-toggle, .uk-overlay-primary .uk-search-toggle, .uk-offcanvas-bar .uk-search-toggle {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search-toggle:hover, .uk-section-primary:not(.uk-preserve-color) .uk-search-toggle:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle:hover, .uk-card-primary.uk-card-body .uk-search-toggle:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-search-toggle:hover, .uk-card-secondary.uk-card-body .uk-search-toggle:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-search-toggle:hover, .uk-overlay-primary .uk-search-toggle:hover, .uk-offcanvas-bar .uk-search-toggle:hover,
.uk-light .uk-search-toggle:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle:focus,
.uk-card-primary.uk-card-body .uk-search-toggle:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-search-toggle:focus,
.uk-card-secondary.uk-card-body .uk-search-toggle:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-search-toggle:focus,
.uk-overlay-primary .uk-search-toggle:focus,
.uk-offcanvas-bar .uk-search-toggle:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-nav-parent-icon > .uk-parent > a::after, .uk-section-primary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent > a::after, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent > a::after, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent > a::after, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent > a::after, .uk-card-primary.uk-card-body .uk-nav-parent-icon > .uk-parent > a::after, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-parent-icon > .uk-parent > a::after, .uk-card-secondary.uk-card-body .uk-nav-parent-icon > .uk-parent > a::after, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-parent-icon > .uk-parent > a::after, .uk-overlay-primary .uk-nav-parent-icon > .uk-parent > a::after, .uk-offcanvas-bar .uk-nav-parent-icon > .uk-parent > a::after {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22rgba(255, 255, 255, 0.7)%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-section-primary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-card-primary.uk-card-body .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-card-secondary.uk-card-body .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-overlay-primary .uk-nav-parent-icon > .uk-parent.uk-open > a::after, .uk-offcanvas-bar .uk-nav-parent-icon > .uk-parent.uk-open > a::after {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22rgba(255, 255, 255, 0.7)%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-nav-default > li > a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default > li > a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default > li > a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default > li > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default > li > a, .uk-card-primary.uk-card-body .uk-nav-default > li > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default > li > a, .uk-card-secondary.uk-card-body .uk-nav-default > li > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default > li > a, .uk-overlay-primary .uk-nav-default > li > a, .uk-offcanvas-bar .uk-nav-default > li > a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-nav-default > li > a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default > li > a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default > li > a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default > li > a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default > li > a:hover, .uk-card-primary.uk-card-body .uk-nav-default > li > a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default > li > a:hover, .uk-card-secondary.uk-card-body .uk-nav-default > li > a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default > li > a:hover, .uk-overlay-primary .uk-nav-default > li > a:hover, .uk-offcanvas-bar .uk-nav-default > li > a:hover,
.uk-light .uk-nav-default > li > a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default > li > a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default > li > a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default > li > a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default > li > a:focus,
.uk-card-primary.uk-card-body .uk-nav-default > li > a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default > li > a:focus,
.uk-card-secondary.uk-card-body .uk-nav-default > li > a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default > li > a:focus,
.uk-overlay-primary .uk-nav-default > li > a:focus,
.uk-offcanvas-bar .uk-nav-default > li > a:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-nav-default > li.uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default > li.uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default > li.uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default > li.uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default > li.uk-active > a, .uk-card-primary.uk-card-body .uk-nav-default > li.uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default > li.uk-active > a, .uk-card-secondary.uk-card-body .uk-nav-default > li.uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default > li.uk-active > a, .uk-overlay-primary .uk-nav-default > li.uk-active > a, .uk-offcanvas-bar .uk-nav-default > li.uk-active > a {
	color: #fff;
}
.uk-light .uk-nav-default .uk-nav-header, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header, .uk-card-primary.uk-card-body .uk-nav-default .uk-nav-header, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-header, .uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-header, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-header, .uk-overlay-primary .uk-nav-default .uk-nav-header, .uk-offcanvas-bar .uk-nav-default .uk-nav-header {
	color: #fff;
}
.uk-light .uk-nav-default .uk-nav-divider, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider, .uk-card-primary.uk-card-body .uk-nav-default .uk-nav-divider, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-divider, .uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-divider, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-divider, .uk-overlay-primary .uk-nav-default .uk-nav-divider, .uk-offcanvas-bar .uk-nav-default .uk-nav-divider {
	border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-nav-default .uk-nav-sub a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a, .uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub a, .uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub a, .uk-overlay-primary .uk-nav-default .uk-nav-sub a, .uk-offcanvas-bar .uk-nav-default .uk-nav-sub a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-nav-default .uk-nav-sub a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover, .uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub a:hover, .uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub a:hover, .uk-overlay-primary .uk-nav-default .uk-nav-sub a:hover, .uk-offcanvas-bar .uk-nav-default .uk-nav-sub a:hover,
.uk-light .uk-nav-default .uk-nav-sub a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,
.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub a:focus,
.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub a:focus,
.uk-overlay-primary .uk-nav-default .uk-nav-sub a:focus,
.uk-offcanvas-bar .uk-nav-default .uk-nav-sub a:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-overlay-primary .uk-nav-default .uk-nav-sub li.uk-active > a, .uk-offcanvas-bar .uk-nav-default .uk-nav-sub li.uk-active > a {
	color: #fff;
}
.uk-light .uk-nav-primary > li > a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary > li > a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary > li > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a, .uk-card-primary.uk-card-body .uk-nav-primary > li > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary > li > a, .uk-card-secondary.uk-card-body .uk-nav-primary > li > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary > li > a, .uk-overlay-primary .uk-nav-primary > li > a, .uk-offcanvas-bar .uk-nav-primary > li > a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-nav-primary > li > a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary > li > a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary > li > a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a:hover, .uk-card-primary.uk-card-body .uk-nav-primary > li > a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary > li > a:hover, .uk-card-secondary.uk-card-body .uk-nav-primary > li > a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary > li > a:hover, .uk-overlay-primary .uk-nav-primary > li > a:hover, .uk-offcanvas-bar .uk-nav-primary > li > a:hover,
.uk-light .uk-nav-primary > li > a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary > li > a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary > li > a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a:focus,
.uk-card-primary.uk-card-body .uk-nav-primary > li > a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary > li > a:focus,
.uk-card-secondary.uk-card-body .uk-nav-primary > li > a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary > li > a:focus,
.uk-overlay-primary .uk-nav-primary > li > a:focus,
.uk-offcanvas-bar .uk-nav-primary > li > a:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-nav-primary > li.uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary > li.uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary > li.uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary > li.uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary > li.uk-active > a, .uk-card-primary.uk-card-body .uk-nav-primary > li.uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary > li.uk-active > a, .uk-card-secondary.uk-card-body .uk-nav-primary > li.uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary > li.uk-active > a, .uk-overlay-primary .uk-nav-primary > li.uk-active > a, .uk-offcanvas-bar .uk-nav-primary > li.uk-active > a {
	color: #fff;
}
.uk-light .uk-nav-primary .uk-nav-header, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header, .uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-header, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-header, .uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-header, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-header, .uk-overlay-primary .uk-nav-primary .uk-nav-header, .uk-offcanvas-bar .uk-nav-primary .uk-nav-header {
	color: #fff;
}
.uk-light .uk-nav-primary .uk-nav-divider, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider, .uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-divider, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-divider, .uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-divider, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-divider, .uk-overlay-primary .uk-nav-primary .uk-nav-divider, .uk-offcanvas-bar .uk-nav-primary .uk-nav-divider {
	border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-nav-primary .uk-nav-sub a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a, .uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub a, .uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub a, .uk-overlay-primary .uk-nav-primary .uk-nav-sub a, .uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-nav-primary .uk-nav-sub a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover, .uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub a:hover, .uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub a:hover, .uk-overlay-primary .uk-nav-primary .uk-nav-sub a:hover, .uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a:hover,
.uk-light .uk-nav-primary .uk-nav-sub a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,
.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub a:focus,
.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub a:focus,
.uk-overlay-primary .uk-nav-primary .uk-nav-sub a:focus,
.uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-overlay-primary .uk-nav-primary .uk-nav-sub li.uk-active > a, .uk-offcanvas-bar .uk-nav-primary .uk-nav-sub li.uk-active > a {
	color: #fff;
}
.uk-light .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-section-primary:not(.uk-preserve-color) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-section-secondary:not(.uk-preserve-color) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-tile-primary:not(.uk-preserve-color) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-tile-secondary:not(.uk-preserve-color) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-card-primary.uk-card-body .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-card-primary > :not([class*=uk-card-media]) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-card-secondary.uk-card-body .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-card-secondary > :not([class*=uk-card-media]) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-overlay-primary .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider), .uk-offcanvas-bar .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider) {
	border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-navbar-nav > li > a, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a, .uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a, .uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a, .uk-card-primary.uk-card-body .uk-navbar-nav > li > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a, .uk-card-secondary.uk-card-body .uk-navbar-nav > li > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a, .uk-overlay-primary .uk-navbar-nav > li > a, .uk-offcanvas-bar .uk-navbar-nav > li > a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-navbar-nav > li:hover > a, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li:hover > a, .uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav > li:hover > a, .uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li:hover > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li:hover > a, .uk-card-primary.uk-card-body .uk-navbar-nav > li:hover > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-nav > li:hover > a, .uk-card-secondary.uk-card-body .uk-navbar-nav > li:hover > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-nav > li:hover > a, .uk-overlay-primary .uk-navbar-nav > li:hover > a, .uk-offcanvas-bar .uk-navbar-nav > li:hover > a,
.uk-light .uk-navbar-nav > li > a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a:focus,
.uk-card-primary.uk-card-body .uk-navbar-nav > li > a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a:focus,
.uk-card-secondary.uk-card-body .uk-navbar-nav > li > a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a:focus,
.uk-overlay-primary .uk-navbar-nav > li > a:focus,
.uk-offcanvas-bar .uk-navbar-nav > li > a:focus,
.uk-light .uk-navbar-nav > li > a.uk-open,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a.uk-open,
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a.uk-open,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a.uk-open,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a.uk-open,
.uk-card-primary.uk-card-body .uk-navbar-nav > li > a.uk-open,
.uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a.uk-open,
.uk-card-secondary.uk-card-body .uk-navbar-nav > li > a.uk-open,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a.uk-open,
.uk-overlay-primary .uk-navbar-nav > li > a.uk-open,
.uk-offcanvas-bar .uk-navbar-nav > li > a.uk-open {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-navbar-nav > li > a:active, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active, .uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active, .uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active, .uk-card-primary.uk-card-body .uk-navbar-nav > li > a:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a:active, .uk-card-secondary.uk-card-body .uk-navbar-nav > li > a:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-nav > li > a:active, .uk-overlay-primary .uk-navbar-nav > li > a:active, .uk-offcanvas-bar .uk-navbar-nav > li > a:active {
	color: #fff;
}
.uk-light .uk-navbar-nav > li.uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li.uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav > li.uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li.uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li.uk-active > a, .uk-card-primary.uk-card-body .uk-navbar-nav > li.uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-nav > li.uk-active > a, .uk-card-secondary.uk-card-body .uk-navbar-nav > li.uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-nav > li.uk-active > a, .uk-overlay-primary .uk-navbar-nav > li.uk-active > a, .uk-offcanvas-bar .uk-navbar-nav > li.uk-active > a {
	color: #fff;
}
.uk-light .uk-navbar-item, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-item, .uk-section-secondary:not(.uk-preserve-color) .uk-navbar-item, .uk-tile-primary:not(.uk-preserve-color) .uk-navbar-item, .uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-item, .uk-card-primary.uk-card-body .uk-navbar-item, .uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-item, .uk-card-secondary.uk-card-body .uk-navbar-item, .uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-item, .uk-overlay-primary .uk-navbar-item, .uk-offcanvas-bar .uk-navbar-item {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-navbar-toggle, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle, .uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle, .uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle, .uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle, .uk-card-primary.uk-card-body .uk-navbar-toggle, .uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-toggle, .uk-card-secondary.uk-card-body .uk-navbar-toggle, .uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-toggle, .uk-overlay-primary .uk-navbar-toggle, .uk-offcanvas-bar .uk-navbar-toggle {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-navbar-toggle:hover, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle:hover, .uk-card-primary.uk-card-body .uk-navbar-toggle:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-toggle:hover, .uk-card-secondary.uk-card-body .uk-navbar-toggle:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-toggle:hover, .uk-overlay-primary .uk-navbar-toggle:hover, .uk-offcanvas-bar .uk-navbar-toggle:hover,
.uk-light .uk-navbar-toggle:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle:focus,
.uk-card-primary.uk-card-body .uk-navbar-toggle:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-toggle:focus,
.uk-card-secondary.uk-card-body .uk-navbar-toggle:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-toggle:focus,
.uk-overlay-primary .uk-navbar-toggle:focus,
.uk-offcanvas-bar .uk-navbar-toggle:focus,
.uk-light .uk-navbar-toggle.uk-open,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,
.uk-card-primary.uk-card-body .uk-navbar-toggle.uk-open,
.uk-card-primary > :not([class*=uk-card-media]) .uk-navbar-toggle.uk-open,
.uk-card-secondary.uk-card-body .uk-navbar-toggle.uk-open,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-navbar-toggle.uk-open,
.uk-overlay-primary .uk-navbar-toggle.uk-open,
.uk-offcanvas-bar .uk-navbar-toggle.uk-open {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-subnav > * > :first-child, .uk-section-primary:not(.uk-preserve-color) .uk-subnav > * > :first-child, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav > * > :first-child, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav > * > :first-child, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > * > :first-child, .uk-card-primary.uk-card-body .uk-subnav > * > :first-child, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav > * > :first-child, .uk-card-secondary.uk-card-body .uk-subnav > * > :first-child, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav > * > :first-child, .uk-overlay-primary .uk-subnav > * > :first-child, .uk-offcanvas-bar .uk-subnav > * > :first-child {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-subnav > * > a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-subnav > * > a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav > * > a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav > * > a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > * > a:hover, .uk-card-primary.uk-card-body .uk-subnav > * > a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav > * > a:hover, .uk-card-secondary.uk-card-body .uk-subnav > * > a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav > * > a:hover, .uk-overlay-primary .uk-subnav > * > a:hover, .uk-offcanvas-bar .uk-subnav > * > a:hover,
.uk-light .uk-subnav > * > a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav > * > a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-subnav > * > a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav > * > a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > * > a:focus,
.uk-card-primary.uk-card-body .uk-subnav > * > a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-subnav > * > a:focus,
.uk-card-secondary.uk-card-body .uk-subnav > * > a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav > * > a:focus,
.uk-overlay-primary .uk-subnav > * > a:focus,
.uk-offcanvas-bar .uk-subnav > * > a:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-subnav > .uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-subnav > .uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav > .uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav > .uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > .uk-active > a, .uk-card-primary.uk-card-body .uk-subnav > .uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav > .uk-active > a, .uk-card-secondary.uk-card-body .uk-subnav > .uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav > .uk-active > a, .uk-overlay-primary .uk-subnav > .uk-active > a, .uk-offcanvas-bar .uk-subnav > .uk-active > a {
	color: #fff;
}
.uk-light .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-section-primary:not(.uk-preserve-color) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-primary.uk-card-body .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-secondary.uk-card-body .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-overlay-primary .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before, .uk-offcanvas-bar .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before {
	border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-subnav-pill > * > :first-child, .uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > * > :first-child, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > :first-child, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > * > :first-child, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > :first-child, .uk-card-primary.uk-card-body .uk-subnav-pill > * > :first-child, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav-pill > * > :first-child, .uk-card-secondary.uk-card-body .uk-subnav-pill > * > :first-child, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav-pill > * > :first-child, .uk-overlay-primary .uk-subnav-pill > * > :first-child, .uk-offcanvas-bar .uk-subnav-pill > * > :first-child {
	background-color: transparent;
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-subnav-pill > * > a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:hover, .uk-card-primary.uk-card-body .uk-subnav-pill > * > a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav-pill > * > a:hover, .uk-card-secondary.uk-card-body .uk-subnav-pill > * > a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav-pill > * > a:hover, .uk-overlay-primary .uk-subnav-pill > * > a:hover, .uk-offcanvas-bar .uk-subnav-pill > * > a:hover,
.uk-light .uk-subnav-pill > * > a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:focus,
.uk-card-primary.uk-card-body .uk-subnav-pill > * > a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-subnav-pill > * > a:focus,
.uk-card-secondary.uk-card-body .uk-subnav-pill > * > a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav-pill > * > a:focus,
.uk-overlay-primary .uk-subnav-pill > * > a:focus,
.uk-offcanvas-bar .uk-subnav-pill > * > a:focus {
	background-color: rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-subnav-pill > * > a:active, .uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:active, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:active, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:active, .uk-card-primary.uk-card-body .uk-subnav-pill > * > a:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav-pill > * > a:active, .uk-card-secondary.uk-card-body .uk-subnav-pill > * > a:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav-pill > * > a:active, .uk-overlay-primary .uk-subnav-pill > * > a:active, .uk-offcanvas-bar .uk-subnav-pill > * > a:active {
	background-color: rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-subnav-pill > .uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > .uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill > .uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > .uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > .uk-active > a, .uk-card-primary.uk-card-body .uk-subnav-pill > .uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav-pill > .uk-active > a, .uk-card-secondary.uk-card-body .uk-subnav-pill > .uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav-pill > .uk-active > a, .uk-overlay-primary .uk-subnav-pill > .uk-active > a, .uk-offcanvas-bar .uk-subnav-pill > .uk-active > a {
	background-color: #fff;
	color: #666;
}
.uk-light .uk-subnav > .uk-disabled > a, .uk-section-primary:not(.uk-preserve-color) .uk-subnav > .uk-disabled > a, .uk-section-secondary:not(.uk-preserve-color) .uk-subnav > .uk-disabled > a, .uk-tile-primary:not(.uk-preserve-color) .uk-subnav > .uk-disabled > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > .uk-disabled > a, .uk-card-primary.uk-card-body .uk-subnav > .uk-disabled > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-subnav > .uk-disabled > a, .uk-card-secondary.uk-card-body .uk-subnav > .uk-disabled > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-subnav > .uk-disabled > a, .uk-overlay-primary .uk-subnav > .uk-disabled > a, .uk-offcanvas-bar .uk-subnav > .uk-disabled > a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-breadcrumb > * > *, .uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > * > *, .uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > *, .uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > * > *, .uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > *, .uk-card-primary.uk-card-body .uk-breadcrumb > * > *, .uk-card-primary > :not([class*=uk-card-media]) .uk-breadcrumb > * > *, .uk-card-secondary.uk-card-body .uk-breadcrumb > * > *, .uk-card-secondary > :not([class*=uk-card-media]) .uk-breadcrumb > * > *, .uk-overlay-primary .uk-breadcrumb > * > *, .uk-offcanvas-bar .uk-breadcrumb > * > * {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-breadcrumb > * > :hover, .uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > * > :hover, .uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > :hover, .uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > * > :hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > :hover, .uk-card-primary.uk-card-body .uk-breadcrumb > * > :hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-breadcrumb > * > :hover, .uk-card-secondary.uk-card-body .uk-breadcrumb > * > :hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-breadcrumb > * > :hover, .uk-overlay-primary .uk-breadcrumb > * > :hover, .uk-offcanvas-bar .uk-breadcrumb > * > :hover,
.uk-light .uk-breadcrumb > * > :focus,
.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > * > :focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > :focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > * > :focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > :focus,
.uk-card-primary.uk-card-body .uk-breadcrumb > * > :focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-breadcrumb > * > :focus,
.uk-card-secondary.uk-card-body .uk-breadcrumb > * > :focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-breadcrumb > * > :focus,
.uk-overlay-primary .uk-breadcrumb > * > :focus,
.uk-offcanvas-bar .uk-breadcrumb > * > :focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-breadcrumb > :last-child > *, .uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > :last-child > *, .uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb > :last-child > *, .uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > :last-child > *, .uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > :last-child > *, .uk-card-primary.uk-card-body .uk-breadcrumb > :last-child > *, .uk-card-primary > :not([class*=uk-card-media]) .uk-breadcrumb > :last-child > *, .uk-card-secondary.uk-card-body .uk-breadcrumb > :last-child > *, .uk-card-secondary > :not([class*=uk-card-media]) .uk-breadcrumb > :last-child > *, .uk-overlay-primary .uk-breadcrumb > :last-child > *, .uk-offcanvas-bar .uk-breadcrumb > :last-child > * {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-primary.uk-card-body .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-secondary.uk-card-body .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-overlay-primary .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before, .uk-offcanvas-bar .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-pagination > * > *, .uk-section-primary:not(.uk-preserve-color) .uk-pagination > * > *, .uk-section-secondary:not(.uk-preserve-color) .uk-pagination > * > *, .uk-tile-primary:not(.uk-preserve-color) .uk-pagination > * > *, .uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > * > *, .uk-card-primary.uk-card-body .uk-pagination > * > *, .uk-card-primary > :not([class*=uk-card-media]) .uk-pagination > * > *, .uk-card-secondary.uk-card-body .uk-pagination > * > *, .uk-card-secondary > :not([class*=uk-card-media]) .uk-pagination > * > *, .uk-overlay-primary .uk-pagination > * > *, .uk-offcanvas-bar .uk-pagination > * > * {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-pagination > * > :hover, .uk-section-primary:not(.uk-preserve-color) .uk-pagination > * > :hover, .uk-section-secondary:not(.uk-preserve-color) .uk-pagination > * > :hover, .uk-tile-primary:not(.uk-preserve-color) .uk-pagination > * > :hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > * > :hover, .uk-card-primary.uk-card-body .uk-pagination > * > :hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-pagination > * > :hover, .uk-card-secondary.uk-card-body .uk-pagination > * > :hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-pagination > * > :hover, .uk-overlay-primary .uk-pagination > * > :hover, .uk-offcanvas-bar .uk-pagination > * > :hover,
.uk-light .uk-pagination > * > :focus,
.uk-section-primary:not(.uk-preserve-color) .uk-pagination > * > :focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-pagination > * > :focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-pagination > * > :focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > * > :focus,
.uk-card-primary.uk-card-body .uk-pagination > * > :focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-pagination > * > :focus,
.uk-card-secondary.uk-card-body .uk-pagination > * > :focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-pagination > * > :focus,
.uk-overlay-primary .uk-pagination > * > :focus,
.uk-offcanvas-bar .uk-pagination > * > :focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-pagination > .uk-active > *, .uk-section-primary:not(.uk-preserve-color) .uk-pagination > .uk-active > *, .uk-section-secondary:not(.uk-preserve-color) .uk-pagination > .uk-active > *, .uk-tile-primary:not(.uk-preserve-color) .uk-pagination > .uk-active > *, .uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > .uk-active > *, .uk-card-primary.uk-card-body .uk-pagination > .uk-active > *, .uk-card-primary > :not([class*=uk-card-media]) .uk-pagination > .uk-active > *, .uk-card-secondary.uk-card-body .uk-pagination > .uk-active > *, .uk-card-secondary > :not([class*=uk-card-media]) .uk-pagination > .uk-active > *, .uk-overlay-primary .uk-pagination > .uk-active > *, .uk-offcanvas-bar .uk-pagination > .uk-active > * {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-pagination > .uk-disabled > *, .uk-section-primary:not(.uk-preserve-color) .uk-pagination > .uk-disabled > *, .uk-section-secondary:not(.uk-preserve-color) .uk-pagination > .uk-disabled > *, .uk-tile-primary:not(.uk-preserve-color) .uk-pagination > .uk-disabled > *, .uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > .uk-disabled > *, .uk-card-primary.uk-card-body .uk-pagination > .uk-disabled > *, .uk-card-primary > :not([class*=uk-card-media]) .uk-pagination > .uk-disabled > *, .uk-card-secondary.uk-card-body .uk-pagination > .uk-disabled > *, .uk-card-secondary > :not([class*=uk-card-media]) .uk-pagination > .uk-disabled > *, .uk-overlay-primary .uk-pagination > .uk-disabled > *, .uk-offcanvas-bar .uk-pagination > .uk-disabled > * {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-tab::before, .uk-section-primary:not(.uk-preserve-color) .uk-tab::before, .uk-section-secondary:not(.uk-preserve-color) .uk-tab::before, .uk-tile-primary:not(.uk-preserve-color) .uk-tab::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-tab::before, .uk-card-primary.uk-card-body .uk-tab::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-tab::before, .uk-card-secondary.uk-card-body .uk-tab::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-tab::before, .uk-overlay-primary .uk-tab::before, .uk-offcanvas-bar .uk-tab::before {
	border-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-tab > * > a, .uk-section-primary:not(.uk-preserve-color) .uk-tab > * > a, .uk-section-secondary:not(.uk-preserve-color) .uk-tab > * > a, .uk-tile-primary:not(.uk-preserve-color) .uk-tab > * > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-tab > * > a, .uk-card-primary.uk-card-body .uk-tab > * > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-tab > * > a, .uk-card-secondary.uk-card-body .uk-tab > * > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-tab > * > a, .uk-overlay-primary .uk-tab > * > a, .uk-offcanvas-bar .uk-tab > * > a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-tab > * > a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-tab > * > a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-tab > * > a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-tab > * > a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-tab > * > a:hover, .uk-card-primary.uk-card-body .uk-tab > * > a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-tab > * > a:hover, .uk-card-secondary.uk-card-body .uk-tab > * > a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-tab > * > a:hover, .uk-overlay-primary .uk-tab > * > a:hover, .uk-offcanvas-bar .uk-tab > * > a:hover,
.uk-light .uk-tab > * > a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-tab > * > a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-tab > * > a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-tab > * > a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-tab > * > a:focus,
.uk-card-primary.uk-card-body .uk-tab > * > a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-tab > * > a:focus,
.uk-card-secondary.uk-card-body .uk-tab > * > a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-tab > * > a:focus,
.uk-overlay-primary .uk-tab > * > a:focus,
.uk-offcanvas-bar .uk-tab > * > a:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-tab > .uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-tab > .uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-tab > .uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-tab > .uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-tab > .uk-active > a, .uk-card-primary.uk-card-body .uk-tab > .uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-tab > .uk-active > a, .uk-card-secondary.uk-card-body .uk-tab > .uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-tab > .uk-active > a, .uk-overlay-primary .uk-tab > .uk-active > a, .uk-offcanvas-bar .uk-tab > .uk-active > a {
	color: #fff;
	border-color: #fff;
}
.uk-light .uk-tab > .uk-disabled > a, .uk-section-primary:not(.uk-preserve-color) .uk-tab > .uk-disabled > a, .uk-section-secondary:not(.uk-preserve-color) .uk-tab > .uk-disabled > a, .uk-tile-primary:not(.uk-preserve-color) .uk-tab > .uk-disabled > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-tab > .uk-disabled > a, .uk-card-primary.uk-card-body .uk-tab > .uk-disabled > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-tab > .uk-disabled > a, .uk-card-secondary.uk-card-body .uk-tab > .uk-disabled > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-tab > .uk-disabled > a, .uk-overlay-primary .uk-tab > .uk-disabled > a, .uk-offcanvas-bar .uk-tab > .uk-disabled > a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-slidenav, .uk-section-primary:not(.uk-preserve-color) .uk-slidenav, .uk-section-secondary:not(.uk-preserve-color) .uk-slidenav, .uk-tile-primary:not(.uk-preserve-color) .uk-slidenav, .uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav, .uk-card-primary.uk-card-body .uk-slidenav, .uk-card-primary > :not([class*=uk-card-media]) .uk-slidenav, .uk-card-secondary.uk-card-body .uk-slidenav, .uk-card-secondary > :not([class*=uk-card-media]) .uk-slidenav, .uk-overlay-primary .uk-slidenav, .uk-offcanvas-bar .uk-slidenav {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-slidenav:hover, .uk-section-primary:not(.uk-preserve-color) .uk-slidenav:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:hover, .uk-card-primary.uk-card-body .uk-slidenav:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-slidenav:hover, .uk-card-secondary.uk-card-body .uk-slidenav:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-slidenav:hover, .uk-overlay-primary .uk-slidenav:hover, .uk-offcanvas-bar .uk-slidenav:hover,
.uk-light .uk-slidenav:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:focus,
.uk-card-primary.uk-card-body .uk-slidenav:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-slidenav:focus,
.uk-card-secondary.uk-card-body .uk-slidenav:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-slidenav:focus,
.uk-overlay-primary .uk-slidenav:focus,
.uk-offcanvas-bar .uk-slidenav:focus {
	color: rgba(255, 255, 255, 0.95);
}
.uk-light .uk-slidenav:active, .uk-section-primary:not(.uk-preserve-color) .uk-slidenav:active, .uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:active, .uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:active, .uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:active, .uk-card-primary.uk-card-body .uk-slidenav:active, .uk-card-primary > :not([class*=uk-card-media]) .uk-slidenav:active, .uk-card-secondary.uk-card-body .uk-slidenav:active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-slidenav:active, .uk-overlay-primary .uk-slidenav:active, .uk-offcanvas-bar .uk-slidenav:active {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-dotnav > * > *, .uk-section-primary:not(.uk-preserve-color) .uk-dotnav > * > *, .uk-section-secondary:not(.uk-preserve-color) .uk-dotnav > * > *, .uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > * > *, .uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > * > *, .uk-card-primary.uk-card-body .uk-dotnav > * > *, .uk-card-primary > :not([class*=uk-card-media]) .uk-dotnav > * > *, .uk-card-secondary.uk-card-body .uk-dotnav > * > *, .uk-card-secondary > :not([class*=uk-card-media]) .uk-dotnav > * > *, .uk-overlay-primary .uk-dotnav > * > *, .uk-offcanvas-bar .uk-dotnav > * > * {
	background-color: transparent;
	border-color: rgba(255, 255, 255, 0.9);
}
.uk-light .uk-dotnav > * > :hover, .uk-section-primary:not(.uk-preserve-color) .uk-dotnav > * > :hover, .uk-section-secondary:not(.uk-preserve-color) .uk-dotnav > * > :hover, .uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > * > :hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > * > :hover, .uk-card-primary.uk-card-body .uk-dotnav > * > :hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-dotnav > * > :hover, .uk-card-secondary.uk-card-body .uk-dotnav > * > :hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-dotnav > * > :hover, .uk-overlay-primary .uk-dotnav > * > :hover, .uk-offcanvas-bar .uk-dotnav > * > :hover,
.uk-light .uk-dotnav > * > :focus,
.uk-section-primary:not(.uk-preserve-color) .uk-dotnav > * > :focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav > * > :focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > * > :focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > * > :focus,
.uk-card-primary.uk-card-body .uk-dotnav > * > :focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-dotnav > * > :focus,
.uk-card-secondary.uk-card-body .uk-dotnav > * > :focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-dotnav > * > :focus,
.uk-overlay-primary .uk-dotnav > * > :focus,
.uk-offcanvas-bar .uk-dotnav > * > :focus {
	background-color: rgba(255, 255, 255, 0.9);
	border-color: transparent;
}
.uk-light .uk-dotnav > * > :active, .uk-section-primary:not(.uk-preserve-color) .uk-dotnav > * > :active, .uk-section-secondary:not(.uk-preserve-color) .uk-dotnav > * > :active, .uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > * > :active, .uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > * > :active, .uk-card-primary.uk-card-body .uk-dotnav > * > :active, .uk-card-primary > :not([class*=uk-card-media]) .uk-dotnav > * > :active, .uk-card-secondary.uk-card-body .uk-dotnav > * > :active, .uk-card-secondary > :not([class*=uk-card-media]) .uk-dotnav > * > :active, .uk-overlay-primary .uk-dotnav > * > :active, .uk-offcanvas-bar .uk-dotnav > * > :active {
	background-color: rgba(255, 255, 255, 0.5);
	border-color: transparent;
}
.uk-light .uk-dotnav > .uk-active > *, .uk-section-primary:not(.uk-preserve-color) .uk-dotnav > .uk-active > *, .uk-section-secondary:not(.uk-preserve-color) .uk-dotnav > .uk-active > *, .uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > .uk-active > *, .uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > .uk-active > *, .uk-card-primary.uk-card-body .uk-dotnav > .uk-active > *, .uk-card-primary > :not([class*=uk-card-media]) .uk-dotnav > .uk-active > *, .uk-card-secondary.uk-card-body .uk-dotnav > .uk-active > *, .uk-card-secondary > :not([class*=uk-card-media]) .uk-dotnav > .uk-active > *, .uk-overlay-primary .uk-dotnav > .uk-active > *, .uk-offcanvas-bar .uk-dotnav > .uk-active > * {
	background-color: rgba(255, 255, 255, 0.9);
	border-color: transparent;
}
.uk-light .uk-accordion-title::before, .uk-section-primary:not(.uk-preserve-color) .uk-accordion-title::before, .uk-section-secondary:not(.uk-preserve-color) .uk-accordion-title::before, .uk-tile-primary:not(.uk-preserve-color) .uk-accordion-title::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-accordion-title::before, .uk-card-primary.uk-card-body .uk-accordion-title::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-accordion-title::before, .uk-card-secondary.uk-card-body .uk-accordion-title::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-accordion-title::before, .uk-overlay-primary .uk-accordion-title::before, .uk-offcanvas-bar .uk-accordion-title::before {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22rgba(255, 255, 255, 0.7)%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22rgba(255, 255, 255, 0.7)%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-open > .uk-accordion-title::before, .uk-section-primary:not(.uk-preserve-color) .uk-open > .uk-accordion-title::before, .uk-section-secondary:not(.uk-preserve-color) .uk-open > .uk-accordion-title::before, .uk-tile-primary:not(.uk-preserve-color) .uk-open > .uk-accordion-title::before, .uk-tile-secondary:not(.uk-preserve-color) .uk-open > .uk-accordion-title::before, .uk-card-primary.uk-card-body .uk-open > .uk-accordion-title::before, .uk-card-primary > :not([class*=uk-card-media]) .uk-open > .uk-accordion-title::before, .uk-card-secondary.uk-card-body .uk-open > .uk-accordion-title::before, .uk-card-secondary > :not([class*=uk-card-media]) .uk-open > .uk-accordion-title::before, .uk-overlay-primary .uk-open > .uk-accordion-title::before, .uk-offcanvas-bar .uk-open > .uk-accordion-title::before {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22rgba(255, 255, 255, 0.7)%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-iconnav > * > a, .uk-section-primary:not(.uk-preserve-color) .uk-iconnav > * > a, .uk-section-secondary:not(.uk-preserve-color) .uk-iconnav > * > a, .uk-tile-primary:not(.uk-preserve-color) .uk-iconnav > * > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav > * > a, .uk-card-primary.uk-card-body .uk-iconnav > * > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-iconnav > * > a, .uk-card-secondary.uk-card-body .uk-iconnav > * > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-iconnav > * > a, .uk-overlay-primary .uk-iconnav > * > a, .uk-offcanvas-bar .uk-iconnav > * > a {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-iconnav > * > a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-iconnav > * > a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-iconnav > * > a:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-iconnav > * > a:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav > * > a:hover, .uk-card-primary.uk-card-body .uk-iconnav > * > a:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-iconnav > * > a:hover, .uk-card-secondary.uk-card-body .uk-iconnav > * > a:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-iconnav > * > a:hover, .uk-overlay-primary .uk-iconnav > * > a:hover, .uk-offcanvas-bar .uk-iconnav > * > a:hover,
.uk-light .uk-iconnav > * > a:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-iconnav > * > a:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav > * > a:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav > * > a:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav > * > a:focus,
.uk-card-primary.uk-card-body .uk-iconnav > * > a:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-iconnav > * > a:focus,
.uk-card-secondary.uk-card-body .uk-iconnav > * > a:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-iconnav > * > a:focus,
.uk-overlay-primary .uk-iconnav > * > a:focus,
.uk-offcanvas-bar .uk-iconnav > * > a:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-iconnav > .uk-active > a, .uk-section-primary:not(.uk-preserve-color) .uk-iconnav > .uk-active > a, .uk-section-secondary:not(.uk-preserve-color) .uk-iconnav > .uk-active > a, .uk-tile-primary:not(.uk-preserve-color) .uk-iconnav > .uk-active > a, .uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav > .uk-active > a, .uk-card-primary.uk-card-body .uk-iconnav > .uk-active > a, .uk-card-primary > :not([class*=uk-card-media]) .uk-iconnav > .uk-active > a, .uk-card-secondary.uk-card-body .uk-iconnav > .uk-active > a, .uk-card-secondary > :not([class*=uk-card-media]) .uk-iconnav > .uk-active > a, .uk-overlay-primary .uk-iconnav > .uk-active > a, .uk-offcanvas-bar .uk-iconnav > .uk-active > a {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-text-lead, .uk-section-primary:not(.uk-preserve-color) .uk-text-lead, .uk-section-secondary:not(.uk-preserve-color) .uk-text-lead, .uk-tile-primary:not(.uk-preserve-color) .uk-text-lead, .uk-tile-secondary:not(.uk-preserve-color) .uk-text-lead, .uk-card-primary.uk-card-body .uk-text-lead, .uk-card-primary > :not([class*=uk-card-media]) .uk-text-lead, .uk-card-secondary.uk-card-body .uk-text-lead, .uk-card-secondary > :not([class*=uk-card-media]) .uk-text-lead, .uk-overlay-primary .uk-text-lead, .uk-offcanvas-bar .uk-text-lead {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-text-meta, .uk-section-primary:not(.uk-preserve-color) .uk-text-meta, .uk-section-secondary:not(.uk-preserve-color) .uk-text-meta, .uk-tile-primary:not(.uk-preserve-color) .uk-text-meta, .uk-tile-secondary:not(.uk-preserve-color) .uk-text-meta, .uk-card-primary.uk-card-body .uk-text-meta, .uk-card-primary > :not([class*=uk-card-media]) .uk-text-meta, .uk-card-secondary.uk-card-body .uk-text-meta, .uk-card-secondary > :not([class*=uk-card-media]) .uk-text-meta, .uk-overlay-primary .uk-text-meta, .uk-offcanvas-bar .uk-text-meta {
	color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-text-muted, .uk-section-primary:not(.uk-preserve-color) .uk-text-muted, .uk-section-secondary:not(.uk-preserve-color) .uk-text-muted, .uk-tile-primary:not(.uk-preserve-color) .uk-text-muted, .uk-tile-secondary:not(.uk-preserve-color) .uk-text-muted, .uk-card-primary.uk-card-body .uk-text-muted, .uk-card-primary > :not([class*=uk-card-media]) .uk-text-muted, .uk-card-secondary.uk-card-body .uk-text-muted, .uk-card-secondary > :not([class*=uk-card-media]) .uk-text-muted, .uk-overlay-primary .uk-text-muted, .uk-offcanvas-bar .uk-text-muted {
	color: rgba(255, 255, 255, 0.5) !important;
}
.uk-light .uk-text-emphasis, .uk-section-primary:not(.uk-preserve-color) .uk-text-emphasis, .uk-section-secondary:not(.uk-preserve-color) .uk-text-emphasis, .uk-tile-primary:not(.uk-preserve-color) .uk-text-emphasis, .uk-tile-secondary:not(.uk-preserve-color) .uk-text-emphasis, .uk-card-primary.uk-card-body .uk-text-emphasis, .uk-card-primary > :not([class*=uk-card-media]) .uk-text-emphasis, .uk-card-secondary.uk-card-body .uk-text-emphasis, .uk-card-secondary > :not([class*=uk-card-media]) .uk-text-emphasis, .uk-overlay-primary .uk-text-emphasis, .uk-offcanvas-bar .uk-text-emphasis {
	color: #fff !important;
}
.uk-light .uk-text-primary, .uk-section-primary:not(.uk-preserve-color) .uk-text-primary, .uk-section-secondary:not(.uk-preserve-color) .uk-text-primary, .uk-tile-primary:not(.uk-preserve-color) .uk-text-primary, .uk-tile-secondary:not(.uk-preserve-color) .uk-text-primary, .uk-card-primary.uk-card-body .uk-text-primary, .uk-card-primary > :not([class*=uk-card-media]) .uk-text-primary, .uk-card-secondary.uk-card-body .uk-text-primary, .uk-card-secondary > :not([class*=uk-card-media]) .uk-text-primary, .uk-overlay-primary .uk-text-primary, .uk-offcanvas-bar .uk-text-primary {
	color: #fff !important;
}
.uk-light .uk-text-secondary, .uk-section-primary:not(.uk-preserve-color) .uk-text-secondary, .uk-section-secondary:not(.uk-preserve-color) .uk-text-secondary, .uk-tile-primary:not(.uk-preserve-color) .uk-text-secondary, .uk-tile-secondary:not(.uk-preserve-color) .uk-text-secondary, .uk-card-primary.uk-card-body .uk-text-secondary, .uk-card-primary > :not([class*=uk-card-media]) .uk-text-secondary, .uk-card-secondary.uk-card-body .uk-text-secondary, .uk-card-secondary > :not([class*=uk-card-media]) .uk-text-secondary, .uk-overlay-primary .uk-text-secondary, .uk-offcanvas-bar .uk-text-secondary {
	color: #fff !important;
}
.uk-light .uk-column-divider, .uk-section-primary:not(.uk-preserve-color) .uk-column-divider, .uk-section-secondary:not(.uk-preserve-color) .uk-column-divider, .uk-tile-primary:not(.uk-preserve-color) .uk-column-divider, .uk-tile-secondary:not(.uk-preserve-color) .uk-column-divider, .uk-card-primary.uk-card-body .uk-column-divider, .uk-card-primary > :not([class*=uk-card-media]) .uk-column-divider, .uk-card-secondary.uk-card-body .uk-column-divider, .uk-card-secondary > :not([class*=uk-card-media]) .uk-column-divider, .uk-overlay-primary .uk-column-divider, .uk-offcanvas-bar .uk-column-divider {
	column-rule-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-logo, .uk-section-primary:not(.uk-preserve-color) .uk-logo, .uk-section-secondary:not(.uk-preserve-color) .uk-logo, .uk-tile-primary:not(.uk-preserve-color) .uk-logo, .uk-tile-secondary:not(.uk-preserve-color) .uk-logo, .uk-card-primary.uk-card-body .uk-logo, .uk-card-primary > :not([class*=uk-card-media]) .uk-logo, .uk-card-secondary.uk-card-body .uk-logo, .uk-card-secondary > :not([class*=uk-card-media]) .uk-logo, .uk-overlay-primary .uk-logo, .uk-offcanvas-bar .uk-logo {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-logo:hover, .uk-section-primary:not(.uk-preserve-color) .uk-logo:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-logo:hover, .uk-tile-primary:not(.uk-preserve-color) .uk-logo:hover, .uk-tile-secondary:not(.uk-preserve-color) .uk-logo:hover, .uk-card-primary.uk-card-body .uk-logo:hover, .uk-card-primary > :not([class*=uk-card-media]) .uk-logo:hover, .uk-card-secondary.uk-card-body .uk-logo:hover, .uk-card-secondary > :not([class*=uk-card-media]) .uk-logo:hover, .uk-overlay-primary .uk-logo:hover, .uk-offcanvas-bar .uk-logo:hover,
.uk-light .uk-logo:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-logo:focus,
.uk-section-secondary:not(.uk-preserve-color) .uk-logo:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-logo:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-logo:focus,
.uk-card-primary.uk-card-body .uk-logo:focus,
.uk-card-primary > :not([class*=uk-card-media]) .uk-logo:focus,
.uk-card-secondary.uk-card-body .uk-logo:focus,
.uk-card-secondary > :not([class*=uk-card-media]) .uk-logo:focus,
.uk-overlay-primary .uk-logo:focus,
.uk-offcanvas-bar .uk-logo:focus {
	color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-section-primary:not(.uk-preserve-color) .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-section-secondary:not(.uk-preserve-color) .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-tile-primary:not(.uk-preserve-color) .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-tile-secondary:not(.uk-preserve-color) .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-card-primary.uk-card-body .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-card-primary > :not([class*=uk-card-media]) .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-card-secondary.uk-card-body .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-card-secondary > :not([class*=uk-card-media]) .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-overlay-primary .uk-logo > :not(.uk-logo-inverse):not(:only-of-type), .uk-offcanvas-bar .uk-logo > :not(.uk-logo-inverse):not(:only-of-type) {
	display: none;
}
.uk-light .uk-logo-inverse, .uk-section-primary:not(.uk-preserve-color) .uk-logo-inverse, .uk-section-secondary:not(.uk-preserve-color) .uk-logo-inverse, .uk-tile-primary:not(.uk-preserve-color) .uk-logo-inverse, .uk-tile-secondary:not(.uk-preserve-color) .uk-logo-inverse, .uk-card-primary.uk-card-body .uk-logo-inverse, .uk-card-primary > :not([class*=uk-card-media]) .uk-logo-inverse, .uk-card-secondary.uk-card-body .uk-logo-inverse, .uk-card-secondary > :not([class*=uk-card-media]) .uk-logo-inverse, .uk-overlay-primary .uk-logo-inverse, .uk-offcanvas-bar .uk-logo-inverse {
	display: inline;
}

/* ========================================================================
   Component: Print
 ========================================================================== */
@media print {
	*,
*::before,
*::after {
		background: transparent !important;
		color: black !important;
		box-shadow: none !important;
		text-shadow: none !important;
	}

	a,
a:visited {
		text-decoration: underline;
	}

	pre,
blockquote {
		border: 1px solid #999;
		page-break-inside: avoid;
	}

	thead {
		display: table-header-group;
	}

	tr,
img {
		page-break-inside: avoid;
	}

	img {
		max-width: 100% !important;
	}

	@page {
		margin: 0.5cm;
	}
	p,
h2,
h3 {
		orphans: 3;
		widows: 3;
	}

	h2,
h3 {
		page-break-after: avoid;
	}
}
h1, .uk-h1, h2, .uk-h2, h3, .uk-h3, h4, .uk-h4, h5, .uk-h5, h6, .uk-h6, .uk-heading-small, .uk-heading-medium, .uk-heading-large, .uk-heading-xlarge, .uk-heading-2xlarge {
	font-family: inherit;
	color: inherit;
	font-weight: bold;
}

h1, .uk-h1 {
	margin: -15px -15px 20px;
	padding: 10px;
	border-bottom: 4px solid #c4d0d8;
	font-size: 1.71428571rem;
	line-height: 26px;
}

h2, .uk-h2 {
	margin-top: 20px;
	font-size: 1.57142857rem;
}

h3, .uk-h3 {
	margin-top: 20px;
	margin-bottom: 15px;
	font-size: 1.42857143rem;
}

h4, .uk-h4 {
	margin-top: 20px;
	margin-bottom: 10px;
	font-size: 1.28571429rem;
}

h5, .uk-h5 {
	margin-top: 20px;
	margin-bottom: 5px;
	font-size: 1.14285714rem;
}

h6, .uk-h6 {
	margin-top: 20px;
	margin-bottom: 2px;
	font-size: 1rem;
}

hr,
.uk-hr {
	border-color: #c4d0d8;
}

.uk-margin-xsmall {
	margin-bottom: 5px;
}
* + .uk-margin-xsmall {
	margin-top: 5px !important;
}
.uk-margin-xsmall-top {
	margin-top: 5px !important;
}
.uk-margin-xsmall-bottom {
	margin-bottom: 5px !important;
}
.uk-margin-xsmall-left {
	margin-left: 5px !important;
}
.uk-margin-xsmall-right {
	margin-right: 5px !important;
}
.uk-margin-v {
	margin-top: 20px;
	margin-bottom: 20px;
}
.uk-margin-v-small {
	margin-top: 10px;
	margin-bottom: 10px;
}
.uk-margin-v-xsmall {
	margin-top: 5px;
	margin-bottom: 5px;
}
.uk-margin-v-medium {
	margin-top: 40px;
	margin-bottom: 40px;
}
.uk-margin-v-large {
	margin-top: 40px;
	margin-bottom: 40px;
}
@media (min-width: 1200px) {
	.uk-margin-v-large {
		margin-top: 70px;
		margin-bottom: 70px;
	}
}
.uk-margin-v-xlarge {
	margin-top: 70px;
	margin-bottom: 70px;
}
@media (min-width: 1200px) {
	.uk-margin-v-xlarge {
		margin-top: 140px;
		margin-bottom: 140px;
	}
}
.uk-margin-h {
	margin-left: 20px;
	margin-right: 20px;
}
.uk-margin-h-small {
	margin-left: 10px;
	margin-right: 10px;
}
.uk-margin-h-xsmall {
	margin-left: 5px;
	margin-right: 5px;
}
.uk-margin-h-medium {
	margin-left: 40px;
	margin-right: 40px;
}
.uk-margin-h-large {
	margin-left: 40px;
	margin-right: 40px;
}
@media (min-width: 1200px) {
	.uk-margin-h-large {
		margin-left: 70px;
		margin-right: 70px;
	}
}
.uk-margin-h-xlarge {
	margin-left: 70px;
	margin-right: 70px;
}
@media (min-width: 1200px) {
	.uk-margin-h-xlarge {
		margin-left: 140px;
		margin-right: 140px;
	}
}

.uk-padding-top {
	padding-top: 30px !important;
}
.uk-padding-bottom {
	padding-bottom: 30px !important;
}
.uk-padding-left {
	padding-left: 30px !important;
}
.uk-padding-right {
	padding-right: 30px !important;
}
@media (min-width: 1200px) {
	.uk-padding-top {
		padding-top: 40px !important;
	}
	.uk-padding-bottom {
		padding-bottom: 40px !important;
	}
	.uk-padding-left {
		padding-left: 40px !important;
	}
	.uk-padding-right {
		padding-right: 40px !important;
	}
}
.uk-padding-xxsmall {
	padding: 5px !important;
}
.uk-padding-xxsmall-top {
	padding-top: 5px !important;
}
.uk-padding-xxsmall-bottom {
	padding-bottom: 5px !important;
}
.uk-padding-xxsmall-left {
	padding-left: 5px !important;
}
.uk-padding-xxsmall-right {
	padding-right: 5px !important;
}
.uk-padding-xsmall {
	padding: 10px !important;
}
.uk-padding-xsmall-top {
	padding-top: 10px !important;
}
.uk-padding-xsmall-bottom {
	padding-bottom: 10px !important;
}
.uk-padding-xsmall-left {
	padding-left: 10px !important;
}
.uk-padding-xsmall-right {
	padding-right: 10px !important;
}
.uk-padding-small-top {
	padding-top: 15px !important;
}
.uk-padding-small-bottom {
	padding-bottom: 15px !important;
}
.uk-padding-small-left {
	padding-left: 15px !important;
}
.uk-padding-small-right {
	padding-right: 15px !important;
}
.uk-padding-large-top {
	padding-top: 30px !important;
}
.uk-padding-large-bottom {
	padding-bottom: 30px !important;
}
.uk-padding-large-left {
	padding-left: 30px !important;
}
.uk-padding-large-right {
	padding-right: 30px !important;
}
@media (min-width: 1200px) {
	.uk-padding-large-top {
		padding-top: 70px !important;
	}
	.uk-padding-large-bottom {
		padding-bottom: 70px !important;
	}
	.uk-padding-large-left {
		padding-left: 70px !important;
	}
	.uk-padding-large-right {
		padding-right: 70px !important;
	}
}

.uk-table-hover > tr:hover,
.uk-table-hover tbody tr:hover {
	background-color: #f1dbd6;
}
.uk-table-hover > thead tr:hover,
.uk-table-hover tbody thead tr:hover {
	background-color: transparent;
}

.uk-fieldset.border legend,
.uk-fieldset.border .uk-legend {
	padding: 0 0.5em;
	width: auto;
}

.uk-legend {
	font-size: 1.2rem;
}

.uk-form-small:not(textarea):not([multiple]):not([size]) {
	height: 24px;
}
.uk-form-small.uk-select:not(textarea):not([multiple]):not([size]) {
	padding-right: 20px;
}

.uk-form-label input,
label input {
	font-size: 1rem;
}

.uk-input,
.uk-select:not([multiple]):not([size]),
.uk-search-default .uk-search-input {
	height: 30px;
}

.uk-input,
.uk-select,
.uk-textarea {
	border-radius: 4px;
	border-color: #506d90;
}
.uk-input:disabled,
.uk-select:disabled,
.uk-textarea:disabled {
	border-color: #aad4ef;
}

.uk-input[type=number] {
	padding-right: 1px;
}
.uk-input[type=number]::-webkit-inner-spin-button {
	margin-left: 5px;
}

.uk-select:not([multiple]):not([size]).small {
	height: 22px;
	font-size: 0.875rem;
}

.uk-search-input {
	margin: 0;
	padding-left: 6px;
	padding-right: 6px;
	border: 1px solid #396e90;
	border-radius: 4px;
	background: transparent;
	width: 100%;
	height: 30px;
	overflow: visible;
	-webkit-appearance: none;
	vertical-align: middle;
	color: #666;
	font: inherit;
}
.uk-search-input::-webkit-search-cancel-button {
	-webkit-appearance: auto;
}

.uk-radio,
.uk-checkbox {
	margin-top: -3px;
	margin-left: 5px;
	margin-right: 5px;
	border-color: #396e90;
	background-color: #fff;
	width: 18px;
	height: 18px;
}
.uk-radio:checked,
.uk-checkbox:checked {
	background-color: #fff;
	border-color: #396e90;
}
.uk-radio:checked:focus,
.uk-checkbox:checked:focus {
	background-color: #fff;
}
.uk-radio:disabled,
.uk-checkbox:disabled {
	background-color: #e2e2e2;
	border-color: #7caece;
}
.uk-radio:disabled ~ span,
.uk-checkbox:disabled ~ span {
	opacity: 0.6;
}

.uk-checkbox {
	border-radius: 3px;
}
.uk-checkbox:checked {
	background-image: url("data:image/svg+xml; charset=UTF-8, %3csvg%20width%3d%2218%22%20height%3d%2218%22%20viewBox%3d%220%200%2018%2018%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3cpolygon%20fill%3d%22%23eb6d45%22%20points%3d%2214.4%2c2.9%206.7%2c10.3%203.6%2c7.2%201.3%2c9.8%206.7%2c15.1%2016.7%2c5.1%22%2f%3e%3c%2fsvg%3e");
	border-color: #396e90;
}
.uk-checkbox:checked:disabled {
	background-image: url("data:image/svg+xml; charset=UTF-8, %3csvg%20width%3d%2218%22%20height%3d%2218%22%20viewBox%3d%220%200%2018%2018%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3cpolygon%20fill%3d%22%23f09175%22%20points%3d%2214.4%2c2.9%206.7%2c10.3%203.6%2c7.2%201.3%2c9.8%206.7%2c15.1%2016.7%2c5.1%22%2f%3e%3c%2fsvg%3e");
}
.uk-checkbox:indeterminate {
	background-color: #fff;
	background-image: url("data:image/svg+xml; charset=UTF-8, %3csvg%20width%3d%2216%22%20height%3d%2216%22%20viewBox%3d%220%200%2016%2016%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3crect%20fill%3d%22%23eb6d45%22%20x%3d%223%22%20y%3d%227%22%20width%3d%2210%22%20height%3d%223%22%20%2f%3e%3c%2fsvg%3e");
	border-color: #396e90;
}

.uk-radio:checked {
	background-image: url("data:image/svg+xml; charset=UTF-8, %3csvg%20width%3d%2218%22%20height%3d%2218%22%20viewBox%3d%220%200%2018%2018%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3ccircle%20fill%3d%22%23eb6d45%22%20cx%3d%229%22%20cy%3d%229%22%20r%3d%226%22%20%2f%3e%3c%2fsvg%3e");
}
.uk-radio:disabled:checked {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg%20width%3d%2218%22%20height%3d%2218%22%20viewBox%3d%220%200%2018%2018%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3ccircle%20fill%3d%22%23999%22%20cx%3d%229%22%20cy%3d%229%22%20r%3d%226%22%20%2f%3e%3c%2fsvg%3e");
}

.uk-select:not([multiple]):not([size]) {
	background-image: url("data:image/svg+xml;charset=UTF-8, %3csvg%20width%3d%2224%22%20height%3d%2216%22%20viewBox%3d%220%200%2024%2016%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3cpolygon%20fill%3d%22%23396e90%22%20points%3d%2212%2c11.3%206.3%2c5.3%2017.7%2c5.3%22%20%2f%3e%3c%2fsvg%3e");
}

.uk-tab::before {
	border-color: #e5e5e5;
}
.uk-tab > * > a {
	border-bottom-width: 2px;
}
.uk-tab > .uk-active > a {
	border-color: #eb6d45;
}
.uk-tab.k-tab-1 {
	margin-left: 0;
	margin-bottom: -1px;
}
.uk-tab.k-tab-1::before {
	content: none;
}
.uk-tab.k-tab-1 > * {
	padding: 0 20px;
	border: 1px solid #ddd;
	background-color: #f5f5f5;
	border-radius: 8px 8px 0 0;
}
.uk-tab.k-tab-1 > * a {
	font-size: 1.28571429rem;
	font-weight: 600;
	color: inherit;
}
.uk-tab.k-tab-1 > *.uk-active {
	border-bottom-color: transparent;
	background-color: #fff;
}
.uk-tab.k-tab-1 > *.uk-active a {
	border: none;
	color: inherit;
}
.uk-tab.k-tab-1 > * + * {
	margin-left: -1px;
}
.uk-tab.k-tab-1 + .uk-switcher {
	border: 1px solid #ddd;
}
.uk-tab.k-tab-2 {
	margin-left: 0;
	margin-bottom: -1px;
	padding: 0 1rem;
}
.uk-tab.k-tab-2::before {
	content: none;
}
.uk-tab.k-tab-2 > * {
	padding: 0;
	border: 1px solid #ddd;
	background-color: #f5f5f5;
	border-radius: 8px 8px 0 0;
}
.uk-tab.k-tab-2 > * a {
	padding: 3px 15px;
	font-size: 1rem;
	font-weight: 600;
	color: inherit;
}
.uk-tab.k-tab-2 > *.uk-active {
	border-bottom-color: transparent;
	background-color: #fff;
}
.uk-tab.k-tab-2 > *.uk-active a {
	border: none;
	color: inherit;
}
.uk-tab.k-tab-2 > * + * {
	margin-left: -1px;
}
.uk-tab.k-tab-2 + * {
	border-top: 1px solid #ddd;
}

.uk-button {
	padding: 5px 15px;
	border-radius: 5px;
	border-color: #396e90;
	min-width: 109px;
	min-height: 30px;
	line-height: 1;
	color: #396e90;
	font-size: 1rem;
	font-weight: 600;
	text-transform: none;
}
.uk-button + .uk-button {
	margin-left: 0.2em;
}
.uk-button:hover {
	background-color: #f4f7f9;
	border-color: #396e90;
	color: #396e90;
}
.uk-button.disabled, .uk-button[disabled] {
	background-color: #a8b2b9;
	border-color: #a8b2b9;
	color: #fff;
	pointer-events: none;
}
.uk-button.disabled:hover, .uk-button[disabled]:hover {
	background-color: #a8b2b9;
	border-color: #a8b2b9;
}
.uk-button small {
	display: block;
	font-size: 10px;
	font-weight: 300;
	line-height: 1rem;
}
.uk-button.r2 {
	min-height: 39px;
}
.uk-button-small {
	padding: 3px 10px;
	line-height: 16px;
	min-height: 22px;
	min-width: auto;
	font-size: 0.85714286rem;
	font-weight: normal;
}
.uk-button-small + .uk-button-small {
	margin-left: 0.2em;
}
.uk-button-xsmall {
	padding: 3px 6px;
	line-height: 11px;
	min-height: 18px;
	min-width: auto;
	font-size: 0.78571429rem;
	font-weight: normal;
}
.uk-button-xsmall + .uk-button-xsmall {
	margin-left: 0.2em;
}
.uk-button-large {
	padding: 7 40px;
	line-height: 34px;
}
.uk-button-group {
	margin-left: 1px;
}
.uk-button-group [class*=uk-button-] {
	border-radius: 0;
}
.uk-button-group [class*=uk-button-]:first-child {
	border-top-left-radius: 5px;
	border-bottom-left-radius: 5px;
}
.uk-button-group [class*=uk-button-]:last-child {
	border-top-right-radius: 5px;
	border-bottom-right-radius: 5px;
}
.uk-button-group label.button-default {
	margin: 0 0 0 -1px;
}
.uk-button-group label.button-default [type=radio] + span,
.uk-button-group label.button-default [type=checkbox] + span {
	border-radius: 0;
}
.uk-button-group label.button-default:first-child > span {
	border-top-left-radius: 5px;
	border-bottom-left-radius: 5px;
}
.uk-button-group label.button-default:last-child > span {
	border-top-right-radius: 5px;
	border-bottom-right-radius: 5px;
}
.uk-button-group label.button-default + label.button-default [type=radio]:checked + span,
.uk-button-group label.button-default + label.button-default [type=checkbox]:checked + span {
	border-left-color: #fff;
}
.uk-button-group > * + * {
	margin-left: -1px;
}
.uk-button-group .uk-button:not(.uk-button-default) + .uk-button:not(.uk-button-default) {
	margin-left: 1px;
}
.uk-button-group.small .uk-button,
.uk-button-group.small .button-default > span {
	padding: 3px 10px;
	line-height: 16px;
	min-height: 22px;
	min-width: auto;
	font-size: 0.85714286rem;
	font-weight: normal;
}
.uk-button-group.xsmall .uk-button,
.uk-button-group.xsmall .button-default > span {
	padding: 3px 6px;
	line-height: 11px;
	min-height: 18px;
	min-width: auto;
	font-size: 0.78571429rem;
	font-weight: normal;
}
.uk-button-basic {
	background-color: #396e90;
	color: #fff;
}
.uk-button-basic:hover {
	background-color: #407ca2;
	border-color: transparent;
	color: #fff;
}
.uk-button-primary {
	border-color: transparent;
	color: #fff;
}
.uk-button-primary:hover {
	background-color: #3694f2;
	border-color: transparent;
	color: #fff;
}
.uk-button-secondary {
	border-color: transparent;
	color: #fff;
}
.uk-button-secondary:hover {
	background-color: #2f2f2f;
	border-color: transparent;
	color: #fff;
}
.uk-button-danger {
	border-color: transparent;
	color: #fff;
}
.uk-button-danger:hover {
	background-color: #f26781;
	border-color: transparent;
	color: #fff;
}
.uk-button-success {
	background-color: #32d296;
	color: #fff;
}
.uk-button-success:hover {
	background-color: #47d7a1;
	border-color: transparent;
	color: #fff;
}
.uk-button-warning {
	background-color: #faa05a;
	color: #fff;
}
.uk-button-warning:hover {
	background-color: #fbae73;
	border-color: transparent;
	color: #fff;
}
.uk-button-gray {
	background-color: #a8b2b9;
	color: #fff;
}
.uk-button-gray:hover {
	background-color: #b6bfc4;
	border-color: transparent;
	color: #fff;
}
.uk-button-darkgray {
	background-color: #707070;
	color: #fff;
}
.uk-button-darkgray:hover {
	background-color: #7d7d7d;
	border-color: transparent;
	color: #fff;
}
.uk-button-orange {
	background-color: #eb6d45;
	color: #fff;
}
.uk-button-orange:hover {
	background-color: #ed7f5c;
	border-color: transparent;
	color: #fff;
}

a.uk-button {
	display: inline-flex;
	align-items: center;
}

.uk-modal {
	background: rgba(0, 0, 0, 0.25);
	width: 100% !important;
}
.uk-modal-page body {
	overflow-y: initial !important;
}
.uk-modal [class*=uk-modal-close-] {
	border: none;
	top: 18px;
	cursor: pointer;
}
.uk-modal [class*=uk-modal-close-]::before {
	content: "\e00d";
	font-family: icon-ishare;
	font-size: 1.5rem;
	color: #396e90;
}
.uk-modal .uk-modal-dialog {
	box-shadow: 0 0 15px 7px rgba(0, 0, 0, 0.1);
}
.uk-modal .uk-modal-header {
	margin: 15px 15px 0;
	padding: 8px 0 19px;
	border-bottom: 4px solid #c8d0d8;
}
.uk-modal .uk-modal-header h2 {
	margin: 0;
	padding: 0;
	font-size: 1.14285714rem;
}
.uk-modal .uk-modal-body {
	padding: 20px;
}
.uk-modal .uk-modal-footer {
	padding: 20px 15px;
	border: none;
	box-shadow: 0 -12px 12px -7px rgba(0, 0, 0, 0.1);
	position: relative;
}
.uk-modal[class^=height-] .uk-modal-dialog, .uk-modal[class*=" height-"] .uk-modal-dialog {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.uk-modal[class^=height-] .uk-modal-dialog > .uk-modal-body, .uk-modal[class*=" height-"] .uk-modal-dialog > .uk-modal-body {
	min-height: auto !important;
	max-height: none !important;
	flex: 1 0 auto;
}
.uk-modal.w-auto .uk-modal-dialog {
	width: auto;
}
.uk-modal.full-100 .uk-modal-dialog {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}
.uk-modal.full-100 .uk-modal-dialog .uk-modal-body {
	flex-grow: 1;
	overflow: auto;
}
.uk-modal.w250 .uk-modal-dialog {
	width: 250px;
}
.uk-modal.w300 .uk-modal-dialog {
	width: 300px;
}
.uk-modal.w350 .uk-modal-dialog {
	width: 350px;
}
.uk-modal.w400 .uk-modal-dialog {
	width: 400px;
}
.uk-modal.w450 .uk-modal-dialog {
	width: 450px;
}
.uk-modal.w500 .uk-modal-dialog {
	width: 500px;
}
.uk-modal.w550 .uk-modal-dialog {
	width: 550px;
}
.uk-modal.w600 .uk-modal-dialog {
	width: 600px;
}
.uk-modal.w650 .uk-modal-dialog {
	width: 650px;
}
.uk-modal.w700 .uk-modal-dialog {
	width: 700px;
}
.uk-modal.w750 .uk-modal-dialog {
	width: 750px;
}
.uk-modal.w800 .uk-modal-dialog {
	width: 800px;
}
.uk-modal.w850 .uk-modal-dialog {
	width: 850px;
}
.uk-modal.w900 .uk-modal-dialog {
	width: 900px;
}
.uk-modal.w950 .uk-modal-dialog {
	width: 950px;
}
.uk-modal.w1000 .uk-modal-dialog {
	width: 1000px;
}
.uk-modal.w1050 .uk-modal-dialog {
	width: 1050px;
}
.uk-modal.w1100 .uk-modal-dialog {
	width: 1100px;
}
.uk-modal.w1150 .uk-modal-dialog {
	width: 1150px;
}
.uk-modal.w1200 .uk-modal-dialog {
	width: 1200px;
}
.uk-modal.w1250 .uk-modal-dialog {
	width: 1250px;
}
.uk-modal.w1300 .uk-modal-dialog {
	width: 1300px;
}
.uk-modal.w1350 .uk-modal-dialog {
	width: 1350px;
}
.uk-modal.w1400 .uk-modal-dialog {
	width: 1400px;
}
.uk-modal.w1450 .uk-modal-dialog {
	width: 1450px;
}
.uk-modal.w1500 .uk-modal-dialog {
	width: 1500px;
}
.uk-modal.w1550 .uk-modal-dialog {
	width: 1550px;
}
.uk-modal.w1600 .uk-modal-dialog {
	width: 1600px;
}
.uk-modal.p25 .uk-modal-dialog {
	width: 25%;
}
.uk-modal.p30 .uk-modal-dialog {
	width: 30%;
}
.uk-modal.p35 .uk-modal-dialog {
	width: 35%;
}
.uk-modal.p40 .uk-modal-dialog {
	width: 40%;
}
.uk-modal.p45 .uk-modal-dialog {
	width: 45%;
}
.uk-modal.p50 .uk-modal-dialog {
	width: 50%;
}
.uk-modal.p55 .uk-modal-dialog {
	width: 55%;
}
.uk-modal.p60 .uk-modal-dialog {
	width: 60%;
}
.uk-modal.p65 .uk-modal-dialog {
	width: 65%;
}
.uk-modal.p70 .uk-modal-dialog {
	width: 70%;
}
.uk-modal.p75 .uk-modal-dialog {
	width: 75%;
}
.uk-modal.p80 .uk-modal-dialog {
	width: 80%;
}
.uk-modal.p85 .uk-modal-dialog {
	width: 85%;
}
.uk-modal.p90 .uk-modal-dialog {
	width: 90%;
}
.uk-modal.p95 .uk-modal-dialog {
	width: 95%;
}
.uk-modal.p100 .uk-modal-dialog {
	width: 100%;
}
.uk-modal.height-100 .uk-modal-dialog {
	height: 100px;
}
.uk-modal.maxheight-100 .uk-modal-dialog {
	max-height: 100px;
}
.uk-modal.minheight-100 .uk-modal-dialog {
	min-height: 100px;
}
.uk-modal.height-125 .uk-modal-dialog {
	height: 125px;
}
.uk-modal.maxheight-125 .uk-modal-dialog {
	max-height: 125px;
}
.uk-modal.minheight-125 .uk-modal-dialog {
	min-height: 125px;
}
.uk-modal.height-150 .uk-modal-dialog {
	height: 150px;
}
.uk-modal.maxheight-150 .uk-modal-dialog {
	max-height: 150px;
}
.uk-modal.minheight-150 .uk-modal-dialog {
	min-height: 150px;
}
.uk-modal.height-175 .uk-modal-dialog {
	height: 175px;
}
.uk-modal.maxheight-175 .uk-modal-dialog {
	max-height: 175px;
}
.uk-modal.minheight-175 .uk-modal-dialog {
	min-height: 175px;
}
.uk-modal.height-200 .uk-modal-dialog {
	height: 200px;
}
.uk-modal.maxheight-200 .uk-modal-dialog {
	max-height: 200px;
}
.uk-modal.minheight-200 .uk-modal-dialog {
	min-height: 200px;
}
.uk-modal.height-225 .uk-modal-dialog {
	height: 225px;
}
.uk-modal.maxheight-225 .uk-modal-dialog {
	max-height: 225px;
}
.uk-modal.minheight-225 .uk-modal-dialog {
	min-height: 225px;
}
.uk-modal.height-250 .uk-modal-dialog {
	height: 250px;
}
.uk-modal.maxheight-250 .uk-modal-dialog {
	max-height: 250px;
}
.uk-modal.minheight-250 .uk-modal-dialog {
	min-height: 250px;
}
.uk-modal.height-275 .uk-modal-dialog {
	height: 275px;
}
.uk-modal.maxheight-275 .uk-modal-dialog {
	max-height: 275px;
}
.uk-modal.minheight-275 .uk-modal-dialog {
	min-height: 275px;
}
.uk-modal.height-300 .uk-modal-dialog {
	height: 300px;
}
.uk-modal.maxheight-300 .uk-modal-dialog {
	max-height: 300px;
}
.uk-modal.minheight-300 .uk-modal-dialog {
	min-height: 300px;
}
.uk-modal.height-325 .uk-modal-dialog {
	height: 325px;
}
.uk-modal.maxheight-325 .uk-modal-dialog {
	max-height: 325px;
}
.uk-modal.minheight-325 .uk-modal-dialog {
	min-height: 325px;
}
.uk-modal.height-350 .uk-modal-dialog {
	height: 350px;
}
.uk-modal.maxheight-350 .uk-modal-dialog {
	max-height: 350px;
}
.uk-modal.minheight-350 .uk-modal-dialog {
	min-height: 350px;
}
.uk-modal.height-375 .uk-modal-dialog {
	height: 375px;
}
.uk-modal.maxheight-375 .uk-modal-dialog {
	max-height: 375px;
}
.uk-modal.minheight-375 .uk-modal-dialog {
	min-height: 375px;
}
.uk-modal.height-400 .uk-modal-dialog {
	height: 400px;
}
.uk-modal.maxheight-400 .uk-modal-dialog {
	max-height: 400px;
}
.uk-modal.minheight-400 .uk-modal-dialog {
	min-height: 400px;
}
.uk-modal.height-425 .uk-modal-dialog {
	height: 425px;
}
.uk-modal.maxheight-425 .uk-modal-dialog {
	max-height: 425px;
}
.uk-modal.minheight-425 .uk-modal-dialog {
	min-height: 425px;
}
.uk-modal.height-450 .uk-modal-dialog {
	height: 450px;
}
.uk-modal.maxheight-450 .uk-modal-dialog {
	max-height: 450px;
}
.uk-modal.minheight-450 .uk-modal-dialog {
	min-height: 450px;
}
.uk-modal.height-475 .uk-modal-dialog {
	height: 475px;
}
.uk-modal.maxheight-475 .uk-modal-dialog {
	max-height: 475px;
}
.uk-modal.minheight-475 .uk-modal-dialog {
	min-height: 475px;
}
.uk-modal.height-500 .uk-modal-dialog {
	height: 500px;
}
.uk-modal.maxheight-500 .uk-modal-dialog {
	max-height: 500px;
}
.uk-modal.minheight-500 .uk-modal-dialog {
	min-height: 500px;
}
.uk-modal.height-525 .uk-modal-dialog {
	height: 525px;
}
.uk-modal.maxheight-525 .uk-modal-dialog {
	max-height: 525px;
}
.uk-modal.minheight-525 .uk-modal-dialog {
	min-height: 525px;
}
.uk-modal.height-550 .uk-modal-dialog {
	height: 550px;
}
.uk-modal.maxheight-550 .uk-modal-dialog {
	max-height: 550px;
}
.uk-modal.minheight-550 .uk-modal-dialog {
	min-height: 550px;
}
.uk-modal.height-575 .uk-modal-dialog {
	height: 575px;
}
.uk-modal.maxheight-575 .uk-modal-dialog {
	max-height: 575px;
}
.uk-modal.minheight-575 .uk-modal-dialog {
	min-height: 575px;
}
.uk-modal.height-600 .uk-modal-dialog {
	height: 600px;
}
.uk-modal.maxheight-600 .uk-modal-dialog {
	max-height: 600px;
}
.uk-modal.minheight-600 .uk-modal-dialog {
	min-height: 600px;
}
.uk-modal.height-625 .uk-modal-dialog {
	height: 625px;
}
.uk-modal.maxheight-625 .uk-modal-dialog {
	max-height: 625px;
}
.uk-modal.minheight-625 .uk-modal-dialog {
	min-height: 625px;
}
.uk-modal.height-650 .uk-modal-dialog {
	height: 650px;
}
.uk-modal.maxheight-650 .uk-modal-dialog {
	max-height: 650px;
}
.uk-modal.minheight-650 .uk-modal-dialog {
	min-height: 650px;
}
.uk-modal.height-675 .uk-modal-dialog {
	height: 675px;
}
.uk-modal.maxheight-675 .uk-modal-dialog {
	max-height: 675px;
}
.uk-modal.minheight-675 .uk-modal-dialog {
	min-height: 675px;
}
.uk-modal.height-700 .uk-modal-dialog {
	height: 700px;
}
.uk-modal.maxheight-700 .uk-modal-dialog {
	max-height: 700px;
}
.uk-modal.minheight-700 .uk-modal-dialog {
	min-height: 700px;
}
.uk-modal.height-725 .uk-modal-dialog {
	height: 725px;
}
.uk-modal.maxheight-725 .uk-modal-dialog {
	max-height: 725px;
}
.uk-modal.minheight-725 .uk-modal-dialog {
	min-height: 725px;
}
.uk-modal.height-750 .uk-modal-dialog {
	height: 750px;
}
.uk-modal.maxheight-750 .uk-modal-dialog {
	max-height: 750px;
}
.uk-modal.minheight-750 .uk-modal-dialog {
	min-height: 750px;
}
.uk-modal.height-775 .uk-modal-dialog {
	height: 775px;
}
.uk-modal.maxheight-775 .uk-modal-dialog {
	max-height: 775px;
}
.uk-modal.minheight-775 .uk-modal-dialog {
	min-height: 775px;
}
.uk-modal.height-800 .uk-modal-dialog {
	height: 800px;
}
.uk-modal.maxheight-800 .uk-modal-dialog {
	max-height: 800px;
}
.uk-modal.minheight-800 .uk-modal-dialog {
	min-height: 800px;
}
.uk-modal.height-825 .uk-modal-dialog {
	height: 825px;
}
.uk-modal.maxheight-825 .uk-modal-dialog {
	max-height: 825px;
}
.uk-modal.minheight-825 .uk-modal-dialog {
	min-height: 825px;
}
.uk-modal.height-850 .uk-modal-dialog {
	height: 850px;
}
.uk-modal.maxheight-850 .uk-modal-dialog {
	max-height: 850px;
}
.uk-modal.minheight-850 .uk-modal-dialog {
	min-height: 850px;
}
.uk-modal.height-875 .uk-modal-dialog {
	height: 875px;
}
.uk-modal.maxheight-875 .uk-modal-dialog {
	max-height: 875px;
}
.uk-modal.minheight-875 .uk-modal-dialog {
	min-height: 875px;
}
.uk-modal.height-900 .uk-modal-dialog {
	height: 900px;
}
.uk-modal.maxheight-900 .uk-modal-dialog {
	max-height: 900px;
}
.uk-modal.minheight-900 .uk-modal-dialog {
	min-height: 900px;
}
.uk-modal.height-925 .uk-modal-dialog {
	height: 925px;
}
.uk-modal.maxheight-925 .uk-modal-dialog {
	max-height: 925px;
}
.uk-modal.minheight-925 .uk-modal-dialog {
	min-height: 925px;
}
.uk-modal.height-950 .uk-modal-dialog {
	height: 950px;
}
.uk-modal.maxheight-950 .uk-modal-dialog {
	max-height: 950px;
}
.uk-modal.minheight-950 .uk-modal-dialog {
	min-height: 950px;
}
.uk-modal.height-975 .uk-modal-dialog {
	height: 975px;
}
.uk-modal.maxheight-975 .uk-modal-dialog {
	max-height: 975px;
}
.uk-modal.minheight-975 .uk-modal-dialog {
	min-height: 975px;
}
.uk-modal.height-1000 .uk-modal-dialog {
	height: 1000px;
}
.uk-modal.maxheight-1000 .uk-modal-dialog {
	max-height: 1000px;
}
.uk-modal.minheight-1000 .uk-modal-dialog {
	min-height: 1000px;
}

.uk-label {
	margin: 0 2px;
	padding: 1px 10px;
	text-transform: none;
}
.uk-label.in-input {
	padding-left: 7px;
	display: inline-flex;
	align-items: center;
}
.uk-label.in-input .uk-radio,
.uk-label.in-input .uk-checkbox {
	margin-left: 0;
	margin-top: -1px;
	width: 16px;
	height: 16px;
}
.uk-label-basic {
	background-color: #396e90;
}
.uk-label-gray {
	background-color: #a8b2b9;
}
.uk-label-darkgray {
	background-color: #5d656a;
}
.uk-label-pink {
	background-color: #fee;
	color: #455267;
}
.uk-label-orange {
	background-color: #eb6d45;
}
.uk-label-red {
	background-color: #f00;
}
.uk-label-darkblue {
	background-color: #0079b9;
}

.uk-table th {
	color: inherit;
	font-size: inherit;
	font-weight: bold;
	vertical-align: top;
	text-transform: none;
}
.uk-table thead th {
	vertical-align: bottom;
}
.uk-table-xsmall {
	margin-bottom: 0;
}
.uk-table-xsmall th,
.uk-table-xsmall td {
	padding: 5px 7px;
}
.uk-table-xsmall .uk-table-link > a {
	padding: 5px 7px;
}
.uk-table-xxsmall {
	margin-bottom: 0;
}
.uk-table-xxsmall th,
.uk-table-xxsmall td {
	padding: 1px 3px;
}
.uk-table-xxsmall .uk-table-link > a {
	padding: 1px 3px;
}
.uk-table-middle tbody th {
	vertical-align: middle !important;
}

.uk-list.uk-flex > :nth-child(n+2) {
	margin-top: auto;
}

.uk-navbar-nav > li > span {
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	min-height: 80px;
	padding: 0 15px;
	text-decoration: none;
	color: #999;
	text-transform: uppercase;
	transition: 0.1s ease-in-out;
	transition-property: color, background-color;
}
.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle {
	font-size: 1rem;
}
.uk-navbar-nav > li > a .uk-dropdown, .uk-navbar-item .uk-dropdown, .uk-navbar-toggle .uk-dropdown {
	font-size: 1rem;
}
.uk-navbar-small {
	min-height: 40px;
}
.uk-navbar-small .uk-navbar-nav > li > a,
.uk-navbar-small .uk-navbar-nav > li > span,
.uk-navbar-small .uk-navbar-item,
.uk-navbar-small .uk-navbar-toggle {
	min-height: 40px;
}
.uk-navbar-vertical {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.uk-navbar-vertical .uk-navbar-top {
	justify-content: flex-start;
}
.uk-navbar-vertical .uk-navbar-bottom {
	justify-content: flex-end;
}
.uk-navbar-vertical .uk-navbar-nav {
	display: flex;
	flex-direction: column;
}
.uk-navbar-vertical .uk-navbar-nav > li > a,
.uk-navbar-vertical .uk-navbar-nav > li > span,
.uk-navbar-vertical .uk-navbar-item,
.uk-navbar-vertical .uk-navbar-toggle {
	min-height: 40px;
}

.uk-card-title {
	margin-top: 0;
}
.uk-card-small .uk-card-header {
	padding: 20px;
}
.uk-card-small .uk-card-body {
	padding: 0 20px;
}

.uk-sortable-empty {
	min-height: 1.5rem;
}
.uk-sortable-placeholder-border .uk-sortable-placeholder {
	outline: 1px dashed rgba(255, 0, 0, 0.5);
	opacity: 1;
}
.uk-sortable-placeholder-border .uk-sortable-placeholder > * {
	opacity: 0;
}

.uk-progress.xsmall {
	margin-bottom: 5px;
	height: 3px;
}
.uk-progress.small {
	margin-bottom: 10px;
	height: 6px;
}
.uk-progress.medium {
	margin-bottom: 15px;
	height: 10px;
}

.uk-accordion-title {
	cursor: pointer;
}
.uk-accordion-title::before {
	content: "";
	width: 1em;
	height: 1em;
	margin: 0 5px 0 0;
	display: block;
	background-image: url(data:image/svg+xml;charset=UTF-8,%3csvg%20width%3d%2213%22%20height%3d%2213%22%20viewBox%3d%220%200%2013%2013%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3cpolygon%20style%3d%22fill%3a%23666666%3b%22%20points%3d%2210.1%2c6.5%203.6%2c13%203.6%2c0%20%22%2f%3e%3c%2fsvg%3e);
	background-repeat: no-repeat;
	background-position: 50% 50%;
}
.uk-open > .uk-accordion-title::before {
	background-image: url(data:image/svg+xml;charset=UTF-8,%3csvg%20width%3d%2213%22%20height%3d%2213%22%20viewBox%3d%220%200%2013%2013%22%20xmlns%3d%22http%3a%2f%2fwww.w3.org%2f2000%2fsvg%22%3e%3cpolygon%20style%3d%22fill%3a%23666666%3b%22%20points%3d%2210.6%2c11%201.4%2c10.9%2010.7%2c1.8%22%2f%3e%3c%2fsvg%3e);
}

.uk-alert-small {
	margin-bottom: 10px;
	padding: 7px 29px 7px 10px;
}
* + .uk-alert-small {
	margin-top: 10px;
}

.uk-text-disabled {
	color: #c5c5c5 !important;
}
.uk-text-basic {
	color: #455267;
}
.uk-text-medium {
	font-size: 1.2rem;
}
.uk-text-default {
	font-size: 1rem;
}

.uk-badge.small {
	margin: 0;
	padding: 0 4px;
	height: 18px;
	min-width: 20px;
	font-size: 11px;
}
.uk-badge.gray {
	background: #eee;
	border: 1px solid #ccc;
	color: #777 !important;
}
.uk-badge.lightcyan {
	background-color: #e0ffff;
	color: #808080 !important;
}
.uk-badge.lightpink {
	background-color: #ffb6c1;
	color: #808080 !important;
}
.uk-badge::before {
	content: attr(data-qua);
}

.uk-notification {
	width: auto;
}
.uk-notification-center {
	margin-left: -175px;
	left: 50%;
	top: 200px;
}
.uk-notification-top-middle-right {
	left: auto;
	right: 40px;
	top: 100px;
}
.uk-notification-message {
	padding-right: 35px;
	background-color: #eee;
	box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
	font-size: 0.875rem;
	width: 350px;
}
.uk-notification-message > div p {
	margin: 0;
}
.uk-notification-message > div p + p {
	margin-top: 1em;
}
.uk-notification-message-info {
	padding-left: 45px;
	border: 1px solid #39f;
	background-color: #fcffeb;
	width: 380px;
}
.uk-notification-message-info::before {
	content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSIxMCIgY3k9IjE0IiByPSIxIj48L2NpcmNsZT48Y2lyY2xlIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjEiIGN4PSIxMCIgY3k9IjEwIiByPSI5Ij48L2NpcmNsZT48cGF0aCBkPSJNMTAuOTcsNy43MiBDMTAuODUsOS41NCAxMC41NiwxMS4yOSAxMC41NiwxMS4yOSBDMTAuNTEsMTEuODcgMTAuMjcsMTIgOS45OSwxMiBDOS42OSwxMiA5LjQ5LDExLjg3IDkuNDMsMTEuMjkgQzkuNDMsMTEuMjkgOS4xNiw5LjU0IDkuMDMsNy43MiBDOC45Niw2LjU0IDkuMDMsNiA5LjAzLDYgQzkuMDMsNS40NSA5LjQ2LDUuMDIgOS45OSw1IEMxMC41Myw1LjAxIDEwLjk3LDUuNDQgMTAuOTcsNiBDMTAuOTcsNiAxMS4wNCw2LjU0IDEwLjk3LDcuNzIgTDEwLjk3LDcuNzIgWiI+PC9wYXRoPjwvc3ZnPg==");
	position: absolute;
	left: 15px;
}
.uk-notification-close {
	display: block;
}

.uk-width-xsmall {
	width: 100px;
}
.uk-width-xxsmall {
	width: 75px;
}

.uk-dropdown {
	border: 1px solid #e3e8ec;
}

.uk-flex-gap-1 {
	gap: 1px;
}
.uk-flex-gap-2 {
	gap: 2px;
}
.uk-flex-gap-3 {
	gap: 3px;
}
.uk-flex-gap-4 {
	gap: 4px;
}
.uk-flex-gap-5 {
	gap: 5px;
}
.uk-flex-gap-6 {
	gap: 6px;
}
.uk-flex-gap-7 {
	gap: 7px;
}
.uk-flex-gap-8 {
	gap: 8px;
}
.uk-flex-gap-9 {
	gap: 9px;
}
.uk-flex-gap-10 {
	gap: 10px;
}
.uk-flex-gap-11 {
	gap: 11px;
}
.uk-flex-gap-12 {
	gap: 12px;
}
.uk-flex-gap-13 {
	gap: 13px;
}
.uk-flex-gap-14 {
	gap: 14px;
}
.uk-flex-gap-15 {
	gap: 15px;
}
.uk-flex-gap-16 {
	gap: 16px;
}
.uk-flex-gap-17 {
	gap: 17px;
}
.uk-flex-gap-18 {
	gap: 18px;
}
.uk-flex-gap-19 {
	gap: 19px;
}
.uk-flex-gap-20 {
	gap: 20px;
}
.uk-flex-gap-21 {
	gap: 21px;
}
.uk-flex-gap-22 {
	gap: 22px;
}
.uk-flex-gap-23 {
	gap: 23px;
}
.uk-flex-gap-24 {
	gap: 24px;
}
.uk-flex-gap-25 {
	gap: 25px;
}
.uk-flex-gap-26 {
	gap: 26px;
}
.uk-flex-gap-27 {
	gap: 27px;
}
.uk-flex-gap-28 {
	gap: 28px;
}
.uk-flex-gap-29 {
	gap: 29px;
}
.uk-flex-gap-30 {
	gap: 30px;
}
.uk-flex-gap-31 {
	gap: 31px;
}
.uk-flex-gap-32 {
	gap: 32px;
}
.uk-flex-gap-33 {
	gap: 33px;
}
.uk-flex-gap-34 {
	gap: 34px;
}
.uk-flex-gap-35 {
	gap: 35px;
}
.uk-flex-gap-36 {
	gap: 36px;
}
.uk-flex-gap-37 {
	gap: 37px;
}
.uk-flex-gap-38 {
	gap: 38px;
}
.uk-flex-gap-39 {
	gap: 39px;
}
.uk-flex-gap-40 {
	gap: 40px;
}
.uk-flex-gap-41 {
	gap: 41px;
}
.uk-flex-gap-42 {
	gap: 42px;
}
.uk-flex-gap-43 {
	gap: 43px;
}
.uk-flex-gap-44 {
	gap: 44px;
}
.uk-flex-gap-45 {
	gap: 45px;
}
.uk-flex-gap-46 {
	gap: 46px;
}
.uk-flex-gap-47 {
	gap: 47px;
}
.uk-flex-gap-48 {
	gap: 48px;
}
.uk-flex-gap-49 {
	gap: 49px;
}
.uk-flex-gap-50 {
	gap: 50px;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsaWIvdWlraXQvX2N1c3RvbV92YXJpYWJsZXMtdGhlbWUuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19iYXNlLnNjc3MiLCJsaWIvdWlraXQvX21peGlucy10aGVtZS5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2xpbmsuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19oZWFkaW5nLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fZGl2aWRlci5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX21peGluLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fbGlzdC5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2Rlc2NyaXB0aW9uLWxpc3Quc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL190YWJsZS5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2ljb24uc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19mb3JtLXJhbmdlLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fZm9ybS5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3Byb2dyZXNzLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fc2VjdGlvbi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2NvbnRhaW5lci5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3RpbGUuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19jYXJkLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fY2xvc2Uuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19zcGlubmVyLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fdG90b3Auc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19tYXJrZXIuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19hbGVydC5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3BsYWNlaG9sZGVyLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX292ZXJsYXkuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19hcnRpY2xlLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fY29tbWVudC5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3NlYXJjaC5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2Ryb3Auc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX21vZGFsLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fc2xpZGVzaG93LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fc3RpY2t5LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fb2ZmY2FudmFzLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fc3dpdGNoZXIuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19sZWFkZXIuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19ub3RpZmljYXRpb24uc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fc29ydGFibGUuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19jb3VudGRvd24uc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19ncmlkLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fbmF2LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fbmF2YmFyLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fc3VibmF2LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fYnJlYWRjcnVtYi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL190YWIuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19zbGlkZW5hdi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2RvdG5hdi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3RodW1ibmF2LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9faWNvbm5hdi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX2xpZ2h0Ym94LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fYW5pbWF0aW9uLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fd2lkdGguc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19oZWlnaHQuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL190ZXh0LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fY29sdW1uLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fY292ZXIuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19iYWNrZ3JvdW5kLnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fYWxpZ24uc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19zdmcuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL191dGlsaXR5LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9fZmxleC5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX21hcmdpbi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3BhZGRpbmcuc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL19wb3NpdGlvbi5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3RyYW5zaXRpb24uc2NzcyIsImxpYi91aWtpdC9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCJsaWIvdWlraXQvY29tcG9uZW50cy9faW52ZXJzZS5zY3NzIiwibGliL3Vpa2l0L2NvbXBvbmVudHMvX3ByaW50LnNjc3MiLCJsaWIvdWlraXQvX2N1c3RvbV90aGVtZS5zY3NzIiwiY29tbW9uL192YXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBO0FDa0ZBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQ0k7Q0FDQSxhRFZpQjtDQ1dqQixXRFJlO0NDU2YsYURWb0I7Q0NXcEIsYURSaUI7QUNTakI7Q0FDQTtBQUNBO0NBQ0EsWURwQ2dCO0NDcUNoQixPRDFGVzs7O0FDOEZmO0FBQUE7QUFBQTtBQUlBO0NBQU87OztBQUdQO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0NBQ1U7OztBQUVWO0FBQUE7QUFBQTtBQUlBO0FBQUE7Q0FFSSxPRHJDZ0I7Q0NzQ2hCLGlCRHBDd0I7Q0NxQ3hCOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtDQUlJLE9ENUNzQjtDQzZDdEIsaUJEM0M4Qjs7O0FDZ0RsQztBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNJO0NBQ0E7QUFDQTtDQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtBQUFBO0NBQ1MsYURuRWlCOzs7QUNxRTFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFHSTtDQUNBLGFEN0VvQjtBQzhFcEI7Q0FDQSxXRHpIcUI7QUMwSHJCO0NBQ0EsT0RoSnVCO0NDaUp2QjtDQ3pEQTtDQUNBLFlGdkdzQjs7O0FDbUsxQjtBQUFBO0FBQUE7QUFJQTtDQUFLLE9EekpzQjs7O0FDMkozQjtBQUFBO0FBQUE7QUFJQTtDQUNJLFlEOUZrQjtDQytGbEIsT0QxTFc7Q0MyTFg7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0NBQ0ksWUR0R21CO0NDdUduQixPRHBNVzs7O0FDdU1mO0FBQUE7QUFBQTtBQUlBO0NBQUksWUQ1R29COzs7QUM4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QUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQVdJLE9GbE5lOztBRWtQbkI7Q0E1Rm1DLE9GdEpoQjs7QUVzUG5CO0NBL0YwQyxPRnBKdkI7O0FFMlBuQjtDQUNJLGtCRmhIZ0I7O0FFZzlCcEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUksT0ZqakNxQjs7QUVxakN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUlJLE9GdG1DZTs7QUUwbUNuQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUlJLE9GamtDcUI7O0FFcWtDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FJSSxPRnpuQ2U7O0FFNitCbkI7Q0FDSSxxQkYvMUJnQjs7QUVtMkJwQjtDQUNJLG1CRnAyQmdCOztBRXcyQnBCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLHFCRjEyQmdCOztBRW1sQnBCO0NJcHRCQTs7QUp5dEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLHFCRjFsQmdCOztBRThsQnBCO0NBQ0ksa0JGL2xCZ0I7O0FFbW1CcEI7Q0FDSSxtQkZwbUJnQjs7QUVpL0JwQjtDQUE0Qjs7QUFDNUI7Q0FBK0I7O0FBQy9CO0NBQThCOztBQUM5QjtDQUFnQzs7QUFFaEM7Q0l2bkNBOztBSjJuQ0E7Q0FDSSxrQkYzL0JnQjs7QUU0K0NwQjtDQUNJLGtCRjcrQ2dCO0NFOCtDaEIscUJGOStDZ0I7O0FFbWdDcEI7Q0FBdUMsa0JGaHVCVDs7QUVtbUI5QjtDQUNJLE9GdCtCcUI7O0FFMCtCekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUksT0Z6aENlOztBRTZoQ25CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLE9GL2hDZTs7QUV1aUNuQjtDQUNJLGtCRnpuQjBCO0NFMG5CMUIsT0Y1L0JxQjs7QUVnZ0N6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxrQkYvaEIrQjtDRWdpQi9CLE9GaGpDZTs7QUVvakNuQjtDQUNJLGtCRm5pQmdDO0NFb2lCaEMsT0Z0akNlOztBRW0xQm5CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSSxrQkZ2YTBCO0NFd2ExQixPRnYxQmU7Q0V3MUJmO0NBZG9CLGNGOXJCSjs7QUUrc0JoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0ksa0JGMWFvQjtDRTJhcEIsT0Y3MUJXO0NFMjBCVyxjRjMwQlg7O0FFczJCbkI7Q0FBbUM7O0FBQ25DO0NBQXlCLE9GMXpCQTs7QUU0ekJ6QjtDQUFzQzs7QUFDdEM7Q0FBNEIsT0Y3ekJIOztBRW0wQnpCO0NJcjJCQTs7QUoyMkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDSTMyQkE7O0FKazNCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxrQkZoZDBCO0NFNlpBLGNGaHNCVjs7QUV3dkJwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxrQkY5YzhCO0NFcVpFLGNGNzBCakI7O0FFMjRCbkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUdJLGtCRmo1QmU7Q0VpMUJtQixjRjkwQm5COztBRW01Qm5CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSSxrQkYzZHNDOztBRWdlMUM7Q0loNUJBOztBSmk1QkE7Q0lqNUJBOztBSms1QkE7Q0lsNUJBOztBSnE1QkE7Q0FoRjhCLE9GbjFCWDs7QUV3NkJuQjtDQUFnQixPRngzQlM7O0FFeTNCekI7Q0FBc0IsT0Z0NkJIOztBRWdabkI7Q0FDSSxrQkZyTTRCO0NFc001QixPRnJaZTtDRThYZSxjRjNYZjs7QUVzWm5CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLGtCRjFNa0M7Q0UyTWxDLE9GNVplO0NFK1hxQixjRi9YckI7O0FFZ2FuQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxrQkYvTW1DO0NFZ05uQyxPRm5hZTtDRWdZc0IsY0ZoWXRCOztBRTJhbkI7Q0FDSSxrQkY1YWU7Q0U2YWYsT0ZoYk87O0FFb2JYO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLGtCRjVOa0M7Q0U2TmxDLE9GdmJPOztBRTJiWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxrQkZqT21DO0NFa09uQyxPRjliTzs7QUVzY1g7Q0FDSSxrQkZwY2U7Q0VxY2YsT0Z4Y087O0FFNGNYO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLGtCRjlPb0M7Q0UrT3BDLE9GL2NPOztBRW1kWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxrQkZuUHFDO0NFb1ByQyxPRnRkTzs7QUU4ZFg7Q0FDSSxPRjVkZTs7QUV3WW5CO0NBQVkscUJGeFlPOztBRWdlbkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUksT0ZsZWU7O0FFc2VuQjtDQUNJLE9GdmJxQjs7QUUrYnpCO0NBQ0ksT0ZoZmU7O0FFb2ZuQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDd0IsT0ZyY0M7O0FFbTRCekI7Q0FDSSxtQkZyeUJnQjs7QUV5eUJwQjtDQUNJLGtCRjF5QmdCOztBRW9mcEI7Q0FDSSxPRnBsQnFCOztBRXdsQnpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLE9Gdm9CZTs7QUVvcENuQjtDQUNJLE9GeG1DcUI7O0FFNG1DekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUksT0YzcENlOztBRStwQ25CO0NBQ0ksT0ZucUNlOztBRThGbkI7Q0FDSSxrQkYvRmU7Q0VnR2Y7O0FBMGtDSjtDQUNJLGtCRjNxQ2U7Q0U0cUNmLE9GL3FDTzs7QUVtRlg7Q0FDSSxPRmpDcUI7O0FFdW9DekI7Q0FBbUIsT0ZwckNBOztBRXNyQ25CO0NBQXlDOztBQUN6QztDQUFnQyxPRjFvQ1A7O0FFaXBDekI7Q0FBNkIsT0ZqcENKOztBRWtwQ3pCO0NBQW1DLE9GbHBDVjs7QUV3cEN6QjtDQUNJLGtCRm5ZNEI7Q0U0L0JRLGNGbnJEcEI7O0FFOGpDcEI7Q0FDSSxrQkZ2WWtDOztBRTJZdEM7Q0FDSSxrQkYzWTJCOztBRStZL0I7Q0FDSSxrQkYvWTBCOztBRXVaOUI7Q0FDSSxPRmpyQ3FCOztBRXFyQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLE9GcHVDZTs7QUUrdUNuQjtDSXB1Q0E7O0FKeXVDQTtDSXp1Q0E7O0FKK3VDQTtDQUNJLE9GOXNDcUI7O0FFa3RDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUksT0Zqd0NlOztBRXF3Q25CO0NBQ0ksT0Z6d0NlOztBRTZ3Q25CO0NBQ0ksT0Y5d0NlOztBRWt4Q25CO0NBQ0ksa0JGcG9DZ0I7O0FFd29DcEI7Q0FBZ0MsT0Z2dUNQOztBRXl1Q3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNzQyxPRnZ4Q25COztBRXl4Q25CO0NBQStDLE9GNXhDNUI7O0FFa3lDbkI7Q0FDSSxPRm52Q3FCOztBRXV2Q3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLE9GdHlDZTs7QUUweUNuQjtDQUNJLE9GOXlDZTs7QUVrekNuQjtDQUNJLE9GbnpDZTs7QUV1ekNuQjtDQUNJLGtCRnpxQ2dCOztBRTZxQ3BCO0NBQWdDLE9GNXdDUDs7QUU4d0N6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDc0MsT0Y1ekNuQjs7QUU4ekNuQjtDQUErQyxPRmowQzVCOztBRXUwQ25CO0NBQ0ksa0JGenJDZ0I7O0FFZ3NDcEI7Q0FDSSxPRmh5Q3FCOztBRW95Q3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSSxPRnAxQ2U7O0FFdzFDbkI7Q0FDSSxPRjUxQ2U7O0FFZzJDbkI7Q0FDSSxPRmoyQ2U7O0FFcTJDbkI7Q0FDSSxPRm4yQ2U7O0FFdTJDbkI7Q0FDSSxPRjN6Q3FCOztBRSt6Q3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSSxPRi8yQ2U7O0FFczNDbkI7Q0FDSSxPRjEwQ3FCOztBRTgwQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLE9GNzNDZTs7QUVpNENuQjtDQUNJLE9GcjRDZTs7QUU2NENuQjtDQUNJLG1CRi92Q2dCOztBRXV3Q3BCO0NBQ0ksa0JGNWdCOEI7Q0U2Z0I5QixPRngyQ3FCOztBRTQyQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLGtCRjUrQjBCO0NFNitCMUIsT0Y1NUNlOztBRWc2Q25CO0NBQ0ksa0JGbC9CMEI7Q0VtL0IxQixPRmw2Q2U7O0FFczZDbkI7Q0FDSSxrQkYxNkNlO0NFMjZDZixPRjk2Q087O0FFczdDWDtDQUNJLE9GcDRDcUI7O0FFa096QjtDQUNJLE9Gbk9xQjs7QUV1T3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLE9GdFJlOztBRStSbkI7Q0FDSSxPRmhTZTs7QUV3U25CO0NBQ0ksT0Y1UHFCOztBRTI0Q3pCO0NBQ0ksT0Y1NENxQjs7QUVnNUN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxPRi83Q2U7O0FFbThDbkI7Q0FDSSxPRnA4Q2U7O0FFdzhDbkI7Q0FDSSxPRjU1Q3FCOztBRTI1RHpCO0NBQVksY0Y1ekRROztBRXcwQ3BCO0NBQ0ksT0Z4NkNxQjs7QUU0NkN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxPRjM5Q2U7O0FFKzlDbkI7Q0FDSSxPRm4rQ2U7Q0VnOURnQixjRmg5RGhCOztBRXUrQ25CO0NBQ0ksT0Z4N0NxQjs7QUUrN0N6QjtDQUNJLE9GL29CaUI7O0FFbXBCckI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUksT0ZwcEJ1Qjs7QUV3cEIzQjtDQUNJLE9GeHBCd0I7O0FFM0Y1QjtDQUNJLGtCRjdheUI7Q0VzYUU7O0FBVy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLGtCRmxiK0I7Q0VzYUU7O0FBZ0JyQztDQUNJLGtCRnRiaUM7Q0VzYUU7O0FBb0J2QztDQUNJLGtCRjFiZ0M7Q0VzYUU7O0FBdnZCdEM7Q0lBQTs7QUpFQTtDSUZBOztBSjhqQ0E7Q0FDSSxPRjdoQ3FCOztBRWlpQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJLE9GaGxDZTs7QUVvbENuQjtDQUNJLE9GcmxDZTs7QUUrL0NuQjtDQUNJLE9GaGdEZTs7QUVvZ0RuQjtDQUNJLE9GeDlDcUI7O0FFNDlDekI7Q0FBaUI7O0FBQ2pCO0NBQW9COztBQUNwQjtDQUFtQjs7QUFDbkI7Q0FBcUI7O0FBNzNCckI7Q0FBcUIsbUJGbmdCRDs7QUUwNENwQjtDQUNJLE9GdmhEZTs7QUUyaERuQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSSxPRjdoRGU7O0FFaWlEbkI7Q0FBdUQ7O0FBQ3ZEO0NBQW1COzs7QXdFM2lEdkI7QUFBQTtBQUFBO0FBSUE7Q0FFSTtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTs7O0NBR0o7QUFBQTtFQUNZOzs7Q0FFWjtBQUFBO0VBRUk7RUFDQTs7O0NBR0o7RUFBUTs7O0NBRVI7QUFBQTtFQUNNOzs7Q0FFTjtFQUFNOzs7Q0FFTjtFQUFROztDQUVSO0FBQUE7QUFBQTtFQUdJO0VBQ0E7OztDQUdKO0FBQUE7RUFDSzs7O0FDL0NUO0NBQ0M7Q0FDQTtDQUNBOzs7QUFHRDtDQUNDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7OztBQUdEO0NBQ0M7Q0FDQTs7O0FBR0Q7Q0FDQztDQUNBO0NBQ0E7OztBQUdEO0NBQ0M7Q0FDQTtDQUNBOzs7QUFHRDtDQUNDO0NBQ0E7Q0FDQTs7O0FBR0Q7Q0FDQztDQUNBO0NBQ0E7OztBQUdEO0FBQUE7Q0FFQyxjQ0NzQjs7O0FES3RCO0NBQ0M7O0FBRUE7Q0FDQzs7QUFHRDtDQUNDOztBQUdEO0NBQ0M7O0FBR0Q7Q0FDQzs7QUFHRDtDQUNDOztBQUlGO0NBRUU7Q0FDQTs7QUFHRDtDQUVFO0NBQ0E7O0FBSUY7Q0FFRTtDQUNBOztBQUlGO0NBRUU7Q0FDQTs7QUFJRjtDQUVFO0NBQ0E7O0FBR0Q7Q0FORDtFQVFHO0VBQ0E7OztBQUtIO0NBRUU7Q0FDQTs7QUFHRDtDQU5EO0VBUUc7RUFDQTs7O0FBTUo7Q0FFRTtDQUNBOztBQUdEO0NBRUU7Q0FDQTs7QUFJRjtDQUVFO0NBQ0E7O0FBSUY7Q0FFRTtDQUNBOztBQUlGO0NBRUU7Q0FDQTs7QUFHRDtDQU5EO0VBUUc7RUFDQTs7O0FBS0g7Q0FFRTtDQUNBOztBQUdEO0NBTkQ7RUFRRztFQUNBOzs7O0FBWUo7Q0FDQzs7QUFHRDtDQUNDOztBQUdEO0NBQ0M7O0FBR0Q7Q0FDQzs7QUFHRDtDQUNDO0VBQ0M7O0NBR0Q7RUFDQzs7Q0FHRDtFQUNDOztDQUdEO0VBQ0M7OztBQUlGO0NBQ0M7O0FBRUE7Q0FDQzs7QUFHRDtDQUNDOztBQUdEO0NBQ0M7O0FBR0Q7Q0FDQzs7QUFJRjtDQUNDOztBQUVBO0NBQ0M7O0FBR0Q7Q0FDQzs7QUFHRDtDQUNDOztBQUdEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFHRDtDQUNDOztBQUdEO0NBQ0M7O0FBR0Q7Q0FDQzs7QUFLRDtDQUNDOztBQUdEO0NBQ0M7O0FBR0Q7Q0FDQzs7QUFHRDtDQUNDOztBQUdEO0NBQ0M7RUFDQzs7Q0FHRDtFQUNDOztDQUdEO0VBQ0M7O0NBR0Q7RUFDQzs7OztBQWtCQTtBQUFBO0NBQ0Msa0JDalRTOztBRHVUVDtBQUFBO0NBQ0M7OztBQWVKO0FBQUE7Q0FFQztDQUNBOzs7QUFLSDtDQUNDOzs7QUFLQztDQUNDOztBQUlBO0NBQ0M7OztBQWFIO0FBQUE7Q0FDQzs7O0FBSUY7QUFBQTtBQUFBO0NBR0M7OztBQUdEO0FBQUE7QUFBQTtDQUdDO0NBQ0E7O0FBRUE7QUFBQTtBQUFBO0NBQ0M7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Q0FDQTtDQUNBOztBQU1GO0NBQ0M7O0FBS0Q7Q0FDQztDQUNBO0NBQ0E7Q0FDQTs7QUFFQTtDQUNDO0NBQ0E7O0FBU0Q7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFVRDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQVVEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOztBQWJEO0NBQ0M7O0FBS0Q7Q0FDQzs7QUFLRDtDQUNDOzs7QUFZSjtDQUNDO0NBQ0E7Q0FDQTs7QUFFQTtDQUNDO0NBQ0E7Q0FDQTs7QUFFQTtBQUFBO0NBRUM7Q0FDQTtDQUNBO0NBQ0E7O0FBSUY7Q0FDQyxrQkNqaUNXOztBRG9pQ1o7Q0FDQzs7QUFHRDtDQUNDOztBQUdEO0NBQ0M7Q0FDQSxPQ3JqQ2dCOztBRHdqQ2pCO0NBQ0Msa0JDOWlDYTs7QURpakNkO0NBQ0M7O0FBR0Q7Q0FDQzs7O0FBU0Q7Q0FDQztDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUlBO0NBQ0M7O0FBSUY7Q0FDQzs7QUFFQTtBQUFBO0NBRUM7O0FBR0Q7Q0FDQzs7QUFJRjtDQUNDOztBQUVBO0FBQUE7Q0FFQzs7QUFHRDtDQUNDOztBQU1BO0NBQ0M7OztBQVlGO0NBQ0M7OztBQVdGO0NBQ0M7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBRUE7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHRDtDQUdDOztBQUVBO0NBQ0M7O0FBSUY7Q0FDQzs7QUFFQTtBQUFBO0FBQUE7QUFBQTtDQUlDOztBQUlGO0NBQ0M7Q0FDQTtDQUNBOztBQUVBO0NBQ0M7O0FBR0Q7Q0FDQzs7QUFHRDtDQUNDO0NBQ0E7O0FBSUQ7QUFBQTtBQUFBO0FBQUE7Q0FJQzs7O0FBV0Y7Q0FDQzs7QUFJQTtDQUNDOztBQUdEO0NBQ0M7OztBQVVGO0NBQ0M7O0FBSUE7Q0FDQztDQUNBOztBQUVBO0NBQ0M7OztBQVdIO0NBQ0M7Q0FDQTs7QUFHRDtDQUNDO0NBQ0E7O0FBR0Q7Q0FDQztDQUNBOzs7QUFTRDtDQUNDOztBQUVBO0NBQ0M7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHQTtDQUNDOzs7QUFZSDtDQUNDO0NBQ0E7O0FBRUE7Q0FDQzs7O0FBT0Y7Q0FDQzs7QUFHRDtDQUNDLE9DN3pDZ0I7O0FEZzBDakI7Q0FDQzs7QUFHRDtDQUNDOzs7QUFNRDtDQUNDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBR0Q7Q0FDQztDQUNBO0NBQ0E7O0FBR0Q7Q0FDQztDQUNBOztBQUdEO0NBQ0M7Q0FDQTs7QUFHRDtDQUNDOzs7QUFNRjtDQUNDOztBQUVBO0NBQ0M7Q0FDQTtDQUNBOztBQUdEO0NBQ0M7Q0FDQTtDQUNBOztBQUdEO0NBQ0M7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHQztDQUNDOztBQUVBO0NBQ0M7O0FBS0g7Q0FDQztDQUNBO0NBQ0E7Q0FDQTs7QUFFQTtDQUNDO0NBQ0E7Q0FDQTs7QUFLSDtDQUNDOzs7QUFRRDtDQUNDOztBQUdEO0NBQ0M7OztBQU9GO0NBQ0M7OztBQVdFO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQzs7QUFERDtDQUNDOztBQUREO0NBQ0M7O0FBREQ7Q0FDQyIsImZpbGUiOiJsaWIvdWlraXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqICBWZXJzaW9uIDMuNy4zXG4gKi9cblxuIEB1c2UgXCJzYXNzOm1hdGhcIjtcblxuJGdsb2JhbC1tYXJnaW46IDIwcHggIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLWl0ZW0tbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kZ2xvYmFsLW1lZGl1bS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xuJGFjY29yZGlvbi10aXRsZS1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJGdsb2JhbC1lbXBoYXNpcy1jb2xvcjogIzMzMyAhZGVmYXVsdDtcbiRhY2NvcmRpb24tdGl0bGUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kZ2xvYmFsLWNvbG9yOiAjNjY2ICFkZWZhdWx0O1xuJGFjY29yZGlvbi10aXRsZS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRhY2NvcmRpb24tY29udGVudC1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRnbG9iYWwtaW52ZXJzZS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1nbG9iYWwtY29sb3I6IHJnYmEoJGdsb2JhbC1pbnZlcnNlLWNvbG9yLCAwLjcpICFkZWZhdWx0O1xuJGludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kYWxlcnQtbWFyZ2luLXZlcnRpY2FsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nOiAxNXB4ICFkZWZhdWx0O1xuJGFsZXJ0LXBhZGRpbmctcmlnaHQ6ICRhbGVydC1wYWRkaW5nICsgMTRweCAhZGVmYXVsdDtcbiRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDogI2Y4ZjhmOCAhZGVmYXVsdDtcbiRhbGVydC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYWxlcnQtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtdG9wOiAkYWxlcnQtcGFkZGluZyArIDVweCAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1yaWdodDogJGFsZXJ0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDogIzFlODdmMCAhZGVmYXVsdDtcbiRhbGVydC1wcmltYXJ5LWJhY2tncm91bmQ6IGxpZ2h0ZW4obWl4KHdoaXRlLCAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCwgNDAlKSwgMjAlKSAhZGVmYXVsdDtcbiRhbGVydC1wcmltYXJ5LWNvbG9yOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kOiAjMzJkMjk2ICFkZWZhdWx0O1xuJGFsZXJ0LXN1Y2Nlc3MtYmFja2dyb3VuZDogbGlnaHRlbihtaXgod2hpdGUsICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kLCA0MCUpLCAyNSUpICFkZWZhdWx0O1xuJGFsZXJ0LXN1Y2Nlc3MtY29sb3I6ICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQ6ICNmYWEwNWEgIWRlZmF1bHQ7XG4kYWxlcnQtd2FybmluZy1iYWNrZ3JvdW5kOiBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQsIDQ1JSksIDE1JSkgIWRlZmF1bHQ7XG4kYWxlcnQtd2FybmluZy1jb2xvcjogJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kOiAjZjA1MDZlICFkZWZhdWx0O1xuJGFsZXJ0LWRhbmdlci1iYWNrZ3JvdW5kOiBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCwgNDAlKSwgMjAlKSAhZGVmYXVsdDtcbiRhbGVydC1kYW5nZXItY29sb3I6ICRnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZ2xvYmFsLWd1dHRlcjogMzBweCAhZGVmYXVsdDtcbiRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kYWxpZ24tbWFyZ2luLXZlcnRpY2FsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRnbG9iYWwtbWVkaXVtLWd1dHRlcjogNDBweCAhZGVmYXVsdDtcbiRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1mYWRlLWR1cmF0aW9uOiAwLjhzICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1zdHJva2UtZHVyYXRpb246IDJzICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1rZW5idXJucy1kdXJhdGlvbjogMTVzICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1mYXN0LWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGU6IDEwcHggIWRlZmF1bHQ7XG4kYW5pbWF0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGU6IDUwcHggIWRlZmF1bHQ7XG4kZ2xvYmFsLWxhcmdlLW1hcmdpbjogNzBweCAhZGVmYXVsdDtcbiRhcnRpY2xlLW1hcmdpbi10b3A6ICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuJGdsb2JhbC0yeGxhcmdlLWZvbnQtc2l6ZTogMi42MjVyZW0gIWRlZmF1bHQ7XG4kYXJ0aWNsZS10aXRsZS1mb250LXNpemUtbTogJGdsb2JhbC0yeGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhcnRpY2xlLXRpdGxlLWZvbnQtc2l6ZTogJGFydGljbGUtdGl0bGUtZm9udC1zaXplLW0gKiAwLjg1ICFkZWZhdWx0O1xuJGFydGljbGUtdGl0bGUtbGluZS1oZWlnaHQ6IDEuMiAhZGVmYXVsdDtcbiRnbG9iYWwtc21hbGwtZm9udC1zaXplOiAwLjg3NXJlbSAhZGVmYXVsdDtcbiRhcnRpY2xlLW1ldGEtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhcnRpY2xlLW1ldGEtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRnbG9iYWwtbXV0ZWQtY29sb3I6ICM5OTkgIWRlZmF1bHQ7XG4kYXJ0aWNsZS1tZXRhLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yOiByZ2JhKCRnbG9iYWwtaW52ZXJzZS1jb2xvciwgMC41KSAhZGVmYXVsdDtcbiRpbnZlcnNlLWFydGljbGUtbWV0YS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGdsb2JhbC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJGJhY2tncm91bmQtZGVmYXVsdC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYmFja2dyb3VuZC1tdXRlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYmFja2dyb3VuZC1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZDogIzIyMiAhZGVmYXVsdDtcbiRiYWNrZ3JvdW5kLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJhZGdlLXNpemU6IDE4cHggIWRlZmF1bHQ7XG4kYmFkZ2UtcGFkZGluZy12ZXJ0aWNhbDogMCAhZGVmYXVsdDtcbiRiYWRnZS1wYWRkaW5nLWhvcml6b250YWw6IDVweCAhZGVmYXVsdDtcbiRiYWRnZS1ib3JkZXItcmFkaXVzOiA1MDBweCAhZGVmYXVsdDtcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRiYWRnZS1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGJhZGdlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcbiRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJhZGdlLWJhY2tncm91bmQ6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJhZGdlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRiYXNlLWJvZHktYmFja2dyb3VuZDogJGdsb2JhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuLy8kZ2xvYmFsLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIgIWRlZmF1bHQ7XG4kZ2xvYmFsLWZvbnQtZmFtaWx5OiBcIua4uOOCtOOCt+ODg+OCr1wiLCBZdUdvdGhpYywgXCJZdSBHb3RoaWNcIiwgXCLmuLjjgrTjgrfjg4Pjgq8gTWVkaXVtXCIsIFwiWXUgR290aGljIE1lZGl1bVwiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm9OIFczXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBcIkhpcmFnaW5vIE1hcnUgR290aGljIFc0IEpJUzIwMDRcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYmFzZS1ib2R5LWZvbnQtZmFtaWx5OiAkZ2xvYmFsLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGJhc2UtYm9keS1mb250LXdlaWdodDogbm9ybWFsICFkZWZhdWx0O1xuJGdsb2JhbC1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG4kYmFzZS1ib2R5LWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZ2xvYmFsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kYmFzZS1ib2R5LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGJhc2UtYm9keS1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRnbG9iYWwtbGluay1jb2xvcjogIzFlODdmMCAhZGVmYXVsdDtcbiRiYXNlLWxpbmstY29sb3I6ICRnbG9iYWwtbGluay1jb2xvciAhZGVmYXVsdDtcbiRiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGdsb2JhbC1saW5rLWhvdmVyLWNvbG9yOiAjMGY2ZWNkICFkZWZhdWx0O1xuJGJhc2UtbGluay1ob3Zlci1jb2xvcjogJGdsb2JhbC1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJGJhc2UtbGluay1ob3Zlci10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcbiRiYXNlLXN0cm9uZy1mb250LXdlaWdodDogYm9sZGVyICFkZWZhdWx0O1xuJGJhc2UtY29kZS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJhc2UtY29kZS1mb250LWZhbWlseTogQ29uc29sYXMsIG1vbmFjbywgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGJhc2UtY29kZS1jb2xvcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRiYXNlLWVtLWNvbG9yOiAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJhc2UtaW5zLWJhY2tncm91bmQ6ICNmZmQgIWRlZmF1bHQ7XG4kYmFzZS1pbnMtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kYmFzZS1tYXJrLWJhY2tncm91bmQ6ICNmZmQgIWRlZmF1bHQ7XG4kYmFzZS1tYXJrLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGJhc2UtcXVvdGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJGJhc2Utc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG4kYmFzZS1tYXJnaW4tdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGJhc2UtaGVhZGluZy1mb250LWZhbWlseTogJGdsb2JhbC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRiYXNlLWhlYWRpbmctZm9udC13ZWlnaHQ6IG5vcm1hbCAhZGVmYXVsdDtcbiRiYXNlLWhlYWRpbmctY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kYmFzZS1oZWFkaW5nLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJGdsb2JhbC1tZWRpdW0tbWFyZ2luOiA0MHB4ICFkZWZhdWx0O1xuJGJhc2UtaGVhZGluZy1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XG4kYmFzZS1oMS1mb250LXNpemUtbTogJGdsb2JhbC0yeGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWgxLWZvbnQtc2l6ZTogJGJhc2UtaDEtZm9udC1zaXplLW0gKiAwLjg1ICFkZWZhdWx0O1xuJGJhc2UtaDEtbGluZS1oZWlnaHQ6IDEuMiAhZGVmYXVsdDtcbiRnbG9iYWwteGxhcmdlLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRiYXNlLWgyLWZvbnQtc2l6ZS1tOiAkZ2xvYmFsLXhsYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmFzZS1oMi1mb250LXNpemU6ICRiYXNlLWgyLWZvbnQtc2l6ZS1tICogMC44NSAhZGVmYXVsdDtcbiRiYXNlLWgyLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XG4kZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJGJhc2UtaDMtZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWgzLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kYmFzZS1oNC1mb250LXNpemU6ICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWg0LWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kYmFzZS1oNS1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJhc2UtaDUtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRiYXNlLWg2LWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmFzZS1oNi1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJGJhc2UtbGlzdC1wYWRkaW5nLWxlZnQ6IDMwcHggIWRlZmF1bHQ7XG4kYmFzZS1oci1tYXJnaW4tdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGdsb2JhbC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRiYXNlLWhyLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kZ2xvYmFsLWJvcmRlcjogIzM5NmU5MCAhZGVmYXVsdDsvLyNlNWU1ZTU7XG4kYmFzZS1oci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGJhc2UtYmxvY2txdW90ZS1mb250LXNpemU6ICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJGJhc2UtYmxvY2txdW90ZS1tYXJnaW4tdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGdsb2JhbC1zbWFsbC1tYXJnaW46IDEwcHggIWRlZmF1bHQ7XG4kYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1tYXJnaW4tdG9wOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJGJhc2UtcHJlLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmFzZS1wcmUtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRiYXNlLXByZS1mb250LWZhbWlseTogJGJhc2UtY29kZS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRiYXNlLXByZS1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRiYXNlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kOiAjMzlmICFkZWZhdWx0O1xuJGJhc2Utc2VsZWN0aW9uLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWxpbmstY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJhc2UtbGluay1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYmFzZS1jb2RlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWhlYWRpbmctY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWdsb2JhbC1ib3JkZXI6IHJnYmEoJGdsb2JhbC1pbnZlcnNlLWNvbG9yLCAwLjIpICFkZWZhdWx0O1xuJGludmVyc2UtYmFzZS1oci1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyOiBcIi9cIiAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw6IDIwcHggIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWZvbnQtc2l6ZTogJGJyZWFkY3J1bWItaXRlbS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1icmVhZGNydW1iLWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGdsb2JhbC1jb250cm9sLWhlaWdodDogNDBweCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRidXR0b24tbGluZS1oZWlnaHQ6ICRnbG9iYWwtY29udHJvbC1oZWlnaHQgLSAoJGJ1dHRvbi1ib3JkZXItd2lkdGggKiAyKSAhZGVmYXVsdDtcbiRnbG9iYWwtY29udHJvbC1zbWFsbC1oZWlnaHQ6IDMwcHggIWRlZmF1bHQ7XG4kYnV0dG9uLXNtYWxsLWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWNvbnRyb2wtc21hbGwtaGVpZ2h0IC0gKCRidXR0b24tYm9yZGVyLXdpZHRoICogMikgIWRlZmF1bHQ7XG4kZ2xvYmFsLWNvbnRyb2wtbGFyZ2UtaGVpZ2h0OiA1NXB4ICFkZWZhdWx0O1xuJGJ1dHRvbi1sYXJnZS1saW5lLWhlaWdodDogJGdsb2JhbC1jb250cm9sLWxhcmdlLWhlaWdodCAtICgkYnV0dG9uLWJvcmRlci13aWR0aCAqIDIpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJ1dHRvbi1zbWFsbC1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJ1dHRvbi1sYXJnZS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJGdsb2JhbC1zbWFsbC1ndXR0ZXI6IDE1cHggIWRlZmF1bHQ7XG4kYnV0dG9uLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kYnV0dG9uLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZDogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYnV0dG9uLXByaW1hcnktY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiBkYXJrZW4oJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiBkYXJrZW4oJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kYnV0dG9uLXByaW1hcnktYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJ1dHRvbi1zZWNvbmRhcnktY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJ1dHRvbi1kYW5nZXItY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tZGFuZ2VyLWhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kYnV0dG9uLWRhbmdlci1ob3Zlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1kYW5nZXItYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xuJGJ1dHRvbi1kYW5nZXItYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbi1kaXNhYmxlZC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tdGV4dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRidXR0b24tdGV4dC1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tdGV4dC1ob3Zlci1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tdGV4dC1kaXNhYmxlZC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tbGluay1saW5lLWhlaWdodDogJGdsb2JhbC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRidXR0b24tbGluay1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tbGluay1ob3Zlci1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tbGluay1ob3Zlci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kYnV0dG9uLWxpbmstZGlzYWJsZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiBkYXJrZW4oJGludmVyc2UtYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXByaW1hcnktaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiBkYXJrZW4oJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tdGV4dC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXRleHQtaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tbGluay1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLWxpbmstaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWwtbDogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kY2FyZC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogcm91bmQobWF0aC5kaXYoJGdsb2JhbC1ndXR0ZXIsIDIpKSAhZGVmYXVsdDtcbiRjYXJkLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtbDogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtaGVhZGVyLXBhZGRpbmctdmVydGljYWwtbDogcm91bmQobWF0aC5kaXYoJGdsb2JhbC1tZWRpdW0tZ3V0dGVyLCAyKSkgIWRlZmF1bHQ7XG4kY2FyZC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsOiBtYXRoLmRpdigkZ2xvYmFsLWd1dHRlciwgMikgIWRlZmF1bHQ7XG4kY2FyZC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsLWw6IHJvdW5kKG1hdGguZGl2KCRnbG9iYWwtbWVkaXVtLWd1dHRlciwgMikpICFkZWZhdWx0O1xuJGNhcmQtdGl0bGUtZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRjYXJkLXRpdGxlLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kY2FyZC1iYWRnZS10b3A6IDE1cHggIWRlZmF1bHQ7XG4kY2FyZC1iYWRnZS1yaWdodDogMTVweCAhZGVmYXVsdDtcbiRjYXJkLWJhZGdlLWhlaWdodDogMjJweCAhZGVmYXVsdDtcbiRjYXJkLWJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbDogMTBweCAhZGVmYXVsdDtcbiRjYXJkLWJhZGdlLWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtYmFkZ2UtY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRjYXJkLWJhZGdlLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kY2FyZC1ob3Zlci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kY2FyZC1kZWZhdWx0LWJhY2tncm91bmQ6ICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRjYXJkLWRlZmF1bHQtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kY2FyZC1kZWZhdWx0LXRpdGxlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiAkY2FyZC1kZWZhdWx0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kY2FyZC1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtcHJpbWFyeS1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtcHJpbWFyeS10aXRsZS1jb2xvcjogJGNhcmQtcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDogJGNhcmQtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcbiRjYXJkLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtc2Vjb25kYXJ5LWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kY2FyZC1zZWNvbmRhcnktdGl0bGUtY29sb3I6ICRjYXJkLXNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcbiRjYXJkLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAkY2FyZC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRjYXJkLXNlY29uZGFyeS1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcbiRjYXJkLXNtYWxsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRjYXJkLXNtYWxsLWJvZHktcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kY2FyZC1zbWFsbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRjYXJkLXNtYWxsLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsOiByb3VuZChtYXRoLmRpdigkZ2xvYmFsLW1hcmdpbiwgMS41KSkgIWRlZmF1bHQ7XG4kY2FyZC1zbWFsbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRjYXJkLXNtYWxsLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsOiByb3VuZChtYXRoLmRpdigkZ2xvYmFsLW1hcmdpbiwgMS41KSkgIWRlZmF1bHQ7XG4kZ2xvYmFsLWxhcmdlLWd1dHRlcjogNzBweCAhZGVmYXVsdDtcbiRjYXJkLWxhcmdlLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw6ICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtbGFyZ2UtYm9keS1wYWRkaW5nLXZlcnRpY2FsLWw6ICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtbGFyZ2UtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWxhcmdlLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsLWw6IHJvdW5kKG1hdGguZGl2KCRnbG9iYWwtbGFyZ2UtZ3V0dGVyLCAyKSkgIWRlZmF1bHQ7XG4kY2FyZC1sYXJnZS1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtbGFyZ2UtZm9vdGVyLXBhZGRpbmctdmVydGljYWwtbDogcm91bmQobWF0aC5kaXYoJGdsb2JhbC1sYXJnZS1ndXR0ZXIsIDIpKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWNhcmQtYmFkZ2UtYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWNhcmQtYmFkZ2UtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGNsb3NlLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGNsb3NlLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtY2xvc2UtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWNsb3NlLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kY29sdW1uLWd1dHRlcjogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kY29sdW1uLWd1dHRlci1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kY29sdW1uLWRpdmlkZXItcnVsZS1jb2xvcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kY29sdW1uLWRpdmlkZXItcnVsZS13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGludmVyc2UtY29sdW1uLWRpdmlkZXItcnVsZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRjb21tZW50LWhlYWRlci1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRjb21tZW50LXRpdGxlLWZvbnQtc2l6ZTogJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xuJGNvbW1lbnQtdGl0bGUtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRjb21tZW50LW1ldGEtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRjb21tZW50LW1ldGEtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRjb21tZW50LW1ldGEtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kY29tbWVudC1saXN0LW1hcmdpbi10b3A6ICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuJGNvbW1lbnQtbGlzdC1wYWRkaW5nLWxlZnQ6IDMwcHggIWRlZmF1bHQ7XG4kY29tbWVudC1saXN0LXBhZGRpbmctbGVmdC1tOiAxMDBweCAhZGVmYXVsdDtcbiRjb250YWluZXItbWF4LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG4kY29udGFpbmVyLXhzbWFsbC1tYXgtd2lkdGg6IDc1MHB4ICFkZWZhdWx0O1xuJGNvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGg6IDkwMHB4ICFkZWZhdWx0O1xuJGNvbnRhaW5lci1sYXJnZS1tYXgtd2lkdGg6IDE0MDBweCAhZGVmYXVsdDtcbiRjb250YWluZXIteGxhcmdlLW1heC13aWR0aDogMTYwMHB4ICFkZWZhdWx0O1xuJGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWw6IDE1cHggIWRlZmF1bHQ7XG4kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW06ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcbiRjb3VudGRvd24tbnVtYmVyLWxpbmUtaGVpZ2h0OiAwLjggIWRlZmF1bHQ7XG4kY291bnRkb3duLW51bWJlci1mb250LXNpemU6IDJyZW0gIWRlZmF1bHQ7XG4kY291bnRkb3duLW51bWJlci1mb250LXNpemUtczogNHJlbSAhZGVmYXVsdDtcbiRjb3VudGRvd24tbnVtYmVyLWZvbnQtc2l6ZS1tOiA2cmVtICFkZWZhdWx0O1xuJGNvdW50ZG93bi1zZXBhcmF0b3ItbGluZS1oZWlnaHQ6IDEuNiAhZGVmYXVsdDtcbiRjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZS1zOiAycmVtICFkZWZhdWx0O1xuJGNvdW50ZG93bi1zZXBhcmF0b3ItZm9udC1zaXplLW06IDNyZW0gIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC10ZXJtLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kZGl2aWRlci1tYXJnaW4tdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGRpdmlkZXItaWNvbi13aWR0aDogNTBweCAhZGVmYXVsdDtcbiRkaXZpZGVyLWljb24taGVpZ2h0OiAyMHB4ICFkZWZhdWx0O1xuJGRpdmlkZXItaWNvbi1jb2xvcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kZGl2aWRlci1pY29uLWxpbmUtdG9wOiA1MCUgIWRlZmF1bHQ7XG4kZGl2aWRlci1pY29uLWxpbmUtd2lkdGg6IDEwMCUgIWRlZmF1bHQ7XG4kZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRkaXZpZGVyLWljb24tbGluZS1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGludGVybmFsLWRpdmlkZXItaWNvbi1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjIwJTIyJTIwaGVpZ2h0JTNEJTIyMjAlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMCUyMDIwJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiMwMDAlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIyJTIyJTIwY3glM0QlMjIxMCUyMiUyMGN5JTNEJTIyMTAlMjIlMjByJTNEJTIyNyUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiICFkZWZhdWx0O1xuJGRpdmlkZXItc21hbGwtd2lkdGg6IDEwMHB4ICFkZWZhdWx0O1xuJGRpdmlkZXItc21hbGwtYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRkaXZpZGVyLXNtYWxsLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kZGl2aWRlci12ZXJ0aWNhbC1oZWlnaHQ6IDEwMHB4ICFkZWZhdWx0O1xuJGRpdmlkZXItdmVydGljYWwtYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRkaXZpZGVyLXZlcnRpY2FsLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1kaXZpZGVyLWljb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1kaXZpZGVyLWljb24tbGluZS1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1kaXZpZGVyLXNtYWxsLWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRpbnZlcnNlLWRpdmlkZXItdmVydGljYWwtYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGRvdG5hdi1tYXJnaW4taG9yaXpvbnRhbDogMTJweCAhZGVmYXVsdDtcbiRkb3RuYXYtbWFyZ2luLXZlcnRpY2FsOiAkZG90bmF2LW1hcmdpbi1ob3Jpem9udGFsICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLXdpZHRoOiAxMHB4ICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWhlaWdodDogJGRvdG5hdi1pdGVtLXdpZHRoICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWJvcmRlci1yYWRpdXM6IDUwJSAhZGVmYXVsdDtcbiRkb3RuYXYtaXRlbS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRkb3RuYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiByZ2JhKCRnbG9iYWwtY29sb3IsIDAuNikgIWRlZmF1bHQ7XG4kZG90bmF2LWl0ZW0tb25jbGljay1iYWNrZ3JvdW5kOiByZ2JhKCRnbG9iYWwtY29sb3IsIDAuMikgIWRlZmF1bHQ7XG4kZG90bmF2LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHJnYmEoJGdsb2JhbC1jb2xvciwgMC42KSAhZGVmYXVsdDtcbiRpbnZlcnNlLWRvdG5hdi1pdGVtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGludmVyc2UtZG90bmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDogcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuOSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1kb3RuYXYtaXRlbS1vbmNsaWNrLWJhY2tncm91bmQ6IHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuJGludmVyc2UtZG90bmF2LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjkpICFkZWZhdWx0O1xuJGdsb2JhbC16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuJGRyb3Atei1pbmRleDogJGdsb2JhbC16LWluZGV4ICsgMjAgIWRlZmF1bHQ7XG4kZHJvcC13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG4kZHJvcC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGRyb3Bkb3duLXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCArIDIwICFkZWZhdWx0O1xuJGRyb3Bkb3duLW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG4kZHJvcGRvd24tcGFkZGluZzogMjVweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZHJvcGRvd24tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tbWFyZ2luOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRkcm9wZG93bi1uYXYtaXRlbS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRkcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQ6IDE1cHggIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi13aWR0aDogJGZvcm0tcmFuZ2UtdGh1bWItaGVpZ2h0ICFkZWZhdWx0O1xuJGZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXJhZGl1czogNTAwcHggIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10cmFjay1oZWlnaHQ6IDNweCAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRyYWNrLWJhY2tncm91bmQ6IGRhcmtlbigkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRyYWNrLWZvY3VzLWJhY2tncm91bmQ6IGRhcmtlbigkZm9ybS1yYW5nZS10cmFjay1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kZm9ybS1oZWlnaHQ6ICRnbG9iYWwtY29udHJvbC1oZWlnaHQgIWRlZmF1bHQ7XG4kZm9ybS1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGZvcm0tbGluZS1oZWlnaHQ6ICRmb3JtLWhlaWdodCAtICgyKiAkZm9ybS1ib3JkZXItd2lkdGgpICFkZWZhdWx0O1xuJGZvcm0tcGFkZGluZy1ob3Jpem9udGFsOiAxMHB4ICFkZWZhdWx0O1xuJGZvcm0tcGFkZGluZy12ZXJ0aWNhbDogcm91bmQoJGZvcm0tcGFkZGluZy1ob3Jpem9udGFsICogMC42KSAhZGVmYXVsdDtcbiRmb3JtLWJhY2tncm91bmQ6ICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tZm9jdXMtYmFja2dyb3VuZDogJGdsb2JhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGZvcm0tZm9jdXMtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZm9ybS1kaXNhYmxlZC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tc21hbGwtaGVpZ2h0OiAkZ2xvYmFsLWNvbnRyb2wtc21hbGwtaGVpZ2h0ICFkZWZhdWx0O1xuJGZvcm0tc21hbGwtcGFkZGluZy1ob3Jpem9udGFsOiA4cHggIWRlZmF1bHQ7XG4kZm9ybS1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiByb3VuZCgkZm9ybS1zbWFsbC1wYWRkaW5nLWhvcml6b250YWwgKiAwLjYpICFkZWZhdWx0O1xuJGZvcm0tc21hbGwtbGluZS1oZWlnaHQ6ICRmb3JtLXNtYWxsLWhlaWdodCAtICgyKiAkZm9ybS1ib3JkZXItd2lkdGgpICFkZWZhdWx0O1xuJGZvcm0tc21hbGwtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmb3JtLWxhcmdlLWhlaWdodDogJGdsb2JhbC1jb250cm9sLWxhcmdlLWhlaWdodCAhZGVmYXVsdDtcbiRmb3JtLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogMTJweCAhZGVmYXVsdDtcbiRmb3JtLWxhcmdlLXBhZGRpbmctdmVydGljYWw6IHJvdW5kKCRmb3JtLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbCAqIDAuNikgIWRlZmF1bHQ7XG4kZm9ybS1sYXJnZS1saW5lLWhlaWdodDogJGZvcm0tbGFyZ2UtaGVpZ2h0IC0gKDIqICRmb3JtLWJvcmRlci13aWR0aCkgIWRlZmF1bHQ7XG4kZm9ybS1sYXJnZS1mb250LXNpemU6ICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmb3JtLWRhbmdlci1jb2xvcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLXN1Y2Nlc3MtY29sb3I6ICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGZvcm0td2lkdGgteHNtYWxsOiA1MHB4ICFkZWZhdWx0O1xuJGZvcm0td2lkdGgtc21hbGw6IDEzMHB4ICFkZWZhdWx0O1xuJGZvcm0td2lkdGgtbWVkaXVtOiAyMDBweCAhZGVmYXVsdDtcbiRmb3JtLXdpZHRoLWxhcmdlOiA1MDBweCAhZGVmYXVsdDtcbiRmb3JtLXNlbGVjdC1wYWRkaW5nLXJpZ2h0OiAyMHB4ICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LWljb24tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1zZWxlY3Qtb3B0aW9uLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LWRpc2FibGVkLWljb24tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1kYXRhbGlzdC1wYWRkaW5nLXJpZ2h0OiAyMHB4ICFkZWZhdWx0O1xuJGZvcm0tZGF0YWxpc3QtaWNvbi1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLXJhZGlvLXNpemU6IDE2cHggIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1tYXJnaW4tdG9wOiAtNHB4ICFkZWZhdWx0O1xuJGZvcm0tcmFkaW8tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1mb2N1cy1iYWNrZ3JvdW5kOiBkYXJrZW4oJGZvcm0tcmFkaW8tYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xuJGZvcm0tcmFkaW8tY2hlY2tlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cy1iYWNrZ3JvdW5kOiBkYXJrZW4oJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1kaXNhYmxlZC1pY29uLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tbGVnZW5kLWZvbnQtc2l6ZTogJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kZm9ybS1sZWdlbmQtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRmb3JtLXN0YWNrZWQtbWFyZ2luLWJvdHRvbTogNXB4ICFkZWZhdWx0O1xuJGZvcm0taG9yaXpvbnRhbC1sYWJlbC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG4kZm9ybS1ob3Jpem9udGFsLWxhYmVsLW1hcmdpbi10b3A6IDdweCAhZGVmYXVsdDtcbiRmb3JtLWhvcml6b250YWwtY29udHJvbHMtbWFyZ2luLWxlZnQ6IDIxNXB4ICFkZWZhdWx0O1xuJGZvcm0taG9yaXpvbnRhbC1jb250cm9scy10ZXh0LXBhZGRpbmctdG9wOiA3cHggIWRlZmF1bHQ7XG4kZm9ybS1pY29uLXdpZHRoOiAkZm9ybS1oZWlnaHQgIWRlZmF1bHQ7XG4kZm9ybS1pY29uLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0taWNvbi1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnRlcm5hbC1mb3JtLXNlbGVjdC1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiMwMDAlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDElMjA5JTIwNiUyMDE1JTIwNiUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyIzAwMCUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMTMlMjA5JTIwOCUyMDE1JTIwOCUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiICFkZWZhdWx0O1xuJGludGVybmFsLWZvcm0tZGF0YWxpc3QtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxMiUyMDglMjA2JTIwMTYlMjA2JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIgIWRlZmF1bHQ7XG4kaW50ZXJuYWwtZm9ybS1yYWRpby1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyIzAwMCUyMiUyMGN4JTNEJTIyOCUyMiUyMGN5JTNEJTIyOCUyMiUyMHIlM0QlMjIyJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTElMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDExJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiMwMDAlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDElMjA1JTIwNy41JTIwMiUyMDUlMjAxJTIwNS41JTIwNSUyMDEwJTIwMTMlMjAxLjUlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIiAhZGVmYXVsdDtcbiRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIjMDAwJTIyJTIweCUzRCUyMjMlMjIlMjB5JTNEJTIyOCUyMiUyMHdpZHRoJTNEJTIyMTAlMjIlMjBoZWlnaHQlM0QlMjIxJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDogcmdiYSgkZ2xvYmFsLWludmVyc2UtY29sb3IsIDAuMSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWJhY2tncm91bmQ6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtZm9ybS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtZm9ybS1mb2N1cy1iYWNrZ3JvdW5kOiBmYWRlaW4oJGludmVyc2UtZm9ybS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWZvY3VzLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLXNlbGVjdC1pY29uLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWRhdGFsaXN0LWljb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWZvcm0tcmFkaW8tYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLXJhZGlvLWZvY3VzLWJhY2tncm91bmQ6IGZhZGVpbigkaW52ZXJzZS1mb3JtLXJhZGlvLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzLWJhY2tncm91bmQ6IGZhZGVpbigkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xuJGludmVyc2UtZm9ybS1pY29uLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWljb24taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci12ZXJ0aWNhbDogJGdyaWQtZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kZ3JpZC1ndXR0ZXItdmVydGljYWwtbDogJGdyaWQtZ3V0dGVyLWhvcml6b250YWwtbCAhZGVmYXVsdDtcbiRncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsOiAkZ2xvYmFsLXNtYWxsLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLXNtYWxsLWd1dHRlci12ZXJ0aWNhbDogJGdyaWQtc21hbGwtZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kZ3JpZC1tZWRpdW0tZ3V0dGVyLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbDogJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICFkZWZhdWx0O1xuJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWw6ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbDogJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbC1sOiAkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sICFkZWZhdWx0O1xuJGdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGdyaWQtZGl2aWRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGludmVyc2UtZ3JpZC1kaXZpZGVyLWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbDogNHJlbSAhZGVmYXVsdDtcbiRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZS1tOiAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWwgKiAwLjgxMjUgIWRlZmF1bHQ7XG4kaGVhZGluZy1zbWFsbC1mb250LXNpemU6ICRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZS1tICogMC44ICFkZWZhdWx0O1xuJGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1tOiAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWwgKiAwLjg3NSAhZGVmYXVsdDtcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemU6ICRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbSAqIDAuODI1ICFkZWZhdWx0O1xuJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW06ICRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbCAhZGVmYXVsdDtcbiRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW0gKiAwLjg1ICFkZWZhdWx0O1xuJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW0gIWRlZmF1bHQ7XG4kaGVhZGluZy1sYXJnZS1mb250LXNpemUtbDogNnJlbSAhZGVmYXVsdDtcbiRoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbTogJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLWwgIWRlZmF1bHQ7XG4kaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZTogJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1tICFkZWZhdWx0O1xuJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1sOiA4cmVtICFkZWZhdWx0O1xuJGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbTogJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1sICFkZWZhdWx0O1xuJGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbDogMTFyZW0gIWRlZmF1bHQ7XG4kaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodDogMS4yICFkZWZhdWx0O1xuJGhlYWRpbmctbWVkaXVtLWxpbmUtaGVpZ2h0OiAxLjEgIWRlZmF1bHQ7XG4kaGVhZGluZy1sYXJnZS1saW5lLWhlaWdodDogMS4xICFkZWZhdWx0O1xuJGhlYWRpbmcteGxhcmdlLWxpbmUtaGVpZ2h0OiAxICFkZWZhdWx0O1xuJGhlYWRpbmctMnhsYXJnZS1saW5lLWhlaWdodDogMSAhZGVmYXVsdDtcbiRoZWFkaW5nLWRpdmlkZXItcGFkZGluZy1ib3R0b206IHVucXVvdGUoJ2NhbGMoNXB4ICsgMC4xZW0pJykgIWRlZmF1bHQ7XG4kaGVhZGluZy1kaXZpZGVyLWJvcmRlci13aWR0aDogdW5xdW90ZSgnY2FsYygwLjJweCArIDAuMDVlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLWRpdmlkZXItYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRoZWFkaW5nLWJ1bGxldC10b3A6IHVucXVvdGUoJ2NhbGMoLTAuMSAqIDFlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLWJ1bGxldC1oZWlnaHQ6IHVucXVvdGUoJ2NhbGMoNHB4ICsgMC43ZW0pJykgIWRlZmF1bHQ7XG4kaGVhZGluZy1idWxsZXQtbWFyZ2luLXJpZ2h0OiB1bnF1b3RlKCdjYWxjKDVweCArIDAuMmVtKScpICFkZWZhdWx0O1xuJGhlYWRpbmctYnVsbGV0LWJvcmRlci13aWR0aDogdW5xdW90ZSgnY2FsYyg1cHggKyAwLjFlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLWJ1bGxldC1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGhlYWRpbmctbGluZS10b3A6IDUwJSAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtYm9yZGVyLXdpZHRoOiB1bnF1b3RlKCdjYWxjKDAuMnB4ICsgMC4wNWVtKScpICFkZWZhdWx0O1xuJGhlYWRpbmctbGluZS1oZWlnaHQ6ICRoZWFkaW5nLWxpbmUtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGhlYWRpbmctbGluZS13aWR0aDogMjAwMHB4ICFkZWZhdWx0O1xuJGhlYWRpbmctbGluZS1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGhlYWRpbmctbGluZS1tYXJnaW4taG9yaXpvbnRhbDogdW5xdW90ZSgnY2FsYyg1cHggKyAwLjNlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWw6IDMuNzVyZW0gIWRlZmF1bHQ7XG4kaGVhZGluZy1wcmltYXJ5LWxpbmUtaGVpZ2h0LWw6IDEuMSAhZGVmYXVsdDtcbiRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLW06ICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWwgKiAwLjkgIWRlZmF1bHQ7XG4kaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZTogJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbCAqIDAuOCAhZGVmYXVsdDtcbiRoZWFkaW5nLXByaW1hcnktbGluZS1oZWlnaHQ6IDEuMiAhZGVmYXVsdDtcbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplLWw6IDhyZW0gIWRlZmF1bHQ7XG4kaGVhZGluZy1oZXJvLWxpbmUtaGVpZ2h0LWw6IDEgIWRlZmF1bHQ7XG4kaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1tOiAkaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sICogMC43NSAhZGVmYXVsdDtcbiRoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQtbTogMSAhZGVmYXVsdDtcbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplOiAkaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sICogMC41ICFkZWZhdWx0O1xuJGhlYWRpbmctaGVyby1saW5lLWhlaWdodDogMS4xICFkZWZhdWx0O1xuJGludmVyc2UtaGVhZGluZy1kaXZpZGVyLWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRpbnZlcnNlLWhlYWRpbmctYnVsbGV0LWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRpbnZlcnNlLWhlYWRpbmctbGluZS1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaGVpZ2h0LXNtYWxsLWhlaWdodDogMTUwcHggIWRlZmF1bHQ7XG4kaGVpZ2h0LW1lZGl1bS1oZWlnaHQ6IDMwMHB4ICFkZWZhdWx0O1xuJGhlaWdodC1sYXJnZS1oZWlnaHQ6IDQ1MHB4ICFkZWZhdWx0O1xuJGljb24taW1hZ2Utc2l6ZTogMjBweCAhZGVmYXVsdDtcbiRpY29uLWxpbmstY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaWNvbi1saW5rLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGljb24tbGluay1hY3RpdmUtY29sb3I6IGRhcmtlbigkZ2xvYmFsLWNvbG9yLCA1JSkgIWRlZmF1bHQ7XG4kaWNvbi1idXR0b24tc2l6ZTogMzZweCAhZGVmYXVsdDtcbiRpY29uLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiA1MDBweCAhZGVmYXVsdDtcbiRpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaWNvbi1idXR0b24tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaWNvbi1idXR0b24taG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kaWNvbi1idXR0b24taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaWNvbi1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkaWNvbi1idXR0b24tYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcbiRpY29uLWJ1dHRvbi1hY3RpdmUtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWxpbmstY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWljb24tbGluay1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtaWNvbi1saW5rLWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtaWNvbi1idXR0b24tYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtaWNvbi1idXR0b24taG92ZXItYmFja2dyb3VuZDogZmFkZWluKCRpbnZlcnNlLWljb24tYnV0dG9uLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZDogZmFkZWluKCRpbnZlcnNlLWljb24tYnV0dG9uLWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpY29ubmF2LW1hcmdpbi1ob3Jpem9udGFsOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRpY29ubmF2LW1hcmdpbi12ZXJ0aWNhbDogJGljb25uYXYtbWFyZ2luLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kaWNvbm5hdi1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGljb25uYXYtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpY29ubmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtaWNvbm5hdi1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29ubmF2LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWljb25uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWdsb2JhbC1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcbiRsYWJlbC1wYWRkaW5nLXZlcnRpY2FsOiAwICFkZWZhdWx0O1xuJGxhYmVsLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XG4kbGFiZWwtYmFja2dyb3VuZDogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbGFiZWwtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kbGFiZWwtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRsYWJlbC1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGxhYmVsLXN1Y2Nlc3MtYmFja2dyb3VuZDogJGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbGFiZWwtc3VjY2Vzcy1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGxhYmVsLXdhcm5pbmctYmFja2dyb3VuZDogJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbGFiZWwtd2FybmluZy1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGxhYmVsLWRhbmdlci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGxhYmVsLWRhbmdlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGFiZWwtYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWxhYmVsLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRsZWFkZXItZmlsbC1jb250ZW50OiB1bnF1b3RlKCcuJykgIWRlZmF1bHQ7XG4kbGVhZGVyLWZpbGwtbWFyZ2luLWxlZnQ6ICRnbG9iYWwtc21hbGwtZ3V0dGVyICFkZWZhdWx0O1xuJGxpZ2h0Ym94LXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCArIDEwICFkZWZhdWx0O1xuJGxpZ2h0Ym94LWJhY2tncm91bmQ6ICMwMDAgIWRlZmF1bHQ7XG4kbGlnaHRib3gtaXRlbS1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpICFkZWZhdWx0O1xuJGxpZ2h0Ym94LWl0ZW0tbWF4LXdpZHRoOiAxMDB2dyAhZGVmYXVsdDtcbiRsaWdodGJveC1pdGVtLW1heC1oZWlnaHQ6IDEwMHZoICFkZWZhdWx0O1xuJGxpZ2h0Ym94LXRvb2xiYXItcGFkZGluZy12ZXJ0aWNhbDogMTBweCAhZGVmYXVsdDtcbiRsaWdodGJveC10b29sYmFyLXBhZGRpbmctaG9yaXpvbnRhbDogMTBweCAhZGVmYXVsdDtcbiRsaWdodGJveC10b29sYmFyLWJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKSAhZGVmYXVsdDtcbiRsaWdodGJveC10b29sYmFyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNykgIWRlZmF1bHQ7XG4kbGlnaHRib3gtdG9vbGJhci1pY29uLXBhZGRpbmc6IDVweCAhZGVmYXVsdDtcbiRsaWdodGJveC10b29sYmFyLWljb24tY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KSAhZGVmYXVsdDtcbiRsaWdodGJveC10b29sYmFyLWljb24taG92ZXItY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kbGlnaHRib3gtYnV0dG9uLXNpemU6IDUwcHggIWRlZmF1bHQ7XG4kbGlnaHRib3gtYnV0dG9uLWJhY2tncm91bmQ6ICRsaWdodGJveC10b29sYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbGlnaHRib3gtYnV0dG9uLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNykgIWRlZmF1bHQ7XG4kbGlnaHRib3gtYnV0dG9uLWhvdmVyLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJGxpbmstbXV0ZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kbGluay1tdXRlZC1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRsaW5rLXRleHQtaG92ZXItY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsaW5rLWhlYWRpbmctaG92ZXItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGludmVyc2UtbGluay1tdXRlZC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGluay1tdXRlZC1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGluay10ZXh0LWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saW5rLWhlYWRpbmctaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbGlzdC1tYXJnaW4tdG9wOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRsaXN0LXBhZGRpbmctbGVmdDogMzBweCAhZGVmYXVsdDtcbiRsaXN0LW1hcmtlci1oZWlnaHQ6ICgkZ2xvYmFsLWxpbmUtaGVpZ2h0ICogMWVtKSAhZGVmYXVsdDtcbiRsaXN0LW11dGVkLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGxpc3QtZW1waGFzaXMtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1wcmltYXJ5LWNvbG9yOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsaXN0LXNlY29uZGFyeS1jb2xvcjogJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsaXN0LWJ1bGxldC1pY29uLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGxpc3QtZGl2aWRlci1tYXJnaW4tdG9wOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRsaXN0LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRsaXN0LWRpdmlkZXItYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRsaXN0LXN0cmlwZWQtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XG4kbGlzdC1zdHJpcGVkLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XG4kbGlzdC1zdHJpcGVkLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsaXN0LWxhcmdlLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGxpc3QtbGFyZ2UtZGl2aWRlci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRsaXN0LWxhcmdlLXN0cmlwZWQtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kbGlzdC1sYXJnZS1zdHJpcGVkLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XG4kaW50ZXJuYWwtbGlzdC1idWxsZXQtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYlMjA2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyIzAwMCUyMiUyMGN4JTNEJTIyMyUyMiUyMGN5JTNEJTIyMyUyMiUyMHIlM0QlMjIzJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saXN0LW11dGVkLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saXN0LWVtcGhhc2lzLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saXN0LXByaW1hcnktY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saXN0LXNlY29uZGFyeS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWxpc3QtZGl2aWRlci1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saXN0LXN0cmlwZWQtYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saXN0LWJ1bGxldC1pY29uLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbWFyZ2luLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kbWFyZ2luLXNtYWxsLW1hcmdpbjogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XG4kbWFyZ2luLW1lZGl1bS1tYXJnaW46ICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcbiRtYXJnaW4tbGFyZ2UtbWFyZ2luOiAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XG4kbWFyZ2luLWxhcmdlLW1hcmdpbi1sOiAkZ2xvYmFsLWxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcbiRtYXJnaW4teGxhcmdlLW1hcmdpbjogJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG4kZ2xvYmFsLXhsYXJnZS1tYXJnaW46IDE0MHB4ICFkZWZhdWx0O1xuJG1hcmdpbi14bGFyZ2UtbWFyZ2luLWw6ICRnbG9iYWwteGxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcbiRtYXJrZXItcGFkZGluZzogNXB4ICFkZWZhdWx0O1xuJG1hcmtlci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG1hcmtlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJG1hcmtlci1ob3Zlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbWFya2VyLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLW1hcmtlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW1hcmtlci1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRtb2RhbC16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggKyAxMCAhZGVmYXVsdDtcbiRtb2RhbC1iYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNikgIWRlZmF1bHQ7XG4kbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsOiAxNXB4ICFkZWZhdWx0O1xuJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbC1zOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwtbTogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJG1vZGFsLXBhZGRpbmctdmVydGljYWw6ICRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kbW9kYWwtcGFkZGluZy12ZXJ0aWNhbC1zOiA1MHB4ICFkZWZhdWx0O1xuJG1vZGFsLWRpYWxvZy13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtZGlhbG9nLWJhY2tncm91bmQ6ICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRtb2RhbC1jb250YWluZXItd2lkdGg6IDEyMDBweCAhZGVmYXVsdDtcbiRtb2RhbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kbW9kYWwtYm9keS1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogbWF0aC5kaXYoJG1vZGFsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwsIDIpICFkZWZhdWx0O1xuJG1vZGFsLWhlYWRlci1iYWNrZ3JvdW5kOiAkbW9kYWwtZGlhbG9nLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctdmVydGljYWw6IG1hdGguZGl2KCRtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLCAyKSAhZGVmYXVsdDtcbiRtb2RhbC1mb290ZXItYmFja2dyb3VuZDogJG1vZGFsLWRpYWxvZy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG1vZGFsLXRpdGxlLWZvbnQtc2l6ZTogJGdsb2JhbC14bGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xuJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XG4kbW9kYWwtY2xvc2UtcG9zaXRpb246ICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xuJG1vZGFsLWNsb3NlLXBhZGRpbmc6IDVweCAhZGVmYXVsdDtcbiRtb2RhbC1jbG9zZS1vdXRzaWRlLXBvc2l0aW9uOiAwICFkZWZhdWx0O1xuJG1vZGFsLWNsb3NlLW91dHNpZGUtdHJhbnNsYXRlOiAxMDAlICFkZWZhdWx0O1xuJG1vZGFsLWNsb3NlLW91dHNpZGUtY29sb3I6IGxpZ2h0ZW4oJGdsb2JhbC1pbnZlcnNlLWNvbG9yLCAyMCUpICFkZWZhdWx0O1xuJG1vZGFsLWNsb3NlLW91dHNpZGUtaG92ZXItY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRuYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiA1cHggIWRlZmF1bHQ7XG4kbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAwICFkZWZhdWx0O1xuJG5hdi1zdWJsaXN0LXBhZGRpbmctdmVydGljYWw6IDVweCAhZGVmYXVsdDtcbiRuYXYtc3VibGlzdC1wYWRkaW5nLWxlZnQ6IDE1cHggIWRlZmF1bHQ7XG4kbmF2LXN1Ymxpc3QtZGVlcGVyLXBhZGRpbmctbGVmdDogMTVweCAhZGVmYXVsdDtcbiRuYXYtc3VibGlzdC1pdGVtLXBhZGRpbmctdmVydGljYWw6IDJweCAhZGVmYXVsdDtcbiRuYXYtcGFyZW50LWljb24td2lkdGg6ICgkZ2xvYmFsLWxpbmUtaGVpZ2h0ICogMWVtKSAhZGVmYXVsdDtcbiRuYXYtcGFyZW50LWljb24taGVpZ2h0OiAkbmF2LXBhcmVudC1pY29uLXdpZHRoICFkZWZhdWx0O1xuJG5hdi1wYXJlbnQtaWNvbi1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRuYXYtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICRuYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xuJG5hdi1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAkbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuJG5hdi1oZWFkZXItZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRuYXYtaGVhZGVyLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kbmF2LWhlYWRlci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRuYXYtZGl2aWRlci1tYXJnaW4tdmVydGljYWw6IDVweCAhZGVmYXVsdDtcbiRuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbDogMCAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1kZWZhdWx0LWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1kZWZhdWx0LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1kaXZpZGVyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1wcmltYXJ5LWl0ZW0tZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1pdGVtLWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJG5hdi1wcmltYXJ5LWl0ZW0tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXByaW1hcnktaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1oZWFkZXItY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXByaW1hcnktZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJG5hdi1wcmltYXJ5LWRpdmlkZXItYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWRpdmlkZXJzLW1hcmdpbi10b3A6IDAgIWRlZmF1bHQ7XG4kbmF2LWRpdmlkZXJzLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbmF2LWRpdmlkZXJzLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW50ZXJuYWwtbmF2LXBhcmVudC1jbG9zZS1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5bGluZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyIzAwMCUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuMSUyMiUyMHBvaW50cyUzRCUyMjEwJTIwMSUyMDQlMjA3JTIwMTAlMjAxMyUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiICFkZWZhdWx0O1xuJGludGVybmFsLW5hdi1wYXJlbnQtb3Blbi1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5bGluZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyIzAwMCUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuMSUyMiUyMHBvaW50cyUzRCUyMjElMjA0JTIwNyUyMDEwJTIwMTMlMjA0JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtcGFyZW50LWljb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtZGVmYXVsdC1oZWFkZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LWRpdmlkZXItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGludmVyc2UtbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1oZWFkZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWRpdmlkZXItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kaXZpZGVycy1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kbmF2YmFyLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRuYXZiYXItY29sb3ItbW9kZTogbm9uZSAhZGVmYXVsdDtcbiRuYXZiYXItbmF2LWl0ZW0taGVpZ2h0OiA4MHB4ICFkZWZhdWx0O1xuJG5hdmJhci1uYXYtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6IDE1cHggIWRlZmF1bHQ7XG4kbmF2YmFyLW5hdi1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1uYXYtaXRlbS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJG5hdmJhci1uYXYtaXRlbS1mb250LWZhbWlseTogJGdsb2JhbC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRuYXZiYXItbmF2LWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItaXRlbS1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItdG9nZ2xlLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci10b2dnbGUtaG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLXN1YnRpdGxlLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCArIDIwICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLW1hcmdpbjogMTVweCAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tcGFkZGluZzogMjVweCAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tYmFja2dyb3VuZDogJGdsb2JhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDogKCRuYXZiYXItZHJvcGRvd24tcGFkZGluZyAqIDIpICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci12ZXJ0aWNhbDogJG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci1ob3Jpem9udGFsICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi10b3A6IDAgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXItbWFyZ2luLWJvdHRvbTogJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi10b3AgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGJhci1iYWNrZ3JvdW5kOiAkbmF2YmFyLWRyb3Bkb3duLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3BiYXItei1pbmRleDogJGdsb2JhbC16LWluZGV4IC0gMjAgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdmJhci1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXZiYXItdG9nZ2xlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXBvc2l0aW9uOiAxMHB4ICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggKyA0MCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24td2lkdGg6IDM1MHB4ICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLW1hcmdpbi10b3A6IDEwcHggIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZzogJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLW1lc3NhZ2UtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWZvbnQtc2l6ZTogJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNsb3NlLXRvcDogJG5vdGlmaWNhdGlvbi1tZXNzYWdlLXBhZGRpbmcgKyA1cHggIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLWNsb3NlLXJpZ2h0OiAkbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZyAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzLWNvbG9yOiAkZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nLWNvbG9yOiAkZ2xvYmFsLXdhcm5pbmctYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXItY29sb3I6ICRnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtYmFyLXdpZHRoOiAyNzBweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtYmFyLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1iYXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRvZmZjYW52YXMtYmFyLWJhY2tncm91bmQ6ICRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWJhci1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtYmFyLXdpZHRoLW06IDM1MHB4ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1iYXItcGFkZGluZy12ZXJ0aWNhbC1tOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWJhci1wYWRkaW5nLWhvcml6b250YWwtbTogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1jbG9zZS1wb3NpdGlvbjogMjBweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtY2xvc2UtcGFkZGluZzogNXB4ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKSAhZGVmYXVsdDtcbiRvdmVybGF5LXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kb3ZlcmxheS1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRvdmVybGF5LWRlZmF1bHQtYmFja2dyb3VuZDogcmdiYSgkZ2xvYmFsLWJhY2tncm91bmQsIDAuOCkgIWRlZmF1bHQ7XG4kb3ZlcmxheS1wcmltYXJ5LWJhY2tncm91bmQ6IHJnYmEoJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCwgMC44KSAhZGVmYXVsdDtcbiRvdmVybGF5LXByaW1hcnktY29sb3ItbW9kZTogbGlnaHQgIWRlZmF1bHQ7XG4kcGFkZGluZy1wYWRkaW5nOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRwYWRkaW5nLXBhZGRpbmctbDogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJHBhZGRpbmctc21hbGwtcGFkZGluZzogJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kcGFkZGluZy1sYXJnZS1wYWRkaW5nOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRwYWRkaW5nLWxhcmdlLXBhZGRpbmctbDogJGdsb2JhbC1sYXJnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1tYXJnaW4taG9yaXpvbnRhbDogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogNXB4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLWhvcml6b250YWw6IDEwcHggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHBsYWNlaG9sZGVyLW1hcmdpbi12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kcGxhY2Vob2xkZXItcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kcGxhY2Vob2xkZXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRwbGFjZWhvbGRlci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRwb3NpdGlvbi1zbWFsbC1tYXJnaW46ICRnbG9iYWwtc21hbGwtZ3V0dGVyICFkZWZhdWx0O1xuJHBvc2l0aW9uLW1lZGl1bS1tYXJnaW46ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJHBvc2l0aW9uLWxhcmdlLW1hcmdpbjogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kcG9zaXRpb24tbGFyZ2UtbWFyZ2luLWw6IDUwcHggIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxNXB4ICFkZWZhdWx0O1xuJHByb2dyZXNzLW1hcmdpbi12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzZWFyY2gtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kc2VhcmNoLXBsYWNlaG9sZGVyLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC1pY29uLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC1kZWZhdWx0LXdpZHRoOiAyNDBweCAhZGVmYXVsdDtcbiRzZWFyY2gtZGVmYXVsdC1oZWlnaHQ6ICRnbG9iYWwtY29udHJvbC1oZWlnaHQgIWRlZmF1bHQ7XG4kc2VhcmNoLWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsOiAxMHB4ICFkZWZhdWx0O1xuJHNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHNlYXJjaC1kZWZhdWx0LWZvY3VzLWJhY2tncm91bmQ6IGRhcmtlbigkc2VhcmNoLWRlZmF1bHQtYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xuJHNlYXJjaC1kZWZhdWx0LWljb24td2lkdGg6ICRnbG9iYWwtY29udHJvbC1oZWlnaHQgIWRlZmF1bHQ7XG4kc2VhcmNoLW5hdmJhci13aWR0aDogNDAwcHggIWRlZmF1bHQ7XG4kc2VhcmNoLW5hdmJhci1oZWlnaHQ6IDQwcHggIWRlZmF1bHQ7XG4kc2VhcmNoLW5hdmJhci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRzZWFyY2gtbmF2YmFyLWZvbnQtc2l6ZTogJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kc2VhcmNoLW5hdmJhci1pY29uLXdpZHRoOiA0MHB4ICFkZWZhdWx0O1xuJHNlYXJjaC1sYXJnZS13aWR0aDogNTAwcHggIWRlZmF1bHQ7XG4kc2VhcmNoLWxhcmdlLWhlaWdodDogODBweCAhZGVmYXVsdDtcbiRzZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kc2VhcmNoLWxhcmdlLWZvbnQtc2l6ZTogJGdsb2JhbC0yeGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRzZWFyY2gtbGFyZ2UtaWNvbi13aWR0aDogODBweCAhZGVmYXVsdDtcbiRzZWFyY2gtdG9nZ2xlLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC10b2dnbGUtaG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zZWFyY2gtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXNlYXJjaC1wbGFjZWhvbGRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc2VhcmNoLWljb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGludmVyc2Utc2VhcmNoLWRlZmF1bHQtZm9jdXMtYmFja2dyb3VuZDogZmFkZWluKCRpbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLXNlYXJjaC1uYXZiYXItYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kc2VjdGlvbi1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XG4kc2VjdGlvbi1wYWRkaW5nLXZlcnRpY2FsLW06ICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuJHNlY3Rpb24teHNtYWxsLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJHNlY3Rpb24tc21hbGwtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1tZWRpdW0tbWFyZ2luICFkZWZhdWx0O1xuJHNlY3Rpb24tbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG4kc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW06ICRnbG9iYWwteGxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcbiRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG4kc2VjdGlvbi14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tOiAoJGdsb2JhbC1sYXJnZS1tYXJnaW4gKyAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4pICFkZWZhdWx0O1xuJHNlY3Rpb24tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1tdXRlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHNlY3Rpb24tcHJpbWFyeS1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcbiRzZWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHNlY3Rpb24tc2Vjb25kYXJ5LWNvbG9yLW1vZGU6IGxpZ2h0ICFkZWZhdWx0O1xuJHNsaWRlbmF2LXBhZGRpbmctdmVydGljYWw6IDVweCAhZGVmYXVsdDtcbiRzbGlkZW5hdi1wYWRkaW5nLWhvcml6b250YWw6IDEwcHggIWRlZmF1bHQ7XG4kc2xpZGVuYXYtY29sb3I6IHJnYmEoJGdsb2JhbC1jb2xvciwgMC41KSAhZGVmYXVsdDtcbiRzbGlkZW5hdi1ob3Zlci1jb2xvcjogcmdiYSgkZ2xvYmFsLWNvbG9yLCAwLjkpICFkZWZhdWx0O1xuJHNsaWRlbmF2LWFjdGl2ZS1jb2xvcjogcmdiYSgkZ2xvYmFsLWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuJHNsaWRlbmF2LWxhcmdlLXBhZGRpbmctdmVydGljYWw6IDEwcHggIWRlZmF1bHQ7XG4kc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsOiAkc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRpbnZlcnNlLXNsaWRlbmF2LWNvbG9yOiByZ2JhKCRpbnZlcnNlLWdsb2JhbC1jb2xvciwgMC43KSAhZGVmYXVsdDtcbiRpbnZlcnNlLXNsaWRlbmF2LWhvdmVyLWNvbG9yOiByZ2JhKCRpbnZlcnNlLWdsb2JhbC1jb2xvciwgMC45NSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zbGlkZW5hdi1hY3RpdmUtY29sb3I6IHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjcpICFkZWZhdWx0O1xuJHNsaWRlci1jb250YWluZXItbWFyZ2luLXRvcDogLTExcHggIWRlZmF1bHQ7XG4kc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tYm90dG9tOiAtMzlweCAhZGVmYXVsdDtcbiRzbGlkZXItY29udGFpbmVyLW1hcmdpbi1sZWZ0OiAtMjVweCAhZGVmYXVsdDtcbiRzbGlkZXItY29udGFpbmVyLW1hcmdpbi1yaWdodDogLTI1cHggIWRlZmF1bHQ7XG4kc29ydGFibGUtZHJhZ2dlZC16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggKyA1MCAhZGVmYXVsdDtcbiRzb3J0YWJsZS1wbGFjZWhvbGRlci1vcGFjaXR5OiAwICFkZWZhdWx0O1xuJHNvcnRhYmxlLWVtcHR5LWhlaWdodDogNTBweCAhZGVmYXVsdDtcbiRzcGlubmVyLXNpemU6IDMwcHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1zdHJva2Utd2lkdGg6IDEgIWRlZmF1bHQ7XG4kc3Bpbm5lci1yYWRpdXM6IGZsb29yKG1hdGguZGl2KCgkc3Bpbm5lci1zaXplIC0gJHNwaW5uZXItc3Ryb2tlLXdpZHRoKSwgMikpICFkZWZhdWx0O1xuJHNwaW5uZXItY2lyY3VtZmVyZW5jZTogcm91bmQoMiAqIDMuMTQxICogJHNwaW5uZXItcmFkaXVzKSAhZGVmYXVsdDtcbiRzcGlubmVyLWR1cmF0aW9uOiAxLjRzICFkZWZhdWx0O1xuJHN0aWNreS16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggLSAyMCAhZGVmYXVsdDtcbiRzdGlja3ktYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzICFkZWZhdWx0O1xuJHN0aWNreS1yZXZlcnNlLWFuaW1hdGlvbi1kdXJhdGlvbjogMC4ycyAhZGVmYXVsdDtcbiRzdWJuYXYtbWFyZ2luLWhvcml6b250YWw6IDIwcHggIWRlZmF1bHQ7XG4kc3VibmF2LWl0ZW0tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kc3VibmF2LWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kc3VibmF2LWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHN1Ym5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRzdWJuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbDogJHN1Ym5hdi1tYXJnaW4taG9yaXpvbnRhbCAhZGVmYXVsdDtcbiRzdWJuYXYtZGl2aWRlci1ib3JkZXItaGVpZ2h0OiAxLjVlbSAhZGVmYXVsdDtcbiRzdWJuYXYtZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJHN1Ym5hdi1kaXZpZGVyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiA1cHggIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6IDEwcHggIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLWNvbG9yOiAkc3VibmF2LWl0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogJHN1Ym5hdi1waWxsLWl0ZW0taG92ZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I6ICRzdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kc3VibmF2LWl0ZW0tZGlzYWJsZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zdWJuYXYtaXRlbS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXN1Ym5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LWRpdmlkZXItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXItYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1vbmNsaWNrLWNvbG9yOiAkaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXN1Ym5hdi1pdGVtLWRpc2FibGVkLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kdGFiLW1hcmdpbi1ob3Jpem9udGFsOiAyMHB4ICFkZWZhdWx0O1xuJHRhYi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogMTBweCAhZGVmYXVsdDtcbiR0YWItaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiA1cHggIWRlZmF1bHQ7XG4kdGFiLWl0ZW0tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kdGFiLWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kdGFiLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHRhYi1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiR0YWItaXRlbS1kaXNhYmxlZC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYi1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS10YWItaXRlbS1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdGFiLWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS10YWItaXRlbS1kaXNhYmxlZC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLW1hcmdpbi12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAxNnB4ICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsOiAxMnB4ICFkZWZhdWx0O1xuJHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZGVyLWNlbGwtZm9udC13ZWlnaHQ6IG5vcm1hbCAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkZXItY2VsbC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1mb290ZXItZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctYWN0aXZlLWJhY2tncm91bmQ6ICNmZmQgIWRlZmF1bHQ7XG4kdGFibGUtZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJHRhYmxlLWRpdmlkZXItYm9yZGVyOiAjYzRkMGQ4ICFkZWZhdWx0Oy8vJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7IFxuJHRhYmxlLXN0cmlwZWQtcm93LWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0YWJsZS1ob3Zlci1yb3ctYmFja2dyb3VuZDogJHRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0YWJsZS1zbWFsbC1jZWxsLXBhZGRpbmctdmVydGljYWw6IDEwcHggIWRlZmF1bHQ7XG4kdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLWhvcml6b250YWw6IDEycHggIWRlZmF1bHQ7XG4kdGFibGUtbGFyZ2UtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAyMnB4ICFkZWZhdWx0O1xuJHRhYmxlLWxhcmdlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsOiAxMnB4ICFkZWZhdWx0O1xuJHRhYmxlLWV4cGFuZC1taW4td2lkdGg6IDE1MHB4ICFkZWZhdWx0O1xuJGludmVyc2UtdGFibGUtaGVhZGVyLWNlbGwtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYmxlLWNhcHRpb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZDogZmFkZS1vdXQoJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQsIDAuMDIpICFkZWZhdWx0O1xuJGludmVyc2UtdGFibGUtZGl2aWRlci1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS10YWJsZS1zdHJpcGVkLXJvdy1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYmxlLWhvdmVyLXJvdy1iYWNrZ3JvdW5kOiAkaW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kdGV4dC1sZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kdGV4dC1sZWFkLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kdGV4dC1sZWFkLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJHRleHQtbWV0YS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJHRleHQtbWV0YS1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJHRleHQtbWV0YS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiR0ZXh0LXNtYWxsLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kdGV4dC1zbWFsbC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJHRleHQtbGFyZ2UtZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0ZXh0LWxhcmdlLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kdGV4dC1tdXRlZC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiR0ZXh0LWVtcGhhc2lzLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJHRleHQtcHJpbWFyeS1jb2xvcjogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kdGV4dC1zZWNvbmRhcnktY29sb3I6ICRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kdGV4dC1zdWNjZXNzLWNvbG9yOiAkZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0ZXh0LXdhcm5pbmctY29sb3I6ICRnbG9iYWwtd2FybmluZy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRleHQtZGFuZ2VyLWNvbG9yOiAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRleHQtYmFja2dyb3VuZC1jb2xvcjogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS10ZXh0LWxlYWQtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXRleHQtbWV0YS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdGV4dC1tdXRlZC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdGV4dC1lbXBoYXNpcy1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdGV4dC1wcmltYXJ5LWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtdGV4dC1zZWNvbmRhcnktY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kdGh1bWJuYXYtbWFyZ2luLWhvcml6b250YWw6IDE1cHggIWRlZmF1bHQ7XG4kdGh1bWJuYXYtbWFyZ2luLXZlcnRpY2FsOiAkdGh1bWJuYXYtbWFyZ2luLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kdGlsZS1wYWRkaW5nLWhvcml6b250YWw6IDE1cHggIWRlZmF1bHQ7XG4kdGlsZS1wYWRkaW5nLWhvcml6b250YWwtczogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kdGlsZS1wYWRkaW5nLWhvcml6b250YWwtbTogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJHRpbGUtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1tZWRpdW0tbWFyZ2luICFkZWZhdWx0O1xuJHRpbGUtcGFkZGluZy12ZXJ0aWNhbC1tOiAkZ2xvYmFsLWxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcbiR0aWxlLXhzbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiR0aWxlLXNtYWxsLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcbiR0aWxlLWxhcmdlLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuJHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tOiAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG4kdGlsZS14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC14bGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuJHRpbGUteGxhcmdlLXBhZGRpbmctdmVydGljYWwtbTogKCRnbG9iYWwtbGFyZ2UtbWFyZ2luICsgJGdsb2JhbC14bGFyZ2UtbWFyZ2luKSAhZGVmYXVsdDtcbiR0aWxlLWRlZmF1bHQtYmFja2dyb3VuZDogJGdsb2JhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRpbGUtbXV0ZWQtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRpbGUtcHJpbWFyeS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0aWxlLXByaW1hcnktY29sb3ItbW9kZTogbGlnaHQgIWRlZmF1bHQ7XG4kdGlsZS1zZWNvbmRhcnktYmFja2dyb3VuZDogJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0aWxlLXNlY29uZGFyeS1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcbiR0b29sdGlwLXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCArIDMwICFkZWZhdWx0O1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcbiR0b29sdGlwLXBhZGRpbmctdmVydGljYWw6IDNweCAhZGVmYXVsdDtcbiR0b29sdGlwLXBhZGRpbmctaG9yaXpvbnRhbDogNnB4ICFkZWZhdWx0O1xuJHRvb2x0aXAtYmFja2dyb3VuZDogIzY2NiAhZGVmYXVsdDtcbiR0b29sdGlwLWJvcmRlci1yYWRpdXM6IDJweCAhZGVmYXVsdDtcbiR0b29sdGlwLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kdG9vbHRpcC1mb250LXNpemU6IDEycHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1tYXJnaW46IDEwcHggIWRlZmF1bHQ7XG4kdG90b3AtcGFkZGluZzogNXB4ICFkZWZhdWx0O1xuJHRvdG9wLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHRvdG9wLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJHRvdG9wLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXRvdG9wLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS10b3RvcC1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdG90b3AtYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhZGVmYXVsdDtcbiR0cmFuc2l0aW9uLXNjYWxlOiAxLjAzICFkZWZhdWx0O1xuJHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlOiAxMHB4ICFkZWZhdWx0O1xuJHRyYW5zaXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZTogNTBweCAhZGVmYXVsdDtcbiR0cmFuc2l0aW9uLXNsb3ctZHVyYXRpb246IDAuN3MgIWRlZmF1bHQ7XG4kcGFuZWwtc2Nyb2xsYWJsZS1oZWlnaHQ6IDE3MHB4ICFkZWZhdWx0O1xuJHBhbmVsLXNjcm9sbGFibGUtcGFkZGluZzogMTBweCAhZGVmYXVsdDtcbiRwYW5lbC1zY3JvbGxhYmxlLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kcGFuZWwtc2Nyb2xsYWJsZS1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGJvcmRlci1yb3VuZGVkLWJvcmRlci1yYWRpdXM6IDVweCAhZGVmYXVsdDtcbiRib3gtc2hhZG93LWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctYm90dG9tLWhlaWdodDogMzBweCAhZGVmYXVsdDtcbiRib3gtc2hhZG93LWJvdHRvbS1ib3JkZXItcmFkaXVzOiAxMDAlICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctYm90dG9tLWJhY2tncm91bmQ6ICM0NDQgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy1ib3R0b20tYmx1cjogMjBweCAhZGVmYXVsdDtcbiRkcm9wY2FwLW1hcmdpbi1yaWdodDogMTBweCAhZGVmYXVsdDtcbiRkcm9wY2FwLWZvbnQtc2l6ZTogKCgkZ2xvYmFsLWxpbmUtaGVpZ2h0ICogMykgKiAxZW0pICFkZWZhdWx0O1xuJGxvZ28tZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRsb2dvLWZvbnQtZmFtaWx5OiAkZ2xvYmFsLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGxvZ28tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbG9nby1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRkcmFnb3Zlci1ib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDEwMCwxMDAsMTAwLDAuMykgIWRlZmF1bHQ7XG4kaW52ZXJzZS1sb2dvLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1sb2dvLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kZGVwcmVjYXRlZDogZmFsc2UgIWRlZmF1bHQ7XG4kYnJlYWtwb2ludC1zbWFsbDogNjQwcHggIWRlZmF1bHQ7XG4kYnJlYWtwb2ludC1tZWRpdW06IDk2MHB4ICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbGFyZ2U6IDEyMDBweCAhZGVmYXVsdDtcbiRicmVha3BvaW50LXhsYXJnZTogMTYwMHB4ICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQteHNtYWxsLW1heDogKCRicmVha3BvaW50LXNtYWxsIC0gMSkgIWRlZmF1bHQ7XG4kYnJlYWtwb2ludC1zbWFsbC1tYXg6ICgkYnJlYWtwb2ludC1tZWRpdW0gLSAxKSAhZGVmYXVsdDtcbiRicmVha3BvaW50LW1lZGl1bS1tYXg6ICgkYnJlYWtwb2ludC1sYXJnZSAtIDEpICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbGFyZ2UtbWF4OiAoJGJyZWFrcG9pbnQteGxhcmdlIC0gMSkgIWRlZmF1bHQ7XG4kZ2xvYmFsLXNtYWxsLWJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsMCwwLDAuMDgpICFkZWZhdWx0O1xuJGdsb2JhbC1tZWRpdW0tYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsMCwwLDAuMDgpICFkZWZhdWx0O1xuJGdsb2JhbC1sYXJnZS1ib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsMCwwLDAuMTYpICFkZWZhdWx0O1xuJGdsb2JhbC14bGFyZ2UtYm94LXNoYWRvdzogMCAyOHB4IDUwcHggcmdiYSgwLDAsMCwwLjE2KSAhZGVmYXVsdDtcbiR3aWR0aC1zbWFsbC13aWR0aDogMTUwcHggIWRlZmF1bHQ7XG4kd2lkdGgtbWVkaXVtLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcbiR3aWR0aC1sYXJnZS13aWR0aDogNDUwcHggIWRlZmF1bHQ7XG4kd2lkdGgteGxhcmdlLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcbiR3aWR0aC0yeGxhcmdlLXdpZHRoOiA3NTBweCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1tYXJnaW4tbGVmdDogMTBweCAhZGVmYXVsdDtcbiRhY2NvcmRpb24taWNvbi1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnRlcm5hbC1hY2NvcmRpb24tb3Blbi1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjEzJTIyJTIwaGVpZ2h0JTNEJTIyMTMlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMyUyMDEzJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiMwMDAlMjIlMjB3aWR0aCUzRCUyMjEzJTIyJTIwaGVpZ2h0JTNEJTIyMSUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjYlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIiAhZGVmYXVsdDtcbiRpbnRlcm5hbC1hY2NvcmRpb24tY2xvc2UtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjEzJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTMlMjAxMyUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjElMjIlMjB4JTNEJTIyMCUyMiUyMHklM0QlMjI2JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwd2lkdGglM0QlMjIxJTIyJTIwaGVpZ2h0JTNEJTIyMTMlMjIlMjB4JTNEJTIyNiUyMiUyMHklM0QlMjIwJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2Utb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLWhvdmVyLW9wYWNpdHk6IDAuOCAhZGVmYXVsdDtcbiRhcnRpY2xlLW1ldGEtbGluay1jb2xvcjogJGFydGljbGUtbWV0YS1jb2xvciAhZGVmYXVsdDtcbiRhcnRpY2xlLW1ldGEtbGluay1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRiYXNlLWNvZGUtcGFkZGluZy1ob3Jpem9udGFsOiA2cHggIWRlZmF1bHQ7XG4kYmFzZS1jb2RlLXBhZGRpbmctdmVydGljYWw6IDJweCAhZGVmYXVsdDtcbiRiYXNlLWNvZGUtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJhc2UtYmxvY2txdW90ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGJhc2UtcHJlLXBhZGRpbmc6IDEwcHggIWRlZmF1bHQ7XG4kYmFzZS1wcmUtYmFja2dyb3VuZDogJGdsb2JhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJhc2UtcHJlLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kYmFzZS1wcmUtYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRiYXNlLXByZS1ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJhc2UtYmxvY2txdW90ZS1mb290ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRidXR0b24tZGVmYXVsdC1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJvcmRlcjogZGFya2VuKCRnbG9iYWwtYm9yZGVyLCAyMCUpICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1ib3JkZXI6IGRhcmtlbigkZ2xvYmFsLWJvcmRlciwgMzAlKSAhZGVmYXVsdDtcbiRidXR0b24tZGlzYWJsZWQtYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRidXR0b24tdGV4dC1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGJ1dHRvbi10ZXh0LWJvcmRlcjogJGJ1dHRvbi10ZXh0LWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtYmFkZ2UtYm9yZGVyLXJhZGl1czogMnB4ICFkZWZhdWx0O1xuJGNhcmQtYmFkZ2UtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRjYXJkLWhvdmVyLWJveC1zaGFkb3c6ICRnbG9iYWwtbGFyZ2UtYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRjYXJkLWRlZmF1bHQtYm94LXNoYWRvdzogJGdsb2JhbC1tZWRpdW0tYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRjYXJkLWRlZmF1bHQtaG92ZXItYm94LXNoYWRvdzogJGdsb2JhbC1sYXJnZS1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGNhcmQtZGVmYXVsdC1oZWFkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjYXJkLWRlZmF1bHQtaGVhZGVyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kY2FyZC1kZWZhdWx0LWZvb3Rlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNhcmQtZGVmYXVsdC1mb290ZXItYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRjYXJkLXByaW1hcnktYm94LXNoYWRvdzogJGdsb2JhbC1tZWRpdW0tYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRjYXJkLXByaW1hcnktaG92ZXItYm94LXNoYWRvdzogJGdsb2JhbC1sYXJnZS1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGNhcmQtc2Vjb25kYXJ5LWJveC1zaGFkb3c6ICRnbG9iYWwtbWVkaXVtLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kY2FyZC1zZWNvbmRhcnktaG92ZXItYm94LXNoYWRvdzogJGdsb2JhbC1sYXJnZS1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGNvbW1lbnQtcHJpbWFyeS1wYWRkaW5nOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRjb21tZW50LXByaW1hcnktYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LXdlaWdodDogbm9ybWFsICFkZWZhdWx0O1xuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWJvcmRlcjogcmdiYSgkZ2xvYmFsLWNvbG9yLCAwLjQpICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWhvdmVyLWJvcmRlcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZG90bmF2LWl0ZW0tb25jbGljay1ib3JkZXI6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWFjdGl2ZS1ib3JkZXI6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGRyb3Bkb3duLW5hdi1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJveC1zaGFkb3c6IDAgNXB4IDEycHggcmdiYSgwLDAsMCwwLjE1KSAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRodW1iLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi1ib3JkZXI6IGRhcmtlbigkZ2xvYmFsLWJvcmRlciwgMTAlKSAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXM6IDUwMHB4ICFkZWZhdWx0O1xuJGZvcm0tYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRmb3JtLWZvY3VzLWJvcmRlcjogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZm9ybS1kaXNhYmxlZC1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGZvcm0tZGFuZ2VyLWJvcmRlcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLXN1Y2Nlc3MtYm9yZGVyOiAkZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLWJsYW5rLWZvY3VzLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kZm9ybS1ibGFuay1mb2N1cy1ib3JkZXItc3R5bGU6IGRhc2hlZCAhZGVmYXVsdDtcbiRmb3JtLXJhZGlvLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1ib3JkZXI6IGRhcmtlbigkZ2xvYmFsLWJvcmRlciwgMTAlKSAhZGVmYXVsdDtcbiRmb3JtLXJhZGlvLWZvY3VzLWJvcmRlcjogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1jaGVja2VkLWJvcmRlcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1kaXNhYmxlZC1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGludmVyc2UtZm9ybS1sYWJlbC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJHN1Ym5hdi1pdGVtLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kbGFiZWwtYm9yZGVyLXJhZGl1czogMnB4ICFkZWZhdWx0O1xuJGxhYmVsLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kbGlzdC1zdHJpcGVkLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbGlzdC1zdHJpcGVkLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kbW9kYWwtY2xvc2UtZnVsbC1wYWRkaW5nOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRtb2RhbC1jbG9zZS1mdWxsLWJhY2tncm91bmQ6ICRtb2RhbC1kaWFsb2ctYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJG5hdmJhci1uYXYtaXRlbS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tYm94LXNoYWRvdzogMCA1cHggMTJweCByZ2JhKDAsMCwwLDAuMTUpICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wYmFyLWJveC1zaGFkb3c6IDAgNXB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMDUpICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1ncmlkLWRpdmlkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tZ3JpZC1kaXZpZGVyLWJvcmRlcjogJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXIgIWRlZmF1bHQ7XG4kcGxhY2Vob2xkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRwbGFjZWhvbGRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJHByb2dyZXNzLWJvcmRlci1yYWRpdXM6IDUwMHB4ICFkZWZhdWx0O1xuJHNlYXJjaC1kZWZhdWx0LWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kc2VhcmNoLWRlZmF1bHQtYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRzZWFyY2gtZGVmYXVsdC1mb2N1cy1ib3JkZXI6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHN1Ym5hdi1pdGVtLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kdGFiLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGFiLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kdGFiLWl0ZW0tYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiR0YWItaXRlbS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJHRhYi1pdGVtLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kdGFiLWl0ZW0tYWN0aXZlLWJvcmRlcjogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS10YWItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJHRhYmxlLXN0cmlwZWQtYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiR0YWJsZS1zdHJpcGVkLWJvcmRlcjogI2M0ZDBkOCAhZGVmYXVsdDsvLyRnbG9iYWwtYm9yZGVyO1xuJHRleHQtbWV0YS1saW5rLWNvbG9yOiAkdGV4dC1tZXRhLWNvbG9yICFkZWZhdWx0O1xuJHRleHQtbWV0YS1saW5rLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJHRodW1ibmF2LWl0ZW0tYmFja2dyb3VuZDogcmdiYSgkZ2xvYmFsLWJhY2tncm91bmQsIDAuNCkgIWRlZmF1bHQ7XG4kdGh1bWJuYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0aHVtYm5hdi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDsiLCIvLyBOYW1lOiAgICAgICAgICAgIEJhc2Vcbi8vIERlc2NyaXB0aW9uOiAgICAgRGVmYXVsdCB2YWx1ZXMgZm9yIEhUTUwgZWxlbWVudHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1saW5rYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaDFgLCBgdWstaDJgLCBgdWstaDNgLCBgdWstaDRgLCBgdWstaDVgLCBgdWstaDZgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ocmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kYmFzZS1ib2R5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJhc2UtYm9keS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYmFzZS1ib2R5LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsICFkZWZhdWx0O1xuJGJhc2UtYm9keS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJhc2UtYm9keS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kYmFzZS1ib2R5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJGJhc2UtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGluay1jb2xvciAhZGVmYXVsdDtcbiRiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGJhc2UtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRiYXNlLWxpbmstaG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICB1bmRlcmxpbmUgIWRlZmF1bHQ7XG5cbiRiYXNlLXN0cm9uZy1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICBib2xkZXIgIWRlZmF1bHQ7XG4kYmFzZS1jb2RlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmFzZS1jb2RlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc29sYXMsIG1vbmFjbywgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGJhc2UtY29kZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYmFzZS1lbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRiYXNlLWlucy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmZkICFkZWZhdWx0O1xuJGJhc2UtaW5zLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kYmFzZS1tYXJrLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgI2ZmZCAhZGVmYXVsdDtcbiRiYXNlLW1hcmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGJhc2UtcXVvdGUtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgIGl0YWxpYyAhZGVmYXVsdDtcbiRiYXNlLXNtYWxsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICA4MCUgIWRlZmF1bHQ7XG5cbiRiYXNlLW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuJGJhc2UtaGVhZGluZy1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYmFzZS1oZWFkaW5nLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsICFkZWZhdWx0O1xuJGJhc2UtaGVhZGluZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kYmFzZS1oZWFkaW5nLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiRiYXNlLWhlYWRpbmctbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XG4kYmFzZS1oMS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC0yeGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWgxLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYmFzZS1oMS1mb250LXNpemUtbSAqIDAuODUgIWRlZmF1bHQ7XG4kYmFzZS1oMS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4yICFkZWZhdWx0O1xuJGJhc2UtaDItZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwteGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWgyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYmFzZS1oMi1mb250LXNpemUtbSAqIDAuODUgIWRlZmF1bHQ7XG4kYmFzZS1oMi1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zICFkZWZhdWx0O1xuJGJhc2UtaDMtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGJhc2UtaDMtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcbiRiYXNlLWg0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmFzZS1oNC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40ICFkZWZhdWx0O1xuJGJhc2UtaDUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJhc2UtaDUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcbiRiYXNlLWg2LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWg2LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjQgIWRlZmF1bHQ7XG5cbiRiYXNlLWxpc3QtcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xuXG4kYmFzZS1oci1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kYmFzZS1oci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kYmFzZS1oci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRiYXNlLWJsb2NrcXVvdGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmFzZS1ibG9ja3F1b3RlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuJGJhc2UtYmxvY2txdW90ZS1mb250LXN0eWxlOiAgICAgICAgICAgICAgICAgICAgIGl0YWxpYyAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7XG5cbiRiYXNlLXByZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRiYXNlLXByZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7XG4kYmFzZS1wcmUtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJhc2UtY29kZS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRiYXNlLXByZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kYmFzZS1zZWxlY3Rpb24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgIzM5ZiAhZGVmYXVsdDtcbiRiYXNlLXNlbGVjdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEJhc2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gU2V0IGBmb250LXNpemVgIHRvIHN1cHBvcnQgYHJlbWAgdW5pdHNcbiAqICAgIE5vdCB1c2luZyBgZm9udGAgcHJvcGVydHkgYmVjYXVzZSBhIGxlYWRpbmcgaHlwaGVuIChlLmcuIC1hcHBsZS1zeXN0ZW0pIGNhdXNlcyB0aGUgZm9udCB0byBicmVhayBpbiBJRTExIGFuZCBFZGdlXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqIDMuIFN0eWxlXG4gKi9cblxuaHRtbCB7XG4gICAgLyogMSAqL1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1ib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtYm9keS1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRiYXNlLWJvZHktZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWJvZHktbGluZS1oZWlnaHQ7XG4gICAgLyogMiAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAvKiAzICovXG4gICAgYmFja2dyb3VuZDogJGJhc2UtYm9keS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFzZS1ib2R5LWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1iYXNlLWJvZHkpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWJvZHkoKTt9XG59XG5cbi8qXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7IG1hcmdpbjogMDsgfVxuXG5cbi8qIExpbmtzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7IG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIFN0eWxlXG4gKi9cblxuYSxcbi51ay1saW5rIHtcbiAgICBjb2xvcjogJGJhc2UtbGluay1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1saW5rKSkge0BpbmNsdWRlIGhvb2stYmFzZS1saW5rKCk7fVxufVxuXG5hOmhvdmVyLFxuLnVrLWxpbms6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmssXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmsge1xuICAgIGNvbG9yOiAkYmFzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGJhc2UtbGluay1ob3Zlci10ZXh0LWRlY29yYXRpb247XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtbGluay1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWJhc2UtbGluay1ob3ZlcigpO31cbn1cblxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIEVkZ2UuXG4gKiAyLiBUaGUgc2hvcnRoYW5kIGRlY2xhcmF0aW9uIGB1bmRlcmxpbmUgZG90dGVkYCBpcyBub3Qgc3VwcG9ydGVkIGluIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgLyogMSAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgICAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc3R5bGU6IGRvdHRlZDtcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7IGZvbnQtd2VpZ2h0OiAkYmFzZS1zdHJvbmctZm9udC13ZWlnaHQ7IH1cblxuLypcbiAqIDEuIENvbnNvbGFzIGhhcyBhIGJldHRlciBiYXNlbGluZSBpbiBydW5uaW5nIHRleHQgY29tcGFyZWQgdG8gYENvdXJpZXJgXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBTdHlsZVxuICovXG5cbjpub3QocHJlKSA+IGNvZGUsXG46bm90KHByZSkgPiBrYmQsXG46bm90KHByZSkgPiBzYW1wIHtcbiAgICAvKiAxICovXG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWNvZGUtZm9udC1mYW1pbHk7XG4gICAgLyogMiAqL1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtY29kZS1mb250LXNpemU7XG4gICAgLyogMyAqL1xuICAgIGNvbG9yOiAkYmFzZS1jb2RlLWNvbG9yO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtY29kZSkpIHtAaW5jbHVkZSBob29rLWJhc2UtY29kZSgpO31cbn1cblxuLypcbiAqIEVtcGhhc2l6ZVxuICovXG5cbmVtIHsgY29sb3I6ICRiYXNlLWVtLWNvbG9yOyB9XG5cbi8qXG4gKiBJbnNlcnRcbiAqL1xuXG5pbnMge1xuICAgIGJhY2tncm91bmQ6ICRiYXNlLWlucy1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFzZS1pbnMtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKlxuICogTWFya1xuICovXG5cbm1hcmsge1xuICAgIGJhY2tncm91bmQ6ICRiYXNlLW1hcmstYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhc2UtbWFyay1jb2xvcjtcbn1cblxuLypcbiAqIFF1b3RlXG4gKi9cblxucSB7IGZvbnQtc3R5bGU6ICRiYXNlLXF1b3RlLWZvbnQtc3R5bGU7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHsgZm9udC1zaXplOiAkYmFzZS1zbWFsbC1mb250LXNpemU7IH1cblxuLypcbiAqIFByZXZlbnRzIGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAgeyB0b3A6IC0wLjVlbTsgfVxuc3ViIHsgYm90dG9tOiAtMC4yNWVtOyB9XG5cblxuLyogRW1iZWRkZWQgY29udGVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGVtYmVkZGVkIGNvbnRlbnQgYW5kIHRoZSBib3R0b20gb2YgdGhlaXIgY29udGFpbmVycy5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKlxuICogMS4gQWRkIHJlc3BvbnNpdmVuZXNzLlxuICogMi4gQXV0by1zY2FsZSB0aGUgaGVpZ2h0LiBPbmx5IG5lZWRlZCBpZiBgaGVpZ2h0YCBhdHRyaWJ1dGUgaXMgcHJlc2VudC5cbiAqIDMuIENvcnJlY3RzIHJlc3BvbnNpdmUgYG1heC13aWR0aGAgYmVoYXZpb3IgaWYgcGFkZGluZyBhbmQgYm9yZGVyIGFyZSB1c2VkLlxuICogNC4gRXhjbHVkZSBTVkdzIGZvciBJRTExIGJlY2F1c2UgdGhleSBkb24ndCBwcmVzZXJ2ZSB0aGVpciBhc3BlY3QgcmF0aW8uXG4gKi9cblxuY2FudmFzLFxuaW1nLFxudmlkZW8ge1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogMiAqL1xuICAgIGhlaWdodDogYXV0bztcbiAgICAvKiAzICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogNCAqL1xuQHN1cHBvcnRzIChkaXNwbGF5OiBibG9jaykge1xuXG4gICBzdmcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbn1cblxuLypcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKlxuICogMS4gRml4IGxhenkgbG9hZGluZyBpbWFnZXMgaWYgcGFyZW50IGVsZW1lbnQgaXMgc2V0IHRvIGBkaXNwbGF5OiBpbmxpbmVgIGFuZCBoYXMgYG92ZXJmbG93OiBoaWRkZW5gLlxuICogMi4gSGlkZSBgYWx0YCB0ZXh0IGZvciBsYXp5IGxvYWRpbmcgaW1hZ2VzLlxuICogTm90ZTogU2VsZWN0b3IgZm9yIGJhY2tncm91bmQgd2hpbGUgbG9hZGluZyBpbWdbZGF0YS1zcmMqPScuanBnJ11bc3JjKj0nZGF0YTppbWFnZSddIHsgYmFja2dyb3VuZDogZ3JleTsgfVxuICovXG5cbmltZzpub3QoW3NyY10pIHtcbiAgICAvKiAxICovXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgLyogMiAqL1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcbiAqIElmcmFtZVxuICogUmVtb3ZlIGJvcmRlciBpbiBhbGwgYnJvd3NlcnNcbiAqL1xuXG5pZnJhbWUgeyBib3JkZXI6IDA7IH1cblxuXG4vKiBCbG9jayBlbGVtZW50c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBNYXJnaW5zXG4gKi9cblxucCxcbnVsLFxub2wsXG5kbCxcbnByZSxcbmFkZHJlc3MsXG5maWVsZHNldCxcbmZpZ3VyZSB7IG1hcmdpbjogMCAwICRiYXNlLW1hcmdpbi12ZXJ0aWNhbCAwOyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIHAsXG4qICsgdWwsXG4qICsgb2wsXG4qICsgZGwsXG4qICsgcHJlLFxuKiArIGFkZHJlc3MsXG4qICsgZmllbGRzZXQsXG4qICsgZmlndXJlIHsgbWFyZ2luLXRvcDogJGJhc2UtbWFyZ2luLXZlcnRpY2FsOyB9XG5cblxuLyogSGVhZGluZ3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5oMSwgLnVrLWgxLFxuaDIsIC51ay1oMixcbmgzLCAudWstaDMsXG5oNCwgLnVrLWg0LFxuaDUsIC51ay1oNSxcbmg2LCAudWstaDYsXG4udWstaGVhZGluZy1zbWFsbCxcbi51ay1oZWFkaW5nLW1lZGl1bSxcbi51ay1oZWFkaW5nLWxhcmdlLFxuLnVrLWhlYWRpbmcteGxhcmdlLFxuLnVrLWhlYWRpbmctMnhsYXJnZSB7XG4gICAgbWFyZ2luOiAwIDAgJGJhc2UtbWFyZ2luLXZlcnRpY2FsIDA7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRiYXNlLWhlYWRpbmctZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRiYXNlLWhlYWRpbmctY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRiYXNlLWhlYWRpbmctdGV4dC10cmFuc2Zvcm07XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaGVhZGluZykpIHtAaW5jbHVkZSBob29rLWJhc2UtaGVhZGluZygpO31cbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgaDEsICogKyAudWstaDEsXG4qICsgaDIsICogKyAudWstaDIsXG4qICsgaDMsICogKyAudWstaDMsXG4qICsgaDQsICogKyAudWstaDQsXG4qICsgaDUsICogKyAudWstaDUsXG4qICsgaDYsICogKyAudWstaDYsXG4qICsgLnVrLWhlYWRpbmctc21hbGwsXG4qICsgLnVrLWhlYWRpbmctbWVkaXVtLFxuKiArIC51ay1oZWFkaW5nLWxhcmdlLFxuKiArIC51ay1oZWFkaW5nLXhsYXJnZSxcbiogKyAudWstaGVhZGluZy0yeGxhcmdlIHsgbWFyZ2luLXRvcDogJGJhc2UtaGVhZGluZy1tYXJnaW4tdG9wOyB9XG5cbi8qXG4gKiBTaXplc1xuICovXG5cbmgxLCAudWstaDEge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDEtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1oMS1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1oMSkpIHtAaW5jbHVkZSBob29rLWJhc2UtaDEoKTt9XG59XG5cbmgyLCAudWstaDIge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDItZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1oMi1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1oMikpIHtAaW5jbHVkZSBob29rLWJhc2UtaDIoKTt9XG59XG5cbmgzLCAudWstaDMge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDMtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1oMy1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1oMykpIHtAaW5jbHVkZSBob29rLWJhc2UtaDMoKTt9XG59XG5cbmg0LCAudWstaDQge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1oNC1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1oNCkpIHtAaW5jbHVkZSBob29rLWJhc2UtaDQoKTt9XG59XG5cbmg1LCAudWstaDUge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDUtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1oNS1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1oNSkpIHtAaW5jbHVkZSBob29rLWJhc2UtaDUoKTt9XG59XG5cbmg2LCAudWstaDYge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDYtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1oNi1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1oNikpIHtAaW5jbHVkZSBob29rLWJhc2UtaDYoKTt9XG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgaDEsIC51ay1oMSB7IGZvbnQtc2l6ZTogJGJhc2UtaDEtZm9udC1zaXplLW07IH1cbiAgICBoMiwgLnVrLWgyIHsgZm9udC1zaXplOiAkYmFzZS1oMi1mb250LXNpemUtbTsgfVxuXG59XG5cblxuLyogTGlzdHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG51bCxcbm9sIHsgcGFkZGluZy1sZWZ0OiAkYmFzZS1saXN0LXBhZGRpbmctbGVmdDsgfVxuXG4vKlxuICogUmVzZXQgbWFyZ2luIGZvciBuZXN0ZWQgbGlzdHNcbiAqL1xuXG51bCA+IGxpID4gdWwsXG51bCA+IGxpID4gb2wsXG5vbCA+IGxpID4gb2wsXG5vbCA+IGxpID4gdWwgeyBtYXJnaW46IDA7IH1cblxuXG4vKiBEZXNjcmlwdGlvbiBsaXN0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmR0IHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbmRkIHsgbWFyZ2luLWxlZnQ6IDA7IH1cblxuXG4vKiBIb3Jpem9udGFsIHJ1bGVzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIENocm9tZSwgRWRnZSBhbmQgSUUuXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dC1hbGlnbiBpbiBFZGdlIGFuZCBJRS5cbiAqIDMuIFN0eWxlXG4gKi9cblxuaHIsIC51ay1ociB7XG4gICAgLyogMSAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIC8qIDIgKi9cbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIC8qIDMgKi9cbiAgICBtYXJnaW46IDAgMCAkYmFzZS1oci1tYXJnaW4tdmVydGljYWwgMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogJGJhc2UtaHItYm9yZGVyLXdpZHRoIHNvbGlkICRiYXNlLWhyLWJvcmRlcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1ocikpIHtAaW5jbHVkZSBob29rLWJhc2UtaHIoKTt9XG59XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIGhyLFxuKiArIC51ay1ociB7IG1hcmdpbi10b3A6ICRiYXNlLWhyLW1hcmdpbi12ZXJ0aWNhbCB9XG5cblxuLyogQWRkcmVzc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmFkZHJlc3MgeyBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuXG4vKiBCbG9ja3F1b3Rlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRiYXNlLWJsb2NrcXVvdGUtbWFyZ2luLXZlcnRpY2FsIDA7XG4gICAgZm9udC1zaXplOiAkYmFzZS1ibG9ja3F1b3RlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtYmxvY2txdW90ZS1saW5lLWhlaWdodDtcbiAgICBmb250LXN0eWxlOiAkYmFzZS1ibG9ja3F1b3RlLWZvbnQtc3R5bGU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtYmxvY2txdW90ZSkpIHtAaW5jbHVkZSBob29rLWJhc2UtYmxvY2txdW90ZSgpO31cbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgYmxvY2txdW90ZSB7IG1hcmdpbi10b3A6ICRiYXNlLWJsb2NrcXVvdGUtbWFyZ2luLXZlcnRpY2FsOyB9XG5cbi8qXG4gKiBDb250ZW50XG4gKi9cblxuYmxvY2txdW90ZSBwOmxhc3Qtb2YtdHlwZSB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuYmxvY2txdW90ZSBmb290ZXIge1xuICAgIG1hcmdpbi10b3A6ICAkYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1tYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtYmxvY2txdW90ZS1mb290ZXItZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1ibG9ja3F1b3RlLWZvb3RlcikpIHtAaW5jbHVkZSBob29rLWJhc2UtYmxvY2txdW90ZS1mb290ZXIoKTt9XG59XG5cblxuLyogUHJlZm9ybWF0dGVkIHRleHRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgICBmb250OiAkYmFzZS1wcmUtZm9udC1zaXplIHVucXVvdGUoXCIvXCIpICRiYXNlLXByZS1saW5lLWhlaWdodCAkYmFzZS1wcmUtZm9udC1mYW1pbHk7XG4gICAgY29sb3I6ICRiYXNlLXByZS1jb2xvcjtcbiAgICAtbW96LXRhYi1zaXplOiA0O1xuICAgIHRhYi1zaXplOiA0O1xuICAgIC8qIDEgKi9cbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1wcmUpKSB7QGluY2x1ZGUgaG9vay1iYXNlLXByZSgpO31cbn1cblxucHJlIGNvZGUgeyBmb250LWZhbWlseTogJGJhc2UtcHJlLWZvbnQtZmFtaWx5OyB9XG5cblxuLyogU2VsZWN0aW9uIHBzZXVkby1lbGVtZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICRiYXNlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFzZS1zZWxlY3Rpb24tY29sb3I7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cblxuLyogSFRNTDUgZWxlbWVudHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbmRldGFpbHMsIC8qIDEgKi9cbm1haW4geyAvKiAyICovXG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUgeyBkaXNwbGF5OiBub25lOyB9XG5cblxuLyogUGFzcyBtZWRpYSBicmVha3BvaW50cyB0byBKU1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBCcmVha3BvaW50c1xuICovXG5cbi51ay1icmVha3BvaW50LXM6OmJlZm9yZSAgeyBjb250ZW50OiAnI3skYnJlYWtwb2ludC1zbWFsbH0nOyB9XG4udWstYnJlYWtwb2ludC1tOjpiZWZvcmUgIHsgY29udGVudDogJyN7JGJyZWFrcG9pbnQtbWVkaXVtfSc7IH1cbi51ay1icmVha3BvaW50LWw6OmJlZm9yZSAgeyBjb250ZW50OiAnI3skYnJlYWtwb2ludC1sYXJnZX0nOyB9XG4udWstYnJlYWtwb2ludC14bDo6YmVmb3JlIHsgY29udGVudDogJyN7JGJyZWFrcG9pbnQteGxhcmdlfSc7IH1cblxuOnJvb3Qge1xuICAgIC0tdWstYnJlYWtwb2ludC1zOiAjeyRicmVha3BvaW50LXNtYWxsfTtcbiAgICAtLXVrLWJyZWFrcG9pbnQtbTogI3skYnJlYWtwb2ludC1tZWRpdW19O1xuICAgIC0tdWstYnJlYWtwb2ludC1sOiAjeyRicmVha3BvaW50LWxhcmdlfTtcbiAgICAtLXVrLWJyZWFrcG9pbnQteGw6ICN7JGJyZWFrcG9pbnQteGxhcmdlfTtcbn1cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1taXNjKSkge0BpbmNsdWRlIGhvb2stYmFzZS1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1iYXNlLWJvZHkoKXt9XG4vLyBAbWl4aW4gaG9vay1iYXNlLWxpbmsoKXt9XG4vLyBAbWl4aW4gaG9vay1iYXNlLWxpbmstaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1iYXNlLWNvZGUoKXt9XG4vLyBAbWl4aW4gaG9vay1iYXNlLWhlYWRpbmcoKXt9XG4vLyBAbWl4aW4gaG9vay1iYXNlLWgxKCl7fVxuLy8gQG1peGluIGhvb2stYmFzZS1oMigpe31cbi8vIEBtaXhpbiBob29rLWJhc2UtaDMoKXt9XG4vLyBAbWl4aW4gaG9vay1iYXNlLWg0KCl7fVxuLy8gQG1peGluIGhvb2stYmFzZS1oNSgpe31cbi8vIEBtaXhpbiBob29rLWJhc2UtaDYoKXt9XG4vLyBAbWl4aW4gaG9vay1iYXNlLWhyKCl7fVxuLy8gQG1peGluIGhvb2stYmFzZS1ibG9ja3F1b3RlKCl7fVxuLy8gQG1peGluIGhvb2stYmFzZS1ibG9ja3F1b3RlLWZvb3Rlcigpe31cbi8vIEBtaXhpbiBob29rLWJhc2UtcHJlKCl7fVxuLy8gQG1peGluIGhvb2stYmFzZS1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1iYXNlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWNvZGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWhlYWRpbmctY29sb3I6ICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1iYXNlLWhyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWxpbmsoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtbGluay1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYmFzZS1jb2RlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWhlYWRpbmcoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDEoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDMoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDQoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDYoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtYmxvY2txdW90ZSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYmFzZS1ibG9ja3F1b3RlLWZvb3Rlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYmFzZS1ocigpe31cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuQG1peGluIGhvb2stYWNjb3JkaW9uKCl7fVxuQG1peGluIGhvb2stYWNjb3JkaW9uLWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1hY2NvcmRpb24tdGl0bGUoKXtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogKCRhY2NvcmRpb24tdGl0bGUtbGluZS1oZWlnaHQgKiAxZW0pO1xuICAgICAgICBoZWlnaHQ6ICgkYWNjb3JkaW9uLXRpdGxlLWxpbmUtaGVpZ2h0ICogMWVtKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRhY2NvcmRpb24taWNvbi1tYXJnaW4tbGVmdDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtYWNjb3JkaW9uLWNsb3NlLWltYWdlLCBcIiMwMDBcIiwgJGFjY29yZGlvbi1pY29uLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICB9XG5cbiAgICAudWstb3BlbiA+ICY6OmJlZm9yZSB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1hY2NvcmRpb24tb3Blbi1pbWFnZSwgXCIjMDAwXCIsICRhY2NvcmRpb24taWNvbi1jb2xvcik7IH1cblxufVxuQG1peGluIGhvb2stYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCl7fVxuQG1peGluIGhvb2stYWNjb3JkaW9uLWNvbnRlbnQoKXt9XG5AbWl4aW4gaG9vay1hY2NvcmRpb24tbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtYWNjb3JkaW9uLWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWFjY29yZGlvbi10aXRsZSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtYWNjb3JkaW9uKCl7XG5cbiAgICAudWstYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtYWNjb3JkaW9uLWNsb3NlLWltYWdlLCBcIiMwMDBcIiwgJGludmVyc2UtZ2xvYmFsLWNvbG9yKTsgfVxuXG4gICAgLnVrLW9wZW4gPiAudWstYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtYWNjb3JkaW9uLW9wZW4taW1hZ2UsIFwiIzAwMFwiLCAkaW52ZXJzZS1nbG9iYWwtY29sb3IpOyB9XG5cbn1cbkBtaXhpbiBob29rLWFsZXJ0KCl7fVxuQG1peGluIGhvb2stYWxlcnQtY2xvc2UoKXtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBvcGFjaXR5OiAkYWxlcnQtY2xvc2Utb3BhY2l0eTtcbn1cbkBtaXhpbiBob29rLWFsZXJ0LWNsb3NlLWhvdmVyKCl7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3BhY2l0eTogJGFsZXJ0LWNsb3NlLWhvdmVyLW9wYWNpdHk7XG59XG5AbWl4aW4gaG9vay1hbGVydC1wcmltYXJ5KCl7fVxuQG1peGluIGhvb2stYWxlcnQtc3VjY2Vzcygpe31cbkBtaXhpbiBob29rLWFsZXJ0LXdhcm5pbmcoKXt9XG5AbWl4aW4gaG9vay1hbGVydC1kYW5nZXIoKXt9XG5AbWl4aW4gaG9vay1hbGVydC1taXNjKCl7XG5cbiAgICAvKlxuICAgICAqIENvbnRlbnRcbiAgICAgKi9cblxuICAgIC51ay1hbGVydCBoMSxcbiAgICAudWstYWxlcnQgaDIsXG4gICAgLnVrLWFsZXJ0IGgzLFxuICAgIC51ay1hbGVydCBoNCxcbiAgICAudWstYWxlcnQgaDUsXG4gICAgLnVrLWFsZXJ0IGg2IHsgY29sb3I6IGluaGVyaXQ7IH1cblxuICAgIC51ay1hbGVydCBhOm5vdChbY2xhc3NdKSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAudWstYWxlcnQgYTpub3QoW2NsYXNzXSk6aG92ZXIge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1hbGlnbi1taXNjKCl7fVxuQG1peGluIGhvb2stYW5pbWF0aW9uLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1hcnRpY2xlKCl7fVxuQG1peGluIGhvb2stYXJ0aWNsZS1hZGphY2VudCgpe31cbkBtaXhpbiBob29rLWFydGljbGUtdGl0bGUoKXt9XG5AbWl4aW4gaG9vay1hcnRpY2xlLW1ldGEoKXtcblxuICAgIGEgeyBjb2xvcjogJGFydGljbGUtbWV0YS1saW5rLWNvbG9yOyB9XG5cbiAgICBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRhcnRpY2xlLW1ldGEtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxufVxuQG1peGluIGhvb2stYXJ0aWNsZS1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1hcnRpY2xlLXRpdGxlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1hcnRpY2xlLW1ldGEoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC1hcnRpY2xlKCl7XG5cbiAgICAudWstYXJ0aWNsZS10aXRsZSAge1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1hcnRpY2xlLXRpdGxlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1hcnRpY2xlLXRpdGxlKCk7fVxuICAgIH1cblxuICAgIC51ay1hcnRpY2xlLW1ldGEgIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWFydGljbGUtbWV0YS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYXJ0aWNsZS1tZXRhKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1hcnRpY2xlLW1ldGEoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1iYWNrZ3JvdW5kLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1iYWRnZSgpe31cbkBtaXhpbiBob29rLWJhZGdlLWhvdmVyKCl7fVxuQG1peGluIGhvb2stYmFkZ2UtbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFkZ2UoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWJhZGdlLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtYmFkZ2UoKXtcblxuICAgIC51ay1iYWRnZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWJhZGdlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1iYWRnZS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1iYWRnZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtYmFkZ2UoKTt9XG4gICAgfVxuXG4gICAgLnVrLWJhZGdlOmhvdmVyLFxuICAgIC51ay1iYWRnZTpmb2N1cyB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhZGdlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1iYWRnZS1ob3ZlcigpO31cbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWJhc2UtYm9keSgpe31cbkBtaXhpbiBob29rLWJhc2UtbGluaygpe31cbkBtaXhpbiBob29rLWJhc2UtbGluay1ob3Zlcigpe31cbkBtaXhpbiBob29rLWJhc2UtY29kZSgpe1xuICAgIHBhZGRpbmc6ICRiYXNlLWNvZGUtcGFkZGluZy12ZXJ0aWNhbCAkYmFzZS1jb2RlLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFzZS1jb2RlLWJhY2tncm91bmQ7XG59XG5AbWl4aW4gaG9vay1iYXNlLWhlYWRpbmcoKXt9XG5AbWl4aW4gaG9vay1iYXNlLWgxKCl7fVxuQG1peGluIGhvb2stYmFzZS1oMigpe31cbkBtaXhpbiBob29rLWJhc2UtaDMoKXt9XG5AbWl4aW4gaG9vay1iYXNlLWg0KCl7fVxuQG1peGluIGhvb2stYmFzZS1oNSgpe31cbkBtaXhpbiBob29rLWJhc2UtaDYoKXt9XG5AbWl4aW4gaG9vay1iYXNlLWhyKCl7fVxuQG1peGluIGhvb2stYmFzZS1ibG9ja3F1b3RlKCl7XG4gICAgY29sb3I6ICRiYXNlLWJsb2NrcXVvdGUtY29sb3I7XG59XG5AbWl4aW4gaG9vay1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCl7XG5cbiAgICBjb2xvcjogJGJhc2UtYmxvY2txdW90ZS1mb290ZXItY29sb3I7XG5cbiAgICAmOjpiZWZvcmUgeyBjb250ZW50OiBcIuKAlCBcIjsgfVxuXG59XG5AbWl4aW4gaG9vay1iYXNlLXByZSgpe1xuICAgIHBhZGRpbmc6ICRiYXNlLXByZS1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGJhc2UtcHJlLWJvcmRlci13aWR0aCBzb2xpZCAkYmFzZS1wcmUtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRiYXNlLXByZS1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRiYXNlLXByZS1iYWNrZ3JvdW5kO1xufVxuQG1peGluIGhvb2stYmFzZS1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWxpbmsoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtbGluay1ob3Zlcigpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1jb2RlKCl7XG4gICAgYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG59XG5AbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaGVhZGluZygpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oMSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oMigpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oMygpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oNCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oNSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oNigpe31cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1ibG9ja3F1b3RlKCl7IGNvbG9yOiAkaW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtY29sb3I7IH1cbkBtaXhpbiBob29rLWludmVyc2UtYmFzZS1ibG9ja3F1b3RlLWZvb3RlcigpeyBjb2xvcjogJGludmVyc2UtYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1jb2xvcjsgfVxuQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWhyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtYmFzZSgpe1xuXG4gICAgY29sb3I6ICRpbnZlcnNlLWJhc2UtY29sb3I7XG5cbiAgICAvLyBCYXNlXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICAvL1xuICAgIC8vIExpbmtcbiAgICAvL1xuXG4gICAgYSxcbiAgICAudWstbGluayAge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYmFzZS1saW5rLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1iYXNlLWxpbmspKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtbGluaygpO31cbiAgICB9XG5cbiAgICBhOmhvdmVyLFxuICAgIC51ay1saW5rOmhvdmVyLFxuICAgIC51ay1saW5rLXRvZ2dsZTpob3ZlciAudWstbGluayxcbiAgICAudWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmsge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYmFzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1iYXNlLWxpbmstaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtbGluay1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIENvZGVcbiAgICAvL1xuXG4gICAgOm5vdChwcmUpID4gY29kZSxcbiAgICA6bm90KHByZSkgPiBrYmQsXG4gICAgOm5vdChwcmUpID4gc2FtcCB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1iYXNlLWNvZGUtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtY29kZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtYmFzZS1jb2RlKCk7fVxuICAgIH1cblxuICAgIC8vXG4gICAgLy8gRW1waGFzaXplXG4gICAgLy9cblxuICAgIGVtIHsgY29sb3I6ICRpbnZlcnNlLWJhc2UtZW0tY29sb3I7IH1cblxuICAgIC8vXG4gICAgLy8gSGVhZGluZ3NcbiAgICAvL1xuXG4gICAgaDEsIC51ay1oMSxcbiAgICBoMiwgLnVrLWgyLFxuICAgIGgzLCAudWstaDMsXG4gICAgaDQsIC51ay1oNCxcbiAgICBoNSwgLnVrLWg1LFxuICAgIGg2LCAudWstaDYsXG4gICAgLnVrLWhlYWRpbmctc21hbGwsXG4gICAgLnVrLWhlYWRpbmctbWVkaXVtLFxuICAgIC51ay1oZWFkaW5nLWxhcmdlLFxuICAgIC51ay1oZWFkaW5nLXhsYXJnZSxcbiAgICAudWstaGVhZGluZy0yeGxhcmdlIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWJhc2UtaGVhZGluZy1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYmFzZS1oZWFkaW5nKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1iYXNlLWhlYWRpbmcoKTt9XG4gICAgfVxuXG4gICAgaDEsIC51ay1oMSB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtaDEpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtaDEoKTt9XG4gICAgfVxuXG4gICAgaDIsIC51ay1oMiB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtaDIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtaDIoKTt9XG4gICAgfVxuXG4gICAgaDMsIC51ay1oMyB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtaDMpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtaDMoKTt9XG4gICAgfVxuXG4gICAgaDQsIC51ay1oNCB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtaDQpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtaDQoKTt9XG4gICAgfVxuXG4gICAgaDUsIC51ay1oNSB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtaDUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtaDUoKTt9XG4gICAgfVxuXG4gICAgaDYsIC51ay1oNiB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtaDYpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtaDYoKTt9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBCbG9ja3F1b3Rlc1xuICAgIC8vXG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYmFzZS1ibG9ja3F1b3RlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUoKTt9XG4gICAgfVxuXG4gICAgYmxvY2txdW90ZSBmb290ZXIge1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCk7fVxuICAgIH1cblxuICAgIC8vXG4gICAgLy8gSG9yaXpvbnRhbCBydWxlc1xuICAgIC8vXG5cbiAgICBociwgLnVrLWhyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGludmVyc2UtYmFzZS1oci1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJhc2UtaHIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJhc2UtaHIoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1icmVhZGNydW1iKCl7fVxuQG1peGluIGhvb2stYnJlYWRjcnVtYi1pdGVtKCl7fVxuQG1peGluIGhvb2stYnJlYWRjcnVtYi1pdGVtLWhvdmVyKCl7fVxuQG1peGluIGhvb2stYnJlYWRjcnVtYi1pdGVtLWRpc2FibGVkKCl7fVxuQG1peGluIGhvb2stYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLWJyZWFkY3J1bWItZGl2aWRlcigpe31cbkBtaXhpbiBob29rLWJyZWFkY3J1bWItbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtYnJlYWRjcnVtYi1kaXZpZGVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtYnJlYWRjcnVtYigpe1xuXG4gICAgLnVrLWJyZWFkY3J1bWIgPiAqID4gKiB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1icmVhZGNydW1iLWl0ZW0tY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtKCk7fVxuICAgIH1cblxuICAgIC51ay1icmVhZGNydW1iID4gKiA+IDpob3ZlcixcbiAgICAudWstYnJlYWRjcnVtYiA+ICogPiA6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1ob3ZlcigpO31cbiAgICB9XG5cblxuICAgIC51ay1icmVhZGNydW1iID4gLnVrLWRpc2FibGVkID4gKiB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWRpc2FibGVkKCk7fVxuICAgIH1cblxuICAgIC51ay1icmVhZGNydW1iID4gOmxhc3QtY2hpbGQgPiAqIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUoKTt9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBEaXZpZGVyXG4gICAgLy9cblxuICAgIC51ay1icmVhZGNydW1iID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYnJlYWRjcnVtYi1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1icmVhZGNydW1iLWRpdmlkZXIoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1idXR0b24oKXtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJ1dHRvbi10ZXh0LXRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3I7XG59XG5AbWl4aW4gaG9vay1idXR0b24taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1idXR0b24tZm9jdXMoKXt9XG5AbWl4aW4gaG9vay1idXR0b24tYWN0aXZlKCl7fVxuQG1peGluIGhvb2stYnV0dG9uLWRlZmF1bHQoKXsgYm9yZGVyOiAkYnV0dG9uLWJvcmRlci13aWR0aCBzb2xpZCAkYnV0dG9uLWRlZmF1bHQtYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1idXR0b24tZGVmYXVsdC1ob3ZlcigpeyBib3JkZXItY29sb3I6ICRidXR0b24tZGVmYXVsdC1ob3Zlci1ib3JkZXI7IH1cbkBtaXhpbiBob29rLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpeyBib3JkZXItY29sb3I6ICRidXR0b24tZGVmYXVsdC1hY3RpdmUtYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1idXR0b24tcHJpbWFyeSgpeyBib3JkZXI6ICRidXR0b24tYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50OyB9XG5AbWl4aW4gaG9vay1idXR0b24tcHJpbWFyeS1ob3Zlcigpe31cbkBtaXhpbiBob29rLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLWJ1dHRvbi1zZWNvbmRhcnkoKXsgYm9yZGVyOiAkYnV0dG9uLWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuQG1peGluIGhvb2stYnV0dG9uLXNlY29uZGFyeS1ob3Zlcigpe31cbkBtaXhpbiBob29rLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCl7fVxuQG1peGluIGhvb2stYnV0dG9uLWRhbmdlcigpeyBib3JkZXI6ICRidXR0b24tYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50OyB9XG5AbWl4aW4gaG9vay1idXR0b24tZGFuZ2VyLWhvdmVyKCl7fVxuQG1peGluIGhvb2stYnV0dG9uLWRhbmdlci1hY3RpdmUoKXt9XG5AbWl4aW4gaG9vay1idXR0b24tZGlzYWJsZWQoKXsgYm9yZGVyLWNvbG9yOiAkYnV0dG9uLWRpc2FibGVkLWJvcmRlcjsgfVxuQG1peGluIGhvb2stYnV0dG9uLXNtYWxsKCl7fVxuQG1peGluIGhvb2stYnV0dG9uLWxhcmdlKCl7fVxuQG1peGluIGhvb2stYnV0dG9uLXRleHQoKXtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJ1dHRvbi10ZXh0LWJvcmRlci13aWR0aCBzb2xpZCAkYnV0dG9uLXRleHQtYm9yZGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjNzIGVhc2Utb3V0O1xuICAgIH1cblxufVxuQG1peGluIGhvb2stYnV0dG9uLXRleHQtaG92ZXIoKXtcblxuICAgICY6OmJlZm9yZSB7IHJpZ2h0OiAwOyB9XG5cbn1cbkBtaXhpbiBob29rLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCl7XG5cbiAgICAmOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XG5cbn1cbkBtaXhpbiBob29rLWJ1dHRvbi1saW5rKCl7fVxuQG1peGluIGhvb2stYnV0dG9uLW1pc2MoKXtcblxuICAgIC8qIEdyb3VwXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKlxuICAgICAqIENvbGxhcHNlIGJvcmRlclxuICAgICAqL1xuXG4gICAgLnVrLWJ1dHRvbi1ncm91cCA+IC51ay1idXR0b246bnRoLWNoaWxkKG4rMiksXG4gICAgLnVrLWJ1dHRvbi1ncm91cCA+IGRpdjpudGgtY2hpbGQobisyKSAudWstYnV0dG9uIHsgbWFyZ2luLWxlZnQ6ICgtJGJ1dHRvbi1ib3JkZXItd2lkdGgpOyB9XG5cbiAgICAvKlxuICAgICAqIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IHRvIHN1cGVyaW1wb3NlIHRoZSBzdWNjZXNzb3IgZWxlbWVudHMgYm9yZGVyXG4gICAgICogS25vd24gaXNzdWU6IElmIHlvdSB1c2UgYW4gYGFgIGVsZW1lbnQgYXMgYnV0dG9uIGFuZCBhbiBpY29uIGluc2lkZSxcbiAgICAgKiB0aGUgYWN0aXZlIHN0YXRlIHdpbGwgbm90IHdvcmsgaWYgeW91IGNsaWNrIHRoZSBpY29uIGluc2lkZSB0aGUgYnV0dG9uXG4gICAgICogV29ya2Fyb3VuZDogSnVzdCB1c2UgYSBgYnV0dG9uYCBvciBgaW5wdXRgIGVsZW1lbnQgYXMgYnV0dG9uXG4gICAgICovXG5cbiAgICAudWstYnV0dG9uLWdyb3VwIC51ay1idXR0b246aG92ZXIsXG4gICAgLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uOmZvY3VzLFxuICAgIC51ay1idXR0b24tZ3JvdXAgLnVrLWJ1dHRvbjphY3RpdmUsXG4gICAgLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uLnVrLWFjdGl2ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQoKXsgYm9yZGVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3I7IH1cbkBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXIoKXsgYm9yZGVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7IH1cbkBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCl7IGJvcmRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yOyB9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5KCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlcigpe31cbkBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5KCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLXRleHQoKXtcbiAgICAmOjpiZWZvcmUgeyBib3JkZXItYm90dG9tLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7IH1cbn1cbkBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLXRleHQtaG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tbGluaygpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWJ1dHRvbigpe1xuXG4gICAgLy9cbiAgICAvLyBEZWZhdWx0XG4gICAgLy9cblxuICAgIC51ay1idXR0b24tZGVmYXVsdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1idXR0b24tZGVmYXVsdC1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0KCk7fVxuICAgIH1cblxuICAgIC51ay1idXR0b24tZGVmYXVsdDpob3ZlcixcbiAgICAudWstYnV0dG9uLWRlZmF1bHQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdC1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstYnV0dG9uLWRlZmF1bHQ6YWN0aXZlLFxuICAgIC51ay1idXR0b24tZGVmYXVsdC51ay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUoKTt9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBQcmltYXJ5XG4gICAgLy9cblxuICAgIC51ay1idXR0b24tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1idXR0b24tcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnkpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5KCk7fVxuICAgIH1cblxuICAgIC51ay1idXR0b24tcHJpbWFyeTpob3ZlcixcbiAgICAudWstYnV0dG9uLXByaW1hcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYnV0dG9uLXByaW1hcnktaG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstYnV0dG9uLXByaW1hcnk6YWN0aXZlLFxuICAgIC51ay1idXR0b24tcHJpbWFyeS51ay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUoKTt9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBTZWNvbmRhcnlcbiAgICAvL1xuXG4gICAgLnVrLWJ1dHRvbi1zZWNvbmRhcnkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5KSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5KCk7fVxuICAgIH1cblxuICAgIC51ay1idXR0b24tc2Vjb25kYXJ5OmhvdmVyLFxuICAgIC51ay1idXR0b24tc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsXG4gICAgLnVrLWJ1dHRvbi1zZWNvbmRhcnkudWstYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUoKTt9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBUZXh0XG4gICAgLy9cblxuICAgIC51ay1idXR0b24tdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1idXR0b24tdGV4dC1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtYnV0dG9uLXRleHQpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0KCk7fVxuICAgIH1cblxuICAgIC51ay1idXR0b24tdGV4dDpob3ZlcixcbiAgICAudWstYnV0dG9uLXRleHQ6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYnV0dG9uLXRleHQtaG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1idXR0b24tdGV4dC1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstYnV0dG9uLXRleHQ6ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtYnV0dG9uLXRleHQtZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZCgpO31cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIExpbmtcbiAgICAvL1xuXG4gICAgLnVrLWJ1dHRvbi1saW5rIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWJ1dHRvbi1saW5rLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1idXR0b24tbGluaykpIHtAaW5jbHVkZSBob29rLWludmVyc2UtYnV0dG9uLWxpbmsoKTt9XG4gICAgfVxuXG4gICAgLnVrLWJ1dHRvbi1saW5rOmhvdmVyLFxuICAgIC51ay1idXR0b24tbGluazpmb2N1cyB7IGNvbG9yOiAkaW52ZXJzZS1idXR0b24tbGluay1ob3Zlci1jb2xvcjsgfVxuXG5cbn1cbkBtaXhpbiBob29rLWNhcmQoKXsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2UtaW4tb3V0OyB9XG5AbWl4aW4gaG9vay1jYXJkLWJvZHkoKXt9XG5AbWl4aW4gaG9vay1jYXJkLWhlYWRlcigpe31cbkBtaXhpbiBob29rLWNhcmQtZm9vdGVyKCl7fVxuQG1peGluIGhvb2stY2FyZC1tZWRpYSgpe31cbkBtaXhpbiBob29rLWNhcmQtbWVkaWEtdG9wKCl7fVxuQG1peGluIGhvb2stY2FyZC1tZWRpYS1ib3R0b20oKXt9XG5AbWl4aW4gaG9vay1jYXJkLW1lZGlhLWxlZnQoKXt9XG5AbWl4aW4gaG9vay1jYXJkLW1lZGlhLXJpZ2h0KCl7fVxuQG1peGluIGhvb2stY2FyZC10aXRsZSgpe31cbkBtaXhpbiBob29rLWNhcmQtYmFkZ2UoKXtcbiAgICBib3JkZXItcmFkaXVzOiAkY2FyZC1iYWRnZS1ib3JkZXItcmFkaXVzO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkY2FyZC1iYWRnZS10ZXh0LXRyYW5zZm9ybTtcbn1cbkBtaXhpbiBob29rLWNhcmQtaG92ZXIoKXsgYm94LXNoYWRvdzogJGNhcmQtaG92ZXItYm94LXNoYWRvdzsgfVxuQG1peGluIGhvb2stY2FyZC1kZWZhdWx0KCl7IGJveC1zaGFkb3c6ICRjYXJkLWRlZmF1bHQtYm94LXNoYWRvdzsgfVxuQG1peGluIGhvb2stY2FyZC1kZWZhdWx0LXRpdGxlKCl7fVxuQG1peGluIGhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKCl7IGJveC1zaGFkb3c6ICRjYXJkLWRlZmF1bHQtaG92ZXItYm94LXNoYWRvdzsgfVxuQG1peGluIGhvb2stY2FyZC1kZWZhdWx0LWhlYWRlcigpeyBib3JkZXItYm90dG9tOiAkY2FyZC1kZWZhdWx0LWhlYWRlci1ib3JkZXItd2lkdGggc29saWQgJGNhcmQtZGVmYXVsdC1oZWFkZXItYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1jYXJkLWRlZmF1bHQtZm9vdGVyKCl7IGJvcmRlci10b3A6ICRjYXJkLWRlZmF1bHQtZm9vdGVyLWJvcmRlci13aWR0aCAgc29saWQgJGNhcmQtZGVmYXVsdC1mb290ZXItYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1jYXJkLXByaW1hcnkoKXsgYm94LXNoYWRvdzogJGNhcmQtcHJpbWFyeS1ib3gtc2hhZG93OyB9XG5AbWl4aW4gaG9vay1jYXJkLXByaW1hcnktdGl0bGUoKXt9XG5AbWl4aW4gaG9vay1jYXJkLXByaW1hcnktaG92ZXIoKXsgYm94LXNoYWRvdzogJGNhcmQtcHJpbWFyeS1ob3Zlci1ib3gtc2hhZG93OyB9XG5AbWl4aW4gaG9vay1jYXJkLXNlY29uZGFyeSgpeyBib3gtc2hhZG93OiAkY2FyZC1zZWNvbmRhcnktYm94LXNoYWRvdzsgfVxuQG1peGluIGhvb2stY2FyZC1zZWNvbmRhcnktdGl0bGUoKXt9XG5AbWl4aW4gaG9vay1jYXJkLXNlY29uZGFyeS1ob3ZlcigpeyBib3gtc2hhZG93OiAkY2FyZC1zZWNvbmRhcnktaG92ZXItYm94LXNoYWRvdzsgfVxuQG1peGluIGhvb2stY2FyZC1taXNjKCl7XG5cbiAgICAvKlxuICAgICAqIERlZmF1bHRcbiAgICAgKi9cblxuICAgIC51ay1jYXJkLWJvZHkgPiAudWstbmF2LWRlZmF1bHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKC0kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogKC0kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbCk7XG4gICAgfVxuICAgIC51ay1jYXJkLWJvZHkgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGNhcmQtYm9keS1wYWRkaW5nLXZlcnRpY2FsICsgMTVweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgtJGNhcmQtYm9keS1wYWRkaW5nLXZlcnRpY2FsICsgMTVweCk7XG4gICAgfVxuXG4gICAgLnVrLWNhcmQtYm9keSA+IC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbiAgICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuICAgIC51ay1jYXJkLWJvZHkgPiAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLnVrLWNhcmQtYm9keSA+IC51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiB7IHBhZGRpbmctbGVmdDogJG5hdi1zdWJsaXN0LWRlZXBlci1wYWRkaW5nLWxlZnQgKyAkY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG5cbiAgICAvKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgICAgICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAoLSRjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWwpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAoLSRjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWwpO1xuICAgICAgICB9XG4gICAgICAgIC51ay1jYXJkLWJvZHkgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAoLSRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sICsgMTVweCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAoLSRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sICsgMTVweCk7XG4gICAgICAgIH1cblxuICAgICAgICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhLFxuICAgICAgICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuICAgICAgICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVrLWNhcmQtYm9keSA+IC51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiB7IHBhZGRpbmctbGVmdDogJG5hdi1zdWJsaXN0LWRlZXBlci1wYWRkaW5nLWxlZnQgKyAkY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XG5cbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFNtYWxsXG4gICAgICovXG5cbiAgICAudWstY2FyZC1zbWFsbCA+IC51ay1uYXYtZGVmYXVsdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoLSRjYXJkLXNtYWxsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAoLSRjYXJkLXNtYWxsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsKTtcbiAgICB9XG4gICAgLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLXZlcnRpY2FsICsgMTVweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgtJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLXZlcnRpY2FsICsgMTVweCk7XG4gICAgfVxuXG4gICAgLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQgPiBsaSA+IGEsXG4gICAgLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1oZWFkZXIsXG4gICAgLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgeyBwYWRkaW5nLWxlZnQ6ICRuYXYtc3VibGlzdC1kZWVwZXItcGFkZGluZy1sZWZ0ICsgJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuICAgIC8qXG4gICAgICogTGFyZ2VcbiAgICAgKi9cblxuICAgIC8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgICAgIC51ay1jYXJkLWxhcmdlID4gLnVrLW5hdi1kZWZhdWx0IHsgbWFyZ2luOiAwOyB9XG4gICAgICAgIC51ay1jYXJkLWxhcmdlID4gLnVrLW5hdi1kZWZhdWx0Om9ubHktY2hpbGQgeyBtYXJnaW46IDA7IH1cblxuICAgICAgICAudWstY2FyZC1sYXJnZSA+IC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbiAgICAgICAgLnVrLWNhcmQtbGFyZ2UgPiAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1oZWFkZXIsXG4gICAgICAgIC51ay1jYXJkLWxhcmdlID4gLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVrLWNhcmQtbGFyZ2UgPiAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgeyBwYWRkaW5nLWxlZnQ6ICRuYXYtc3VibGlzdC1kZWVwZXItcGFkZGluZy1sZWZ0OyB9XG5cbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UtY2FyZC1iYWRnZSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWNhcmQoKXtcblxuICAgICYudWstY2FyZC1iYWRnZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWNhcmQtYmFkZ2UtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWNhcmQtYmFkZ2UtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWNhcmQtYmFkZ2UpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWNhcmQtYmFkZ2UoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1jbG9zZSgpe1xuICAgIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIG9wYWNpdHk7XG59XG5AbWl4aW4gaG9vay1jbG9zZS1ob3Zlcigpe31cbkBtaXhpbiBob29rLWNsb3NlLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNsb3NlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jbG9zZS1ob3Zlcigpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWNsb3NlKCl7XG5cbiAgICAudWstY2xvc2Uge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtY2xvc2UtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWNsb3NlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1jbG9zZSgpO31cbiAgICB9XG5cbiAgICAudWstY2xvc2U6aG92ZXIsXG4gICAgLnVrLWNsb3NlOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWNsb3NlLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1jbG9zZS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtY2xvc2UtaG92ZXIoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1jb2x1bW4tbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWNvbHVtbigpe1xuXG4gICAgLnVrLWNvbHVtbi1kaXZpZGVyIHsgY29sdW1uLXJ1bGUtY29sb3I6ICRpbnZlcnNlLWNvbHVtbi1kaXZpZGVyLXJ1bGUtY29sb3I7IH1cblxufVxuQG1peGluIGhvb2stY29tbWVudCgpe31cbkBtaXhpbiBob29rLWNvbW1lbnQtYm9keSgpe31cbkBtaXhpbiBob29rLWNvbW1lbnQtaGVhZGVyKCl7fVxuQG1peGluIGhvb2stY29tbWVudC10aXRsZSgpe31cbkBtaXhpbiBob29rLWNvbW1lbnQtbWV0YSgpe31cbkBtaXhpbiBob29rLWNvbW1lbnQtYXZhdGFyKCl7fVxuQG1peGluIGhvb2stY29tbWVudC1saXN0LWFkamFjZW50KCl7fVxuQG1peGluIGhvb2stY29tbWVudC1saXN0LXN1Yigpe31cbkBtaXhpbiBob29rLWNvbW1lbnQtbGlzdC1zdWItYWRqYWNlbnQoKXt9XG5AbWl4aW4gaG9vay1jb21tZW50LXByaW1hcnkoKXtcbiAgICBwYWRkaW5nOiAkY29tbWVudC1wcmltYXJ5LXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbW1lbnQtcHJpbWFyeS1iYWNrZ3JvdW5kO1xufVxuQG1peGluIGhvb2stY29tbWVudC1taXNjKCl7fVxuQG1peGluIGhvb2stY29udGFpbmVyLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1jb3VudGRvd24oKXt9XG5AbWl4aW4gaG9vay1jb3VudGRvd24taXRlbSgpe31cbkBtaXhpbiBob29rLWNvdW50ZG93bi1udW1iZXIoKXt9XG5AbWl4aW4gaG9vay1jb3VudGRvd24tc2VwYXJhdG9yKCl7fVxuQG1peGluIGhvb2stY291bnRkb3duLWxhYmVsKCl7fVxuQG1peGluIGhvb2stY291bnRkb3duLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvdW50ZG93bi1pdGVtKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb3VudGRvd24tbnVtYmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb3VudGRvd24tc2VwYXJhdG9yKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb3VudGRvd24tbGFiZWwoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC1jb3VudGRvd24oKXtcblxuICAgIC51ay1jb3VudGRvd24tbnVtYmVyLFxuICAgIC51ay1jb3VudGRvd24tc2VwYXJhdG9yIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtY291bnRkb3duLWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWNvdW50ZG93bi1pdGVtKCk7fVxuICAgIH1cblxuICAgIC51ay1jb3VudGRvd24tbnVtYmVyIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtY291bnRkb3duLW51bWJlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtY291bnRkb3duLW51bWJlcigpO31cbiAgICB9XG5cbiAgICAudWstY291bnRkb3duLXNlcGFyYXRvciB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWNvdW50ZG93bi1zZXBhcmF0b3IpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWNvdW50ZG93bi1zZXBhcmF0b3IoKTt9XG4gICAgfVxuXG4gICAgLnVrLWNvdW50ZG93bi1sYWJlbCB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWNvdW50ZG93bi1sYWJlbCkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtY291bnRkb3duLWxhYmVsKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2stY292ZXItbWlzYygpe31cbkBtaXhpbiBob29rLWRlc2NyaXB0aW9uLWxpc3QtdGVybSgpe1xuICAgIGZvbnQtc2l6ZTogJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRkZXNjcmlwdGlvbi1saXN0LXRlcm0tZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRkZXNjcmlwdGlvbi1saXN0LXRlcm0tdGV4dC10cmFuc2Zvcm07XG59XG5AbWl4aW4gaG9vay1kZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uKCl7fVxuQG1peGluIGhvb2stZGVzY3JpcHRpb24tbGlzdC1kaXZpZGVyLXRlcm0oKXt9XG5AbWl4aW4gaG9vay1kZXNjcmlwdGlvbi1saXN0LW1pc2MoKXt9XG5AbWl4aW4gc3ZnLWZpbGwoJHNyYywgJGNvbG9yLWRlZmF1bHQsICRjb2xvci1uZXcsICRwcm9wZXJ0eTogYmFja2dyb3VuZC1pbWFnZSl7XG5cbiAgICAkZXNjYXBlLWNvbG9yLWRlZmF1bHQ6ICBlc2NhcGUoJGNvbG9yLWRlZmF1bHQpICFkZWZhdWx0O1xuICAgICRlc2NhcGUtY29sb3ItbmV3OiAgZXNjYXBlKFwiI3skY29sb3ItbmV3fVwiKSAhZGVmYXVsdDtcblxuICAgICRkYXRhLXVyaTogIGRhdGEtdXJpKCdpbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgnLCBcIiN7JHNyY31cIikgIWRlZmF1bHQ7XG4gICAgJHJlcGxhY2Utc3JjOiAgcmVwbGFjZShcIiN7JGRhdGEtdXJpfVwiLCBcIiN7JGVzY2FwZS1jb2xvci1kZWZhdWx0fVwiLCBcIiN7JGVzY2FwZS1jb2xvci1uZXd9XCIsIFwiZ1wiKSAhZGVmYXVsdDtcblxuICAgICN7JHByb3BlcnR5fTogdW5xdW90ZSgkcmVwbGFjZS1zcmMpO1xufVxuQG1peGluIGhvb2stZGl2aWRlci1pY29uKCl7fVxuQG1peGluIGhvb2stZGl2aWRlci1pY29uLWxpbmUoKXt9XG5AbWl4aW4gaG9vay1kaXZpZGVyLWljb24tbGluZS1sZWZ0KCl7fVxuQG1peGluIGhvb2stZGl2aWRlci1pY29uLWxpbmUtcmlnaHQoKXt9XG5AbWl4aW4gaG9vay1kaXZpZGVyLXNtYWxsKCl7fVxuQG1peGluIGhvb2stZGl2aWRlci12ZXJ0aWNhbCgpe31cbkBtaXhpbiBob29rLWRpdmlkZXItbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtZGl2aWRlci1pY29uKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1kaXZpZGVyLWljb24tbGluZSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtZGl2aWRlci1zbWFsbCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtZGl2aWRlci12ZXJ0aWNhbCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWRpdmlkZXIoKXtcblxuICAgIC51ay1kaXZpZGVyLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtZGl2aWRlci1pY29uLWltYWdlLCBcIiMwMDBcIiwgJGludmVyc2UtZGl2aWRlci1pY29uLWNvbG9yKTtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZGl2aWRlci1pY29uKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1kaXZpZGVyLWljb24oKTt9XG4gICAgfVxuXG4gICAgLnVrLWRpdmlkZXItaWNvbjo6YmVmb3JlLFxuICAgIC51ay1kaXZpZGVyLWljb246OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGludmVyc2UtZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1kaXZpZGVyLWljb24tbGluZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZGl2aWRlci1pY29uLWxpbmUoKTt9XG4gICAgfVxuXG4gICAgLnVrLWRpdmlkZXItc21hbGw6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGludmVyc2UtZGl2aWRlci1zbWFsbC1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWRpdmlkZXItc21hbGwpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWRpdmlkZXItc21hbGwoKTt9XG4gICAgfVxuXG4gICAgLnVrLWRpdmlkZXItdmVydGljYWwge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGludmVyc2UtZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWRpdmlkZXItdmVydGljYWwpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWRpdmlkZXItdmVydGljYWwoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1kb3RuYXYoKXt9XG5AbWl4aW4gaG9vay1kb3RuYXYtaXRlbSgpe1xuICAgIGJvcmRlcjogJGRvdG5hdi1pdGVtLWJvcmRlci13aWR0aCBzb2xpZCAkZG90bmF2LWl0ZW0tYm9yZGVyO1xuICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yO1xufVxuQG1peGluIGhvb2stZG90bmF2LWl0ZW0taG92ZXIoKXsgYm9yZGVyLWNvbG9yOiAkZG90bmF2LWl0ZW0taG92ZXItYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1kb3RuYXYtaXRlbS1vbmNsaWNrKCl7IGJvcmRlci1jb2xvcjogJGRvdG5hdi1pdGVtLW9uY2xpY2stYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUoKXsgYm9yZGVyLWNvbG9yOiAkZG90bmF2LWl0ZW0tYWN0aXZlLWJvcmRlcjsgfVxuQG1peGluIGhvb2stZG90bmF2LW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtKCl7IGJvcmRlci1jb2xvcjogcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuOSk7IH1cbkBtaXhpbiBob29rLWludmVyc2UtZG90bmF2LWl0ZW0taG92ZXIoKXsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuQG1peGluIGhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1vbmNsaWNrKCl7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbkBtaXhpbiBob29rLWludmVyc2UtZG90bmF2LWl0ZW0tYWN0aXZlKCl7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWRvdG5hdigpe1xuXG4gICAgLnVrLWRvdG5hdiA+ICogPiAqIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2UtZG90bmF2LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZG90bmF2LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtKCk7fVxuICAgIH1cblxuICAgIC51ay1kb3RuYXYgPiAqID4gOmhvdmVyLFxuICAgIC51ay1kb3RuYXYgPiAqID4gOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2UtZG90bmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZG90bmF2LWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtLWhvdmVyKCk7fVxuICAgIH1cblxuICAgIC51ay1kb3RuYXYgPiAqID4gOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWRvdG5hdi1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZG90bmF2LWl0ZW0tb25jbGljaykpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZG90bmF2LWl0ZW0tb25jbGljaygpO31cbiAgICB9XG5cbiAgICAudWstZG90bmF2ID4gLnVrLWFjdGl2ZSA+ICoge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1kb3RuYXYtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZG90bmF2LWl0ZW0tYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1hY3RpdmUoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1kcm9wLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1kcm9wZG93bigpeyBib3gtc2hhZG93OiAkZHJvcGRvd24tYm94LXNoYWRvdzsgfVxuQG1peGluIGhvb2stZHJvcGRvd24tbmF2KCl7IGZvbnQtc2l6ZTogJGRyb3Bkb3duLW5hdi1mb250LXNpemU7IH1cbkBtaXhpbiBob29rLWRyb3Bkb3duLW5hdi1pdGVtKCl7fVxuQG1peGluIGhvb2stZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1kcm9wZG93bi1uYXYtaGVhZGVyKCl7fVxuQG1peGluIGhvb2stZHJvcGRvd24tbmF2LWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1kcm9wZG93bi1taXNjKCl7fVxuQG1peGluIGhvb2stZmxleC1taXNjKCl7fVxuQG1peGluIGhvb2stZm9ybS1yYW5nZSgpe31cbkBtaXhpbiBob29rLWZvcm0tcmFuZ2UtdGh1bWIoKXsgYm9yZGVyOiAkZm9ybS1yYW5nZS10aHVtYi1ib3JkZXItd2lkdGggc29saWQgJGZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1mb3JtLXJhbmdlLXRyYWNrKCl7IGJvcmRlci1yYWRpdXM6ICRmb3JtLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXM7IH1cbkBtaXhpbiBob29rLWZvcm0tcmFuZ2UtdHJhY2stZm9jdXMoKXt9XG5AbWl4aW4gaG9vay1mb3JtLXJhbmdlLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1mb3JtKCl7XG4gICAgYm9yZGVyOiAkZm9ybS1ib3JkZXItd2lkdGggc29saWQgJGZvcm0tYm9yZGVyO1xuICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlcjtcbn1cbkBtaXhpbiBob29rLWZvcm0tc2luZ2xlLWxpbmUoKXt9XG5AbWl4aW4gaG9vay1mb3JtLW11bHRpLWxpbmUoKXt9XG5AbWl4aW4gaG9vay1mb3JtLWZvY3VzKCl7IGJvcmRlci1jb2xvcjogJGZvcm0tZm9jdXMtYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1mb3JtLWRpc2FibGVkKCl7IGJvcmRlci1jb2xvcjogJGZvcm0tZGlzYWJsZWQtYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1mb3JtLWRhbmdlcigpeyBib3JkZXItY29sb3I6ICRmb3JtLWRhbmdlci1ib3JkZXI7IH1cbkBtaXhpbiBob29rLWZvcm0tc3VjY2VzcygpeyBib3JkZXItY29sb3I6ICRmb3JtLXN1Y2Nlc3MtYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1mb3JtLWJsYW5rKCl7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbkBtaXhpbiBob29rLWZvcm0tYmxhbmstZm9jdXMoKXtcbiAgICBib3JkZXItY29sb3I6ICRmb3JtLWJsYW5rLWZvY3VzLWJvcmRlcjtcbiAgICBib3JkZXItc3R5bGU6ICRmb3JtLWJsYW5rLWZvY3VzLWJvcmRlci1zdHlsZTtcbn1cbkBtaXhpbiBob29rLWZvcm0tcmFkaW8oKXtcbiAgICBib3JkZXI6ICRmb3JtLXJhZGlvLWJvcmRlci13aWR0aCBzb2xpZCAkZm9ybS1yYWRpby1ib3JkZXI7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXI7XG59XG5AbWl4aW4gaG9vay1mb3JtLXJhZGlvLWZvY3VzKCl7IGJvcmRlci1jb2xvcjogJGZvcm0tcmFkaW8tZm9jdXMtYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQoKXsgYm9yZGVyLWNvbG9yOiAkZm9ybS1yYWRpby1jaGVja2VkLWJvcmRlcjsgfVxuQG1peGluIGhvb2stZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCl7fVxuQG1peGluIGhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCgpeyBib3JkZXItY29sb3I6ICRmb3JtLXJhZGlvLWRpc2FibGVkLWJvcmRlcjsgfVxuQG1peGluIGhvb2stZm9ybS1sZWdlbmQoKXt9XG5AbWl4aW4gaG9vay1mb3JtLWxhYmVsKCl7XG4gICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xufVxuQG1peGluIGhvb2stZm9ybS1zdGFja2VkLWxhYmVsKCl7fVxuQG1peGluIGhvb2stZm9ybS1ob3Jpem9udGFsLWxhYmVsKCl7fVxuQG1peGluIGhvb2stZm9ybS1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1mb3JtKCl7IGJvcmRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlcjsgfVxuQG1peGluIGhvb2staW52ZXJzZS1mb3JtLWZvY3VzKCl7IGJvcmRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yOyB9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8oKXsgYm9yZGVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMoKXsgYm9yZGVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3I7IH1cbkBtaXhpbiBob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCl7IGJvcmRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yOyB9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpe31cbkBtaXhpbiBob29rLWludmVyc2UtZm9ybS1sYWJlbCgpeyBjb2xvcjogJGludmVyc2UtZm9ybS1sYWJlbC1jb2xvcjsgfVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtZm9ybSgpe1xuXG4gICAgLnVrLWlucHV0LFxuICAgIC51ay1zZWxlY3QsXG4gICAgLnVrLXRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2UtZm9ybS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGludmVyc2UtZm9ybS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZm9ybSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZm9ybSgpO31cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWZvcm0tZm9jdXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGNvbG9yOiAkaW52ZXJzZS1mb3JtLWZvY3VzLWNvbG9yO1xuICAgICAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZm9ybS1mb2N1cykpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZm9ybS1mb2N1cygpO31cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vXG4gICAgLy8gUGxhY2Vob2xkZXJcbiAgICAvL1xuXG4gICAgLnVrLWlucHV0OjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogJGludmVyc2UtZm9ybS1wbGFjZWhvbGRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4gICAgLnVrLWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkaW52ZXJzZS1mb3JtLXBsYWNlaG9sZGVyLWNvbG9yOyB9XG5cbiAgICAudWstdGV4dGFyZWE6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiAkaW52ZXJzZS1mb3JtLXBsYWNlaG9sZGVyLWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHsgY29sb3I6ICRpbnZlcnNlLWZvcm0tcGxhY2Vob2xkZXItY29sb3I7IH1cblxuICAgIC8vXG4gICAgLy8gU2VsZWN0XG4gICAgLy9cblxuICAgIC51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHsgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWZvcm0tc2VsZWN0LWltYWdlLCBcIiMwMDBcIiwgJGludmVyc2UtZm9ybS1zZWxlY3QtaWNvbi1jb2xvcik7IH1cblxuICAgIC8vXG4gICAgLy8gRGF0YWxpc3RcbiAgICAvL1xuXG4gICAgLnVrLWlucHV0W2xpc3RdOmhvdmVyLFxuICAgIC51ay1pbnB1dFtsaXN0XTpmb2N1cyB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLWRhdGFsaXN0LWltYWdlLCBcIiMwMDBcIiwgJGludmVyc2UtZm9ybS1kYXRhbGlzdC1pY29uLWNvbG9yKTsgfVxuXG4gICAgLy9cbiAgICAvLyBSYWRpbyBhbmQgY2hlY2tib3hcbiAgICAvL1xuXG4gICAgLnVrLXJhZGlvLFxuICAgIC51ay1jaGVja2JveCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWZvcm0tcmFkaW8tYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZm9ybS1yYWRpbykpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZm9ybS1yYWRpbygpO31cbiAgICB9XG5cbiAgICAvLyBGb2N1c1xuICAgIC51ay1yYWRpbzpmb2N1cyxcbiAgICAudWstY2hlY2tib3g6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1mb3JtLXJhZGlvLWZvY3VzLWJhY2tncm91bmQ7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMoKTt9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2tlZFxuICAgIC51ay1yYWRpbzpjaGVja2VkLFxuICAgIC51ay1jaGVja2JveDpjaGVja2VkLFxuICAgIC51ay1jaGVja2JveDppbmRldGVybWluYXRlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWJhY2tncm91bmQ7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZCkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCk7fVxuICAgIH1cblxuICAgIC8vIEZvY3VzXG4gICAgLnVrLXJhZGlvOmNoZWNrZWQ6Zm9jdXMsXG4gICAgLnVrLWNoZWNrYm94OmNoZWNrZWQ6Zm9jdXMsXG4gICAgLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGU6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMtYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMoKTt9XG4gICAgfVxuXG4gICAgLy8gSWNvblxuICAgIC51ay1yYWRpbzpjaGVja2VkIHsgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWZvcm0tcmFkaW8taW1hZ2UsIFwiIzAwMFwiLCAkaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcik7IH1cbiAgICAudWstY2hlY2tib3g6Y2hlY2tlZCB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWltYWdlLCBcIiMwMDBcIiwgJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3IpOyB9XG4gICAgLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGUgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbmRldGVybWluYXRlLWltYWdlLCBcIiMwMDBcIiwgJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3IpOyB9XG5cbiAgICAvLyBMYWJlbFxuICAgIC51ay1mb3JtLWxhYmVsIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZm9ybS1sYWJlbCkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZm9ybS1sYWJlbCgpO31cbiAgICB9XG5cbiAgICAvLyBJY29uXG4gICAgLnVrLWZvcm0taWNvbiB7IGNvbG9yOiAkaW52ZXJzZS1mb3JtLWljb24tY29sb3I7IH1cbiAgICAudWstZm9ybS1pY29uOmhvdmVyIHsgY29sb3I6ICRpbnZlcnNlLWZvcm0taWNvbi1ob3Zlci1jb2xvcjsgfVxuXG59XG5AbWl4aW4gaG9vay1ncmlkLWRpdmlkZXItaG9yaXpvbnRhbCgpe31cbkBtaXhpbiBob29rLWdyaWQtZGl2aWRlci12ZXJ0aWNhbCgpe31cbkBtaXhpbiBob29rLWdyaWQtbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtZ3JpZC1kaXZpZGVyLWhvcml6b250YWwoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWdyaWQtZGl2aWRlci12ZXJ0aWNhbCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWdyaWQoKXtcblxuICAgIC51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGludmVyc2UtZ3JpZC1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZ3JpZC1kaXZpZGVyLWhvcml6b250YWwpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWdyaWQtZGl2aWRlci1ob3Jpem9udGFsKCk7fVxuICAgIH1cblxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGludmVyc2UtZ3JpZC1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZ3JpZC1kaXZpZGVyLXZlcnRpY2FsKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1ncmlkLWRpdmlkZXItdmVydGljYWwoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1oZWFkaW5nLXNtYWxsKCl7fVxuQG1peGluIGhvb2staGVhZGluZy1tZWRpdW0oKXt9XG5AbWl4aW4gaG9vay1oZWFkaW5nLWxhcmdlKCl7fVxuQG1peGluIGhvb2staGVhZGluZy14bGFyZ2UoKXt9XG5AbWl4aW4gaG9vay1oZWFkaW5nLTJ4bGFyZ2UoKXt9XG5AbWl4aW4gaG9vay1oZWFkaW5nLXByaW1hcnkoKXt9XG5AbWl4aW4gaG9vay1oZWFkaW5nLWhlcm8oKXt9XG5AbWl4aW4gaG9vay1oZWFkaW5nLWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1oZWFkaW5nLWJ1bGxldCgpe31cbkBtaXhpbiBob29rLWhlYWRpbmctbGluZSgpe31cbkBtaXhpbiBob29rLWhlYWRpbmctbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1zbWFsbCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1tZWRpdW0oKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctbGFyZ2UoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmcteGxhcmdlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLTJ4bGFyZ2UoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctcHJpbWFyeSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1oZXJvKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctYnVsbGV0KCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLWxpbmUoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC1oZWFkaW5nKCl7XG5cbiAgICAudWstaGVhZGluZy1zbWFsbCB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWhlYWRpbmctc21hbGwpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWhlYWRpbmctc21hbGwoKTt9XG4gICAgfVxuXG4gICAgLnVrLWhlYWRpbmctbWVkaXVtIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtaGVhZGluZy1tZWRpdW0pKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWhlYWRpbmctbWVkaXVtKCk7fVxuICAgIH1cblxuICAgIC51ay1oZWFkaW5nLWxhcmdlIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtaGVhZGluZy1sYXJnZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaGVhZGluZy1sYXJnZSgpO31cbiAgICB9XG5cbiAgICAudWstaGVhZGluZy14bGFyZ2Uge1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1oZWFkaW5nLXhsYXJnZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaGVhZGluZy14bGFyZ2UoKTt9XG4gICAgfVxuXG4gICAgLnVrLWhlYWRpbmctMnhsYXJnZSB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWhlYWRpbmctMnhsYXJnZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaGVhZGluZy0yeGxhcmdlKCk7fVxuICAgIH1cblxuICAgIEBpZiAoJGRlcHJlY2F0ZWQgPT0gdHJ1ZSkgeyAudWstaGVhZGluZy1wcmltYXJ5IHsgQGlmIChtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWhlYWRpbmctcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaGVhZGluZy1wcmltYXJ5KCk7fX19XG5cbiAgICBAaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHsgLnVrLWhlYWRpbmctaGVybyB7IEBpZiAobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1oZWFkaW5nLWhlcm8pKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWhlYWRpbmctaGVybygpO319fVxuXG4gICAgLnVrLWhlYWRpbmctZGl2aWRlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRpbnZlcnNlLWhlYWRpbmctZGl2aWRlci1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWhlYWRpbmctZGl2aWRlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaGVhZGluZy1kaXZpZGVyKCk7fVxuICAgIH1cblxuICAgIC51ay1oZWFkaW5nLWJ1bGxldDo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRpbnZlcnNlLWhlYWRpbmctYnVsbGV0LWJvcmRlcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtaGVhZGluZy1idWxsZXQpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWhlYWRpbmctYnVsbGV0KCk7fVxuICAgIH1cblxuICAgIC51ay1oZWFkaW5nLWxpbmUgPiA6OmJlZm9yZSxcbiAgICAudWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRpbnZlcnNlLWhlYWRpbmctbGluZS1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWhlYWRpbmctbGluZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaGVhZGluZy1saW5lKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2staGVpZ2h0LW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pY29uLWxpbmsoKXt9XG5AbWl4aW4gaG9vay1pY29uLWxpbmstaG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pY29uLWxpbmstYWN0aXZlKCl7fVxuQG1peGluIGhvb2staWNvbi1idXR0b24oKXtcbiAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yO1xufVxuQG1peGluIGhvb2staWNvbi1idXR0b24taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pY29uLWJ1dHRvbi1hY3RpdmUoKXt9XG5AbWl4aW4gaG9vay1pY29uLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWljb24tbGluaygpe31cbkBtaXhpbiBob29rLWludmVyc2UtaWNvbi1saW5rLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1pY29uLWxpbmstYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1pY29uLWJ1dHRvbigpe31cbkBtaXhpbiBob29rLWludmVyc2UtaWNvbi1idXR0b24taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWljb24oKXtcblxuICAgIC8vXG4gICAgLy8gTGlua1xuICAgIC8vXG5cbiAgICAudWstaWNvbi1saW5rIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWljb24tbGluay1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtaWNvbi1saW5rKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1pY29uLWxpbmsoKTt9XG4gICAgfVxuXG4gICAgLnVrLWljb24tbGluazpob3ZlcixcbiAgICAudWstaWNvbi1saW5rOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWljb24tbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtaWNvbi1saW5rLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1pY29uLWxpbmstaG92ZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLWljb24tbGluazphY3RpdmUsXG4gICAgLnVrLWFjdGl2ZSA+IC51ay1pY29uLWxpbmsge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtaWNvbi1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtaWNvbi1saW5rLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaWNvbi1saW5rLWFjdGl2ZSgpO31cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIEJ1dHRvblxuICAgIC8vXG5cbiAgICAudWstaWNvbi1idXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGludmVyc2UtaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWljb24tYnV0dG9uKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1pY29uLWJ1dHRvbigpO31cbiAgICB9XG5cbiAgICAudWstaWNvbi1idXR0b246aG92ZXIsXG4gICAgLnVrLWljb24tYnV0dG9uOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2UtaWNvbi1idXR0b24taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1pY29uLWJ1dHRvbi1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaWNvbi1idXR0b24taG92ZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLWljb24tYnV0dG9uOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGludmVyc2UtaWNvbi1idXR0b24tYWN0aXZlLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZSgpO31cbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWljb25uYXYoKXt9XG5AbWl4aW4gaG9vay1pY29ubmF2LWl0ZW0oKXtcbiAgICBmb250LXNpemU6ICRzdWJuYXYtaXRlbS1mb250LXNpemU7XG4gICAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvcjtcbn1cbkBtaXhpbiBob29rLWljb25uYXYtaXRlbS1ob3Zlcigpe31cbkBtaXhpbiBob29rLWljb25uYXYtaXRlbS1hY3RpdmUoKXt9XG5AbWl4aW4gaG9vay1pY29ubmF2LW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWljb25uYXYtaXRlbSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtaWNvbm5hdi1pdGVtLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtaWNvbm5hdigpe1xuXG4gICAgLnVrLWljb25uYXYgPiAqID4gYSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1pY29ubmF2LWl0ZW0tY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWljb25uYXYtaXRlbSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaWNvbm5hdi1pdGVtKCk7fVxuICAgIH1cblxuICAgIC51ay1pY29ubmF2ID4gKiA+IGE6aG92ZXIsXG4gICAgLnVrLWljb25uYXYgPiAqID4gYTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1pY29ubmF2LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWljb25uYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaWNvbm5hdi1pdGVtLWhvdmVyKCk7fVxuICAgIH1cblxuICAgIC51ay1pY29ubmF2ID4gLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtaWNvbm5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtaWNvbm5hdi1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtaWNvbm5hdi1pdGVtLWFjdGl2ZSgpO31cbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWxpbmsoKXtcblxuICAgIGEudWstbGluay1tdXRlZCxcbiAgICAudWstbGluay1tdXRlZCBhIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWxpbmstbXV0ZWQtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWxpbmstbXV0ZWQpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWxpbmstbXV0ZWQoKTt9XG4gICAgfVxuXG4gICAgYS51ay1saW5rLW11dGVkOmhvdmVyLFxuICAgIC51ay1saW5rLW11dGVkIGE6aG92ZXIsXG4gICAgLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLW11dGVkLFxuICAgIC51ay1saW5rLXRvZ2dsZTpmb2N1cyAudWstbGluay1tdXRlZCAge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtbGluay1tdXRlZC1ob3Zlci1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbGluay1tdXRlZC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbGluay1tdXRlZC1ob3ZlcigpO31cbiAgICB9XG5cbiAgICBhLnVrLWxpbmstdGV4dDpob3ZlcixcbiAgICAudWstbGluay10ZXh0IGE6aG92ZXIsXG4gICAgLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLXRleHQsXG4gICAgLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rLXRleHQge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtbGluay10ZXh0LWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1saW5rLXRleHQtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWxpbmstdGV4dC1ob3ZlcigpO31cbiAgICB9XG5cbiAgICBhLnVrLWxpbmstaGVhZGluZzpob3ZlcixcbiAgICAudWstbGluay1oZWFkaW5nIGE6aG92ZXIsXG4gICAgLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLWhlYWRpbmcsXG4gICAgLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rLWhlYWRpbmcge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1saW5rLWhlYWRpbmctaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWxpbmstaGVhZGluZy1ob3ZlcigpO31cbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LWxpc3QoKXtcblxuICAgIC51ay1saXN0LW11dGVkID4gOjpiZWZvcmUgeyBjb2xvcjogJGludmVyc2UtbGlzdC1tdXRlZC1jb2xvciAhaW1wb3J0YW50OyB9XG4gICAgLnVrLWxpc3QtZW1waGFzaXMgPiA6OmJlZm9yZSB7IGNvbG9yOiAkaW52ZXJzZS1saXN0LWVtcGhhc2lzLWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbGlzdC1wcmltYXJ5ID4gOjpiZWZvcmUgeyBjb2xvcjogJGludmVyc2UtbGlzdC1wcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbGlzdC1zZWNvbmRhcnkgPiA6OmJlZm9yZSB7IGNvbG9yOiAkaW52ZXJzZS1saXN0LXNlY29uZGFyeS1jb2xvciAhaW1wb3J0YW50OyB9XG5cbiAgICAudWstbGlzdC1idWxsZXQgPiA6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1saXN0LWJ1bGxldC1pbWFnZSwgXCIjMDAwXCIsICRpbnZlcnNlLWxpc3QtYnVsbGV0LWljb24tY29sb3IpO1xuICAgIH1cblxuICAgIC51ay1saXN0LWRpdmlkZXIgPiA6bnRoLWNoaWxkKG4rMikge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkaW52ZXJzZS1saXN0LWRpdmlkZXItYm9yZGVyO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1saXN0LWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWxpc3QtZGl2aWRlcigpO31cbiAgICB9XG5cbiAgICAudWstbGlzdC1zdHJpcGVkID4gKiB7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWxpc3Qtc3RyaXBlZCkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbGlzdC1zdHJpcGVkKCk7fVxuICAgIH1cblxuICAgIC51ay1saXN0LXN0cmlwZWQgPiA6bnRoLW9mLXR5cGUob2RkKSB7IGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWxpc3Qtc3RyaXBlZC1iYWNrZ3JvdW5kOyB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LXRvdG9wKCl7XG5cbiAgICAudWstdG90b3Age1xuICAgICAgICBjb2xvcjogJGludmVyc2UtdG90b3AtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXRvdG9wKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10b3RvcCgpO31cbiAgICB9XG5cbiAgICAudWstdG90b3A6aG92ZXIsXG4gICAgLnVrLXRvdG9wOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLXRvdG9wLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10b3RvcC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtdG90b3AtaG92ZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLXRvdG9wOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS10b3RvcC1hY3RpdmUtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXRvdG9wLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtdG90b3AtYWN0aXZlKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtbGFiZWwoKXtcblxuICAgIC51ay1sYWJlbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLWxhYmVsLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1sYWJlbC1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbGFiZWwpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWxhYmVsKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtc2VhcmNoKCl7XG5cbiAgICAvL1xuICAgIC8vIElucHV0XG4gICAgLy9cblxuICAgIC51ay1zZWFyY2gtaW5wdXQgeyBjb2xvcjogJGludmVyc2Utc2VhcmNoLWNvbG9yOyB9XG5cbiAgICAudWstc2VhcmNoLWlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiAkaW52ZXJzZS1zZWFyY2gtcGxhY2Vob2xkZXItY29sb3IgIWltcG9ydGFudDsgfVxuICAgIC51ay1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6ICRpbnZlcnNlLXNlYXJjaC1wbGFjZWhvbGRlci1jb2xvcjsgfVxuXG5cbiAgICAvL1xuICAgIC8vIEljb25cbiAgICAvL1xuXG4gICAgLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24geyBjb2xvcjogJGludmVyc2Utc2VhcmNoLWljb24tY29sb3I7IH1cbiAgICAudWstc2VhcmNoIC51ay1zZWFyY2gtaWNvbjpob3ZlciB7IGNvbG9yOiAkaW52ZXJzZS1zZWFyY2gtaWNvbi1jb2xvcjsgfVxuXG4gICAgLy9cbiAgICAvLyBTdHlsZSBtb2RpZmllclxuICAgIC8vXG5cbiAgICAudWstc2VhcmNoLWRlZmF1bHQgLnVrLXNlYXJjaC1pbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWlucHV0KSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1pbnB1dCgpO31cbiAgICB9XG4gICAgXG4gICAgLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1mb2N1cy1iYWNrZ3JvdW5kO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1pbnB1dC1mb2N1cykpIHtAaW5jbHVkZSBob29rLWludmVyc2Utc2VhcmNoLWRlZmF1bHQtaW5wdXQtZm9jdXMoKTt9XG4gICAgfVxuXG4gICAgLnVrLXNlYXJjaC1uYXZiYXIgLnVrLXNlYXJjaC1pbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLXNlYXJjaC1uYXZiYXItYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc2VhcmNoLW5hdmJhci1pbnB1dCkpIHtAaW5jbHVkZSBob29rLWludmVyc2Utc2VhcmNoLW5hdmJhci1pbnB1dCgpO31cbiAgICB9XG5cbiAgICAudWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJzZS1zZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc2VhcmNoLWxhcmdlLWlucHV0KSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1zZWFyY2gtbGFyZ2UtaW5wdXQoKTt9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBUb2dnbGVcbiAgICAvL1xuXG4gICAgLnVrLXNlYXJjaC10b2dnbGUge1xuICAgICAgICBjb2xvcjogJGludmVyc2Utc2VhcmNoLXRvZ2dsZS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc2VhcmNoLXRvZ2dsZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2Utc2VhcmNoLXRvZ2dsZSgpO31cbiAgICB9XG5cbiAgICAudWstc2VhcmNoLXRvZ2dsZTpob3ZlcixcbiAgICAudWstc2VhcmNoLXRvZ2dsZTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWhvdmVyKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtbmF2KCl7XG5cbiAgICAvL1xuICAgIC8vIFBhcmVudCBpY29uIG1vZGlmaWVyXG4gICAgLy9cblxuICAgIC51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtbmF2LXBhcmVudC1jbG9zZS1pbWFnZSwgXCIjMDAwXCIsICRpbnZlcnNlLW5hdi1wYXJlbnQtaWNvbi1jb2xvcik7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdi1wYXJlbnQtaWNvbikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbmF2LXBhcmVudC1pY29uKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50LnVrLW9wZW4gPiBhOjphZnRlciB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1uYXYtcGFyZW50LW9wZW4taW1hZ2UsIFwiIzAwMFwiLCAkaW52ZXJzZS1uYXYtcGFyZW50LWljb24tY29sb3IpOyB9XG5cbiAgICAvL1xuICAgIC8vIERlZmF1bHRcbiAgICAvL1xuXG4gICAgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0oKTt9XG4gICAgfVxuXG4gICAgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhOmhvdmVyLFxuICAgIC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYTpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXYtZGVmYXVsdCA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSgpO31cbiAgICB9XG5cbiAgICAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1oZWFkZXIge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1oZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWhlYWRlcigpO31cbiAgICB9XG5cbiAgICAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGludmVyc2UtbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWRpdmlkZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogJGludmVyc2UtbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbiAgICAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYTpob3ZlcixcbiAgICAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYTpmb2N1cyB7IGNvbG9yOiAkaW52ZXJzZS1uYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I7IH1cblxuICAgIC51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHsgY29sb3I6ICRpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I7IH1cblxuICAgIC8vXG4gICAgLy8gUHJpbWFyeVxuICAgIC8vXG5cbiAgICAudWstbmF2LXByaW1hcnkgPiBsaSA+IGEge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtbmF2LXByaW1hcnktaXRlbS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbSgpO31cbiAgICB9XG5cbiAgICAudWstbmF2LXByaW1hcnkgPiBsaSA+IGE6aG92ZXIsXG4gICAgLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLW5hdi1wcmltYXJ5ID4gbGkudWstYWN0aXZlID4gYSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXYtcHJpbWFyeSAudWstbmF2LWhlYWRlciB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXYtcHJpbWFyeS1oZWFkZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWhlYWRlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbmF2LXByaW1hcnktaGVhZGVyKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXYtcHJpbWFyeSAudWstbmF2LWRpdmlkZXIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkaW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbmF2LXByaW1hcnktZGl2aWRlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbmF2LXByaW1hcnktZGl2aWRlcigpO31cbiAgICB9XG5cbiAgICAudWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYSB7IGNvbG9yOiAkaW52ZXJzZS1uYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0tY29sb3I7IH1cblxuICAgIC51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhOmhvdmVyLFxuICAgIC51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhOmZvY3VzIHsgY29sb3I6ICRpbnZlcnNlLW5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjsgfVxuXG4gICAgLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEgeyBjb2xvcjogJGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjsgfVxuXG4gICAgLy9cbiAgICAvLyBEaXZpZGVyc1xuICAgIC8vXG5cbiAgICAudWstbmF2LnVrLW5hdi1kaXZpZGVyID4gOm5vdCgudWstbmF2LWRpdmlkZXIpICsgOm5vdCgudWstbmF2LWhlYWRlciwgLnVrLW5hdi1kaXZpZGVyKSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRpbnZlcnNlLW5hdi1kaXZpZGVycy1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGl2aWRlcnMpKSB7QGluY2x1ZGUgaG9vay1uYXYtZGl2aWRlcnMoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC1uYXZiYXIoKXtcblxuICAgIC51ay1uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0oKTt9XG4gICAgfVxuXG4gICAgLnVrLW5hdmJhci1uYXYgPiBsaTpob3ZlciA+IGEsXG4gICAgLnVrLW5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsXG4gICAgLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEudWstb3BlbiB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXZiYXItbmF2ID4gbGkgPiBhOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tb25jbGljay1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2spKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXZiYXItbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXZiYXItaXRlbSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXZiYXItaXRlbS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtbmF2YmFyLWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdmJhci1pdGVtKCk7fVxuICAgIH1cblxuICAgIC51ay1uYXZiYXItdG9nZ2xlIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLW5hdmJhci10b2dnbGUtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW5hdmJhci10b2dnbGUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLW5hdmJhci10b2dnbGUoKTt9XG4gICAgfVxuXG4gICAgLnVrLW5hdmJhci10b2dnbGU6aG92ZXIsXG4gICAgLnVrLW5hdmJhci10b2dnbGU6Zm9jdXMsXG4gICAgLnVrLW5hdmJhci10b2dnbGUudWstb3BlbiB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtc3VibmF2KCl7XG5cbiAgICAudWstc3VibmF2ID4gKiA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1zdWJuYXYtaXRlbS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc3VibmF2LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtKCk7fVxuICAgIH1cblxuICAgIC51ay1zdWJuYXYgPiAqID4gYTpob3ZlcixcbiAgICAudWstc3VibmF2ID4gKiA+IGE6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGludmVyc2Utc3VibmF2LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1zdWJuYXYtaXRlbS1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstc3VibmF2ID4gLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogJGludmVyc2Utc3VibmF2LWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1zdWJuYXYtaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWFjdGl2ZSgpO31cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIERpdmlkZXJcbiAgICAvL1xuXG4gICAgLnVrLXN1Ym5hdi1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRpbnZlcnNlLXN1Ym5hdi1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc3VibmF2LWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXN1Ym5hdi1kaXZpZGVyKCk7fVxuICAgIH1cblxuICAgIC8vXG4gICAgLy8gUGlsbFxuICAgIC8vXG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbSkpIHtAaW5jbHVkZSBob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbSgpO31cbiAgICB9XG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gYTpob3ZlcixcbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gYTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1vbmNsaWNrLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaykpIHtAaW5jbHVkZSBob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1vbmNsaWNrKCk7fVxuICAgIH1cblxuICAgIC51ay1zdWJuYXYtcGlsbCA+IC51ay1hY3RpdmUgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUoKTt9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBEaXNhYmxlZFxuICAgIC8vXG5cbiAgICAudWstc3VibmF2ID4gLnVrLWRpc2FibGVkID4gYSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1zdWJuYXYtaXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc3VibmF2LWl0ZW0tZGlzYWJsZWQpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWRpc2FibGVkKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtcGFnaW5hdGlvbigpe1xuXG4gICAgLnVrLXBhZ2luYXRpb24gPiAqID4gKiB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtKCk7fVxuICAgIH1cblxuICAgIC51ay1wYWdpbmF0aW9uID4gKiA+IDpob3ZlcixcbiAgICAudWstcGFnaW5hdGlvbiA+ICogPiA6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstcGFnaW5hdGlvbiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUoKTt9XG4gICAgfVxuXG4gICAgLnVrLXBhZ2luYXRpb24gPiAudWstZGlzYWJsZWQgPiAqIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC10YWIoKXtcblxuICAgIC51ay10YWIge1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10YWIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXRhYigpO31cbiAgICB9XG5cbiAgICAudWstdGFiID4gKiA+IGEge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtdGFiLWl0ZW0tY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXRhYi1pdGVtKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10YWItaXRlbSgpO31cbiAgICB9XG5cbiAgICAudWstdGFiID4gKiA+IGE6aG92ZXIsXG4gICAgLnVrLXRhYiA+ICogPiBhOmZvY3Vze1xuICAgICAgICBjb2xvcjogJGludmVyc2UtdGFiLWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXRhYi1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10YWItaXRlbS1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstdGFiID4gLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtdGFiLWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10YWItaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZSgpO31cbiAgICB9XG5cbiAgICAudWstdGFiID4gLnVrLWRpc2FibGVkID4gYSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS10YWItaXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtdGFiLWl0ZW0tZGlzYWJsZWQpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXRhYi1pdGVtLWRpc2FibGVkKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtc2xpZGVuYXYoKXtcblxuICAgIC51ay1zbGlkZW5hdiB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1zbGlkZW5hdi1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc2xpZGVuYXYpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXNsaWRlbmF2KCk7fVxuICAgIH1cblxuICAgIC51ay1zbGlkZW5hdjpob3ZlcixcbiAgICAudWstc2xpZGVuYXY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGludmVyc2Utc2xpZGVuYXYtaG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXNsaWRlbmF2LWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1zbGlkZW5hdi1ob3ZlcigpO31cbiAgICB9XG5cbiAgICAudWstc2xpZGVuYXY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLXNsaWRlbmF2LWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2Utc2xpZGVuYXYtYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1zbGlkZW5hdi1hY3RpdmUoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC10ZXh0KCl7XG5cbiAgICAudWstdGV4dC1sZWFkIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLXRleHQtbGVhZC1jb2xvcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtdGV4dC1sZWFkKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10ZXh0LWxlYWQoKTt9XG4gICAgfVxuXG4gICAgLnVrLXRleHQtbWV0YSB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS10ZXh0LW1ldGEtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXRleHQtbWV0YSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtdGV4dC1tZXRhKCk7fVxuICAgIH1cblxuICAgIC51ay10ZXh0LW11dGVkIHsgY29sb3I6ICRpbnZlcnNlLXRleHQtbXV0ZWQtY29sb3IgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LWVtcGhhc2lzIHsgY29sb3I6ICRpbnZlcnNlLXRleHQtZW1waGFzaXMtY29sb3IgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LXByaW1hcnkgeyBjb2xvcjogJGludmVyc2UtdGV4dC1wcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dC1zZWNvbmRhcnkgeyBjb2xvcjogJGludmVyc2UtdGV4dC1zZWNvbmRhcnktY29sb3IgIWltcG9ydGFudDsgfVxuXG59XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC11dGlsaXR5KCl7XG5cbiAgICAudWstZHJvcGNhcDo6Zmlyc3QtbGV0dGVyLFxuICAgIC51ay1kcm9wY2FwIHA6Zmlyc3Qtb2YtdHlwZTo6Zmlyc3QtbGV0dGVyIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtZHJvcGNhcCkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtZHJvcGNhcCgpO31cbiAgICB9XG5cbiAgICAudWstbG9nbyB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1sb2dvLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1sb2dvKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS1sb2dvKCk7fVxuICAgIH1cblxuICAgIC51ay1sb2dvOmhvdmVyLFxuICAgIC51ay1sb2dvOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRpbnZlcnNlLWxvZ28taG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLWxvZ28taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWxvZ28taG92ZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLWxvZ28gPiA6bm90KC51ay1sb2dvLWludmVyc2UpOm5vdCg6b25seS1vZi10eXBlKSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAudWstbG9nby1pbnZlcnNlIHsgZGlzcGxheTogaW5saW5lOyB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UoKXtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWJhc2UoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWxpbmsoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWhlYWRpbmcoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWRpdmlkZXIoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWxpc3QoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWljb24oKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWZvcm0oKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWJ1dHRvbigpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtZ3JpZCgpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtY2xvc2UoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LXRvdG9wKCk7XG4gICAgQGluY2x1ZGUgaG9vay1pbnZlcnNlLWNvbXBvbmVudC1iYWRnZSgpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtbGFiZWwoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWFydGljbGUoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LXNlYXJjaCgpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtbmF2KCk7XG4gICAgQGluY2x1ZGUgaG9vay1pbnZlcnNlLWNvbXBvbmVudC1uYXZiYXIoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LXN1Ym5hdigpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtYnJlYWRjcnVtYigpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtcGFnaW5hdGlvbigpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtdGFiKCk7XG4gICAgQGluY2x1ZGUgaG9vay1pbnZlcnNlLWNvbXBvbmVudC1zbGlkZW5hdigpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtZG90bmF2KCk7XG4gICAgQGluY2x1ZGUgaG9vay1pbnZlcnNlLWNvbXBvbmVudC1hY2NvcmRpb24oKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWljb25uYXYoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LXRleHQoKTtcbiAgICBAaW5jbHVkZSBob29rLWludmVyc2UtY29tcG9uZW50LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGhvb2staW52ZXJzZS1jb21wb25lbnQtdXRpbGl0eSgpO1xufVxuQG1peGluIGhvb2stbGFiZWwoKXtcbiAgICBib3JkZXItcmFkaXVzOiAkbGFiZWwtYm9yZGVyLXJhZGl1cztcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGxhYmVsLXRleHQtdHJhbnNmb3JtO1xufVxuQG1peGluIGhvb2stbGFiZWwtc3VjY2Vzcygpe31cbkBtaXhpbiBob29rLWxhYmVsLXdhcm5pbmcoKXt9XG5AbWl4aW4gaG9vay1sYWJlbC1kYW5nZXIoKXt9XG5AbWl4aW4gaG9vay1sYWJlbC1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1sYWJlbCgpe31cbkBtaXhpbiBob29rLWxlYWRlcigpe31cbkBtaXhpbiBob29rLWxlYWRlci1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1sZWFkZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLWNvbXBvbmVudC1sZWFkZXIoKXtcblxuICAgIC51ay1sZWFkZXItZmlsbDo6YWZ0ZXIge1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS1sZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLWxlYWRlcigpO31cbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWxpZ2h0Ym94KCl7fVxuQG1peGluIGhvb2stbGlnaHRib3gtaXRlbSgpe31cbkBtaXhpbiBob29rLWxpZ2h0Ym94LXRvb2xiYXIoKXt9XG5AbWl4aW4gaG9vay1saWdodGJveC10b29sYmFyLWljb24oKXt9XG5AbWl4aW4gaG9vay1saWdodGJveC10b29sYmFyLWljb24taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1saWdodGJveC1idXR0b24oKXt9XG5AbWl4aW4gaG9vay1saWdodGJveC1idXR0b24taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1saWdodGJveC1idXR0b24tYWN0aXZlKCl7fVxuQG1peGluIGhvb2stbGlnaHRib3gtbWlzYygpe31cbkBtaXhpbiBob29rLWxpbmstbXV0ZWQoKXt9XG5AbWl4aW4gaG9vay1saW5rLW11dGVkLWhvdmVyKCl7fVxuQG1peGluIGhvb2stbGluay10ZXh0KCl7fVxuQG1peGluIGhvb2stbGluay10ZXh0LWhvdmVyKCl7fVxuQG1peGluIGhvb2stbGluay1oZWFkaW5nKCl7fVxuQG1peGluIGhvb2stbGluay1oZWFkaW5nLWhvdmVyKCl7fVxuQG1peGluIGhvb2stbGluay1yZXNldCgpe31cbkBtaXhpbiBob29rLWxpbmstbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtbGluay1tdXRlZCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtbGluay1tdXRlZC1ob3Zlcigpe31cbkBtaXhpbiBob29rLWludmVyc2UtbGluay10ZXh0LWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1saW5rLWhlYWRpbmctaG92ZXIoKXt9XG5AbWl4aW4gaG9vay1saXN0LWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1saXN0LXN0cmlwZWQoKXtcblxuICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICAgIGJvcmRlci10b3A6ICRsaXN0LXN0cmlwZWQtYm9yZGVyLXdpZHRoIHNvbGlkICRsaXN0LXN0cmlwZWQtYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkbGlzdC1zdHJpcGVkLWJvcmRlci13aWR0aCBzb2xpZCAkbGlzdC1zdHJpcGVkLWJvcmRlcjtcbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWxpc3QtbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2UtbGlzdC1kaXZpZGVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1saXN0LXN0cmlwZWQoKXtcblxuICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay1tYXJnaW4tbWlzYygpe31cbkBtaXhpbiBob29rLW1hcmtlcigpe1xuICAgIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xufVxuQG1peGluIGhvb2stbWFya2VyLWhvdmVyKCl7fVxuQG1peGluIGhvb2stbWFya2VyLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW1hcmtlcigpe31cbkBtaXhpbiBob29rLWludmVyc2UtbWFya2VyLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtbWFya2VyKCl7XG5cbiAgICAudWstbWFya2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGludmVyc2UtbWFya2VyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1tYXJrZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW1hcmtlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbWFya2VyKCk7fVxuICAgIH1cblxuICAgIC51ay1tYXJrZXI6aG92ZXIsXG4gICAgLnVrLW1hcmtlcjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS1tYXJrZXItaG92ZXItY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLW1hcmtlci1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtbWFya2VyLWhvdmVyKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2stbW9kYWwoKXt9XG5AbWl4aW4gaG9vay1tb2RhbC1kaWFsb2coKXt9XG5AbWl4aW4gaG9vay1tb2RhbC1mdWxsKCl7fVxuQG1peGluIGhvb2stbW9kYWwtYm9keSgpe31cbkBtaXhpbiBob29rLW1vZGFsLWhlYWRlcigpeyBib3JkZXItYm90dG9tOiAkbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkbW9kYWwtaGVhZGVyLWJvcmRlcjsgfVxuQG1peGluIGhvb2stbW9kYWwtZm9vdGVyKCl7IGJvcmRlci10b3A6ICRtb2RhbC1mb290ZXItYm9yZGVyLXdpZHRoIHNvbGlkICRtb2RhbC1mb290ZXItYm9yZGVyOyB9XG5AbWl4aW4gaG9vay1tb2RhbC10aXRsZSgpe31cbkBtaXhpbiBob29rLW1vZGFsLWNsb3NlKCl7fVxuQG1peGluIGhvb2stbW9kYWwtY2xvc2UtaG92ZXIoKXt9XG5AbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0KCl7fVxuQG1peGluIGhvb2stbW9kYWwtY2xvc2UtZGVmYXVsdC1ob3Zlcigpe31cbkBtaXhpbiBob29rLW1vZGFsLWNsb3NlLW91dHNpZGUoKXt9XG5AbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlLWhvdmVyKCl7fVxuQG1peGluIGhvb2stbW9kYWwtY2xvc2UtZnVsbCgpe1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiAkbW9kYWwtY2xvc2UtZnVsbC1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRtb2RhbC1jbG9zZS1mdWxsLWJhY2tncm91bmQ7XG59XG5AbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1mdWxsLWhvdmVyKCl7fVxuQG1peGluIGhvb2stbW9kYWwtbWlzYygpe31cbkBtaXhpbiBob29rLW5hdi1zdWIoKXt9XG5AbWl4aW4gaG9vay1uYXYtcGFyZW50LWljb24oKXt9XG5AbWl4aW4gaG9vay1uYXYtaGVhZGVyKCl7fVxuQG1peGluIGhvb2stbmF2LWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1uYXYtZGVmYXVsdCgpeyBmb250LXNpemU6ICRuYXYtZGVmYXVsdC1mb250LXNpemU7IH1cbkBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyKCl7fVxuQG1peGluIGhvb2stbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUoKXt9XG5AbWl4aW4gaG9vay1uYXYtZGVmYXVsdC1oZWFkZXIoKXt9XG5AbWl4aW4gaG9vay1uYXYtZGVmYXVsdC1kaXZpZGVyKCl7fVxuQG1peGluIGhvb2stbmF2LXByaW1hcnkoKXt9XG5AbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1pdGVtKCl7fVxuQG1peGluIGhvb2stbmF2LXByaW1hcnktaXRlbS1ob3Zlcigpe31cbkBtaXhpbiBob29rLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2stbmF2LXByaW1hcnktaGVhZGVyKCl7fVxuQG1peGluIGhvb2stbmF2LXByaW1hcnktZGl2aWRlcigpe31cbkBtaXhpbiBob29rLW5hdi1kaXZpZGVycygpe31cbkBtaXhpbiBob29rLW5hdi1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1uYXYtcGFyZW50LWljb24oKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1oZWFkZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1oZWFkZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXIoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItY29udGFpbmVyKCl7fVxuQG1peGluIGhvb2stbmF2YmFyLW5hdi1pdGVtKCl7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRuYXZiYXItbmF2LWl0ZW0tdGV4dC10cmFuc2Zvcm07XG4gICAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvcjtcbn1cbkBtaXhpbiBob29rLW5hdmJhci1uYXYtaXRlbS1ob3Zlcigpe31cbkBtaXhpbiBob29rLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrKCl7fVxuQG1peGluIGhvb2stbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLW5hdmJhci1pdGVtKCl7fVxuQG1peGluIGhvb2stbmF2YmFyLXRvZ2dsZSgpe31cbkBtaXhpbiBob29rLW5hdmJhci10b2dnbGUtaG92ZXIoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItdG9nZ2xlLWljb24oKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItdG9nZ2xlLWljb24taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItc3VidGl0bGUoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItcHJpbWFyeSgpe31cbkBtaXhpbiBob29rLW5hdmJhci10cmFuc3BhcmVudCgpe31cbkBtaXhpbiBob29rLW5hdmJhci1zdGlja3koKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24oKXsgYm94LXNoYWRvdzogJG5hdmJhci1kcm9wZG93bi1ib3gtc2hhZG93OyB9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcigpeyBib3gtc2hhZG93OiBub25lOyB9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2KCl7IGZvbnQtc2l6ZTogJG5hdmJhci1kcm9wZG93bi1uYXYtZm9udC1zaXplOyB9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1oZWFkZXIoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1uYXZiYXItZHJvcGJhcigpe31cbkBtaXhpbiBob29rLW5hdmJhci1kcm9wYmFyLXNsaWRlKCl7IGJveC1zaGFkb3c6ICRuYXZiYXItZHJvcGJhci1ib3gtc2hhZG93OyB9XG5AbWl4aW4gaG9vay1uYXZiYXItbWlzYygpe1xuXG4gICAgLypcbiAgICAgKiBOYXZiYXJcbiAgICAgKi9cblxuICAgIC51ay1uYXZiYXItY29udGFpbmVyID4gLnVrLWNvbnRhaW5lciAudWstbmF2YmFyLWxlZnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKC0kbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogKC0kbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbCk7XG4gICAgfVxuICAgIC51ay1uYXZiYXItY29udGFpbmVyID4gLnVrLWNvbnRhaW5lciAudWstbmF2YmFyLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAoLSRuYXZiYXItbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsKTsgfVxuXG4gICAgLypcbiAgICAgKiBHcmlkIERpdmlkZXJcbiAgICAgKi9cblxuICAgIC51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+ICogeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuICAgIC51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IG1hdGguZGl2KCRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCwgMik7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkbmF2YmFyLWRyb3Bkb3duLWdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJG5hdmJhci1kcm9wZG93bi1ncmlkLWRpdmlkZXItYm9yZGVyO1xuICAgIH1cblxuICAgIC8qIFZlcnRpY2FsICovXG4gICAgLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtKG1hdGguZGl2KCRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItdmVydGljYWwsIDIpKTtcbiAgICAgICAgbGVmdDogJG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci1ob3Jpem9udGFsO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogJG5hdmJhci1kcm9wZG93bi1ncmlkLWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkICRuYXZiYXItZHJvcGRvd24tZ3JpZC1kaXZpZGVyLWJvcmRlcjtcbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItaXRlbSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtbmF2YmFyLXRvZ2dsZSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtbmF2YmFyLXRvZ2dsZS1ob3Zlcigpe31cbkBtaXhpbiBob29rLW5vdGlmaWNhdGlvbigpe31cbkBtaXhpbiBob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlKCl7fVxuQG1peGluIGhvb2stbm90aWZpY2F0aW9uLWNsb3NlKCl7fVxuQG1peGluIGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeSgpe31cbkBtaXhpbiBob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MoKXt9XG5AbWl4aW4gaG9vay1ub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nKCl7fVxuQG1peGluIGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyKCl7fVxuQG1peGluIGhvb2stbm90aWZpY2F0aW9uLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1vZmZjYW52YXMtYmFyKCl7fVxuQG1peGluIGhvb2stb2ZmY2FudmFzLWNsb3NlKCl7fVxuQG1peGluIGhvb2stb2ZmY2FudmFzLW92ZXJsYXkoKXt9XG5AbWl4aW4gaG9vay1vZmZjYW52YXMtbWlzYygpe31cbkBtaXhpbiBob29rLW92ZXJsYXkoKXt9XG5AbWl4aW4gaG9vay1vdmVybGF5LWljb24oKXt9XG5AbWl4aW4gaG9vay1vdmVybGF5LWRlZmF1bHQoKXt9XG5AbWl4aW4gaG9vay1vdmVybGF5LXByaW1hcnkoKXt9XG5AbWl4aW4gaG9vay1vdmVybGF5LW1pc2MoKXt9XG5AbWl4aW4gaG9vay1wYWRkaW5nLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1wYWdpbmF0aW9uKCl7fVxuQG1peGluIGhvb2stcGFnaW5hdGlvbi1pdGVtKCl7IHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7IH1cbkBtaXhpbiBob29rLXBhZ2luYXRpb24taXRlbS1ob3Zlcigpe31cbkBtaXhpbiBob29rLXBhZ2luYXRpb24taXRlbS1hY3RpdmUoKXt9XG5AbWl4aW4gaG9vay1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQoKXt9XG5AbWl4aW4gaG9vay1wYWdpbmF0aW9uLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQoKXt9XG5AbWl4aW4gaG9vay1wbGFjZWhvbGRlcigpeyBib3JkZXI6ICRwbGFjZWhvbGRlci1ib3JkZXItd2lkdGggZGFzaGVkICRwbGFjZWhvbGRlci1ib3JkZXI7IH1cbkBtaXhpbiBob29rLXBsYWNlaG9sZGVyLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1wb3NpdGlvbi1taXNjKCl7fVxuQG1peGluIGhvb2stcHJpbnQoKXt9XG5AbWl4aW4gaG9vay1wcm9ncmVzcygpe1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1ib3JkZXItcmFkaXVzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5AbWl4aW4gaG9vay1wcm9ncmVzcy1iYXIoKXt9XG5AbWl4aW4gaG9vay1wcm9ncmVzcy1taXNjKCl7fVxuQG1peGluIGhvb2stc2VhcmNoLWlucHV0KCl7fVxuQG1peGluIGhvb2stc2VhcmNoLWRlZmF1bHQtaW5wdXQoKXsgYm9yZGVyOiAkc2VhcmNoLWRlZmF1bHQtYm9yZGVyLXdpZHRoIHNvbGlkICRzZWFyY2gtZGVmYXVsdC1ib3JkZXI7IH1cbkBtaXhpbiBob29rLXNlYXJjaC1kZWZhdWx0LWlucHV0LWZvY3VzKCl7IGJvcmRlci1jb2xvcjogJHNlYXJjaC1kZWZhdWx0LWZvY3VzLWJvcmRlcjsgfVxuQG1peGluIGhvb2stc2VhcmNoLW5hdmJhci1pbnB1dCgpe31cbkBtaXhpbiBob29rLXNlYXJjaC1sYXJnZS1pbnB1dCgpe31cbkBtaXhpbiBob29rLXNlYXJjaC10b2dnbGUoKXt9XG5AbWl4aW4gaG9vay1zZWFyY2gtdG9nZ2xlLWhvdmVyKCl7fVxuQG1peGluIGhvb2stc2VhcmNoLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWlucHV0KCl7IGJvcmRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlcjsgfVxuQG1peGluIGhvb2staW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1pbnB1dC1mb2N1cygpe31cbkBtaXhpbiBob29rLWludmVyc2Utc2VhcmNoLW5hdmJhci1pbnB1dCgpe31cbkBtaXhpbiBob29rLWludmVyc2Utc2VhcmNoLWxhcmdlLWlucHV0KCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zZWFyY2gtdG9nZ2xlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWhvdmVyKCl7fVxuQG1peGluIGhvb2stc2VjdGlvbigpe31cbkBtaXhpbiBob29rLXNlY3Rpb24tZGVmYXVsdCgpe31cbkBtaXhpbiBob29rLXNlY3Rpb24tbXV0ZWQoKXt9XG5AbWl4aW4gaG9vay1zZWN0aW9uLXByaW1hcnkoKXt9XG5AbWl4aW4gaG9vay1zZWN0aW9uLXNlY29uZGFyeSgpe31cbkBtaXhpbiBob29rLXNlY3Rpb24tb3ZlcmxhcCgpe31cbkBtaXhpbiBob29rLXNlY3Rpb24tbWlzYygpe31cbkBtaXhpbiBob29rLXNsaWRlbmF2KCl7IHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7IH1cbkBtaXhpbiBob29rLXNsaWRlbmF2LWhvdmVyKCl7fVxuQG1peGluIGhvb2stc2xpZGVuYXYtYWN0aXZlKCl7fVxuQG1peGluIGhvb2stc2xpZGVuYXYtcHJldmlvdXMoKXt9XG5AbWl4aW4gaG9vay1zbGlkZW5hdi1uZXh0KCl7fVxuQG1peGluIGhvb2stc2xpZGVuYXYtbGFyZ2UoKXt9XG5AbWl4aW4gaG9vay1zbGlkZW5hdi1jb250YWluZXIoKXt9XG5AbWl4aW4gaG9vay1zbGlkZW5hdi1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zbGlkZW5hdigpe31cbkBtaXhpbiBob29rLWludmVyc2Utc2xpZGVuYXYtaG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXNsaWRlbmF2LWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLXNsaWRlcigpe31cbkBtaXhpbiBob29rLXNsaWRlci1taXNjKCl7fVxuQG1peGluIGhvb2stc2xpZGVzaG93KCl7fVxuQG1peGluIGhvb2stc2xpZGVzaG93LW1pc2MoKXt9XG5AbWl4aW4gaG9vay1zb3J0YWJsZSgpe31cbkBtaXhpbiBob29rLXNvcnRhYmxlLWRyYWcoKXt9XG5AbWl4aW4gaG9vay1zb3J0YWJsZS1wbGFjZWhvbGRlcigpe31cbkBtaXhpbiBob29rLXNvcnRhYmxlLWVtcHR5KCl7fVxuQG1peGluIGhvb2stc29ydGFibGUtbWlzYygpe31cbkBtaXhpbiBob29rLXNwaW5uZXIoKXt9XG5AbWl4aW4gaG9vay1zcGlubmVyLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1zdGlja3ktbWlzYygpe31cbkBtaXhpbiBob29rLXN1Ym5hdigpe31cbkBtaXhpbiBob29rLXN1Ym5hdi1pdGVtKCl7XG4gICAgZm9udC1zaXplOiAkc3VibmF2LWl0ZW0tZm9udC1zaXplO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkc3VibmF2LWl0ZW0tdGV4dC10cmFuc2Zvcm07XG4gICAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvcjtcbn1cbkBtaXhpbiBob29rLXN1Ym5hdi1pdGVtLWhvdmVyKCl7fVxuQG1peGluIGhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2stc3VibmF2LWRpdmlkZXIoKXt9XG5AbWl4aW4gaG9vay1zdWJuYXYtcGlsbC1pdGVtKCl7fVxuQG1peGluIGhvb2stc3VibmF2LXBpbGwtaXRlbS1ob3Zlcigpe31cbkBtaXhpbiBob29rLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaygpe31cbkBtaXhpbiBob29rLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2stc3VibmF2LWl0ZW0tZGlzYWJsZWQoKXt9XG5AbWl4aW4gaG9vay1zdWJuYXYtbWlzYygpe31cbkBtaXhpbiBob29rLWludmVyc2Utc3VibmF2LWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zdWJuYXYtaXRlbS1hY3RpdmUoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1kaXZpZGVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1zdWJuYXYtaXRlbS1kaXNhYmxlZCgpe31cbkBtaXhpbiBob29rLXN2Zy1taXNjKCl7fVxuQG1peGluIGhvb2stc3dpdGNoZXItbWlzYygpe31cbkBtaXhpbiBob29rLXRhYigpe1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6ICR0YWItbWFyZ2luLWhvcml6b250YWw7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkdGFiLWJvcmRlci13aWR0aCBzb2xpZCAkdGFiLWJvcmRlcjtcbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLXRhYi1pdGVtKCl7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYi1pdGVtLWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemU7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0YWItaXRlbS10ZXh0LXRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UtaW4tb3V0O1xufVxuQG1peGluIGhvb2stdGFiLWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay10YWItaXRlbS1hY3RpdmUoKXsgYm9yZGVyLWNvbG9yOiAkdGFiLWl0ZW0tYWN0aXZlLWJvcmRlcjsgfVxuQG1peGluIGhvb2stdGFiLWl0ZW0tZGlzYWJsZWQoKXt9XG5AbWl4aW4gaG9vay10YWItYm90dG9tKCl7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogYXV0bztcbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLXRhYi1ib3R0b20taXRlbSgpe1xuICAgIGJvcmRlci10b3A6ICR0YWItaXRlbS1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbkBtaXhpbiBob29rLXRhYi1sZWZ0KCl7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkdGFiLWJvcmRlci13aWR0aCBzb2xpZCAkdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbn1cbkBtaXhpbiBob29rLXRhYi1yaWdodCgpe1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXItbGVmdDogJHRhYi1ib3JkZXItd2lkdGggc29saWQgJHRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay10YWItbGVmdC1pdGVtKCl7XG4gICAgYm9yZGVyLXJpZ2h0OiAkdGFiLWl0ZW0tYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5AbWl4aW4gaG9vay10YWItcmlnaHQtaXRlbSgpe1xuICAgIGJvcmRlci1sZWZ0OiAkdGFiLWl0ZW0tYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5AbWl4aW4gaG9vay10YWItbWlzYygpe1xuXG4gICAgLnVrLXRhYiAudWstZHJvcGRvd24geyBtYXJnaW4tbGVmdDogKCR0YWItbWFyZ2luLWhvcml6b250YWwgKyAkdGFiLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsKSB9XG5cbn1cbkBtaXhpbiBob29rLWludmVyc2UtdGFiKCl7XG5cbiAgICAmOjpiZWZvcmUgeyBib3JkZXItY29sb3I6ICRpbnZlcnNlLXRhYi1ib3JkZXI7IH1cblxufVxuQG1peGluIGhvb2staW52ZXJzZS10YWItaXRlbSgpe31cbkBtaXhpbiBob29rLWludmVyc2UtdGFiLWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZSgpeyBib3JkZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7IH1cbkBtaXhpbiBob29rLWludmVyc2UtdGFiLWl0ZW0tZGlzYWJsZWQoKXt9XG5AbWl4aW4gaG9vay10YWJsZSgpe31cbkBtaXhpbiBob29rLXRhYmxlLWhlYWRlci1jZWxsKCl7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbkBtaXhpbiBob29rLXRhYmxlLWNlbGwoKXt9XG5AbWl4aW4gaG9vay10YWJsZS1mb290ZXIoKXt9XG5AbWl4aW4gaG9vay10YWJsZS1jYXB0aW9uKCl7fVxuQG1peGluIGhvb2stdGFibGUtZGl2aWRlcigpe31cbkBtaXhpbiBob29rLXRhYmxlLXN0cmlwZWQoKXtcbiAgICBib3JkZXItdG9wOiAkdGFibGUtc3RyaXBlZC1ib3JkZXItd2lkdGggc29saWQgJHRhYmxlLXN0cmlwZWQtYm9yZGVyO1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1zdHJpcGVkLWJvcmRlci13aWR0aCBzb2xpZCAkdGFibGUtc3RyaXBlZC1ib3JkZXI7XG59XG5AbWl4aW4gaG9vay10YWJsZS1ob3Zlcigpe31cbkBtaXhpbiBob29rLXRhYmxlLXJvdy1hY3RpdmUoKXt9XG5AbWl4aW4gaG9vay10YWJsZS1zbWFsbCgpe31cbkBtaXhpbiBob29rLXRhYmxlLWxhcmdlKCl7fVxuQG1peGluIGhvb2stdGFibGUtbWlzYygpe1xuXG4gICAgLnVrLXRhYmxlIHRib2R5IHRyIHsgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGxpbmVhcjsgfVxuXG59XG5AbWl4aW4gaG9vay1pbnZlcnNlLXRhYmxlLWhlYWRlci1jZWxsKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS10YWJsZS1jYXB0aW9uKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS10YWJsZS1kaXZpZGVyKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS10YWJsZS1zdHJpcGVkKCl7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlcjtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xufVxuQG1peGluIGhvb2staW52ZXJzZS10YWJsZS1ob3Zlcigpe31cbkBtaXhpbiBob29rLWludmVyc2UtY29tcG9uZW50LXRhYmxlKCl7XG5cbiAgICAudWstdGFibGUgdGgge1xuICAgICAgICBjb2xvcjogJGludmVyc2UtdGFibGUtaGVhZGVyLWNlbGwtY29sb3I7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXRhYmxlLWhlYWRlci1jZWxsKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10YWJsZS1oZWFkZXItY2VsbCgpO31cbiAgICB9XG5cbiAgICAudWstdGFibGUgY2FwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkaW52ZXJzZS10YWJsZS1jYXB0aW9uLWNvbG9yO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10YWJsZS1jYXB0aW9uKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10YWJsZS1jYXB0aW9uKCk7fVxuICAgIH1cblxuICAgIC51ay10YWJsZSA+IHRyLnVrLWFjdGl2ZSxcbiAgICAudWstdGFibGUgdGJvZHkgdHIudWstYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGludmVyc2UtdGFibGUtcm93LWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlKCk7fVxuICAgIH1cblxuICAgIC51ay10YWJsZS1kaXZpZGVyID4gdHI6bm90KDpmaXJzdC1jaGlsZCksXG4gICAgLnVrLXRhYmxlLWRpdmlkZXIgPiA6bm90KDpmaXJzdC1jaGlsZCkgPiB0cixcbiAgICAudWstdGFibGUtZGl2aWRlciA+IDpmaXJzdC1jaGlsZCA+IHRyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGludmVyc2UtdGFibGUtZGl2aWRlci1ib3JkZXI7XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pbnZlcnNlLXRhYmxlLWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXRhYmxlLWRpdmlkZXIoKTt9XG4gICAgfVxuXG4gICAgLnVrLXRhYmxlLXN0cmlwZWQgPiB0cjpudGgtb2YtdHlwZShvZGQpLFxuICAgIC51ay10YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkaW52ZXJzZS10YWJsZS1zdHJpcGVkLXJvdy1iYWNrZ3JvdW5kO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10YWJsZS1zdHJpcGVkKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10YWJsZS1zdHJpcGVkKCk7fVxuICAgIH1cblxuICAgIC51ay10YWJsZS1ob3ZlciA+IHRyOmhvdmVyLFxuICAgIC51ay10YWJsZS1ob3ZlciB0Ym9keSB0cjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRpbnZlcnNlLXRhYmxlLWhvdmVyLXJvdy1iYWNrZ3JvdW5kO1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10YWJsZS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWludmVyc2UtdGFibGUtaG92ZXIoKTt9XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay10ZXh0LWxlYWQoKXt9XG5AbWl4aW4gaG9vay10ZXh0LW1ldGEoKXtcblxuICAgIGEgeyBjb2xvcjogJHRleHQtbWV0YS1saW5rLWNvbG9yOyB9XG5cbiAgICBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICR0ZXh0LW1ldGEtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxufVxuQG1peGluIGhvb2stdGV4dC1zbWFsbCgpe31cbkBtaXhpbiBob29rLXRleHQtbGFyZ2UoKXt9XG5AbWl4aW4gaG9vay10ZXh0LWJhY2tncm91bmQoKXt9XG5AbWl4aW4gaG9vay10ZXh0LW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXRleHQtbGVhZCgpe31cbkBtaXhpbiBob29rLWludmVyc2UtdGV4dC1tZXRhKCl7fVxuQG1peGluIGhvb2stdGh1bWJuYXYoKXt9XG5AbWl4aW4gaG9vay10aHVtYm5hdi1pdGVtKCl7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdGh1bWJuYXYtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG59XG5AbWl4aW4gaG9vay10aHVtYm5hdi1pdGVtLWhvdmVyKCl7XG4gICAgJjo6YWZ0ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkdGh1bWJuYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOyB9XG59XG5AbWl4aW4gaG9vay10aHVtYm5hdi1pdGVtLWFjdGl2ZSgpe1xuICAgICY6OmFmdGVyIHsgYmFja2dyb3VuZC1jb2xvcjogJHRodW1ibmF2LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7IH1cbn1cbkBtaXhpbiBob29rLXRodW1ibmF2LW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXRodW1ibmF2LWl0ZW0oKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXRodW1ibmF2LWl0ZW0taG92ZXIoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXRodW1ibmF2LWl0ZW0tYWN0aXZlKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1jb21wb25lbnQtdGh1bWJuYXYoKXtcblxuICAgIC51ay10aHVtYm5hdiA+ICogPiAqIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbSgpO31cbiAgICB9XG5cbiAgICAudWstdGh1bWJuYXYgPiAqID4gOmhvdmVyLFxuICAgIC51ay10aHVtYm5hdiA+ICogPiA6Zm9jdXMge1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZS10aHVtYm5hdi1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staW52ZXJzZS10aHVtYm5hdi1pdGVtLWhvdmVyKCk7fVxuICAgIH1cblxuICAgIC51ay10aHVtYm5hdiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlLXRodW1ibmF2LWl0ZW0tYWN0aXZlKCk7fVxuICAgIH1cblxufVxuQG1peGluIGhvb2stdGlsZSgpe31cbkBtaXhpbiBob29rLXRpbGUtZGVmYXVsdCgpe31cbkBtaXhpbiBob29rLXRpbGUtZGVmYXVsdC1ob3Zlcigpe31cbkBtaXhpbiBob29rLXRpbGUtbXV0ZWQoKXt9XG5AbWl4aW4gaG9vay10aWxlLW11dGVkLWhvdmVyKCl7fVxuQG1peGluIGhvb2stdGlsZS1wcmltYXJ5KCl7fVxuQG1peGluIGhvb2stdGlsZS1wcmltYXJ5LWhvdmVyKCl7fVxuQG1peGluIGhvb2stdGlsZS1zZWNvbmRhcnkoKXt9XG5AbWl4aW4gaG9vay10aWxlLXNlY29uZGFyeS1ob3Zlcigpe31cbkBtaXhpbiBob29rLXRpbGUtbWlzYygpe31cbkBtaXhpbiBob29rLXRvb2x0aXAoKXt9XG5AbWl4aW4gaG9vay10b29sdGlwLW1pc2MoKXt9XG5AbWl4aW4gaG9vay10b3RvcCgpeyB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UtaW4tb3V0OyB9XG5AbWl4aW4gaG9vay10b3RvcC1ob3Zlcigpe31cbkBtaXhpbiBob29rLXRvdG9wLWFjdGl2ZSgpe31cbkBtaXhpbiBob29rLXRvdG9wLW1pc2MoKXt9XG5AbWl4aW4gaG9vay1pbnZlcnNlLXRvdG9wKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS10b3RvcC1ob3Zlcigpe31cbkBtaXhpbiBob29rLWludmVyc2UtdG90b3AtYWN0aXZlKCl7fVxuQG1peGluIGhvb2stdHJhbnNpdGlvbi1taXNjKCl7fVxuQG1peGluIGhvb2stcGFuZWwtc2Nyb2xsYWJsZSgpe31cbkBtaXhpbiBob29rLWJveC1zaGFkb3ctYm90dG9tKCl7fVxuQG1peGluIGhvb2stZHJvcGNhcCgpe1xuICAgIC8vIFByZXZlbnQgbGluZSB3cmFwXG4gICAgbWFyZ2luLWJvdHRvbTogLTJweDtcbn1cbkBtaXhpbiBob29rLWxvZ28oKXt9XG5AbWl4aW4gaG9vay1sb2dvLWhvdmVyKCl7fVxuQG1peGluIGhvb2stdXRpbGl0eS1taXNjKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1kcm9wY2FwKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1sb2dvKCl7fVxuQG1peGluIGhvb2staW52ZXJzZS1sb2dvLWhvdmVyKCl7fVxuQG1peGluIGhvb2stdmlzaWJpbGl0eS1taXNjKCl7fVxuQG1peGluIGhvb2std2lkdGgtbWlzYygpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIExpbmtcbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBsaW5rc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWxpbmstbXV0ZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saW5rLXRleHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saW5rLWhlYWRpbmdgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saW5rLXJlc2V0YFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWxpbmstdG9nZ2xlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRsaW5rLW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGxpbmstbXV0ZWQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cbiRsaW5rLXRleHQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbGluay1oZWFkaW5nLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGlua1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLyogTXV0ZWRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5hLnVrLWxpbmstbXV0ZWQsXG4udWstbGluay1tdXRlZCBhIHtcbiAgICBjb2xvcjogJGxpbmstbXV0ZWQtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstbXV0ZWQpKSB7QGluY2x1ZGUgaG9vay1saW5rLW11dGVkKCk7fVxufVxuXG5hLnVrLWxpbmstbXV0ZWQ6aG92ZXIsXG4udWstbGluay1tdXRlZCBhOmhvdmVyLFxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLW11dGVkLFxuLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rLW11dGVkIHtcbiAgICBjb2xvcjogJGxpbmstbXV0ZWQtaG92ZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstbXV0ZWQtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1saW5rLW11dGVkLWhvdmVyKCk7fVxufVxuXG5cbi8qIFRleHRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5hLnVrLWxpbmstdGV4dCxcbi51ay1saW5rLXRleHQgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstdGV4dCkpIHtAaW5jbHVkZSBob29rLWxpbmstdGV4dCgpO31cbn1cblxuYS51ay1saW5rLXRleHQ6aG92ZXIsXG4udWstbGluay10ZXh0IGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstdGV4dCxcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyAudWstbGluay10ZXh0IHtcbiAgICBjb2xvcjogJGxpbmstdGV4dC1ob3Zlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGluay10ZXh0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbGluay10ZXh0LWhvdmVyKCk7fVxufVxuXG5cbi8qIEhlYWRpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5hLnVrLWxpbmstaGVhZGluZyxcbi51ay1saW5rLWhlYWRpbmcgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstaGVhZGluZykpIHtAaW5jbHVkZSBob29rLWxpbmstaGVhZGluZygpO31cbn1cblxuYS51ay1saW5rLWhlYWRpbmc6aG92ZXIsXG4udWstbGluay1oZWFkaW5nIGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstaGVhZGluZyxcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyAudWstbGluay1oZWFkaW5nIHtcbiAgICBjb2xvcjogJGxpbmstaGVhZGluZy1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWhlYWRpbmctaG92ZXItdGV4dC1kZWNvcmF0aW9uO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saW5rLWhlYWRpbmctaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1saW5rLWhlYWRpbmctaG92ZXIoKTt9XG59XG5cblxuLyogUmVzZXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogYCFpbXBvcnRhbnRgIG5lZWRlZCB0byBvdmVycmlkZSBpbnZlcnNlIGNvbXBvbmVudFxuICovXG5cbmEudWstbGluay1yZXNldCxcbi51ay1saW5rLXJlc2V0IGEge1xuICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstcmVzZXQpKSB7QGluY2x1ZGUgaG9vay1saW5rLXJlc2V0KCk7fVxufVxuXG5cbi8qIFRvZ2dsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saW5rLXRvZ2dsZSB7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbiBcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1saW5rLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1saW5rLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWxpbmstbXV0ZWQoKXt9XG4vLyBAbWl4aW4gaG9vay1saW5rLW11dGVkLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stbGluay10ZXh0KCl7fVxuLy8gQG1peGluIGhvb2stbGluay10ZXh0LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stbGluay1oZWFkaW5nKCl7fVxuLy8gQG1peGluIGhvb2stbGluay1oZWFkaW5nLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stbGluay1yZXNldCgpe31cbi8vIEBtaXhpbiBob29rLWxpbmstbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtbGluay1tdXRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGluay1tdXRlZC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGluay10ZXh0LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbGluay1tdXRlZCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbGluay1tdXRlZC1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbGluay10ZXh0LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1saW5rLWhlYWRpbmctaG92ZXIoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEhlYWRpbmdcbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBoZWFkaW5nc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWhlYWRpbmctcHJpbWFyeWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhlYWRpbmctaGVyb2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhlYWRpbmctZGl2aWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhlYWRpbmctYnVsbGV0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstaGVhZGluZy1saW5lYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1zbWFsbC1mb250LXNpemUtbSAqIDAuOCAhZGVmYXVsdDsgICAgICAvLyAzOHB4IDAuNzNcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLW0gKiAwLjgyNSAhZGVmYXVsdDsgICAgIC8vIDQwcHggMC43MTRcbiRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1sYXJnZS1mb250LXNpemUtbSAqIDAuODUgIWRlZmF1bHQ7ICAgICAgLy8gNTBweCAwLjc4XG4kaGVhZGluZy14bGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW0gIWRlZmF1bHQ7ICAgICAgICAgICAgIC8vIDRyZW0gLyA2NHB4XG4kaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1tICFkZWZhdWx0OyAgICAgICAgICAgIC8vIDZyZW0gLyA5NnB4XG5cbiRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZS1tOiAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWwgKiAwLjgxMjUgIWRlZmF1bHQ7ICAgLy8gMy4yNXJlbSAvIDUycHhcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWwgKiAwLjg3NSAhZGVmYXVsdDsgICAgLy8gMy41cmVtIC8gNTZweFxuJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbCAhZGVmYXVsdDsgICAgICAgICAgICAvLyA0cmVtIC8gNjRweFxuJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1tOiAgICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1sICFkZWZhdWx0OyAgICAgICAgICAgICAvLyA2cmVtIC8gOTZweFxuJGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbCAhZGVmYXVsdDsgICAgICAgICAgICAvLyA4cmVtIC8gMTI4cHhcblxuJGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sOiAgICAgICAgICAgICAgICAgICAgIDRyZW0gIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA2NHB4XG4kaGVhZGluZy1sYXJnZS1mb250LXNpemUtbDogICAgICAgICAgICAgICAgICAgICAgNnJlbSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDk2cHhcbiRoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbDogICAgICAgICAgICAgICAgICAgICA4cmVtICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTI4cHhcbiRoZWFkaW5nLTJ4bGFyZ2UtZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICAxMXJlbSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTc2cHhcblxuJGhlYWRpbmctc21hbGwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuMiAhZGVmYXVsdDtcbiRoZWFkaW5nLW1lZGl1bS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAxLjEgIWRlZmF1bHQ7XG4kaGVhZGluZy1sYXJnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgMS4xICFkZWZhdWx0O1xuJGhlYWRpbmcteGxhcmdlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgIDEgIWRlZmF1bHQ7XG4kaGVhZGluZy0yeGxhcmdlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgMSAhZGVmYXVsdDtcblxuJGhlYWRpbmctZGl2aWRlci1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgIHVucXVvdGUoJ2NhbGMoNXB4ICsgMC4xZW0pJykgIWRlZmF1bHQ7XG4kaGVhZGluZy1kaXZpZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgdW5xdW90ZSgnY2FsYygwLjJweCArIDAuMDVlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcblxuJGhlYWRpbmctYnVsbGV0LXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucXVvdGUoJ2NhbGMoLTAuMSAqIDFlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLWJ1bGxldC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnF1b3RlKCdjYWxjKDRweCArIDAuN2VtKScpICFkZWZhdWx0O1xuJGhlYWRpbmctYnVsbGV0LW1hcmdpbi1yaWdodDogICAgICAgICAgICAgICAgICAgIHVucXVvdGUoJ2NhbGMoNXB4ICsgMC4yZW0pJykgIWRlZmF1bHQ7XG4kaGVhZGluZy1idWxsZXQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgdW5xdW90ZSgnY2FsYyg1cHggKyAwLjFlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLWJ1bGxldC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcblxuJGhlYWRpbmctbGluZS10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwJSAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1saW5lLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDAwcHggIWRlZmF1bHQ7XG4kaGVhZGluZy1saW5lLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgdW5xdW90ZSgnY2FsYygwLjJweCArIDAuMDVlbSknKSAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRoZWFkaW5nLWxpbmUtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICB1bnF1b3RlKCdjYWxjKDVweCArIDAuM2VtKScpICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBIZWFkaW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWhlYWRpbmctc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staGVhZGluZy1zbWFsbCkpIHtAaW5jbHVkZSBob29rLWhlYWRpbmctc21hbGwoKTt9XG59XG5cbi51ay1oZWFkaW5nLW1lZGl1bSB7XG4gICAgZm9udC1zaXplOiAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1tZWRpdW0tbGluZS1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmctbWVkaXVtKSkge0BpbmNsdWRlIGhvb2staGVhZGluZy1tZWRpdW0oKTt9XG59XG5cbi51ay1oZWFkaW5nLWxhcmdlIHtcbiAgICBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGFyZ2UtbGluZS1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmctbGFyZ2UpKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLWxhcmdlKCk7fVxufVxuXG4udWstaGVhZGluZy14bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmcteGxhcmdlLWxpbmUtaGVpZ2h0O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLXhsYXJnZSkpIHtAaW5jbHVkZSBob29rLWhlYWRpbmcteGxhcmdlKCk7fVxufVxuXG4udWstaGVhZGluZy0yeGxhcmdlIHtcbiAgICBmb250LXNpemU6ICRoZWFkaW5nLTJ4bGFyZ2UtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy0yeGxhcmdlLWxpbmUtaGVpZ2h0O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLTJ4bGFyZ2UpKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLTJ4bGFyZ2UoKTt9XG59XG5cbi8qIFRhYmxldCBMYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWhlYWRpbmctc21hbGwgeyBmb250LXNpemU6ICRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZS1tOyB9XG4gICAgLnVrLWhlYWRpbmctbWVkaXVtIHsgZm9udC1zaXplOiAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLW07IH1cbiAgICAudWstaGVhZGluZy1sYXJnZSB7IGZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW07IH1cbiAgICAudWstaGVhZGluZy14bGFyZ2UgeyBmb250LXNpemU6ICRoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbTsgfVxuICAgIC51ay1oZWFkaW5nLTJ4bGFyZ2UgeyBmb250LXNpemU6ICRoZWFkaW5nLTJ4bGFyZ2UtZm9udC1zaXplLW07IH1cblxufVxuXG4vKiBMYXB0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstaGVhZGluZy1tZWRpdW0geyBmb250LXNpemU6ICRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbDsgfVxuICAgIC51ay1oZWFkaW5nLWxhcmdlIHsgZm9udC1zaXplOiAkaGVhZGluZy1sYXJnZS1mb250LXNpemUtbDsgfVxuICAgIC51ay1oZWFkaW5nLXhsYXJnZSB7IGZvbnQtc2l6ZTogJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1sOyB9XG4gICAgLnVrLWhlYWRpbmctMnhsYXJnZSB7IGZvbnQtc2l6ZTogJGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbDsgfVxuXG59XG5cblxuLyogUHJpbWFyeVxuICAgRGVwcmVjYXRlZDogVXNlIGB1ay1oZWFkaW5nLW1lZGl1bWAgaW5zdGVhZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICAzLjc1cmVtICFkZWZhdWx0OyAgLy8gNjBweFxuJGhlYWRpbmctcHJpbWFyeS1saW5lLWhlaWdodC1sOiAgICAgICAgICAgICAgICAgIDEuMSAhZGVmYXVsdDtcblxuJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWwgKiAwLjkgIWRlZmF1bHQ7IC8vIDU0cHhcblxuJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWwgKiAwLjggIWRlZmF1bHQ7IC8vIDQ4cHhcbiRoZWFkaW5nLXByaW1hcnktbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxLjIgIWRlZmF1bHQ7XG5cbkBpZiAoJGRlcHJlY2F0ZWQgPT0gdHJ1ZSkge1xuLnVrLWhlYWRpbmctcHJpbWFyeSB7XG4gICAgZm9udC1zaXplOiAkaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctcHJpbWFyeS1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staGVhZGluZy1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2staGVhZGluZy1wcmltYXJ5KCk7fVxufVxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIEBpZiAoJGRlcHJlY2F0ZWQgPT0gdHJ1ZSkge1xuLnVrLWhlYWRpbmctcHJpbWFyeSB7IGZvbnQtc2l6ZTogJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbTsgfVxufVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICBAaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcbi51ay1oZWFkaW5nLXByaW1hcnkge1xuICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1wcmltYXJ5LWxpbmUtaGVpZ2h0LWw7XG4gICAgfVxufVxuXG59XG5cblxuLyogSGVyb1xuICAgRGVwcmVjYXRlZDogVXNlIGB1ay1oZWFkaW5nLXhsYXJnZWAgaW5zdGVhZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICAgICA4cmVtICFkZWZhdWx0OyAvLyAxMjhweFxuJGhlYWRpbmctaGVyby1saW5lLWhlaWdodC1sOiAgICAgICAgICAgICAgICAgICAgIDEgIWRlZmF1bHQ7XG5cbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sICogMC43NSAhZGVmYXVsdDsgLy8gOTZweFxuJGhlYWRpbmctaGVyby1saW5lLWhlaWdodC1tOiAgICAgICAgICAgICAgICAgICAgIDEgIWRlZmF1bHQ7XG5cbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sICogMC41ICFkZWZhdWx0OyAvLyA2NHB4XG4kaGVhZGluZy1oZXJvLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgMS4xICFkZWZhdWx0O1xuXG5AaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcbi51ay1oZWFkaW5nLWhlcm8ge1xuICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctaGVyby1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmctaGVybykpIHtAaW5jbHVkZSBob29rLWhlYWRpbmctaGVybygpO31cbn1cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICBAaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcbi51ay1oZWFkaW5nLWhlcm8ge1xuICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLWhlcm8tZm9udC1zaXplLW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1oZXJvLWxpbmUtaGVpZ2h0LW07XG4gICAgfVxufVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICBAaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcbi51ay1oZWFkaW5nLWhlcm8ge1xuICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLWhlcm8tZm9udC1zaXplLWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1oZXJvLWxpbmUtaGVpZ2h0LWw7XG4gICAgfVxufVxuXG59XG5cblxuLyogRGl2aWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1oZWFkaW5nLWRpdmlkZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAkaGVhZGluZy1kaXZpZGVyLXBhZGRpbmctYm90dG9tO1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkaW5nLWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkICRoZWFkaW5nLWRpdmlkZXItYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLWRpdmlkZXIoKTt9XG59XG5cblxuLyogQnVsbGV0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWhlYWRpbmctYnVsbGV0IHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qXG4gKiAxLiBVc2luZyBgaW5saW5lLWJsb2NrYCB0byBtYWtlIGl0IHdvcmsgd2l0aCB0ZXh0IGFsaWdubWVudFxuICogMi4gQ2VudGVyIHZlcnRpY2FsbHlcbiAqIDMuIFN0eWxlXG4gKi9cblxuLnVrLWhlYWRpbmctYnVsbGV0OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogJGhlYWRpbmctYnVsbGV0LXRvcDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDMgKi9cbiAgICBoZWlnaHQ6ICRoZWFkaW5nLWJ1bGxldC1oZWlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAkaGVhZGluZy1idWxsZXQtbWFyZ2luLXJpZ2h0O1xuICAgIGJvcmRlci1sZWZ0OiAkaGVhZGluZy1idWxsZXQtYm9yZGVyLXdpZHRoIHNvbGlkICRoZWFkaW5nLWJ1bGxldC1ib3JkZXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmctYnVsbGV0KSkge0BpbmNsdWRlIGhvb2staGVhZGluZy1idWxsZXQoKTt9XG59XG5cblxuLyogTGluZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBDbGlwIHRoZSBjaGlsZCBlbGVtZW50XG4gKi9cblxuLnVrLWhlYWRpbmctbGluZSB7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIEV4dHJhIG1hcmt1cCBpcyBuZWVkZWQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGV4dCBhbGlnblxuICovXG5cbi51ay1oZWFkaW5nLWxpbmUgPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKlxuICogMS4gQ2VudGVyIHZlcnRpY2FsbHlcbiAqIDIuIE1ha2UgdGhlIGVsZW1lbnQgYXMgbGFyZ2UgYXMgcG9zc2libGUuIEl0J3MgY2xpcHBlZCBieSB0aGUgY29udGFpbmVyLlxuICogMy4gU3R5bGVcbiAqL1xuXG4udWstaGVhZGluZy1saW5lID4gOjpiZWZvcmUsXG4udWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdW5xdW90ZSgnY2FsYygjeyRoZWFkaW5nLWxpbmUtdG9wfSAtICgjeyRoZWFkaW5nLWxpbmUtaGVpZ2h0fSAvIDIpKScpO1xuICAgIC8qIDIgKi9cbiAgICB3aWR0aDogJGhlYWRpbmctbGluZS13aWR0aDtcbiAgICAvKiAzICovXG4gICAgYm9yZGVyLWJvdHRvbTogJGhlYWRpbmctbGluZS1ib3JkZXItd2lkdGggc29saWQgJGhlYWRpbmctbGluZS1ib3JkZXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmctbGluZSkpIHtAaW5jbHVkZSBob29rLWhlYWRpbmctbGluZSgpO31cbn1cblxuLnVrLWhlYWRpbmctbGluZSA+IDo6YmVmb3JlIHtcbiAgICByaWdodDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRoZWFkaW5nLWxpbmUtbWFyZ2luLWhvcml6b250YWw7XG59XG4udWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XG4gICAgbGVmdDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogJGhlYWRpbmctbGluZS1tYXJnaW4taG9yaXpvbnRhbDtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWhlYWRpbmctc21hbGwoKXt9XG4vLyBAbWl4aW4gaG9vay1oZWFkaW5nLW1lZGl1bSgpe31cbi8vIEBtaXhpbiBob29rLWhlYWRpbmctbGFyZ2UoKXt9XG4vLyBAbWl4aW4gaG9vay1oZWFkaW5nLXhsYXJnZSgpe31cbi8vIEBtaXhpbiBob29rLWhlYWRpbmctMnhsYXJnZSgpe31cbi8vIEBtaXhpbiBob29rLWhlYWRpbmctcHJpbWFyeSgpe31cbi8vIEBtaXhpbiBob29rLWhlYWRpbmctaGVybygpe31cbi8vIEBtaXhpbiBob29rLWhlYWRpbmctZGl2aWRlcigpe31cbi8vIEBtaXhpbiBob29rLWhlYWRpbmctYnVsbGV0KCl7fVxuLy8gQG1peGluIGhvb2staGVhZGluZy1saW5lKCl7fVxuLy8gQG1peGluIGhvb2staGVhZGluZy1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1oZWFkaW5nLWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGludmVyc2UtaGVhZGluZy1idWxsZXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRpbnZlcnNlLWhlYWRpbmctbGluZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctc21hbGwoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctbWVkaXVtKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLWxhcmdlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLXhsYXJnZSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy0yeGxhcmdlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLXByaW1hcnkoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctaGVybygpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1kaXZpZGVyKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLWJ1bGxldCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1saW5lKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBEaXZpZGVyXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgZGl2aWRlcnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1kaXZpZGVyLWljb25gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kaXZpZGVyLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZGl2aWRlci12ZXJ0aWNhbGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kZGl2aWRlci1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbiRkaXZpZGVyLWljb24td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MHB4ICFkZWZhdWx0O1xuJGRpdmlkZXItaWNvbi1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XG4kZGl2aWRlci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kZGl2aWRlci1pY29uLWxpbmUtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgNTAlICFkZWZhdWx0O1xuJGRpdmlkZXItaWNvbi1saW5lLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgIDEwMCUgIWRlZmF1bHQ7XG4kZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRpbnRlcm5hbC1kaXZpZGVyLWljb24taW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyMCUyMiUyMGhlaWdodCUzRCUyMjIwJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjAlMjAyMCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIjMDAwJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyMGN4JTNEJTIyMTAlMjIlMjBjeSUzRCUyMjEwJTIyJTIwciUzRCUyMjclMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIiAhZGVmYXVsdDtcblxuJGRpdmlkZXItc21hbGwtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMHB4ICFkZWZhdWx0O1xuJGRpdmlkZXItc21hbGwtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGRpdmlkZXItc21hbGwtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuXG4kZGl2aWRlci12ZXJ0aWNhbC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgMTAwcHggIWRlZmF1bHQ7XG4kZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IERpdmlkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUmVzZXQgZGVmYXVsdCBgaHJgXG4gKiAyLiBTZXQgbWFyZ2luIGlmIGEgYGRpdmAgaXMgdXNlZCBmb3Igc2VtYW50aWNhbCByZWFzb25cbiAqL1xuXG5bY2xhc3MqPSd1ay1kaXZpZGVyJ10ge1xuICAgIC8qIDEgKi9cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbi1ib3R0b206ICRkaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDtcbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgW2NsYXNzKj0ndWstZGl2aWRlciddIHsgbWFyZ2luLXRvcDogJGRpdmlkZXItbWFyZ2luLXZlcnRpY2FsOyB9XG5cblxuLyogSWNvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1kaXZpZGVyLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6ICRkaXZpZGVyLWljb24taGVpZ2h0O1xuICAgIEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1kaXZpZGVyLWljb24taW1hZ2UsIFwiIzAwMFwiLCAkZGl2aWRlci1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRpdmlkZXItaWNvbikpIHtAaW5jbHVkZSBob29rLWRpdmlkZXItaWNvbigpO31cbn1cblxuLnVrLWRpdmlkZXItaWNvbjo6YmVmb3JlLFxuLnVrLWRpdmlkZXItaWNvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJGRpdmlkZXItaWNvbi1saW5lLXRvcDtcbiAgICBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoNTAlIC0gKCN7JGRpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknKTtcbiAgICBib3JkZXItYm90dG9tOiAkZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyLXdpZHRoIHNvbGlkICRkaXZpZGVyLWljb24tbGluZS1ib3JkZXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRpdmlkZXItaWNvbi1saW5lKSkge0BpbmNsdWRlIGhvb2stZGl2aWRlci1pY29uLWxpbmUoKTt9XG59XG5cbi51ay1kaXZpZGVyLWljb246OmJlZm9yZSB7XG4gICAgcmlnaHQ6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGRpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknKTtcbiAgICB3aWR0aDogJGRpdmlkZXItaWNvbi1saW5lLXdpZHRoO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kaXZpZGVyLWljb24tbGluZS1sZWZ0KSkge0BpbmNsdWRlIGhvb2stZGl2aWRlci1pY29uLWxpbmUtbGVmdCgpO31cbn1cblxuLnVrLWRpdmlkZXItaWNvbjo6YWZ0ZXIge1xuICAgIGxlZnQ6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGRpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknKTtcbiAgICB3aWR0aDogJGRpdmlkZXItaWNvbi1saW5lLXdpZHRoO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kaXZpZGVyLWljb24tbGluZS1yaWdodCkpIHtAaW5jbHVkZSBob29rLWRpdmlkZXItaWNvbi1saW5lLXJpZ2h0KCk7fVxufVxuXG5cbi8qIFNtYWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEZpeCBoZWlnaHQgYmVjYXVzZSBvZiBgaW5saW5lLWJsb2NrYFxuICogMi4gVXNpbmcgOjphZnRlciBhbmQgaW5saW5lLWJsb2NrIHRvIG1ha2UgYHRleHQtYWxpZ25gIHdvcmtcbiAqL1xuXG4vKiAxICovXG4udWstZGl2aWRlci1zbWFsbCB7IGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi8qIDIgKi9cbi51ay1kaXZpZGVyLXNtYWxsOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICRkaXZpZGVyLXNtYWxsLXdpZHRoO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXItdG9wOiAkZGl2aWRlci1zbWFsbC1ib3JkZXItd2lkdGggc29saWQgJGRpdmlkZXItc21hbGwtYm9yZGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRpdmlkZXItc21hbGwpKSB7QGluY2x1ZGUgaG9vay1kaXZpZGVyLXNtYWxsKCk7fVxufVxuXG5cbi8qIFZlcnRpY2FsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWRpdmlkZXItdmVydGljYWwge1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAkZGl2aWRlci12ZXJ0aWNhbC1oZWlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1sZWZ0OiAkZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXItd2lkdGggc29saWQgJGRpdmlkZXItdmVydGljYWwtYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kaXZpZGVyLXZlcnRpY2FsKSkge0BpbmNsdWRlIGhvb2stZGl2aWRlci12ZXJ0aWNhbCgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1kaXZpZGVyLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1kaXZpZGVyLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWRpdmlkZXItaWNvbigpe31cbi8vIEBtaXhpbiBob29rLWRpdmlkZXItaWNvbi1saW5lKCl7fVxuLy8gQG1peGluIGhvb2stZGl2aWRlci1pY29uLWxpbmUtbGVmdCgpe31cbi8vIEBtaXhpbiBob29rLWRpdmlkZXItaWNvbi1saW5lLXJpZ2h0KCl7fVxuLy8gQG1peGluIGhvb2stZGl2aWRlci1zbWFsbCgpe31cbi8vIEBtaXhpbiBob29rLWRpdmlkZXItdmVydGljYWwoKXt9XG4vLyBAbWl4aW4gaG9vay1kaXZpZGVyLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLWRpdmlkZXItaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1kaXZpZGVyLWljb24tbGluZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGludmVyc2UtZGl2aWRlci1zbWFsbC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRpbnZlcnNlLWRpdmlkZXItdmVydGljYWwtYm9yZGVyOiAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWRpdmlkZXItaWNvbigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtZGl2aWRlci1pY29uLWxpbmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWRpdmlkZXItc21hbGwoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWRpdmlkZXItdmVydGljYWwoKXt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiAgICAgICBNaXhpblxuLy8gRGVzY3JpcHRpb246ICAgICBEZWZpbmVzIG1peGlucyB3aGljaCBhcmUgdXNlZCBhY3Jvc3MgYWxsIGNvbXBvbmVudHNcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBTVkdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gSW5pdGlhbCBzdHJpbmdcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlYXJjaCAtIFN1YnN0cmluZyB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVXBkYXRlZCBzdHJpbmdcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogJycpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG5cbiAgQGlmICRpbmRleCB7XG4gICAgQHJldHVybiBzdHItc2xpY2UoJHN0cmluZywgMSwgJGluZGV4IC0gMSkgKyAkcmVwbGFjZSArIHN0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRzZWFyY2gpKSwgJHNlYXJjaCwgJHJlcGxhY2UpO1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuXG5AbWl4aW4gc3ZnLWZpbGwoJHNyYywgJGNvbG9yLWRlZmF1bHQsICRjb2xvci1uZXcpe1xuXG4gICAgJHJlcGxhY2Utc3JjOiBzdHItcmVwbGFjZSgkc3JjLCAkY29sb3ItZGVmYXVsdCwgJGNvbG9yLW5ldykgIWRlZmF1bHQ7XG4gICAgJHJlcGxhY2Utc3JjOiBzdHItcmVwbGFjZSgkcmVwbGFjZS1zcmMsIFwiI1wiLCBcIiUyM1wiKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocXVvdGUoJHJlcGxhY2Utc3JjKSk7XG59IiwiLy8gTmFtZTogICAgICAgICAgICBMaXN0XG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgbGlzdHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1saXN0YFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWxpc3QtZGlzY2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtY2lyY2xlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlzdC1zcXVhcmVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWRlY2ltYWxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWh5cGhlbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtbXV0ZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWVtcGhhc2lzYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlzdC1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlzdC1zZWNvbmRhcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWJ1bGxldGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtZGl2aWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3Qtc3RyaXBlZGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWNvbGxhcHNlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRsaXN0LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcblxuJGxpc3QtcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG5cbiRsaXN0LW1hcmtlci1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGdsb2JhbC1saW5lLWhlaWdodCAqIDFlbSkgIWRlZmF1bHQ7XG5cbiRsaXN0LW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGxpc3QtZW1waGFzaXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kbGlzdC1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJGxpc3QtYnVsbGV0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cbiRsaXN0LWRpdmlkZXItbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRsaXN0LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRsaXN0LWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcblxuJGxpc3Qtc3RyaXBlZC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xuJGxpc3Qtc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xuJGxpc3Qtc3RyaXBlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJGxpc3QtbGFyZ2UtbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGxpc3QtbGFyZ2UtZGl2aWRlci1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGxpc3QtbGFyZ2Utc3RyaXBlZC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGxpc3QtbGFyZ2Utc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xuXG4kaW50ZXJuYWwtbGlzdC1idWxsZXQtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYlMjA2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyIzAwMCUyMiUyMGN4JTNEJTIyMyUyMiUyMGN5JTNEJTIyMyUyMiUyMHIlM0QlMjIzJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IExpc3RcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLWxpc3QgPiAqID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qXG4gKiBTdHlsZVxuICovXG5cbi51ay1saXN0ID4gOm50aC1jaGlsZChuKzIpLFxuLnVrLWxpc3QgPiAqID4gdWwgeyBtYXJnaW4tdG9wOiAkbGlzdC1tYXJnaW4tdG9wOyB9XG5cblxuLyogTWFya2VyIG1vZGlmaWVyc1xuICogTW92aW5nIGA6Om1hcmtlcmAgaW5zaWRlIGA6OmJlZm9yZWAgdG8gc3R5bGUgaXQgZGlmZmVyZW50bHlcbiAqIFRvIHN0eWxlIHRoZSBgOjptYXJrZXJgIGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBpbiBGaXJlZm94IGFuZCBTYWZhcmlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbGlzdC1kaXNjID4gKixcbi51ay1saXN0LWNpcmNsZSA+ICosXG4udWstbGlzdC1zcXVhcmUgPiAqLFxuLnVrLWxpc3QtZGVjaW1hbCA+ICosXG4udWstbGlzdC1oeXBoZW4gPiAqIHsgcGFkZGluZy1sZWZ0OiAkbGlzdC1wYWRkaW5nLWxlZnQ7IH1cblxuLypcbiAqIFR5cGUgbW9kaWZpZXJzXG4gKi9cblxuLnVrLWxpc3QtZGVjaW1hbCB7IGNvdW50ZXItcmVzZXQ6IGRlY2ltYWw7IH1cbi51ay1saXN0LWRlY2ltYWwgPiAqIHsgY291bnRlci1pbmNyZW1lbnQ6IGRlY2ltYWw7IH1cblxuW2NsYXNzKj0ndWstbGlzdCddID4gOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAoLSRsaXN0LXBhZGRpbmctbGVmdCk7XG4gICAgd2lkdGg6ICRsaXN0LXBhZGRpbmctbGVmdDtcbiAgICBoZWlnaHQ6ICRsaXN0LW1hcmtlci1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogKC0kbGlzdC1tYXJrZXItaGVpZ2h0KTtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udWstbGlzdC1kaXNjID4gOjpiZWZvcmUgeyBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cbi51ay1saXN0LWNpcmNsZSA+IDo6YmVmb3JlIHsgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IH1cbi51ay1saXN0LXNxdWFyZSA+IDo6YmVmb3JlIHsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IH1cbi51ay1saXN0LWRlY2ltYWwgPiA6OmJlZm9yZSB7IGNvbnRlbnQ6IGNvdW50ZXIoZGVjaW1hbCwgZGVjaW1hbCkgJ1xcMjAwQS5cXDAwQTAnOyB9XG4udWstbGlzdC1oeXBoZW4gPiA6OmJlZm9yZSB7IGNvbnRlbnQ6ICfigJNcXDAwQTBcXDAwQTAnOyB9XG5cbi8qXG4gKiBDb2xvciBtb2RpZmllcnNcbiAqL1xuXG4udWstbGlzdC1tdXRlZCA+IDo6YmVmb3JlIHsgY29sb3I6ICRsaXN0LW11dGVkLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay1saXN0LWVtcGhhc2lzID4gOjpiZWZvcmUgeyBjb2xvcjogJGxpc3QtZW1waGFzaXMtY29sb3IgIWltcG9ydGFudDsgfVxuLnVrLWxpc3QtcHJpbWFyeSA+IDo6YmVmb3JlIHsgY29sb3I6ICRsaXN0LXByaW1hcnktY29sb3IgIWltcG9ydGFudDsgfVxuLnVrLWxpc3Qtc2Vjb25kYXJ5ID4gOjpiZWZvcmUgeyBjb2xvcjogJGxpc3Qtc2Vjb25kYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBJbWFnZSBidWxsZXQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbGlzdC1idWxsZXQgPiAqIHsgcGFkZGluZy1sZWZ0OiAkbGlzdC1wYWRkaW5nLWxlZnQ7IH1cblxuLnVrLWxpc3QtYnVsbGV0ID4gOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6ICgtJGxpc3QtcGFkZGluZy1sZWZ0KTtcbiAgICB3aWR0aDogJGxpc3QtcGFkZGluZy1sZWZ0O1xuICAgIGhlaWdodDogJGxpc3QtbWFya2VyLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAoLSRsaXN0LW1hcmtlci1oZWlnaHQpO1xuICAgIEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1saXN0LWJ1bGxldC1pbWFnZSwgXCIjMDAwXCIsICRsaXN0LWJ1bGxldC1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG59XG5cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuXG4udWstbGlzdC1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiAkbGlzdC1kaXZpZGVyLW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRsaXN0LWRpdmlkZXItbWFyZ2luLXRvcDtcbiAgICBib3JkZXItdG9wOiAkbGlzdC1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkbGlzdC1kaXZpZGVyLWJvcmRlcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGlzdC1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2stbGlzdC1kaXZpZGVyKCk7fVxufVxuXG4vKlxuICogU3RyaXBlZFxuICovXG5cbi51ay1saXN0LXN0cmlwZWQgPiAqIHtcbiAgICBwYWRkaW5nOiAkbGlzdC1zdHJpcGVkLXBhZGRpbmctdmVydGljYWwgJGxpc3Qtc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpc3Qtc3RyaXBlZCkpIHtAaW5jbHVkZSBob29rLWxpc3Qtc3RyaXBlZCgpO31cbn1cblxuLnVrLWxpc3Qtc3RyaXBlZCA+IDpudGgtb2YtdHlwZShvZGQpIHsgYmFja2dyb3VuZDogJGxpc3Qtc3RyaXBlZC1iYWNrZ3JvdW5kOyB9XG5cbi51ay1saXN0LXN0cmlwZWQgPiA6bnRoLWNoaWxkKG4rMikgeyBtYXJnaW4tdG9wOiAwOyB9XG5cblxuLyogU2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saXN0LWxhcmdlID4gOm50aC1jaGlsZChuKzIpLFxuLnVrLWxpc3QtbGFyZ2UgPiAqID4gdWwgeyBtYXJnaW4tdG9wOiAkbGlzdC1sYXJnZS1tYXJnaW4tdG9wOyB9XG5cbi51ay1saXN0LWNvbGxhcHNlID4gOm50aC1jaGlsZChuKzIpLFxuLnVrLWxpc3QtY29sbGFwc2UgPiAqID4gdWwgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cblxuLnVrLWxpc3QtbGFyZ2UudWstbGlzdC1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiAkbGlzdC1sYXJnZS1kaXZpZGVyLW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRsaXN0LWxhcmdlLWRpdmlkZXItbWFyZ2luLXRvcDtcbn1cblxuLnVrLWxpc3QtY29sbGFwc2UudWstbGlzdC1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuXG4vKlxuICogU3RyaXBlZFxuICovXG5cbi51ay1saXN0LWxhcmdlLnVrLWxpc3Qtc3RyaXBlZCA+ICogeyBwYWRkaW5nOiAkbGlzdC1sYXJnZS1zdHJpcGVkLXBhZGRpbmctdmVydGljYWwgJGxpc3QtbGFyZ2Utc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuLnVrLWxpc3QtY29sbGFwc2UudWstbGlzdC1zdHJpcGVkID4gKiB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi51ay1saXN0LWxhcmdlLnVrLWxpc3Qtc3RyaXBlZCA+IDpudGgtY2hpbGQobisyKSxcbi51ay1saXN0LWNvbGxhcHNlLnVrLWxpc3Qtc3RyaXBlZCA+IDpudGgtY2hpbGQobisyKSB7IG1hcmdpbi10b3A6IDA7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1saXN0LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1saXN0LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWxpc3QtZGl2aWRlcigpe31cbi8vIEBtaXhpbiBob29rLWxpc3Qtc3RyaXBlZCgpe31cbi8vIEBtaXhpbiBob29rLWxpc3QtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtbGlzdC1tdXRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGlzdC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbGlzdC1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWxpc3Qtc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRpbnZlcnNlLWxpc3QtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1saXN0LXN0cmlwZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJGludmVyc2UtbGlzdC1idWxsZXQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1saXN0LWRpdmlkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWxpc3Qtc3RyaXBlZCgpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgRGVzY3JpcHRpb24gbGlzdFxuLy8gRGVzY3JpcHRpb246ICAgICBTdHlsZXMgZm9yIGRlc2NyaXB0aW9uIGxpc3RzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstZGVzY3JpcHRpb24tbGlzdGBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1kZXNjcmlwdGlvbi1saXN0LWRpdmlkZXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1jb2xvcjogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kZGVzY3JpcHRpb24tbGlzdC10ZXJtLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbiRkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1tYXJnaW4tdG9wOiAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1ib3JkZXItd2lkdGg6ICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1ib3JkZXI6ICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRGVzY3JpcHRpb24gbGlzdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBUZXJtXG4gKi9cblxuLnVrLWRlc2NyaXB0aW9uLWxpc3QgPiBkdCB7XG4gICAgY29sb3I6ICRkZXNjcmlwdGlvbi1saXN0LXRlcm0tY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRlc2NyaXB0aW9uLWxpc3QtdGVybSkpIHtAaW5jbHVkZSBob29rLWRlc2NyaXB0aW9uLWxpc3QtdGVybSgpO31cbn1cblxuLnVrLWRlc2NyaXB0aW9uLWxpc3QgPiBkdDpudGgtY2hpbGQobisyKSB7XG4gICAgbWFyZ2luLXRvcDogJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1tYXJnaW4tdG9wO1xufVxuXG4vKlxuICogRGVzY3JpcHRpb25cbiAqL1xuXG4udWstZGVzY3JpcHRpb24tbGlzdCA+IGRkIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbikpIHtAaW5jbHVkZSBob29rLWRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24oKTt9XG59XG5cblxuLyogU3R5bGUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogTGluZVxuICovXG5cbi51ay1kZXNjcmlwdGlvbi1saXN0LWRpdmlkZXIgPiBkdDpudGgtY2hpbGQobisyKSB7XG4gICAgbWFyZ2luLXRvcDogJGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1tYXJnaW4tdG9wO1xuICAgIGJvcmRlci10b3A6ICRkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1ib3JkZXItd2lkdGggc29saWQgJGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLWJvcmRlcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZGVzY3JpcHRpb24tbGlzdC1kaXZpZGVyLXRlcm0pKSB7QGluY2x1ZGUgaG9vay1kZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybSgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1kZXNjcmlwdGlvbi1saXN0LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1kZXNjcmlwdGlvbi1saXN0LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWRlc2NyaXB0aW9uLWxpc3QtdGVybSgpe31cbi8vIEBtaXhpbiBob29rLWRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24oKXt9XG4vLyBAbWl4aW4gaG9vay1kZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybSgpe31cbi8vIEBtaXhpbiBob29rLWRlc2NyaXB0aW9uLWxpc3QtbWlzYygpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIFRhYmxlXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgdGFibGVzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstdGFibGVgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstdGFibGUtbWlkZGxlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFibGUtZGl2aWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYmxlLXN0cmlwZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10YWJsZS1ob3ZlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYmxlLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFibGUtanVzdGlmeWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYmxlLXNocmlua2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYmxlLWV4cGFuZGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYmxlLWxpbmtgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10YWJsZS1yZXNwb25zaXZlYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4kdGFibGUtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbiR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAxNnB4ICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgIDEycHggIWRlZmF1bHQ7XG5cbiR0YWJsZS1oZWFkZXItY2VsbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkZXItY2VsbC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICBib2xkICFkZWZhdWx0O1xuJHRhYmxlLWhlYWRlci1jZWxsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cbiR0YWJsZS1mb290ZXItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuJHRhYmxlLWNhcHRpb24tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJHRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiR0YWJsZS1yb3ctYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAjZmZkICFkZWZhdWx0O1xuXG4kdGFibGUtZGl2aWRlci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGFibGUtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cbiR0YWJsZS1zdHJpcGVkLXJvdy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiR0YWJsZS1ob3Zlci1yb3ctYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAkdGFibGUtcm93LWFjdGl2ZS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiR0YWJsZS1zbWFsbC1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAxMnB4ICFkZWZhdWx0O1xuXG4kdGFibGUtbGFyZ2UtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgMjJweCAhZGVmYXVsdDtcbiR0YWJsZS1sYXJnZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAxMnB4ICFkZWZhdWx0O1xuXG4kdGFibGUtZXhwYW5kLW1pbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgMTUwcHggIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFRhYmxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqIDIuIEJlaGF2ZSBsaWtlIGEgYmxvY2sgZWxlbWVudFxuICogMy4gU3R5bGVcbiAqL1xuXG4udWstdGFibGUge1xuICAgIC8qIDEgKi9cbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIC8qIDIgKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiAzICovXG4gICAgbWFyZ2luLWJvdHRvbTogJHRhYmxlLW1hcmdpbi12ZXJ0aWNhbDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFibGUpKSB7QGluY2x1ZGUgaG9vay10YWJsZSgpO31cbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXRhYmxlIHsgbWFyZ2luLXRvcDogJHRhYmxlLW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG5cbi8qIEhlYWRlciBjZWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFN0eWxlXG4gKi9cblxuLnVrLXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsICR0YWJsZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogJHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZGVyLWNlbGwtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRhYmxlLWhlYWRlci1jZWxsKSkge0BpbmNsdWRlIGhvb2stdGFibGUtaGVhZGVyLWNlbGwoKTt9XG59XG5cblxuLyogQ2VsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogJHRhYmxlLWNlbGwtcGFkZGluZy12ZXJ0aWNhbCAkdGFibGUtY2VsbC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFibGUtY2VsbCkpIHtAaW5jbHVkZSBob29rLXRhYmxlLWNlbGwoKTt9XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstdGFibGUgdGQgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBGb290ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGFibGUgdGZvb3Qge1xuICAgIGZvbnQtc2l6ZTogJHRhYmxlLWZvb3Rlci1mb250LXNpemU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRhYmxlLWZvb3RlcikpIHtAaW5jbHVkZSBob29rLXRhYmxlLWZvb3RlcigpO31cbn1cblxuXG4vKiBDYXB0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRhYmxlIGNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogJHRhYmxlLWNhcHRpb24tZm9udC1zaXplO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICR0YWJsZS1jYXB0aW9uLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10YWJsZS1jYXB0aW9uKSkge0BpbmNsdWRlIGhvb2stdGFibGUtY2FwdGlvbigpO31cbn1cblxuXG4vKiBBbGlnbm1lbnQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGFibGUtbWlkZGxlLFxuLnVrLXRhYmxlLW1pZGRsZSB0ZCB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDsgfVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cblxuLnVrLXRhYmxlLWRpdmlkZXIgPiB0cjpub3QoOmZpcnN0LWNoaWxkKSxcbi51ay10YWJsZS1kaXZpZGVyID4gOm5vdCg6Zmlyc3QtY2hpbGQpID4gdHIsXG4udWstdGFibGUtZGl2aWRlciA+IDpmaXJzdC1jaGlsZCA+IHRyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiAkdGFibGUtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJHRhYmxlLWRpdmlkZXItYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10YWJsZS1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2stdGFibGUtZGl2aWRlcigpO31cbn1cblxuLypcbiAqIFN0cmlwZWRcbiAqL1xuXG4udWstdGFibGUtc3RyaXBlZCA+IHRyOm50aC1vZi10eXBlKG9kZCksXG4udWstdGFibGUtc3RyaXBlZCB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtc3RyaXBlZC1yb3ctYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFibGUtc3RyaXBlZCkpIHtAaW5jbHVkZSBob29rLXRhYmxlLXN0cmlwZWQoKTt9XG59XG5cbi8qXG4gKiBIb3ZlclxuICovXG5cbi51ay10YWJsZS1ob3ZlciA+IHRyOmhvdmVyLFxuLnVrLXRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaG92ZXItcm93LWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRhYmxlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stdGFibGUtaG92ZXIoKTt9XG59XG5cblxuLyogQWN0aXZlIHN0YXRlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRhYmxlID4gdHIudWstYWN0aXZlLFxuLnVrLXRhYmxlIHRib2R5IHRyLnVrLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFibGUtcm93LWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLXRhYmxlLXJvdy1hY3RpdmUoKTt9XG59XG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGFibGUtc21hbGwgdGgsXG4udWstdGFibGUtc21hbGwgdGQge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1zbWFsbC1jZWxsLXBhZGRpbmctdmVydGljYWwgJHRhYmxlLXNtYWxsLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10YWJsZS1zbWFsbCkpIHtAaW5jbHVkZSBob29rLXRhYmxlLXNtYWxsKCk7fVxufVxuXG4udWstdGFibGUtbGFyZ2UgdGgsXG4udWstdGFibGUtbGFyZ2UgdGQge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1sYXJnZS1jZWxsLXBhZGRpbmctdmVydGljYWwgJHRhYmxlLWxhcmdlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10YWJsZS1sYXJnZSkpIHtAaW5jbHVkZSBob29rLXRhYmxlLWxhcmdlKCk7fVxufVxuXG5cbi8qIEp1c3RpZnkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGFibGUtanVzdGlmeSB0aDpmaXJzdC1jaGlsZCxcbi51ay10YWJsZS1qdXN0aWZ5IHRkOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi51ay10YWJsZS1qdXN0aWZ5IHRoOmxhc3QtY2hpbGQsXG4udWstdGFibGUtanVzdGlmeSB0ZDpsYXN0LWNoaWxkIHsgcGFkZGluZy1yaWdodDogMDsgfVxuXG5cbi8qIENlbGwgc2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10YWJsZS1zaHJpbmsgeyB3aWR0aDogMXB4OyB9XG4udWstdGFibGUtZXhwYW5kIHsgbWluLXdpZHRoOiAkdGFibGUtZXhwYW5kLW1pbi13aWR0aDsgfVxuXG5cbi8qIENlbGwgbGluayBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEb2VzIG5vdCB3b3JrIHdpdGggYHVrLXRhYmxlLWp1c3RpZnlgIGF0IHRoZSBtb21lbnRcbiAqL1xuXG4udWstdGFibGUtbGluayB7IHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4udWstdGFibGUtbGluayA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwgJHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsO1xufVxuXG4udWstdGFibGUtc21hbGwgLnVrLXRhYmxlLWxpbmsgPiBhIHsgcGFkZGluZzogJHRhYmxlLXNtYWxsLWNlbGwtcGFkZGluZy12ZXJ0aWNhbCAkdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuXG4vKiBSZXNwb25zaXZlIHRhYmxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbC1tYXgpIHtcblxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRib2R5LFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRkLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRyIHsgZGlzcGxheTogYmxvY2s7IH1cblxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRoZWFkIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdGgsXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdGQge1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudWstdGFibGUtcmVzcG9uc2l2ZSB0aDpub3QoOmZpcnN0LWNoaWxkKTpub3QoLnVrLXRhYmxlLWxpbmspLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCgudWstdGFibGUtbGluayksXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgLnVrLXRhYmxlLWxpbms6bm90KDpmaXJzdC1jaGlsZCkgPiBhIHsgcGFkZGluZy10b3A6IHJvdW5kKG1hdGguZGl2KCR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwsIDMpKSAhaW1wb3J0YW50OyB9XG5cbiAgICAudWstdGFibGUtcmVzcG9uc2l2ZSB0aDpub3QoOmxhc3QtY2hpbGQpOm5vdCgudWstdGFibGUtbGluayksXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLnVrLXRhYmxlLWxpbmspLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIC51ay10YWJsZS1saW5rOm5vdCg6bGFzdC1jaGlsZCkgPiBhIHsgcGFkZGluZy1ib3R0b206IHJvdW5kKG1hdGguZGl2KCR0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwsIDMpKSAhaW1wb3J0YW50OyB9XG5cbiAgICAudWstdGFibGUtanVzdGlmeS51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAgIC51ay10YWJsZS1qdXN0aWZ5LnVrLXRhYmxlLXJlc3BvbnNpdmUgdGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stdGFibGUtbWlzYykpIHtAaW5jbHVkZSBob29rLXRhYmxlLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXRhYmxlKCl7fVxuLy8gQG1peGluIGhvb2stdGFibGUtaGVhZGVyLWNlbGwoKXt9XG4vLyBAbWl4aW4gaG9vay10YWJsZS1jZWxsKCl7fVxuLy8gQG1peGluIGhvb2stdGFibGUtZm9vdGVyKCl7fVxuLy8gQG1peGluIGhvb2stdGFibGUtY2FwdGlvbigpe31cbi8vIEBtaXhpbiBob29rLXRhYmxlLXJvdy1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay10YWJsZS1kaXZpZGVyKCl7fVxuLy8gQG1peGluIGhvb2stdGFibGUtc3RyaXBlZCgpe31cbi8vIEBtaXhpbiBob29rLXRhYmxlLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stdGFibGUtc21hbGwoKXt9XG4vLyBAbWl4aW4gaG9vay10YWJsZS1sYXJnZSgpe31cbi8vIEBtaXhpbiBob29rLXRhYmxlLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLXRhYmxlLWhlYWRlci1jZWxsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIGZhZGUtb3V0KCRpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kLCAwLjAyKSAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYmxlLWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS10YWJsZS1zdHJpcGVkLXJvdy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLXRhYmxlLWhvdmVyLXJvdy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtdGFibGUtaGVhZGVyLWNlbGwoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRhYmxlLWNhcHRpb24oKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRhYmxlLWRpdmlkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRhYmxlLXN0cmlwZWQoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRhYmxlLWhvdmVyKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgSWNvblxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGljb25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstaWNvbmBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1pY29uLWltYWdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaWNvbi1saW5rYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaWNvbi1idXR0b25gXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstcHJlc2VydmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGljb24taW1hZ2Utc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XG5cbiRpY29uLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGljb24tbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaWNvbi1saW5rLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgZGFya2VuKCRnbG9iYWwtY29sb3IsIDUlKSAhZGVmYXVsdDtcblxuJGljb24tYnV0dG9uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2cHggIWRlZmF1bHQ7XG4kaWNvbi1idXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgNTAwcHggIWRlZmF1bHQ7XG4kaWNvbi1idXR0b24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGljb24tYnV0dG9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiRpY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICBkYXJrZW4oJGljb24tYnV0dG9uLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRpY29uLWJ1dHRvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kaWNvbi1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgZGFya2VuKCRpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xuJGljb24tYnV0dG9uLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogTm90ZTogMS4gLSA3LiBpcyByZXF1aXJlZCBmb3IgYGJ1dHRvbmAgZWxlbWVudHMuIE5lZWRlZCBmb3IgQ2xvc2UgYW5kIEZvcm0gSWNvbiBjb21wb25lbnQuXG4gKiAxLiBSZW1vdmUgbWFyZ2lucyBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEuXG4gKiAyLiBSZW1vdmUgYm9yZGVycyBmb3IgYGJ1dHRvbmAuXG4gKiAzLiBSZW1vdmUgYm9yZGVyLXJhZGl1cyBpbiBDaHJvbWUuXG4gKiA0LiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFLlxuICogNS4gQ29ycmVjdCBgZm9udGAgcHJvcGVydGllcyBhbmQgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGZvciBgYnV0dG9uYC5cbiAqIDYuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogNy4gUmVtb3ZlIGRlZmF1bHQgYGJ1dHRvbmAgcGFkZGluZyBhbmQgYmFja2dyb3VuZCBjb2xvclxuICogOC4gU3R5bGVcbiAqIDkuIEZpbGwgYWxsIFNWRyBlbGVtZW50cyB3aXRoIHRoZSBjdXJyZW50IHRleHQgY29sb3IgaWYgbm8gYGZpbGxgIGF0dHJpYnV0ZSBpcyBzZXRcbiAqIDEwLiBMZXQgdGhlIGNvbnRhaW5lciBmaXQgdGhlIGhlaWdodCBvZiB0aGUgaWNvblxuICovXG5cbi51ay1pY29uIHtcbiAgICAvKiAxICovXG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIDIgKi9cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLyogNCAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIC8qIDUgKi9cbiAgICBmb250OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC8qIDYgKi9cbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAvKiA3LiAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLyogOCAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKiA5ICovXG4gICAgZmlsbDogY3VycmVudGNvbG9yO1xuICAgIC8qIDEwICovXG4gICAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbi8qIFJlcXVpcmVkIGZvciBgYnV0dG9uYC4gKi9cbmJ1dHRvbi51ay1pY29uOm5vdCg6ZGlzYWJsZWQpIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbi51ay1pY29uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLypcbiAqIFNldCB0aGUgZmlsbCBhbmQgc3Ryb2tlIGNvbG9yIG9mIGFsbCBTVkcgZWxlbWVudHMgdG8gdGhlIGN1cnJlbnQgdGV4dCBjb2xvclxuICovXG5cbi51ay1pY29uOm5vdCgudWstcHJlc2VydmUpIFtmaWxsKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHsgZmlsbDogY3VycmVudGNvbG9yOyB9XG4udWstaWNvbjpub3QoLnVrLXByZXNlcnZlKSBbc3Ryb2tlKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHsgc3Ryb2tlOiBjdXJyZW50Y29sb3I7IH1cblxuLypcbiAqIEZpeCBGaXJlZm94IGJsdXJyeSBTVkcgcmVuZGVyaW5nOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ2ODM1XG4gKi9cblxuLnVrLWljb24gPiAqIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwKTsgfVxuXG5cbi8qIEltYWdlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIERpc3BsYXkgaW1hZ2VzIGluIGljb24gZGltZW5zaW9uc1xuICovXG5cbi51ay1pY29uLWltYWdlIHtcbiAgICB3aWR0aDogJGljb24taW1hZ2Utc2l6ZTtcbiAgICBoZWlnaHQ6ICRpY29uLWltYWdlLXNpemU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBMaW5rXG4gKi9cblxuLnVrLWljb24tbGluayB7XG4gICAgY29sb3I6ICRpY29uLWxpbmstY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWljb24tbGluaykpIHtAaW5jbHVkZSBob29rLWljb24tbGluaygpO31cbn1cblxuLnVrLWljb24tbGluazpob3Zlcixcbi51ay1pY29uLWxpbms6Zm9jdXMge1xuICAgIGNvbG9yOiAkaWNvbi1saW5rLWhvdmVyLWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWljb24tbGluay1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWljb24tbGluay1ob3ZlcigpO31cbn1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWljb24tbGluazphY3RpdmUsXG4udWstYWN0aXZlID4gLnVrLWljb24tbGluayB7XG4gICAgY29sb3I6ICRpY29uLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pY29uLWxpbmstYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staWNvbi1saW5rLWFjdGl2ZSgpO31cbn1cblxuLypcbiAqIEJ1dHRvblxuICogMS4gQ2VudGVyIGljb24gdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKi9cblxuLnVrLWljb24tYnV0dG9uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAkaWNvbi1idXR0b24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRpY29uLWJ1dHRvbi1zaXplO1xuICAgIGJvcmRlci1yYWRpdXM6ICRpY29uLWJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staWNvbi1idXR0b24pKSB7QGluY2x1ZGUgaG9vay1pY29uLWJ1dHRvbigpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWljb24tYnV0dG9uOmhvdmVyLFxuLnVrLWljb24tYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1idXR0b24taG92ZXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGljb24tYnV0dG9uLWhvdmVyLWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWljb24tYnV0dG9uLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staWNvbi1idXR0b24taG92ZXIoKTt9XG59XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1pY29uLWJ1dHRvbjphY3RpdmUsXG4udWstYWN0aXZlID4gLnVrLWljb24tYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1hY3RpdmUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWljb24tYnV0dG9uLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWljb24tYnV0dG9uLWFjdGl2ZSgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1pY29uLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1pY29uLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWljb24tbGluaygpe31cbi8vIEBtaXhpbiBob29rLWljb24tbGluay1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWljb24tbGluay1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pY29uLWJ1dHRvbigpe31cbi8vIEBtaXhpbiBob29rLWljb24tYnV0dG9uLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2staWNvbi1idXR0b24tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2staWNvbi1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1pY29uLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWljb24tYnV0dG9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgIGZhZGVpbigkaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICBmYWRlaW4oJGludmVyc2UtaWNvbi1idXR0b24tYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtaWNvbi1saW5rKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1pY29uLWxpbmstaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWljb24tbGluay1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWljb24tYnV0dG9uKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1pY29uLWJ1dHRvbi1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtaWNvbi1idXR0b24tYWN0aXZlKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBGb3JtIFJhbmdlXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgdGhlIHJhbmdlIGlucHV0IHR5cGVcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1yYW5nZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4kZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRodW1iLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAkZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQgIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgNTAwcHggIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10aHVtYi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJGZvcm0tcmFuZ2UtdHJhY2staGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIDNweCAhZGVmYXVsdDtcbiRmb3JtLXJhbmdlLXRyYWNrLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBkYXJrZW4oJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kZm9ybS1yYW5nZS10cmFjay1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgZGFya2VuKCRmb3JtLXJhbmdlLXRyYWNrLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRm9ybSBSYW5nZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBOb3JtYWxpemUgYW5kIGRlZmF1bHRzXG4gKiAyLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3cgaWYgYSBmaXhlZCB3aWR0aCBpcyB1c2VkXG4gKiAzLiBUYWtlIHRoZSBmdWxsIHdpZHRoXG4gKiA0LiBSZW1vdmUgZGVmYXVsdCBzdHlsZVxuICogNS4gUmVtb3ZlIHdoaXRlIGJhY2tncm91bmQgaW4gQ2hyb21lXG4gKiA2LiBSZW1vdmUgcGFkZGluZyBpbiBJRTExXG4gKi9cblxuLnVrLXJhbmdlIHtcbiAgICAvKiAxICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvKiAyICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIDMgKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiA0ICovXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC8qIDUgKi9cbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAvKiA2ICovXG4gICAgcGFkZGluZzogMDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYW5nZSkpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UoKTt9XG59XG5cbi8qIEZvY3VzICovXG4udWstcmFuZ2U6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4udWstcmFuZ2U6Oi1tb3otZm9jdXMtb3V0ZXIgeyBib3JkZXI6IG5vbmU7IH1cblxuLyogSUUxMSBSZXNldCAqL1xuLnVrLXJhbmdlOjotbXMtdHJhY2sge1xuICAgIGhlaWdodDogJGZvcm0tcmFuZ2UtdGh1bWItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKlxuICogSW1wcm92ZXMgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGZvciBjbGlja2FibGUgZWxlbWVudHNcbiAqL1xuXG4udWstcmFuZ2U6bm90KDpkaXNhYmxlZCk6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4udWstcmFuZ2U6bm90KDpkaXNhYmxlZCk6Oi1tb3otcmFuZ2UtdGh1bWIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbi51ay1yYW5nZTpub3QoOmRpc2FibGVkKTo6LW1zLXRodW1iIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cblxuLyogVGh1bWJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUmVzZXRcbiAqIDIuIFN0eWxlXG4gKi9cblxuLyogV2Via2l0ICovXG4udWstcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIG1hcmdpbi10b3A6IChmbG9vcihtYXRoLmRpdigkZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQsIDIpKSAqIC0xKTtcbiAgICAvKiAyICovXG4gICAgaGVpZ2h0OiAkZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQ7XG4gICAgd2lkdGg6ICRmb3JtLXJhbmdlLXRodW1iLXdpZHRoO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJGZvcm0tcmFuZ2UtdGh1bWItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYW5nZS10aHVtYikpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UtdGh1bWIoKTt9XG59XG5cbi8qIEZpcmVmb3ggKi9cbi51ay1yYW5nZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgLyogMSAqL1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvKiAyICovXG4gICAgaGVpZ2h0OiAkZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQ7XG4gICAgd2lkdGg6ICRmb3JtLXJhbmdlLXRodW1iLXdpZHRoO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJGZvcm0tcmFuZ2UtdGh1bWItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYW5nZS10aHVtYikpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UtdGh1bWIoKTt9XG59XG5cbi8qIEVkZ2UgKi9cbi51ay1yYW5nZTo6LW1zLXRodW1iIHtcbiAgICAvKiAxICovXG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLyogSUUxMSAqL1xuLnVrLXJhbmdlOjotbXMtdGh1bWIge1xuICAgIC8qIDEgKi9cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIGhlaWdodDogJGZvcm0tcmFuZ2UtdGh1bWItaGVpZ2h0O1xuICAgIHdpZHRoOiAkZm9ybS1yYW5nZS10aHVtYi13aWR0aDtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1yYW5nZS10aHVtYi1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRmb3JtLXJhbmdlLXRodW1iLWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tcmFuZ2UtdGh1bWIpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXJhbmdlLXRodW1iKCk7fVxufVxuXG4vKiBFZGdlICsgSUUxMSAqL1xuLnVrLXJhbmdlOjotbXMtdG9vbHRpcCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vKiBUcmFja1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTYWZhcmkgZG9lc24ndCBoYXZlIGEgZm9jdXMgc3RhdGUuIFVzaW5nIGFjdGl2ZSBpbnN0ZWFkLlxuICovXG5cbi8qIFdlYmtpdCAqL1xuLnVrLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgaGVpZ2h0OiAkZm9ybS1yYW5nZS10cmFjay1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGZvcm0tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYW5nZS10cmFjaykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UtdHJhY2soKTt9XG59XG5cbi51ay1yYW5nZTpmb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2ssXG4vKiAxICovXG4udWstcmFuZ2U6YWN0aXZlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgYmFja2dyb3VuZDogJGZvcm0tcmFuZ2UtdHJhY2stZm9jdXMtYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYW5nZS10cmFjay1mb2N1cykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UtdHJhY2stZm9jdXMoKTt9XG59XG5cbi8qIEZpcmVmb3ggKi9cbi51ay1yYW5nZTo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgaGVpZ2h0OiAkZm9ybS1yYW5nZS10cmFjay1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGZvcm0tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYW5nZS10cmFjaykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UtdHJhY2soKTt9XG59XG5cbi51ay1yYW5nZTpmb2N1czo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgYmFja2dyb3VuZDogJGZvcm0tcmFuZ2UtdHJhY2stZm9jdXMtYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYW5nZS10cmFjay1mb2N1cykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UtdHJhY2stZm9jdXMoKTt9XG59XG5cbi8qIEVkZ2UgKi9cbi51ay1yYW5nZTo6LW1zLWZpbGwtbG93ZXIsXG4udWstcmFuZ2U6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBoZWlnaHQ6ICRmb3JtLXJhbmdlLXRyYWNrLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkZm9ybS1yYW5nZS10cmFjay1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLXJhbmdlLXRyYWNrKSkge0BpbmNsdWRlIGhvb2stZm9ybS1yYW5nZS10cmFjaygpO31cbn1cblxuLnVrLXJhbmdlOmZvY3VzOjotbXMtZmlsbC1sb3dlcixcbi51ay1yYW5nZTpmb2N1czo6LW1zLWZpbGwtdXBwZXIge1xuICAgIGJhY2tncm91bmQ6ICRmb3JtLXJhbmdlLXRyYWNrLWZvY3VzLWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tcmFuZ2UtdHJhY2stZm9jdXMpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXJhbmdlLXRyYWNrLWZvY3VzKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tcmFuZ2UtbWlzYykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFuZ2UtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stZm9ybS1yYW5nZSgpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tcmFuZ2UtdGh1bWIoKXt9XG4vLyBAbWl4aW4gaG9vay1mb3JtLXJhbmdlLXRyYWNrKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1yYW5nZS10cmFjay1mb2N1cygpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tcmFuZ2UtbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgRm9ybVxuLy8gRGVzY3JpcHRpb246ICAgICBTdHlsZXMgZm9yIGZvcm1zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstZm9ybS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaW5wdXRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWxlY3RgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10ZXh0YXJlYWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXJhZGlvYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2hlY2tib3hgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1sZWdlbmRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1maWVsZHNldGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1mb3JtLWN1c3RvbWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0tc3RhY2tlZGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0taG9yaXpvbnRhbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0tbGFiZWxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWNvbnRyb2xzYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1pY29uYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1pY29uLWZsaXBgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZm9ybS1zbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0tbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWRhbmdlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0tc3VjY2Vzc2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0tYmxhbmtgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXdpZHRoLXhzbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0td2lkdGgtc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXdpZHRoLW1lZGl1bWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0td2lkdGgtbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWNvbnRyb2xzLXRleHRgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGZvcm0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29udHJvbC1oZWlnaHQgIWRlZmF1bHQ7XG4kZm9ybS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvcm0taGVpZ2h0ICFkZWZhdWx0O1xuJGZvcm0tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG4kZm9ybS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQoJGZvcm0tcGFkZGluZy1ob3Jpem9udGFsICogMC42KSAhZGVmYXVsdDtcblxuJGZvcm0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kZm9ybS1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgZGFya2VuKCRmb3JtLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRmb3JtLWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGZvcm0tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kZm9ybS1zbWFsbC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb250cm9sLXNtYWxsLWhlaWdodCAhZGVmYXVsdDtcbiRmb3JtLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICA4cHggIWRlZmF1bHQ7XG4kZm9ybS1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgcm91bmQoJGZvcm0tc21hbGwtcGFkZGluZy1ob3Jpem9udGFsICogMC42KSAhZGVmYXVsdDtcbiRmb3JtLXNtYWxsLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAkZm9ybS1zbWFsbC1oZWlnaHQgIWRlZmF1bHQ7XG4kZm9ybS1zbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiRmb3JtLWxhcmdlLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbnRyb2wtbGFyZ2UtaGVpZ2h0ICFkZWZhdWx0O1xuJGZvcm0tbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgIDEycHggIWRlZmF1bHQ7XG4kZm9ybS1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgcm91bmQoJGZvcm0tbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsICogMC42KSAhZGVmYXVsdDtcbiRmb3JtLWxhcmdlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAkZm9ybS1sYXJnZS1oZWlnaHQgIWRlZmF1bHQ7XG4kZm9ybS1sYXJnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xuXG4kZm9ybS1kYW5nZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLXN1Y2Nlc3MtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJGZvcm0td2lkdGgteHNtYWxsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XG4kZm9ybS13aWR0aC1zbWFsbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMwcHggIWRlZmF1bHQ7XG4kZm9ybS13aWR0aC1tZWRpdW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4kZm9ybS13aWR0aC1sYXJnZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwcHggIWRlZmF1bHQ7XG5cbiRmb3JtLXNlbGVjdC1wYWRkaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xuJGZvcm0tc2VsZWN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kZm9ybS1zZWxlY3Qtb3B0aW9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLXNlbGVjdC1kaXNhYmxlZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kZm9ybS1kYXRhbGlzdC1wYWRkaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgMjBweCAhZGVmYXVsdDtcbiRmb3JtLWRhdGFsaXN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kZm9ybS1yYWRpby1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTZweCAhZGVmYXVsdDtcbiRmb3JtLXJhZGlvLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAtNHB4ICFkZWZhdWx0O1xuJGZvcm0tcmFkaW8tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgIGRhcmtlbigkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcblxuJGZvcm0tcmFkaW8tZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIGRhcmtlbigkZm9ybS1yYWRpby1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG5cbiRmb3JtLXJhZGlvLWNoZWNrZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmb3JtLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cbiRmb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICBkYXJrZW4oJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG5cbiRmb3JtLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZm9ybS1yYWRpby1kaXNhYmxlZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcblxuJGZvcm0tbGVnZW5kLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tbGVnZW5kLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcblxuJGZvcm0tc3RhY2tlZC1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xuXG4kZm9ybS1ob3Jpem9udGFsLWxhYmVsLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4kZm9ybS1ob3Jpem9udGFsLWxhYmVsLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgN3B4ICFkZWZhdWx0O1xuJGZvcm0taG9yaXpvbnRhbC1jb250cm9scy1tYXJnaW4tbGVmdDogICAgICAgICAgIDIxNXB4ICFkZWZhdWx0O1xuJGZvcm0taG9yaXpvbnRhbC1jb250cm9scy10ZXh0LXBhZGRpbmctdG9wOiAgICAgIDdweCAhZGVmYXVsdDtcblxuJGZvcm0taWNvbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3JtLWhlaWdodCAhZGVmYXVsdDtcbiRmb3JtLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0taWNvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cbiRpbnRlcm5hbC1mb3JtLXNlbGVjdC1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiMwMDAlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDElMjA5JTIwNiUyMDE1JTIwNiUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyIzAwMCUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMTMlMjA5JTIwOCUyMDE1JTIwOCUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiICFkZWZhdWx0O1xuJGludGVybmFsLWZvcm0tZGF0YWxpc3QtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxMiUyMDglMjA2JTIwMTYlMjA2JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIgIWRlZmF1bHQ7XG4kaW50ZXJuYWwtZm9ybS1yYWRpby1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyIzAwMCUyMiUyMGN4JTNEJTIyOCUyMiUyMGN5JTNEJTIyOCUyMiUyMHIlM0QlMjIyJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTElMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDExJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiMwMDAlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDElMjA1JTIwNy41JTIwMiUyMDUlMjAxJTIwNS41JTIwNSUyMDEwJTIwMTMlMjAxLjUlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIiAhZGVmYXVsdDtcbiRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIjMDAwJTIyJTIweCUzRCUyMjMlMjIlMjB5JTNEJTIyOCUyMiUyMHdpZHRoJTNEJTIyMTAlMjIlMjBoZWlnaHQlM0QlMjIxJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEZvcm1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gRGVmaW5lIGNvbnNpc3RlbnQgYm94IHNpemluZy5cbiAqICAgIERlZmF1bHQgaXMgYGNvbnRlbnQtYm94YCB3aXRoIGZvbGxvd2luZyBleGNlcHRpb25zIHNldCB0byBgYm9yZGVyLWJveGBcbiAqICAgIGBzZWxlY3RgLCBgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdYCBhbmQgYGlucHV0W3R5cGU9XCJyYWRpb1wiXWBcbiAqICAgIGBpbnB1dFt0eXBlPVwic2VhcmNoXCJdYCBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmFcbiAqICAgIGBpbnB1dFt0eXBlPVwiY29sb3JcIl1gIGluIEZpcmVmb3hcbiAqIDIuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveC9JRSBhbmQgQ2hyb21lL1NhZmFyaS9PcGVyYS5cbiAqIDMuIFJlbW92ZSBgYm9yZGVyLXJhZGl1c2AgaW4gaU9TLlxuICogNC4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbi51ay1pbnB1dCxcbi51ay1zZWxlY3QsXG4udWstdGV4dGFyZWEsXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAgIC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8qIDIgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgLyogMyAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLyogNCAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7XG59XG5cbi8qXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbi51ay1pbnB1dCB7IG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuLnVrLXNlbGVjdCB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qXG4gKiAxLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnNcbiAqIDIuIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgYW5kIHVzZSBgYm9sZGAgaW5zdGVhZC5cbiAqIE5PVEU6IEJvdGggZGVjbGFyYXRpb25zIGRvbid0IHdvcmsgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICovXG5cbi51ay1zZWxlY3Qgb3B0Z3JvdXAge1xuICAgIC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0O1xuICAgIC8qIDIgKi9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbi51ay10ZXh0YXJlYSB7IG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBvbiBPUyBYIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG4udWstaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cblxuLypcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG4udWstaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHsgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qXG4gKiBSZW1vdmVzIHBsYWNlaG9sZGVyIHRyYW5zcGFyZW5jeSBpbiBGaXJlZm94LlxuICovXG5cbi51ay1pbnB1dDo6LW1vei1wbGFjZWhvbGRlcixcbi51ay10ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIEltcHJvdmVzIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBmb3IgY2xpY2thYmxlIGVsZW1lbnRzXG4gKi9cblxuLnVrLXJhZGlvOm5vdCg6ZGlzYWJsZWQpLFxuLnVrLWNoZWNrYm94Om5vdCg6ZGlzYWJsZWQpIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuLnVrLWZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cblxuLyogSW5wdXQsIHNlbGVjdCBhbmQgdGV4dGFyZWFcbiAqIEFsbG93ZWQ6IGB0ZXh0YCwgYHBhc3N3b3JkYCwgYGRhdGV0aW1lYCwgYGRhdGV0aW1lLWxvY2FsYCwgYGRhdGVgLCAgYG1vbnRoYCxcbiAgICAgICAgICAgIGB0aW1lYCwgYHdlZWtgLCBgbnVtYmVyYCwgYGVtYWlsYCwgYHVybGAsIGBzZWFyY2hgLCBgdGVsYCwgYGNvbG9yYFxuICogRGlzYWxsb3dlZDogYHJhbmdlYCwgYHJhZGlvYCwgYGNoZWNrYm94YCwgYGZpbGVgLCBgc3VibWl0YCwgYHJlc2V0YCBhbmQgYGltYWdlYFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXG4gKi9cblxuLnVrLWlucHV0LFxuLnVrLXRleHRhcmVhIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qXG4gKiAxLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3cgaWYgYSBmaXhlZCB3aWR0aCBpcyB1c2VkXG4gKiAyLiBUYWtlIHRoZSBmdWxsIHdpZHRoXG4gKiAzLiBSZXNldCBkZWZhdWx0XG4gKiA0LiBTdHlsZVxuICovXG5cbi51ay1pbnB1dCxcbi51ay1zZWxlY3QsXG4udWstdGV4dGFyZWEge1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogMiAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIDMgKi9cbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAvKiA0ICovXG4gICAgcGFkZGluZzogMCAkZm9ybS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgYmFja2dyb3VuZDogJGZvcm0tYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGZvcm0tY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0pKSB7QGluY2x1ZGUgaG9vay1mb3JtKCk7fVxufVxuXG4vKlxuICogU2luZ2xlLWxpbmVcbiAqIDEuIEFsbG93IGFueSBlbGVtZW50IHRvIGxvb2sgbGlrZSBhbiBgaW5wdXRgIG9yIGBzZWxlY3RgIGVsZW1lbnRcbiAqIDIuIE1ha2Ugc3VyZSBsaW5lLWhlaWdodCBpcyBub3QgbGFyZ2VyIHRoYW4gaGVpZ2h0XG4gKiAgICBBbHNvIG5lZWRlZCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseVxuICovXG5cbi51ay1pbnB1dCxcbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcbiAgICBoZWlnaHQ6ICRmb3JtLWhlaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tc2luZ2xlLWxpbmUpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXNpbmdsZS1saW5lKCk7fVxufVxuXG4vKiAyICovXG4udWstaW5wdXQ6bm90KGlucHV0KSxcbi51ay1zZWxlY3Q6bm90KHNlbGVjdCkgeyBsaW5lLWhlaWdodDogJGZvcm0tbGluZS1oZWlnaHQ7IH1cblxuLypcbiAqIE11bHRpLWxpbmVcbiAqL1xuXG4udWstc2VsZWN0W211bHRpcGxlXSxcbi51ay1zZWxlY3Rbc2l6ZV0sXG4udWstdGV4dGFyZWEge1xuICAgIHBhZGRpbmctdG9wOiAkZm9ybS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiAkZm9ybS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tbXVsdGktbGluZSkpIHtAaW5jbHVkZSBob29rLWZvcm0tbXVsdGktbGluZSgpO31cbn1cblxuLnVrLXNlbGVjdFttdWx0aXBsZV0sXG4udWstc2VsZWN0W3NpemVdIHsgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG4vKiBGb2N1cyAqL1xuLnVrLWlucHV0OmZvY3VzLFxuLnVrLXNlbGVjdDpmb2N1cyxcbi51ay10ZXh0YXJlYTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1mb2N1cy1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkZm9ybS1mb2N1cy1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1mb2N1cykpIHtAaW5jbHVkZSBob29rLWZvcm0tZm9jdXMoKTt9XG59XG5cbi8qIERpc2FibGVkICovXG4udWstaW5wdXQ6ZGlzYWJsZWQsXG4udWstc2VsZWN0OmRpc2FibGVkLFxuLnVrLXRleHRhcmVhOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkZm9ybS1kaXNhYmxlZC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1kaXNhYmxlZCkpIHtAaW5jbHVkZSBob29rLWZvcm0tZGlzYWJsZWQoKTt9XG59XG5cbi8qXG4gKiBQbGFjZWhvbGRlclxuICovXG5cbi51ay1pbnB1dDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay1pbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogJGZvcm0tcGxhY2Vob2xkZXItY29sb3I7IH1cblxuLnVrLXRleHRhcmVhOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogJGZvcm0tcGxhY2Vob2xkZXItY29sb3IgIWltcG9ydGFudDsgfVxuLnVrLXRleHRhcmVhOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkZm9ybS1wbGFjZWhvbGRlci1jb2xvcjsgfVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyIChgdWstaW5wdXRgLCBgdWstc2VsZWN0YCBhbmQgYHVrLXRleHRhcmVhYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogU21hbGxcbiAqL1xuXG4udWstZm9ybS1zbWFsbCB7IGZvbnQtc2l6ZTogJGZvcm0tc21hbGwtZm9udC1zaXplOyB9XG5cbi8qIFNpbmdsZS1saW5lICovXG4udWstZm9ybS1zbWFsbDpub3QodGV4dGFyZWEpOm5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSB7XG4gICAgaGVpZ2h0OiAkZm9ybS1zbWFsbC1oZWlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1zbWFsbC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgcGFkZGluZy1yaWdodDogJGZvcm0tc21hbGwtcGFkZGluZy1ob3Jpem9udGFsO1xufVxuXG4vKiBNdWx0aS1saW5lICovXG50ZXh0YXJlYS51ay1mb3JtLXNtYWxsLFxuW211bHRpcGxlXS51ay1mb3JtLXNtYWxsLFxuW3NpemVdLnVrLWZvcm0tc21hbGwgeyBwYWRkaW5nOiAkZm9ybS1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsICRmb3JtLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG4udWstZm9ybS1zbWFsbDpub3Qoc2VsZWN0KTpub3QoaW5wdXQpOm5vdCh0ZXh0YXJlYSkgeyBsaW5lLWhlaWdodDogJGZvcm0tc21hbGwtbGluZS1oZWlnaHQ7IH1cblxuLypcbiAqIExhcmdlXG4gKi9cblxuLnVrLWZvcm0tbGFyZ2UgeyBmb250LXNpemU6ICRmb3JtLWxhcmdlLWZvbnQtc2l6ZTsgfVxuXG4vKiBTaW5nbGUtbGluZSAqL1xuLnVrLWZvcm0tbGFyZ2U6bm90KHRleHRhcmVhKTpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICAgIGhlaWdodDogJGZvcm0tbGFyZ2UtaGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogJGZvcm0tbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmb3JtLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDtcbn1cblxuLyogTXVsdGktbGluZSAqL1xudGV4dGFyZWEudWstZm9ybS1sYXJnZSxcblttdWx0aXBsZV0udWstZm9ybS1sYXJnZSxcbltzaXplXS51ay1mb3JtLWxhcmdlIHsgcGFkZGluZzogJGZvcm0tbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbCAkZm9ybS1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuLnVrLWZvcm0tbGFyZ2U6bm90KHNlbGVjdCk6bm90KGlucHV0KTpub3QodGV4dGFyZWEpIHsgbGluZS1oZWlnaHQ6ICRmb3JtLWxhcmdlLWxpbmUtaGVpZ2h0OyB9XG5cblxuLyogU3R5bGUgbW9kaWZpZXIgKGB1ay1pbnB1dGAsIGB1ay1zZWxlY3RgIGFuZCBgdWstdGV4dGFyZWFgKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBFcnJvclxuICovXG5cbi51ay1mb3JtLWRhbmdlcixcbi51ay1mb3JtLWRhbmdlcjpmb2N1cyB7XG4gICAgY29sb3I6ICRmb3JtLWRhbmdlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1kYW5nZXIpKSB7QGluY2x1ZGUgaG9vay1mb3JtLWRhbmdlcigpO31cbn1cblxuLypcbiAqIFN1Y2Nlc3NcbiAqL1xuXG4udWstZm9ybS1zdWNjZXNzLFxuLnVrLWZvcm0tc3VjY2Vzczpmb2N1cyAge1xuICAgIGNvbG9yOiAkZm9ybS1zdWNjZXNzLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLXN1Y2Nlc3MpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXN1Y2Nlc3MoKTt9XG59XG5cbi8qXG4gKiBCbGFua1xuICovXG5cbi51ay1mb3JtLWJsYW5rIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLWJsYW5rKSkge0BpbmNsdWRlIGhvb2stZm9ybS1ibGFuaygpO31cbn1cblxuLnVrLWZvcm0tYmxhbms6Zm9jdXMge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLWJsYW5rLWZvY3VzKSkge0BpbmNsdWRlIGhvb2stZm9ybS1ibGFuay1mb2N1cygpO31cbn1cblxuXG4vKiBXaWR0aCBtb2RpZmllcnMgKGB1ay1pbnB1dGAsIGB1ay1zZWxlY3RgIGFuZCBgdWstdGV4dGFyZWFgKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBGaXhlZCB3aWR0aHNcbiAqIERpZmZlcmVudCB3aWR0aHMgZm9yIG1pbmkgc2l6ZWQgYGlucHV0YCBhbmQgYHNlbGVjdGAgZWxlbWVudHNcbiAqL1xuXG5pbnB1dC51ay1mb3JtLXdpZHRoLXhzbWFsbCB7IHdpZHRoOiAkZm9ybS13aWR0aC14c21hbGw7IH1cblxuc2VsZWN0LnVrLWZvcm0td2lkdGgteHNtYWxsIHsgd2lkdGg6ICgkZm9ybS13aWR0aC14c21hbGwgKyAyNXB4KTsgfVxuXG4udWstZm9ybS13aWR0aC1zbWFsbCB7IHdpZHRoOiAkZm9ybS13aWR0aC1zbWFsbDsgfVxuXG4udWstZm9ybS13aWR0aC1tZWRpdW0geyB3aWR0aDogJGZvcm0td2lkdGgtbWVkaXVtOyB9XG5cbi51ay1mb3JtLXdpZHRoLWxhcmdlIHsgd2lkdGg6ICRmb3JtLXdpZHRoLWxhcmdlOyB9XG5cblxuLyogU2VsZWN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHN0eWxlLiBBbHNvIHdvcmtzIGluIEZpcmVmb3hcbiAqIDIuIFN0eWxlXG4gKiAzLiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBJRSAxMC8xMVxuICogNC4gU2V0IGBjb2xvcmAgZm9yIG9wdGlvbnMgaW4gdGhlIHNlbGVjdCBkcm9wZG93biwgYmVjYXVzZSB0aGUgaW5oZXJpdGVkIGBjb2xvcmAgbWlnaHQgYmUgdG9vIGxpZ2h0LlxuICovXG5cbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcGFkZGluZy1yaWdodDogJGZvcm0tc2VsZWN0LXBhZGRpbmctcmlnaHQ7XG4gICAgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWZvcm0tc2VsZWN0LWltYWdlLCBcIiMwMDBcIiwgJGZvcm0tc2VsZWN0LWljb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG59XG5cbi8qIDMgKi9cbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pOjotbXMtZXhwYW5kIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA0ICovXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSBvcHRpb24geyBjb2xvcjogJGZvcm0tc2VsZWN0LW9wdGlvbi1jb2xvcjsgfVxuXG4vKlxuICogRGlzYWJsZWRcbiAqL1xuXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKTpkaXNhYmxlZCB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLXNlbGVjdC1pbWFnZSwgXCIjMDAwXCIsICRmb3JtLXNlbGVjdC1kaXNhYmxlZC1pY29uLWNvbG9yKTsgfVxuXG5cbi8qIERhdGFsaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIENocm9tZVxuICovXG5cbiAudWstaW5wdXRbbGlzdF0ge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmb3JtLWRhdGFsaXN0LXBhZGRpbmctcmlnaHQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbn1cblxuLnVrLWlucHV0W2xpc3RdOmhvdmVyLFxuLnVrLWlucHV0W2xpc3RdOmZvY3VzIHsgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWZvcm0tZGF0YWxpc3QtaW1hZ2UsIFwiIzAwMFwiLCAkZm9ybS1kYXRhbGlzdC1pY29uLWNvbG9yKTsgfVxuXG4vKiAxICovXG4udWstaW5wdXRbbGlzdF06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5cbi8qIFJhZGlvIGFuZCBjaGVja2JveFxuICogTm90ZTogRG9lcyBub3Qgd29yayBpbiBJRTExXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFN0eWxlXG4gKiAyLiBNYWtlIGJveCBtb3JlIHJvYnVzdCBzbyBpdCBjbGlwcyB0aGUgY2hpbGQgZWxlbWVudFxuICogMy4gVmVydGljYWwgYWxpZ25tZW50XG4gKiA0LiBSZW1vdmUgZGVmYXVsdCBzdHlsZVxuICogNS4gRml4IGJsYWNrIGJhY2tncm91bmQgb24gaU9TXG4gKiA2LiBDZW50ZXIgaWNvbnNcbiAqL1xuXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAkZm9ybS1yYWRpby1zaXplO1xuICAgIHdpZHRoOiAkZm9ybS1yYWRpby1zaXplO1xuICAgIC8qIDIgKi9cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIDMgKi9cbiAgICBtYXJnaW4tdG9wOiAkZm9ybS1yYWRpby1tYXJnaW4tdG9wO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLyogNCAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLyogNSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLXJhZGlvLWJhY2tncm91bmQ7XG4gICAgLyogNiAqL1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYWRpbykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFkaW8oKTt9XG59XG5cbi51ay1yYWRpbyB7IGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4vKiBGb2N1cyAqL1xuLnVrLXJhZGlvOmZvY3VzLFxuLnVrLWNoZWNrYm94OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1yYWRpby1mb2N1cy1iYWNrZ3JvdW5kO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tcmFkaW8tZm9jdXMpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXJhZGlvLWZvY3VzKCk7fVxufVxuXG4vKlxuICogQ2hlY2tlZFxuICovXG5cbi51ay1yYWRpbzpjaGVja2VkLFxuLnVrLWNoZWNrYm94OmNoZWNrZWQsXG4udWstY2hlY2tib3g6aW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcm0tcmFkaW8tY2hlY2tlZC1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQoKTt9XG59XG5cbi8qIEZvY3VzICovXG4udWstcmFkaW86Y2hlY2tlZDpmb2N1cyxcbi51ay1jaGVja2JveDpjaGVja2VkOmZvY3VzLFxuLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMtYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKSkge0BpbmNsdWRlIGhvb2stZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCk7fVxufVxuXG4vKlxuICogSWNvbnNcbiAqL1xuXG4udWstcmFkaW86Y2hlY2tlZCB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLXJhZGlvLWltYWdlLCBcIiMwMDBcIiwgJGZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTsgfVxuLnVrLWNoZWNrYm94OmNoZWNrZWQgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbWFnZSwgXCIjMDAwXCIsICRmb3JtLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcik7IH1cbi51ay1jaGVja2JveDppbmRldGVybWluYXRlIHsgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWZvcm0tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1pbWFnZSwgXCIjMDAwXCIsICRmb3JtLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcik7IH1cblxuLypcbiAqIERpc2FibGVkXG4gKi9cblxuLnVrLXJhZGlvOmRpc2FibGVkLFxuLnVrLWNoZWNrYm94OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1yYWRpby1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLXJhZGlvLWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCgpO31cbn1cblxuLnVrLXJhZGlvOmRpc2FibGVkOmNoZWNrZWQgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtZm9ybS1yYWRpby1pbWFnZSwgXCIjMDAwXCIsICRmb3JtLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3IpOyB9XG4udWstY2hlY2tib3g6ZGlzYWJsZWQ6Y2hlY2tlZCB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWltYWdlLCBcIiMwMDBcIiwgJGZvcm0tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcik7IH1cbi51ay1jaGVja2JveDpkaXNhYmxlZDppbmRldGVybWluYXRlIHsgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWZvcm0tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1pbWFnZSwgXCIjMDAwXCIsICRmb3JtLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3IpOyB9XG5cblxuLyogTGVnZW5kXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIExlZ2VuZFxuICogMS4gQmVoYXZlIGxpa2UgYmxvY2sgZWxlbWVudFxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICogNC4gU3R5bGVcbiAqL1xuXG4udWstbGVnZW5kIHtcbiAgICAvKiAxICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMiAqL1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC8qIDMgKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIC8qIDQgKi9cbiAgICBmb250LXNpemU6ICRmb3JtLWxlZ2VuZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWxlZ2VuZC1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1sZWdlbmQpKSB7QGluY2x1ZGUgaG9vay1mb3JtLWxlZ2VuZCgpO31cbn1cblxuXG4vKiBDdXN0b20gY29udHJvbHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ29udGFpbmVyIGZpdHMgaXRzIGNvbnRlbnRcbiAqIDIuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XG4gKiAzLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3dcbiAqIDQuIEJlaGF2ZSBsaWtlIG1vc3QgaW5saW5lLWJsb2NrIGVsZW1lbnRzXG4gKi9cblxuLnVrLWZvcm0tY3VzdG9tIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogMyAqL1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiA0ICovXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiAqIDEuIFBvc2l0aW9uIGFuZCByZXNpemUgdGhlIGZvcm0gY29udHJvbCB0byBhbHdheXMgY292ZXIgaXRzIGNvbnRhaW5lclxuICogMi4gUmVxdWlyZWQgZm9yIEZpcmVmb3ggZm9yIHBvc2l0aW9uaW5nIHRvIHRoZSBsZWZ0XG4gKiAzLiBSZXF1aXJlZCBmb3IgV2Via2l0IHRvIG1ha2UgYGhlaWdodGAgd29ya1xuICogNC4gSGlkZSBjb250cm9sZSBhbmQgc2hvdyBjdXJzb3JcbiAqIDUuIE5lZWRlZCBmb3IgdGhlIGN1cnNvclxuICogNi4gQ2xpcCBoZWlnaHQgY2F1c2VkIGJ5IDUuIE5lZWRlZCBmb3IgV2Via2l0IG9ubHlcbiAqL1xuXG4udWstZm9ybS1jdXN0b20gc2VsZWN0LFxuLnVrLWZvcm0tY3VzdG9tIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAvKiAyICovXG4gICAgbGVmdDogMDtcbiAgICAvKiAzICovXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC8qIDQgKi9cbiAgICBvcGFjaXR5OiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnVrLWZvcm0tY3VzdG9tIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAvKiA1ICovXG4gICAgZm9udC1zaXplOiA1MDBweDtcbiAgICAvKiA2ICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG4vKiBMYWJlbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1mb3JtLWxhYmVsIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1sYWJlbCkpIHtAaW5jbHVkZSBob29rLWZvcm0tbGFiZWwoKTt9XG59XG5cblxuLyogTGF5b3V0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFN0YWNrZWRcbiAqL1xuXG4udWstZm9ybS1zdGFja2VkIC51ay1mb3JtLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zdGFja2VkLW1hcmdpbi1ib3R0b207XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tc3RhY2tlZC1sYWJlbCkpIHtAaW5jbHVkZSBob29rLWZvcm0tc3RhY2tlZC1sYWJlbCgpO31cbn1cblxuLypcbiAqIEhvcml6b250YWxcbiAqL1xuXG4vKiBUYWJsZXQgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbC1tYXgpIHtcblxuICAgIC8qIEJlaGF2ZSBsaWtlIGB1ay1mb3JtLXN0YWNrZWRgICovXG4gICAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zdGFja2VkLW1hcmdpbi1ib3R0b207XG4gICAgICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLXN0YWNrZWQtbGFiZWwpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXN0YWNrZWQtbGFiZWwoKTt9XG4gICAgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1sYWJlbCB7XG4gICAgICAgIHdpZHRoOiAkZm9ybS1ob3Jpem9udGFsLWxhYmVsLXdpZHRoO1xuICAgICAgICBtYXJnaW4tdG9wOiAkZm9ybS1ob3Jpem9udGFsLWxhYmVsLW1hcmdpbi10b3A7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1ob3Jpem9udGFsLWxhYmVsKSkge0BpbmNsdWRlIGhvb2stZm9ybS1ob3Jpem9udGFsLWxhYmVsKCk7fVxuICAgIH1cblxuICAgIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tY29udHJvbHMgeyBtYXJnaW4tbGVmdDogJGZvcm0taG9yaXpvbnRhbC1jb250cm9scy1tYXJnaW4tbGVmdDsgfVxuXG4gICAgLyogQmV0dGVyIHZlcnRpY2FsIGFsaWdubWVudCBpZiBjb250cm9scyBhcmUgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucyB3aXRoIHRleHQgKi9cbiAgICAudWstZm9ybS1ob3Jpem9udGFsIC51ay1mb3JtLWNvbnRyb2xzLXRleHQgeyBwYWRkaW5nLXRvcDogJGZvcm0taG9yaXpvbnRhbC1jb250cm9scy10ZXh0LXBhZGRpbmctdG9wOyB9XG5cbn1cblxuXG4vKiBJY29uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTZXQgcG9zaXRpb25cbiAqIDIuIFNldCB3aWR0aFxuICogMy4gQ2VudGVyIGljb24gdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKiA0LiBTdHlsZVxuICovXG5cbi51ay1mb3JtLWljb24ge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIC8qIDIgKi9cbiAgICB3aWR0aDogJGZvcm0taWNvbi13aWR0aDtcbiAgICAvKiAzICovXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiA0ICovXG4gICAgY29sb3I6ICRmb3JtLWljb24tY29sb3I7XG59XG5cbi8qXG4gKiBSZXF1aXJlZCBmb3IgYGFgLlxuICovXG5cbi51ay1mb3JtLWljb246aG92ZXIgeyBjb2xvcjogJGZvcm0taWNvbi1ob3Zlci1jb2xvcjsgfVxuXG4vKlxuICogTWFrZSBgaW5wdXRgIGVsZW1lbnQgY2xpY2thYmxlIHRocm91Z2ggaWNvbiwgZS5nLiBpZiBpdCdzIGEgYHNwYW5gXG4gKi9cblxuLnVrLWZvcm0taWNvbjpub3QoYSk6bm90KGJ1dHRvbik6bm90KGlucHV0KSB7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qXG4gKiBJbnB1dCBwYWRkaW5nXG4gKi9cblxuLnVrLWZvcm0taWNvbjpub3QoLnVrLWZvcm0taWNvbi1mbGlwKSB+IC51ay1pbnB1dCB7IHBhZGRpbmctbGVmdDogJGZvcm0taWNvbi13aWR0aCAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiBQb3NpdGlvbiBtb2RpZmllclxuICovXG5cbi51ay1mb3JtLWljb24tZmxpcCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbn1cblxuLnVrLWZvcm0taWNvbi1mbGlwIH4gLnVrLWlucHV0IHsgcGFkZGluZy1yaWdodDogJGZvcm0taWNvbi13aWR0aCAhaW1wb3J0YW50OyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1taXNjKSkge0BpbmNsdWRlIGhvb2stZm9ybS1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1mb3JtKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1zaW5nbGUtbGluZSgpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tbXVsdGktbGluZSgpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tZm9jdXMoKXt9XG4vLyBAbWl4aW4gaG9vay1mb3JtLWRpc2FibGVkKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1kYW5nZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1mb3JtLXN1Y2Nlc3MoKXt9XG4vLyBAbWl4aW4gaG9vay1mb3JtLWJsYW5rKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1ibGFuay1mb2N1cygpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tcmFkaW8oKXt9XG4vLyBAbWl4aW4gaG9vay1mb3JtLXJhZGlvLWZvY3VzKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1yYWRpby1jaGVja2VkKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCgpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tbGVnZW5kKCl7fVxuLy8gQG1peGluIGhvb2stZm9ybS1sYWJlbCgpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tc3RhY2tlZC1sYWJlbCgpe31cbi8vIEBtaXhpbiBob29rLWZvcm0taG9yaXpvbnRhbC1sYWJlbCgpe31cbi8vIEBtaXhpbiBob29rLWZvcm0tbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtZm9ybS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWZvY3VzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICBmYWRlaW4oJGludmVyc2UtZm9ybS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiRpbnZlcnNlLWZvcm0tc2VsZWN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJGludmVyc2UtZm9ybS1kYXRhbGlzdC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kaW52ZXJzZS1mb3JtLXJhZGlvLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJGludmVyc2UtZm9ybS1yYWRpby1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgICAgICAgZmFkZWluKCRpbnZlcnNlLWZvcm0tcmFkaW8tYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xuXG4kaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtYmFja2dyb3VuZDogICAgICAgICAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3I6ICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cbiRpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cy1iYWNrZ3JvdW5kOiAgIGZhZGVpbigkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xuXG4kaW52ZXJzZS1mb3JtLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1mb3JtLWljb24taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0oKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tZm9jdXMoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8oKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1mb3JtLWxhYmVsKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBCdXR0b25cbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBidXR0b25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstYnV0dG9uYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWJ1dHRvbi1ncm91cGBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1idXR0b24tZGVmYXVsdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLXNlY29uZGFyeWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1kYW5nZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1idXR0b24tdGV4dGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1saW5rYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLWxhcmdlYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kYnV0dG9uLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb250cm9sLWhlaWdodCAhZGVmYXVsdDtcbiRidXR0b24tc21hbGwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbnRyb2wtc21hbGwtaGVpZ2h0ICFkZWZhdWx0O1xuJGJ1dHRvbi1sYXJnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29udHJvbC1sYXJnZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRidXR0b24tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRidXR0b24tc21hbGwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRidXR0b24tbGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiRidXR0b24tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRidXR0b24tc21hbGwtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWd1dHRlciAhZGVmYXVsdDtcbiRidXR0b24tbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbiRidXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYnV0dG9uLWRlZmF1bHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICBkYXJrZW4oJGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRidXR0b24tZGVmYXVsdC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIGRhcmtlbigkYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcbiRidXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuXG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYnV0dG9uLXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgIGRhcmtlbigkYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tcHJpbWFyeS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICBkYXJrZW4oJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kYnV0dG9uLXByaW1hcnktYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuXG4kYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRidXR0b24tc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgZGFya2VuKCRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgZGFya2VuKCRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuXG4kYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRidXR0b24tZGFuZ2VyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgZGFya2VuKCRidXR0b24tZGFuZ2VyLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRidXR0b24tZGFuZ2VyLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWRhbmdlci1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgZGFya2VuKCRidXR0b24tZGFuZ2VyLWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kYnV0dG9uLWRhbmdlci1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuXG4kYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJ1dHRvbi1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiRidXR0b24tdGV4dC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGJ1dHRvbi10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLXRleHQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tdGV4dC1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kYnV0dG9uLWxpbmstbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRidXR0b24tbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWxpbmstaG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiRidXR0b24tbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCdXR0b25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUmVtb3ZlIG1hcmdpbnMgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICogMi4gUmVtb3ZlIGJvcmRlcnMgZm9yIGBidXR0b25gLlxuICogMy4gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRS5cbiAqIDQuIENvcnJlY3QgYGZvbnRgIHByb3BlcnRpZXMgYW5kIGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBmb3IgYGJ1dHRvbmAuXG4gKiA1LiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDYuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGZvciBgaW5wdXQgdHlwZT1cInN1Ym1pdFwiYGluIGlPUy5cbiAqIDcuIFN0eWxlXG4gKiA4LiBgbGluZS1oZWlnaHRgIGlzIHVzZWQgdG8gY3JlYXRlIGEgaGVpZ2h0IGJlY2F1c2UgaXQgYWxzbyBjZW50ZXJzIHRoZSB0ZXh0IHZlcnRpY2FsbHkgZm9yIGBhYCBlbGVtZW50cy5cbiAqICAgIEJldHRlciB3b3VsZCBiZSB0byB1c2UgaGVpZ2h0IGFuZCBmbGV4Ym94IHRvIGNlbnRlciB0aGUgdGV4dCB2ZXJ0aWNhbGx5IGJ1dCBmbGV4Ym94IGRvZXNuJ3Qgd29yayBpbiBGaXJlZm94IG9uIGBidXR0b25gIGVsZW1lbnRzLlxuICogOS4gQWxpZ24gdGV4dCBpZiBidXR0b24gaGFzIGEgd2lkdGhcbiAqIDEwLiBSZXF1aXJlZCBmb3IgYGFgLlxuICovXG5cbi51ay1idXR0b24ge1xuICAgIC8qIDEgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgLyogMiAqL1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvKiAzICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgLyogNCAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgLyogNSAqL1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIC8qIDYgKi9cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAvKiA3ICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCAkYnV0dG9uLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LXNpemU7XG4gICAgLyogOCAqL1xuICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWxpbmUtaGVpZ2h0O1xuICAgIC8qIDkgKi9cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLyogMTAgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbikpIHtAaW5jbHVkZSBob29rLWJ1dHRvbigpO31cbn1cblxuLnVrLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7IGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG4udWstYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1idXR0b246aG92ZXIge1xuICAgIC8qIDkgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1ob3ZlcigpO31cbn1cblxuLyogRm9jdXMgKi9cbi51ay1idXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1mb2N1cykpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1mb2N1cygpO31cbn1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbjphY3RpdmUsXG4udWstYnV0dG9uLnVrLWFjdGl2ZSB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tYWN0aXZlKCk7fVxufVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZhdWx0XG4gKi9cblxuLnVrLWJ1dHRvbi1kZWZhdWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJ1dHRvbi1kZWZhdWx0LWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tZGVmYXVsdCkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1kZWZhdWx0KCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLWRlZmF1bHQ6aG92ZXIsXG4udWstYnV0dG9uLWRlZmF1bHQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYnV0dG9uLWRlZmF1bHQtaG92ZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWRlZmF1bHQtaG92ZXIoKTt9XG59XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tZGVmYXVsdDphY3RpdmUsXG4udWstYnV0dG9uLWRlZmF1bHQudWstYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRidXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpO31cbn1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuXG4udWstYnV0dG9uLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYnV0dG9uLXByaW1hcnktY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXByaW1hcnkoKTt9XG59XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tcHJpbWFyeTpob3Zlcixcbi51ay1idXR0b24tcHJpbWFyeTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLXByaW1hcnktaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tcHJpbWFyeS1ob3ZlcigpO31cbn1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1wcmltYXJ5OmFjdGl2ZSxcbi51ay1idXR0b24tcHJpbWFyeS51ay1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcHJpbWFyeS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKCk7fVxufVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cblxuLnVrLWJ1dHRvbi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tc2Vjb25kYXJ5KSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXNlY29uZGFyeSgpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIsXG4udWstYnV0dG9uLXNlY29uZGFyeTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCk7fVxufVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4udWstYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsXG4udWstYnV0dG9uLXNlY29uZGFyeS51ay1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUoKTt9XG59XG5cbi8qXG4gKiBEYW5nZXJcbiAqL1xuXG4udWstYnV0dG9uLWRhbmdlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1kYW5nZXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJ1dHRvbi1kYW5nZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1kYW5nZXIpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tZGFuZ2VyKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLWRhbmdlcjpob3Zlcixcbi51ay1idXR0b24tZGFuZ2VyOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYnV0dG9uLWRhbmdlci1ob3Zlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWRhbmdlci1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1kYW5nZXItaG92ZXIoKTt9XG59XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tZGFuZ2VyOmFjdGl2ZSxcbi51ay1idXR0b24tZGFuZ2VyLnVrLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1kYW5nZXItYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRidXR0b24tZGFuZ2VyLWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWRhbmdlci1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tZGFuZ2VyLWFjdGl2ZSgpO31cbn1cblxuLypcbiAqIERpc2FibGVkXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xuICovXG5cbi51ay1idXR0b24tZGVmYXVsdDpkaXNhYmxlZCxcbi51ay1idXR0b24tcHJpbWFyeTpkaXNhYmxlZCxcbi51ay1idXR0b24tc2Vjb25kYXJ5OmRpc2FibGVkLFxuLnVrLWJ1dHRvbi1kYW5nZXI6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJ1dHRvbi1kaXNhYmxlZC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWRpc2FibGVkKCk7fVxufVxuXG5cbi8qIFNpemUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJ1dHRvbi1zbWFsbCB7XG4gICAgcGFkZGluZzogMCAkYnV0dG9uLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1zbWFsbC1saW5lLWhlaWdodDtcbiAgICBmb250LXNpemU6ICRidXR0b24tc21hbGwtZm9udC1zaXplO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tc21hbGwpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tc21hbGwoKTt9XG59XG5cbi51ay1idXR0b24tbGFyZ2Uge1xuICAgIHBhZGRpbmc6IDAgJGJ1dHRvbi1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b24tbGFyZ2UtbGluZS1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkYnV0dG9uLWxhcmdlLWZvbnQtc2l6ZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWxhcmdlKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWxhcmdlKCk7fVxufVxuXG5cbi8qIFRleHQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFRleHRcbiAqIDEuIFJlc2V0XG4gKiAyLiBTdHlsZVxuICovXG5cbi51ay1idXR0b24tdGV4dCB7XG4gICAgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b24tdGV4dC1saW5lLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBjb2xvcjogJGJ1dHRvbi10ZXh0LWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tdGV4dCkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi10ZXh0KCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLXRleHQ6aG92ZXIsXG4udWstYnV0dG9uLXRleHQ6Zm9jdXMge1xuICAgIGNvbG9yOiAkYnV0dG9uLXRleHQtaG92ZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi10ZXh0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXRleHQtaG92ZXIoKTt9XG59XG5cbi8qIERpc2FibGVkICovXG4udWstYnV0dG9uLXRleHQ6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkYnV0dG9uLXRleHQtZGlzYWJsZWQtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi10ZXh0LWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXRleHQtZGlzYWJsZWQoKTt9XG59XG5cbi8qXG4gKiBMaW5rXG4gKiAxLiBSZXNldFxuICogMi4gU3R5bGVcbiAqL1xuXG4udWstYnV0dG9uLWxpbmsge1xuICAgIC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWxpbmstbGluZS1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAvKiAyICovXG4gICAgY29sb3I6ICRidXR0b24tbGluay1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWxpbmspKSB7QGluY2x1ZGUgaG9vay1idXR0b24tbGluaygpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWJ1dHRvbi1saW5rOmhvdmVyLFxuLnVrLWJ1dHRvbi1saW5rOmZvY3VzIHtcbiAgICBjb2xvcjogJGJ1dHRvbi1saW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGJ1dHRvbi1saW5rLWhvdmVyLXRleHQtZGVjb3JhdGlvbjtcbn1cblxuLyogRGlzYWJsZWQgKi9cbi51ay1idXR0b24tbGluazpkaXNhYmxlZCB7XG4gICAgY29sb3I6ICRidXR0b24tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cblxuLyogR3JvdXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gVXNpbmcgYGZsZXhgIGluc3RlYWQgb2YgYGlubGluZS1ibG9ja2AgdG8gcHJldmVudCB3aGl0ZXNwYWNlIGJldHdlZW50IGNoaWxkIGVsZW1lbnRzXG4gKiAyLiBCZWhhdmUgbGlrZSBidXR0b25cbiAqIDMuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XG4gKi9cblxuLnVrLWJ1dHRvbi1ncm91cCB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC8qIDIgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDMgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stYnV0dG9uKCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLWZvY3VzKCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLWFjdGl2ZSgpe31cbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1kZWZhdWx0KCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLWRlZmF1bHQtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tZGVmYXVsdC1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tcHJpbWFyeSgpe31cbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLXNlY29uZGFyeSgpe31cbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpe31cbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1kYW5nZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tZGFuZ2VyLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLWRhbmdlci1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tZGlzYWJsZWQoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tc21hbGwoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tbGFyZ2UoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tdGV4dCgpe31cbi8vIEBtaXhpbiBob29rLWJ1dHRvbi10ZXh0LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stYnV0dG9uLXRleHQtZGlzYWJsZWQoKXt9XG4vLyBAbWl4aW4gaG9vay1idXR0b24tbGluaygpe31cbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtY29sb3I6ICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICBkYXJrZW4oJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXItY29sb3I6ICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogICAgICBkYXJrZW4oJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1jb2xvcjogICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDogICAgICAgZGFya2VuKCRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgZGFya2VuKCRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZDogICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogICAgIGRhcmtlbigkaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItY29sb3I6ICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDogICAgZGFya2VuKCRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yOiAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXRleHQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLXRleHQtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYnV0dG9uLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnkoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnkoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tdGV4dCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLXRleHQtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tbGluaygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgUHJvZ3Jlc3Ncbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBwcm9ncmVzcyBiYXJzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstcHJvZ3Jlc3NgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHByb2dyZXNzLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFByb2dyZXNzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKiAyLiBSZW1vdmUgZGVmYXVsdCBzdHlsZVxuICogMy4gQmVoYXZlIGxpa2UgYSBibG9jayBlbGVtZW50XG4gKiA0LiBSZW1vdmUgYm9yZGVycyBpbiBGaXJlZm94IGFuZCBFZGdlXG4gKiA1LiBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgcHJvZ3Jlc3MgY29udGFpbmVyIGluIEZpcmVmb3gsIElFMTEgYW5kIEVkZ2VcbiAqIDYuIFN0eWxlXG4gKi9cblxuLnVrLXByb2dyZXNzIHtcbiAgICAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIC8qIDIgKi9cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC8qIDMgKi9cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiA0ICovXG4gICAgYm9yZGVyOiAwO1xuICAgIC8qIDUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbiAgICAvKiA2ICovXG4gICAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi12ZXJ0aWNhbDtcbiAgICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXByb2dyZXNzKSkge0BpbmNsdWRlIGhvb2stcHJvZ3Jlc3MoKTt9XG59XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIC51ay1wcm9ncmVzcyB7IG1hcmdpbi10b3A6ICRwcm9ncmVzcy1tYXJnaW4tdmVydGljYWw7IH1cblxuLypcbiAqIFJlbW92ZSBhbmltYXRlZCBjaXJjbGVzIGZvciBpbmRldGVybWluYXRlIHN0YXRlIGluIElFMTEgYW5kIEVkZ2VcbiAqL1xuXG4udWstcHJvZ3Jlc3M6aW5kZXRlcm1pbmF0ZSB7IGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKlxuICogUHJvZ3Jlc3MgY29udGFpbmVyXG4gKiAyLiBSZW1vdmUgcHJvZ3Jlc3MgYmFyIGZvciBpbmRldGVybWluYXRlIHN0YXRlIGluIEZpcmVmb3hcbiAqL1xuXG4udWstcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG4gIEBpZihtaXhpbi1leGlzdHMoaG9vay1wcm9ncmVzcykpIHtAaW5jbHVkZSBob29rLXByb2dyZXNzKCk7fVxufVxuXG4vKiAyICovXG4udWstcHJvZ3Jlc3M6aW5kZXRlcm1pbmF0ZTo6LW1vei1wcm9ncmVzcy1iYXIgeyB3aWR0aDogMDsgfVxuXG4vKlxuICogUHJvZ3Jlc3MgYmFyXG4gKiAxLiBSZW1vdmUgcmlnaHQgYm9yZGVyIGluIElFMTEgYW5kIEVkZ2VcbiAqL1xuXG4udWstcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYXItYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXByb2dyZXNzLWJhcikpIHtAaW5jbHVkZSBob29rLXByb2dyZXNzLWJhcigpO31cbn1cblxuLnVrLXByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhci1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1wcm9ncmVzcy1iYXIpKSB7QGluY2x1ZGUgaG9vay1wcm9ncmVzcy1iYXIoKTt9XG59XG5cbi51ay1wcm9ncmVzczo6LW1zLWZpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYXItYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gICAgLyogMSAqL1xuICAgIGJvcmRlcjogMDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stcHJvZ3Jlc3MtYmFyKSkge0BpbmNsdWRlIGhvb2stcHJvZ3Jlc3MtYmFyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLXByb2dyZXNzLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1wcm9ncmVzcy1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1wcm9ncmVzcygpe31cbi8vIEBtaXhpbiBob29rLXByb2dyZXNzLWJhcigpe31cbi8vIEBtaXhpbiBob29rLXByb2dyZXNzLW1pc2MoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFNlY3Rpb25cbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBob3Jpem9udGFsIGxheW91dCBzZWN0aW9uXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc2VjdGlvbmBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1zZWN0aW9uLXhzbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWN0aW9uLWxhcmdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi14bGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWN0aW9uLWRlZmF1bHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWN0aW9uLW11dGVkYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi1zZWNvbmRhcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWN0aW9uLW92ZXJsYXBgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstcHJlc2VydmUtY29sb3JgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tbWFyZ2luICFkZWZhdWx0O1xuJHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbC1tOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLXhzbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuJHNlY3Rpb24tbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tOiAgICAgICAgICAgICAgICAgJGdsb2JhbC14bGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuXG4kc2VjdGlvbi14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG4kc2VjdGlvbi14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tOiAgICAgICAgICAgICAgICAoJGdsb2JhbC1sYXJnZS1tYXJnaW4gKyAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4pICFkZWZhdWx0O1xuXG4kc2VjdGlvbi1kZWZhdWx0LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRzZWN0aW9uLW11dGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJHNlY3Rpb24tcHJpbWFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc2VjdGlvbi1wcmltYXJ5LWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICBsaWdodCAhZGVmYXVsdDtcblxuJHNlY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzZWN0aW9uLXNlY29uZGFyeS1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTZWN0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIE1ha2UgaXQgd29yayB3aXRoIGAxMDB2aGAgYW5kIGhlaWdodCBpbiBnZW5lcmFsXG4gKi9cblxuLnVrLXNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgcGFkZGluZy10b3A6ICRzZWN0aW9uLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXBhZGRpbmctdmVydGljYWw7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlY3Rpb24pKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uKCk7fVxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRzZWN0aW9uLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICB9XG5cbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1zZWN0aW9uID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuLyogU2l6ZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogWFNtYWxsXG4gKi9cblxuLnVrLXNlY3Rpb24teHNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24teHNtYWxsLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXhzbWFsbC1wYWRkaW5nLXZlcnRpY2FsO1xufVxuXG4vKlxuICogU21hbGxcbiAqL1xuXG4udWstc2VjdGlvbi1zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6ICRzZWN0aW9uLXNtYWxsLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXNtYWxsLXBhZGRpbmctdmVydGljYWw7XG59XG5cbi8qXG4gKiBMYXJnZVxuICovXG5cbi51ay1zZWN0aW9uLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNlY3Rpb24tbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDtcbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstc2VjdGlvbi1sYXJnZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgfVxuXG59XG5cblxuLypcbiAqIFhMYXJnZVxuICovXG5cbi51ay1zZWN0aW9uLXhsYXJnZSB7XG4gICAgcGFkZGluZy10b3A6ICRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDtcbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstc2VjdGlvbi14bGFyZ2Uge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24teGxhcmdlLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgfVxuXG59XG5cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIERlZmF1bHRcbiAqL1xuXG4udWstc2VjdGlvbi1kZWZhdWx0IHtcbiAgICBiYWNrZ3JvdW5kOiAkc2VjdGlvbi1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlY3Rpb24tZGVmYXVsdCkpIHtAaW5jbHVkZSBob29rLXNlY3Rpb24tZGVmYXVsdCgpO31cbn1cblxuLypcbiAqIE11dGVkXG4gKi9cblxuLnVrLXNlY3Rpb24tbXV0ZWQge1xuICAgIGJhY2tncm91bmQ6ICRzZWN0aW9uLW11dGVkLWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlY3Rpb24tbXV0ZWQpKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uLW11dGVkKCk7fVxufVxuXG4vKlxuICogUHJpbWFyeVxuICovXG5cbi51ay1zZWN0aW9uLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRzZWN0aW9uLXByaW1hcnktYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2VjdGlvbi1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2stc2VjdGlvbi1wcmltYXJ5KCk7fVxufVxuXG5AaWYgKCAkc2VjdGlvbi1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1zZWN0aW9uLXByaW1hcnk6bm90KC51ay1wcmVzZXJ2ZS1jb2xvcikgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XG5AaWYgKCAkc2VjdGlvbi1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLXNlY3Rpb24tcHJpbWFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cblxuLnVrLXNlY3Rpb24tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkc2VjdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2VjdGlvbi1zZWNvbmRhcnkpKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uLXNlY29uZGFyeSgpO31cbn1cblxuQGlmICggJHNlY3Rpb24tc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1zZWN0aW9uLXNlY29uZGFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKSB7IEBleHRlbmQgLnVrLWxpZ2h0ICFvcHRpb25hbDt9IH1cbkBpZiAoICRzZWN0aW9uLXNlY29uZGFyeS1jb2xvci1tb2RlID09IGRhcmsgKSB7IC51ay1zZWN0aW9uLXNlY29uZGFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxuXG5cbi8qIE92ZXJsYXAgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVzZXJ2ZWQgbW9kaWZpZXIgdG8gbWFrZSBhIHNlY3Rpb24gb3ZlcmxhcCBhbm90aGVyIHNlY3Rpb24gd2l0aCBhbiBib3JkZXIgaW1hZ2VcbiAqIEltcGxlbWVudGVkIGJ5IHRoZSB0aGVtZVxuICovXG5cbi51ay1zZWN0aW9uLW92ZXJsYXAge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zZWN0aW9uLW92ZXJsYXApKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uLW92ZXJsYXAoKTt9XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stc2VjdGlvbi1taXNjKSkge0BpbmNsdWRlIGhvb2stc2VjdGlvbi1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1zZWN0aW9uKCl7fVxuLy8gQG1peGluIGhvb2stc2VjdGlvbi1kZWZhdWx0KCl7fVxuLy8gQG1peGluIGhvb2stc2VjdGlvbi1tdXRlZCgpe31cbi8vIEBtaXhpbiBob29rLXNlY3Rpb24tc2Vjb25kYXJ5KCl7fVxuLy8gQG1peGluIGhvb2stc2VjdGlvbi1wcmltYXJ5KCl7fVxuLy8gQG1peGluIGhvb2stc2VjdGlvbi1vdmVybGFwKCl7fVxuLy8gQG1peGluIGhvb2stc2VjdGlvbi1taXNjKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgQ29udGFpbmVyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBhbGlnbiBhbmQgY2VudGVyIHlvdXIgc2l0ZSBhbmQgZ3JpZCBjb250ZW50XG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY29udGFpbmVyYFxuLy9cbi8vIE1vZGlmaWVyOiAgICAgICAgYHVrLWNvbnRhaW5lci1zbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbnRhaW5lci1sYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbnRhaW5lci1leHBhbmRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItZXhwYW5kLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItZXhwYW5kLXJpZ2h0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0YFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRjb250YWluZXItbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgMTIwMHB4ICFkZWZhdWx0O1xuJGNvbnRhaW5lci14c21hbGwtbWF4LXdpZHRoOiAgICAgICAgICAgICA3NTBweCAhZGVmYXVsdDtcbiRjb250YWluZXItc21hbGwtbWF4LXdpZHRoOiAgICAgICAgICAgICAgOTAwcHggIWRlZmF1bHQ7XG4kY29udGFpbmVyLWxhcmdlLW1heC13aWR0aDogICAgICAgICAgICAgIDE0MDBweCAhZGVmYXVsdDtcbiRjb250YWluZXIteGxhcmdlLW1heC13aWR0aDogICAgICAgICAgICAgMTYwMHB4ICFkZWZhdWx0O1xuXG4kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zOiAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbTogICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBCb3ggc2l6aW5nIGhhcyB0byBiZSBgY29udGVudC1ib3hgIHNvIHRoZSBtYXgtd2lkdGggaXMgYWx3YXlzIHRoZSBzYW1lIGFuZFxuICogICAgdW5hZmZlY3RlZCBieSB0aGUgcGFkZGluZyBvbiBkaWZmZXJlbnQgYnJlYWtwb2ludHMuIEl0J3MgaW1wb3J0YW50IGZvciB0aGUgc2l6ZSBtb2RpZmllcnMuXG4gKi9cblxuLnVrLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBtYXgtd2lkdGg6ICRjb250YWluZXItbWF4LXdpZHRoO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsO1xufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zO1xuICAgIH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW07XG4gICAgfVxuXG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstY29udGFpbmVyID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qXG4gKiBSZW1vdmUgcGFkZGluZyBmcm9tIG5lc3RlZCBjb250YWluZXJzXG4gKi9cblxuLnVrLWNvbnRhaW5lciAudWstY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuXG4vKiBTaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbnRhaW5lci14c21hbGwgeyBtYXgtd2lkdGg6ICRjb250YWluZXIteHNtYWxsLW1heC13aWR0aDsgfVxuXG4udWstY29udGFpbmVyLXNtYWxsIHsgbWF4LXdpZHRoOiAkY29udGFpbmVyLXNtYWxsLW1heC13aWR0aDsgfVxuXG4udWstY29udGFpbmVyLWxhcmdlIHsgbWF4LXdpZHRoOiAkY29udGFpbmVyLWxhcmdlLW1heC13aWR0aDsgfVxuXG4udWstY29udGFpbmVyLXhsYXJnZSB7IG1heC13aWR0aDogJGNvbnRhaW5lci14bGFyZ2UtbWF4LXdpZHRoOyB9XG5cbi51ay1jb250YWluZXItZXhwYW5kIHsgbWF4LXdpZHRoOiBub25lOyB9XG5cblxuLyogRXhwYW5kIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEV4cGFuZCBvbmUgc2lkZSBvbmx5XG4gKi9cblxuLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdCB7IG1hcmdpbi1sZWZ0OiAwOyB9XG4udWstY29udGFpbmVyLWV4cGFuZC1yaWdodCB7IG1hcmdpbi1yaWdodDogMDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci14c21hbGwsXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXhzbWFsbCB7IG1heC13aWR0aDogdW5xdW90ZSgnY2FsYyg1MCUgKyAoI3skY29udGFpbmVyLXhzbWFsbC1tYXgtd2lkdGh9IC8gMikgLSAjeyRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXN9KScpOyB9XG5cbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci1zbWFsbCxcbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXItc21hbGwgeyBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGNvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGh9IC8gMikgLSAjeyRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXN9KScpOyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LFxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHsgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDUwJSArICgjeyRjb250YWluZXItbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXIteHNtYWxsLFxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci14c21hbGwgeyBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGNvbnRhaW5lci14c21hbGwtbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXItc21hbGwsXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXNtYWxsIHsgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDUwJSArICgjeyRjb250YWluZXItc21hbGwtbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXItbGFyZ2UsXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLWxhcmdlIHsgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDUwJSArICgjeyRjb250YWluZXItbGFyZ2UtbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXIteGxhcmdlLFxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci14bGFyZ2UgeyBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGNvbnRhaW5lci14bGFyZ2UtbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxuXG59XG5cblxuLyogSXRlbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBVdGlsaXR5IGNsYXNzZXMgdG8gcmVzZXQgY29udGFpbmVyIHBhZGRpbmcgb24gdGhlIGxlZnQgb3IgcmlnaHQgc2lkZVxuICogTm90ZTogSXQgaGFzIHRvIGJlIG5lZ2F0aXZlIG1hcmdpbiBvbiB0aGUgaXRlbSwgYmVjYXVzZSBpdCdzIHNwZWNpZmljIHRvIHRoZSBpdGVtLlxuICovXG5cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0LFxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSArICN7JGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWx9KScpIH1cblxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQgeyBtYXJnaW4tbGVmdDogKC0kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbCk7IH1cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IG1hcmdpbi1yaWdodDogKC0kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbCk7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQsXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSArICN7JGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtc30pJykgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQgeyBtYXJnaW4tbGVmdDogKC0kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zKTsgfVxuICAgIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IG1hcmdpbi1yaWdodDogKC0kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zKTsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQsXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSArICN7JGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbX0pJykgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQgeyBtYXJnaW4tbGVmdDogKC0kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tKTsgfVxuICAgIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IG1hcmdpbi1yaWdodDogKC0kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tKTsgfVxuXG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stY29udGFpbmVyLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1jb250YWluZXItbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stY29udGFpbmVyLW1pc2MoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBUaWxlXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgdGlsZWQgYm94ZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10aWxlYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXRpbGUteHNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGlsZS1zbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRpbGUtbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10aWxlLXhsYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRpbGUtZGVmYXVsdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRpbGUtbXV0ZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10aWxlLXByaW1hcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10aWxlLXNlY29uZGFyeWBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1wcmVzZXJ2ZS1jb2xvcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kdGlsZS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xuJHRpbGUtcGFkZGluZy1ob3Jpem9udGFsLXM6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kdGlsZS1wYWRkaW5nLWhvcml6b250YWwtbTogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kdGlsZS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XG4kdGlsZS1wYWRkaW5nLXZlcnRpY2FsLW06ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcblxuJHRpbGUteHNtYWxsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbiR0aWxlLXNtYWxsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcblxuJHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG4kdGlsZS1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW06ICAgICAgICAgICAgICAgICAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG5cbiR0aWxlLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICRnbG9iYWwteGxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcbiR0aWxlLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW06ICAgICAgICAgICAgICAgICgkZ2xvYmFsLWxhcmdlLW1hcmdpbiArICRnbG9iYWwteGxhcmdlLW1hcmdpbikgIWRlZmF1bHQ7XG5cbiR0aWxlLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJHRpbGUtbXV0ZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kdGlsZS1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0aWxlLXByaW1hcnktY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ICFkZWZhdWx0O1xuXG4kdGlsZS1zZWNvbmRhcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRpbGUtc2Vjb25kYXJ5LWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgbGlnaHQgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFRpbGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGlsZSB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmctbGVmdDogJHRpbGUtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIHBhZGRpbmctcmlnaHQ6ICR0aWxlLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBwYWRkaW5nLXRvcDogJHRpbGUtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHRpbGUtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGlsZSkpIHtAaW5jbHVkZSBob29rLXRpbGUoKTt9XG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay10aWxlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkdGlsZS1wYWRkaW5nLWhvcml6b250YWwtcztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHRpbGUtcGFkZGluZy1ob3Jpem9udGFsLXM7XG4gICAgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLXRpbGUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICR0aWxlLXBhZGRpbmctaG9yaXpvbnRhbC1tO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdGlsZS1wYWRkaW5nLWhvcml6b250YWwtbTtcbiAgICAgICAgcGFkZGluZy10b3A6ICR0aWxlLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0aWxlLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICB9XG5cbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay10aWxlID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuLyogU2l6ZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogWFNtYWxsXG4gKi9cblxuLnVrLXRpbGUteHNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogJHRpbGUteHNtYWxsLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206ICR0aWxlLXhzbWFsbC1wYWRkaW5nLXZlcnRpY2FsO1xufVxuXG4vKlxuICogU21hbGxcbiAqL1xuXG4udWstdGlsZS1zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6ICR0aWxlLXNtYWxsLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206ICR0aWxlLXNtYWxsLXBhZGRpbmctdmVydGljYWw7XG59XG5cbi8qXG4gKiBMYXJnZVxuICovXG5cbi51ay10aWxlLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogJHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDtcbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstdGlsZS1sYXJnZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkdGlsZS1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdGlsZS1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgfVxuXG59XG5cblxuLypcbiAqIFhMYXJnZVxuICovXG5cbi51ay10aWxlLXhsYXJnZSB7XG4gICAgcGFkZGluZy10b3A6ICR0aWxlLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiAkdGlsZS14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDtcbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstdGlsZS14bGFyZ2Uge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHRpbGUteGxhcmdlLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0aWxlLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgfVxuXG59XG5cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIERlZmF1bHRcbiAqL1xuXG4udWstdGlsZS1kZWZhdWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGlsZS1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRpbGUtZGVmYXVsdCkpIHtAaW5jbHVkZSBob29rLXRpbGUtZGVmYXVsdCgpO31cbn1cblxuLnVrLXRpbGUtZGVmYXVsdC51ay10aWxlLWhvdmVyOmhvdmVyIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGlsZS1kZWZhdWx0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stdGlsZS1kZWZhdWx0LWhvdmVyKCk7fVxufVxuXG4vKlxuICogTXV0ZWRcbiAqL1xuXG4udWstdGlsZS1tdXRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRpbGUtbXV0ZWQtYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGlsZS1tdXRlZCkpIHtAaW5jbHVkZSBob29rLXRpbGUtbXV0ZWQoKTt9XG59XG5cbi51ay10aWxlLW11dGVkLnVrLXRpbGUtaG92ZXI6aG92ZXIge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10aWxlLW11dGVkLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stdGlsZS1tdXRlZC1ob3ZlcigpO31cbn1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuXG4udWstdGlsZS1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGlsZS1wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRpbGUtcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLXRpbGUtcHJpbWFyeSgpO31cbn1cblxuLnVrLXRpbGUtcHJpbWFyeS51ay10aWxlLWhvdmVyOmhvdmVyIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGlsZS1wcmltYXJ5LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stdGlsZS1wcmltYXJ5LWhvdmVyKCk7fVxufVxuXG4vLyBDb2xvciBNb2RlXG5AaWYgKCAkdGlsZS1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay10aWxlLXByaW1hcnk6bm90KC51ay1wcmVzZXJ2ZS1jb2xvcikgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XG5AaWYgKCAkdGlsZS1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLXRpbGUtcHJpbWFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cblxuLnVrLXRpbGUtc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGlsZS1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGlsZS1zZWNvbmRhcnkpKSB7QGluY2x1ZGUgaG9vay10aWxlLXNlY29uZGFyeSgpO31cbn1cblxuLnVrLXRpbGUtc2Vjb25kYXJ5LnVrLXRpbGUtaG92ZXI6aG92ZXIge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10aWxlLXNlY29uZGFyeS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLXRpbGUtc2Vjb25kYXJ5LWhvdmVyKCk7fVxufVxuXG4vLyBDb2xvciBNb2RlXG5AaWYgKCAkdGlsZS1zZWNvbmRhcnktY29sb3ItbW9kZSA9PSBsaWdodCApIHsgLnVrLXRpbGUtc2Vjb25kYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpIHsgQGV4dGVuZCAudWstbGlnaHQgIW9wdGlvbmFsO30gfVxuQGlmICggJHRpbGUtc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLXRpbGUtc2Vjb25kYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpIHsgQGV4dGVuZCAudWstZGFyayAhb3B0aW9uYWw7fSB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stdGlsZS1taXNjKSkge0BpbmNsdWRlIGhvb2stdGlsZS1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay10aWxlKCl7fVxuLy8gQG1peGluIGhvb2stdGlsZS1kZWZhdWx0KCl7fVxuLy8gQG1peGluIGhvb2stdGlsZS1kZWZhdWx0LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stdGlsZS1tdXRlZCgpe31cbi8vIEBtaXhpbiBob29rLXRpbGUtbXV0ZWQtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay10aWxlLXByaW1hcnkoKXt9XG4vLyBAbWl4aW4gaG9vay10aWxlLXByaW1hcnktaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay10aWxlLXNlY29uZGFyeSgpe31cbi8vIEBtaXhpbiBob29rLXRpbGUtc2Vjb25kYXJ5LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stdGlsZS1taXNjKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBDYXJkXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYm94ZWQgY29udGVudCBjb250YWluZXJzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY2FyZGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1jYXJkLWJvZHlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLWhlYWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtZm9vdGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1tZWRpYS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC10aXRsZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtYmFkZ2VgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstY2FyZC1ob3ZlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtZGVmYXVsdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtcHJpbWFyeWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtc2Vjb25kYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1zbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtbGFyZ2VgXG4vL1xuLy8gVXNlczogICAgICAgICAgICBgdWstZ3JpZC1zdGFja2Bcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuXG4kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWwtbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbiRjYXJkLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgcm91bmQoJGdsb2JhbC1ndXR0ZXIgLyAyKSAhZGVmYXVsdDtcblxuJGNhcmQtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtaGVhZGVyLXBhZGRpbmctdmVydGljYWwtbDogICAgICAgICAgICAgICAgcm91bmQoJGdsb2JhbC1tZWRpdW0tZ3V0dGVyIC8gMikgIWRlZmF1bHQ7XG5cbiRjYXJkLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtZm9vdGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgKCRnbG9iYWwtZ3V0dGVyIC8gMikgIWRlZmF1bHQ7XG5cbiRjYXJkLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWwtbDogICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsLWw6ICAgICAgICAgICAgICAgIHJvdW5kKCRnbG9iYWwtbWVkaXVtLWd1dHRlciAvIDIpICFkZWZhdWx0O1xuXG4kY2FyZC10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRjYXJkLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcblxuJGNhcmQtYmFkZ2UtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcbiRjYXJkLWJhZGdlLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kY2FyZC1iYWRnZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMnB4ICFkZWZhdWx0O1xuJGNhcmQtYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRjYXJkLWJhZGdlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtYmFkZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtYmFkZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiRjYXJkLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJGNhcmQtZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRjYXJkLWRlZmF1bHQtdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kY2FyZC1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICBkYXJrZW4oJGNhcmQtZGVmYXVsdC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG5cbiRjYXJkLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtcHJpbWFyeS10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGNhcmQtcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIGRhcmtlbigkY2FyZC1wcmltYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiRjYXJkLXByaW1hcnktY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ICFkZWZhdWx0O1xuXG4kY2FyZC1zZWNvbmRhcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGNhcmQtc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtc2Vjb25kYXJ5LXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGNhcmQtc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGNhcmQtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgZGFya2VuKCRjYXJkLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kY2FyZC1zZWNvbmRhcnktY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICBsaWdodCAhZGVmYXVsdDtcblxuJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbiRjYXJkLXNtYWxsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGNhcmQtc21hbGwtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgcm91bmQoJGdsb2JhbC1tYXJnaW4gLyAxLjUpICFkZWZhdWx0O1xuJGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG4kY2FyZC1zbWFsbC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICByb3VuZCgkZ2xvYmFsLW1hcmdpbiAvIDEuNSkgIWRlZmF1bHQ7XG5cbiRjYXJkLWxhcmdlLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw6ICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJGNhcmQtbGFyZ2UtYm9keS1wYWRkaW5nLXZlcnRpY2FsLWw6ICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kY2FyZC1sYXJnZS1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICAgICAgICAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWxhcmdlLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsLWw6ICAgICAgICAgIHJvdW5kKCRnbG9iYWwtbGFyZ2UtZ3V0dGVyIC8gMikgIWRlZmF1bHQ7XG4kY2FyZC1sYXJnZS1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICAgICAgICAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcbiRjYXJkLWxhcmdlLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsLWw6ICAgICAgICAgIHJvdW5kKCRnbG9iYWwtbGFyZ2UtZ3V0dGVyIC8gMikgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IENhcmRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQpKSB7QGluY2x1ZGUgaG9vay1jYXJkKCk7fVxufVxuXG5cbi8qIFNlY3Rpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNhcmQtYm9keSB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIHBhZGRpbmc6ICRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbCAkY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1ib2R5KSkge0BpbmNsdWRlIGhvb2stY2FyZC1ib2R5KCk7fVxufVxuXG4udWstY2FyZC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBwYWRkaW5nOiAkY2FyZC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbCAkY2FyZC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLWhlYWRlcikpIHtAaW5jbHVkZSBob29rLWNhcmQtaGVhZGVyKCk7fVxufVxuXG4udWstY2FyZC1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBwYWRkaW5nOiAkY2FyZC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbCAkY2FyZC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLWZvb3RlcikpIHtAaW5jbHVkZSBob29rLWNhcmQtZm9vdGVyKCk7fVxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWNhcmQtYm9keSB7IHBhZGRpbmc6ICRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sICRjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw7IH1cblxuICAgIC51ay1jYXJkLWhlYWRlciB7IHBhZGRpbmc6ICRjYXJkLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsLWwgJGNhcmQtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAudWstY2FyZC1mb290ZXIgeyBwYWRkaW5nOiAkY2FyZC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbC1sICRjYXJkLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWwtbDsgfVxuXG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstY2FyZC1ib2R5ID4gOmxhc3QtY2hpbGQsXG4udWstY2FyZC1oZWFkZXIgPiA6bGFzdC1jaGlsZCxcbi51ay1jYXJkLWZvb3RlciA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIE1lZGlhXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlc2VydmVkIGFsaWdubWVudCBtb2RpZmllciB0byBzdHlsZSB0aGUgbWVkaWEgZWxlbWVudCwgZS5nLiB3aXRoIGBib3JkZXItcmFkaXVzYFxuICogSW1wbGVtZW50ZWQgYnkgdGhlIHRoZW1lXG4gKi9cblxuW2NsYXNzKj0ndWstY2FyZC1tZWRpYSddIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYSkpIHtAaW5jbHVkZSBob29rLWNhcmQtbWVkaWEoKTt9XG59XG5cbi51ay1jYXJkLW1lZGlhLXRvcCxcbi51ay1ncmlkLXN0YWNrID4gLnVrLWNhcmQtbWVkaWEtbGVmdCxcbi51ay1ncmlkLXN0YWNrID4gLnVrLWNhcmQtbWVkaWEtcmlnaHQgIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYS10b3ApKSB7QGluY2x1ZGUgaG9vay1jYXJkLW1lZGlhLXRvcCgpO31cbn1cblxuLnVrLWNhcmQtbWVkaWEtYm90dG9tIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYS1ib3R0b20pKSB7QGluY2x1ZGUgaG9vay1jYXJkLW1lZGlhLWJvdHRvbSgpO31cbn1cblxuOm5vdCgudWstZ3JpZC1zdGFjaykgPiAudWstY2FyZC1tZWRpYS1sZWZ0IHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYS1sZWZ0KSkge0BpbmNsdWRlIGhvb2stY2FyZC1tZWRpYS1sZWZ0KCk7fVxufVxuXG46bm90KC51ay1ncmlkLXN0YWNrKSA+IC51ay1jYXJkLW1lZGlhLXJpZ2h0IHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYS1yaWdodCkpIHtAaW5jbHVkZSBob29rLWNhcmQtbWVkaWEtcmlnaHQoKTt9XG59XG5cblxuLyogVGl0bGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY2FyZC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAkY2FyZC10aXRsZS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRjYXJkLXRpdGxlLWxpbmUtaGVpZ2h0O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLXRpdGxlKSkge0BpbmNsdWRlIGhvb2stY2FyZC10aXRsZSgpO31cbn1cblxuXG4vKiBCYWRnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBQb3NpdGlvblxuICogMi4gU2l6ZVxuICogMy4gU3R5bGVcbiAqIDQuIENlbnRlciBjaGlsZCB2ZXJ0aWNhbGx5XG4gKi9cblxuLnVrLWNhcmQtYmFkZ2Uge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkY2FyZC1iYWRnZS10b3A7XG4gICAgcmlnaHQ6ICRjYXJkLWJhZGdlLXJpZ2h0O1xuICAgIHotaW5kZXg6IDE7XG4gICAgLyogMiAqL1xuICAgIGhlaWdodDogJGNhcmQtYmFkZ2UtaGVpZ2h0O1xuICAgIHBhZGRpbmc6IDAgJGNhcmQtYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIC8qIDMgKi9cbiAgICBiYWNrZ3JvdW5kOiAkY2FyZC1iYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY2FyZC1iYWRnZS1jb2xvcjtcbiAgICBmb250LXNpemU6ICRjYXJkLWJhZGdlLWZvbnQtc2l6ZTtcbiAgICAvKiA0ICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLWJhZGdlKSkge0BpbmNsdWRlIGhvb2stY2FyZC1iYWRnZSgpO31cbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSBhZGphY2VudCBlbGVtZW50XG4gKi9cblxuLnVrLWNhcmQtYmFkZ2U6Zmlyc3QtY2hpbGQgKyAqIHsgbWFyZ2luLXRvcDogMDsgfVxuXG5cbi8qIEhvdmVyIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNhcmQtaG92ZXI6bm90KC51ay1jYXJkLWRlZmF1bHQpOm5vdCgudWstY2FyZC1wcmltYXJ5KTpub3QoLnVrLWNhcmQtc2Vjb25kYXJ5KTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtaG92ZXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWNhcmQtaG92ZXIoKTt9XG59XG5cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIERlZmF1bHRcbiAqIE5vdGU6IEhlYWRlciBhbmQgRm9vdGVyIGFyZSBvbmx5IGltcGxlbWVudGVkIGZvciB0aGUgZGVmYXVsdCBzdHlsZVxuICovXG5cbi51ay1jYXJkLWRlZmF1bHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNhcmQtZGVmYXVsdC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1kZWZhdWx0KSkge0BpbmNsdWRlIGhvb2stY2FyZC1kZWZhdWx0KCk7fVxufVxuXG4udWstY2FyZC1kZWZhdWx0IC51ay1jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogJGNhcmQtZGVmYXVsdC10aXRsZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1kZWZhdWx0LXRpdGxlKSkge0BpbmNsdWRlIGhvb2stY2FyZC1kZWZhdWx0LXRpdGxlKCk7fVxufVxuXG4udWstY2FyZC1kZWZhdWx0LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKCk7fVxufVxuXG4udWstY2FyZC1kZWZhdWx0IC51ay1jYXJkLWhlYWRlciB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtZGVmYXVsdC1oZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1jYXJkLWRlZmF1bHQtaGVhZGVyKCk7fVxufVxuXG4udWstY2FyZC1kZWZhdWx0IC51ay1jYXJkLWZvb3RlciB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtZGVmYXVsdC1mb290ZXIpKSB7QGluY2x1ZGUgaG9vay1jYXJkLWRlZmF1bHQtZm9vdGVyKCk7fVxufVxuXG4vKlxuICogUHJpbWFyeVxuICovXG5cbi51ay1jYXJkLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLXByaW1hcnktYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNhcmQtcHJpbWFyeS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2stY2FyZC1wcmltYXJ5KCk7fVxufVxuXG4udWstY2FyZC1wcmltYXJ5IC51ay1jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogJGNhcmQtcHJpbWFyeS10aXRsZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1wcmltYXJ5LXRpdGxlKSkge0BpbmNsdWRlIGhvb2stY2FyZC1wcmltYXJ5LXRpdGxlKCk7fVxufVxuXG4udWstY2FyZC1wcmltYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1wcmltYXJ5LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stY2FyZC1wcmltYXJ5LWhvdmVyKCk7fVxufVxuXG4vLyBDb2xvciBNb2RlXG5AaWYgKCAkY2FyZC1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1jYXJkLXByaW1hcnkudWstY2FyZC1ib2R5IHsgQGV4dGVuZCAudWstbGlnaHQgIW9wdGlvbmFsO30gfVxuQGlmICggJGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID09IGxpZ2h0ICkgeyAudWstY2FyZC1wcmltYXJ5ID4gOm5vdChbY2xhc3MqPSd1ay1jYXJkLW1lZGlhJ10pIHsgQGV4dGVuZCAudWstbGlnaHQgIW9wdGlvbmFsO30gfVxuQGlmICggJGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID09IGRhcmsgKSB7IC51ay1jYXJkLXByaW1hcnkudWstY2FyZC1ib2R5IHsgQGV4dGVuZCAudWstZGFyayAhb3B0aW9uYWw7fSB9XG5AaWYgKCAkY2FyZC1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLWNhcmQtcHJpbWFyeSA+IDpub3QoW2NsYXNzKj0ndWstY2FyZC1tZWRpYSddKSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cblxuLnVrLWNhcmQtc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNhcmQtc2Vjb25kYXJ5LWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLXNlY29uZGFyeSkpIHtAaW5jbHVkZSBob29rLWNhcmQtc2Vjb25kYXJ5KCk7fVxufVxuXG4udWstY2FyZC1zZWNvbmRhcnkgLnVrLWNhcmQtdGl0bGUge1xuICAgIGNvbG9yOiAkY2FyZC1zZWNvbmRhcnktdGl0bGUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtc2Vjb25kYXJ5LXRpdGxlKSkge0BpbmNsdWRlIGhvb2stY2FyZC1zZWNvbmRhcnktdGl0bGUoKTt9XG59XG5cbi51ay1jYXJkLXNlY29uZGFyeS51ay1jYXJkLWhvdmVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1zZWNvbmRhcnktaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1jYXJkLXNlY29uZGFyeS1ob3ZlcigpO31cbn1cblxuLy8gQ29sb3IgTW9kZVxuQGlmICggJGNhcmQtc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1jYXJkLXNlY29uZGFyeS51ay1jYXJkLWJvZHkgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XG5AaWYgKCAkY2FyZC1zZWNvbmRhcnktY29sb3ItbW9kZSA9PSBsaWdodCApIHsgLnVrLWNhcmQtc2Vjb25kYXJ5ID4gOm5vdChbY2xhc3MqPSd1ay1jYXJkLW1lZGlhJ10pIHsgQGV4dGVuZCAudWstbGlnaHQgIW9wdGlvbmFsO30gfVxuQGlmICggJGNhcmQtc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLWNhcmQtc2Vjb25kYXJ5LnVrLWNhcmQtYm9keSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxuQGlmICggJGNhcmQtc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLWNhcmQtc2Vjb25kYXJ5ID4gOm5vdChbY2xhc3MqPSd1ay1jYXJkLW1lZGlhJ10pIHsgQGV4dGVuZCAudWstZGFyayAhb3B0aW9uYWw7fSB9XG5cblxuLyogU2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBTbWFsbFxuICovXG5cbi51ay1jYXJkLXNtYWxsLnVrLWNhcmQtYm9keSxcbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWJvZHkgeyBwYWRkaW5nOiAkY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctdmVydGljYWwgJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuLnVrLWNhcmQtc21hbGwgLnVrLWNhcmQtaGVhZGVyIHsgcGFkZGluZzogJGNhcmQtc21hbGwtaGVhZGVyLXBhZGRpbmctdmVydGljYWwgJGNhcmQtc21hbGwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuLnVrLWNhcmQtc21hbGwgLnVrLWNhcmQtZm9vdGVyIHsgcGFkZGluZzogJGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgJGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWNhcmQtbGFyZ2UudWstY2FyZC1ib2R5LFxuICAgIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWJvZHkgeyBwYWRkaW5nOiAkY2FyZC1sYXJnZS1ib2R5LXBhZGRpbmctdmVydGljYWwtbCAkY2FyZC1sYXJnZS1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAudWstY2FyZC1sYXJnZSAudWstY2FyZC1oZWFkZXIgeyBwYWRkaW5nOiAkY2FyZC1sYXJnZS1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbC1sICRjYXJkLWxhcmdlLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtbDsgfVxuICAgIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWZvb3RlciB7IHBhZGRpbmc6ICRjYXJkLWxhcmdlLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsLWwgJGNhcmQtbGFyZ2UtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XG5cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1jYXJkLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWNhcmQoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLWJvZHkoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLWNhcmQtZm9vdGVyKCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC1tZWRpYSgpe31cbi8vIEBtaXhpbiBob29rLWNhcmQtbWVkaWEtdG9wKCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC1tZWRpYS1ib3R0b20oKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLW1lZGlhLWxlZnQoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLW1lZGlhLXJpZ2h0KCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC10aXRsZSgpe31cbi8vIEBtaXhpbiBob29rLWNhcmQtYmFkZ2UoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC1kZWZhdWx0KCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC1kZWZhdWx0LXRpdGxlKCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC1kZWZhdWx0LWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLWNhcmQtZGVmYXVsdC1mb290ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLXByaW1hcnkoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLXByaW1hcnktdGl0bGUoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLXByaW1hcnktaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLXNlY29uZGFyeSgpe31cbi8vIEBtaXhpbiBob29rLWNhcmQtc2Vjb25kYXJ5LXRpdGxlKCl7fVxuLy8gQG1peGluIGhvb2stY2FyZC1zZWNvbmRhcnktaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1jYXJkLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLWNhcmQtYmFkZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWNhcmQtYmFkZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWNhcmQtYmFkZ2UoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIENsb3NlXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSBjbG9zZSBidXR0b25cbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1jbG9zZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kY2xvc2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRjbG9zZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDbG9zZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZG9wdHMgYHVrLWljb25gXG4gKi9cblxuLnVrLWNsb3NlIHtcbiAgICBjb2xvcjogJGNsb3NlLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jbG9zZSkpIHtAaW5jbHVkZSBob29rLWNsb3NlKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstY2xvc2U6aG92ZXIsXG4udWstY2xvc2U6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2UtaG92ZXItY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2xvc2UtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1jbG9zZS1ob3ZlcigpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1jbG9zZS1taXNjKSkge0BpbmNsdWRlIGhvb2stY2xvc2UtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stY2xvc2UoKXt9XG4vLyBAbWl4aW4gaG9vay1jbG9zZS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWNsb3NlLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLWNsb3NlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1jbG9zZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1jbG9zZSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtY2xvc2UtaG92ZXIoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFNwaW5uZXJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhIGxvYWRpbmcgc3Bpbm5lclxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXNwaW5uZXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuJHNwaW5uZXItc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1zdHJva2Utd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAhZGVmYXVsdDtcbiRzcGlubmVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcihtYXRoLmRpdigoJHNwaW5uZXItc2l6ZSAtICRzcGlubmVyLXN0cm9rZS13aWR0aCksIDIpKSAhZGVmYXVsdDsgLy8gTWludXMgc3Ryb2tlIHdpZHRoIHRvIHByZXZlbnQgb3ZlcmZsb3cgY2xpcHBpbmdcbiRzcGlubmVyLWNpcmN1bWZlcmVuY2U6ICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCgyICogMy4xNDEgKiAkc3Bpbm5lci1yYWRpdXMpICFkZWZhdWx0O1xuJHNwaW5uZXItZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNHMgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNwaW5uZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRvcHRzIGB1ay1pY29uYFxuICovXG5cbi51ay1zcGlubmVyIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc3Bpbm5lcikpIHtAaW5jbHVkZSBob29rLXNwaW5uZXIoKTt9XG59XG5cblxuLyogU1ZHXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNwaW5uZXIgPiAqIHsgYW5pbWF0aW9uOiB1ay1zcGlubmVyLXJvdGF0ZSAkc3Bpbm5lci1kdXJhdGlvbiBsaW5lYXIgaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyB1ay1zcGlubmVyLXJvdGF0ZSB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG59XG5cbi8qXG4gKiBDaXJjbGVcbiAqL1xuXG4udWstc3Bpbm5lciA+ICogPiAqIHtcbiAgICBzdHJva2UtZGFzaGFycmF5OiAkc3Bpbm5lci1jaXJjdW1mZXJlbmNlO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICBhbmltYXRpb246IHVrLXNwaW5uZXItZGFzaCAkc3Bpbm5lci1kdXJhdGlvbiBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICBzdHJva2Utd2lkdGg6ICRzcGlubmVyLXN0cm9rZS13aWR0aDtcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG59XG5cbkBrZXlmcmFtZXMgdWstc3Bpbm5lci1kYXNoIHtcbiAgICAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiAkc3Bpbm5lci1jaXJjdW1mZXJlbmNlOyB9XG4gICAgNTAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IG1hdGguZGl2KCRzcGlubmVyLWNpcmN1bWZlcmVuY2UsIDQpO1xuICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogJHNwaW5uZXItY2lyY3VtZmVyZW5jZTtcbiAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpO1xuICAgIH1cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1zcGlubmVyLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1zcGlubmVyLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXNwaW5uZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1zcGlubmVyLW1pc2MoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFRvdG9wXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYW4gaWNvbiB0byBzY3JvbGwgYmFjayB0byB0b3Bcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10b3RvcGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kdG90b3AtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuJHRvdG9wLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiR0b3RvcC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kdG90b3AtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVG90b3BcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkb3B0cyBgdWstaWNvbmBcbiAqL1xuXG4udWstdG90b3Age1xuICAgIHBhZGRpbmc6ICR0b3RvcC1wYWRkaW5nO1xuICAgIGNvbG9yOiAkdG90b3AtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRvdG9wKSkge0BpbmNsdWRlIGhvb2stdG90b3AoKTt9XG59XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay10b3RvcDpob3Zlcixcbi51ay10b3RvcDpmb2N1cyB7XG4gICAgY29sb3I6ICR0b3RvcC1ob3Zlci1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10b3RvcC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLXRvdG9wLWhvdmVyKCk7fVxufVxuXG4vKiBPbkNsaWNrICovXG4udWstdG90b3A6YWN0aXZlIHtcbiAgICBjb2xvcjogJHRvdG9wLWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdG90b3AtYWN0aXZlKSkge0BpbmNsdWRlIGhvb2stdG90b3AtYWN0aXZlKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLXRvdG9wLW1pc2MpKSB7QGluY2x1ZGUgaG9vay10b3RvcC1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay10b3RvcCgpe31cbi8vIEBtaXhpbiBob29rLXRvdG9wLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stdG90b3AtYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stdG90b3AtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtdG90b3AtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdG90b3AtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdG90b3AtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS10b3RvcCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtdG90b3AtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRvdG9wLWFjdGl2ZSgpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgTWFya2VyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSBtYXJrZXIgaWNvblxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLW1hcmtlcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kbWFya2VyLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcbiRtYXJrZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRtYXJrZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuXG4kbWFya2VyLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTWFya2VyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZG9wdHMgYHVrLWljb25gXG4gKi9cblxuLnVrLW1hcmtlciB7XG4gICAgcGFkZGluZzogJG1hcmtlci1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRtYXJrZXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJG1hcmtlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbWFya2VyKSkge0BpbmNsdWRlIGhvb2stbWFya2VyKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbWFya2VyOmhvdmVyLFxuLnVrLW1hcmtlcjpmb2N1cyB7XG4gICAgY29sb3I6ICRtYXJrZXItaG92ZXItY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbWFya2VyLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbWFya2VyLWhvdmVyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLW1hcmtlci1taXNjKSkge0BpbmNsdWRlIGhvb2stbWFya2VyLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLW1hcmtlcigpe31cbi8vIEBtaXhpbiBob29rLW1hcmtlci1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLW1hcmtlci1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1tYXJrZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtbWFya2VyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1tYXJrZXItaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbWFya2VyKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1tYXJrZXItaG92ZXIoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEFsZXJ0XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYWxlcnQgbWVzc2FnZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1hbGVydGBcbi8vXG4vLyBBZG9wdGVkOiAgICAgICAgIGB1ay1hbGVydC1jbG9zZWBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1hbGVydC1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstYWxlcnQtc3VjY2Vzc2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFsZXJ0LXdhcm5pbmdgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbGVydC1kYW5nZXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGFsZXJ0LW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJGFsZXJ0LXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1yaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsZXJ0LXBhZGRpbmcgKyAxNHB4ICFkZWZhdWx0O1xuJGFsZXJ0LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRhbGVydC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kYWxlcnQtY2xvc2UtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsZXJ0LXBhZGRpbmcgKyA1cHggIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtcmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsZXJ0LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbiRhbGVydC1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQsIDQwJSksIDIwJSkgIWRlZmF1bHQ7XG4kYWxlcnQtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRhbGVydC1zdWNjZXNzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQsIDQwJSksIDI1JSkgIWRlZmF1bHQ7XG4kYWxlcnQtc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRhbGVydC13YXJuaW5nLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQsIDQ1JSksIDE1JSkgIWRlZmF1bHQ7XG4kYWxlcnQtd2FybmluZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRhbGVydC1kYW5nZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCwgNDAlKSwgMjAlKSAhZGVmYXVsdDtcbiRhbGVydC1kYW5nZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBbGVydFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hbGVydCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206ICRhbGVydC1tYXJnaW4tdmVydGljYWw7XG4gICAgcGFkZGluZzogJGFsZXJ0LXBhZGRpbmcgJGFsZXJ0LXBhZGRpbmctcmlnaHQgJGFsZXJ0LXBhZGRpbmcgJGFsZXJ0LXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGFsZXJ0LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYWxlcnQpKSB7QGluY2x1ZGUgaG9vay1hbGVydCgpO31cbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLWFsZXJ0IHsgbWFyZ2luLXRvcDogJGFsZXJ0LW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLWFsZXJ0ID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuLyogQ2xvc2VcbiAqIEFkb3B0cyBgdWstY2xvc2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFsZXJ0LWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkYWxlcnQtY2xvc2UtdG9wO1xuICAgIHJpZ2h0OiAkYWxlcnQtY2xvc2UtcmlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWFsZXJ0LWNsb3NlKSkge0BpbmNsdWRlIGhvb2stYWxlcnQtY2xvc2UoKTt9XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gYWRqYWNlbnQgZWxlbWVudFxuICovXG5cbi51ay1hbGVydC1jbG9zZTpmaXJzdC1jaGlsZCArICogeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qXG4gKiBIb3ZlciArIEZvY3VzXG4gKi9cblxuLnVrLWFsZXJ0LWNsb3NlOmhvdmVyLFxuLnVrLWFsZXJ0LWNsb3NlOmZvY3VzIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYWxlcnQtY2xvc2UtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1hbGVydC1jbG9zZS1ob3ZlcigpO31cbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUHJpbWFyeVxuICovXG5cbi51ay1hbGVydC1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkYWxlcnQtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYWxlcnQtcHJpbWFyeS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYWxlcnQtcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLWFsZXJ0LXByaW1hcnkoKTt9XG59XG5cbi8qXG4gKiBTdWNjZXNzXG4gKi9cblxuLnVrLWFsZXJ0LXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICRhbGVydC1zdWNjZXNzLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRhbGVydC1zdWNjZXNzLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1hbGVydC1zdWNjZXNzKSkge0BpbmNsdWRlIGhvb2stYWxlcnQtc3VjY2VzcygpO31cbn1cblxuLypcbiAqIFdhcm5pbmdcbiAqL1xuXG4udWstYWxlcnQtd2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogJGFsZXJ0LXdhcm5pbmctYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGFsZXJ0LXdhcm5pbmctY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWFsZXJ0LXdhcm5pbmcpKSB7QGluY2x1ZGUgaG9vay1hbGVydC13YXJuaW5nKCk7fVxufVxuXG4vKlxuICogRGFuZ2VyXG4gKi9cblxuLnVrLWFsZXJ0LWRhbmdlciB7XG4gICAgYmFja2dyb3VuZDogJGFsZXJ0LWRhbmdlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYWxlcnQtZGFuZ2VyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1hbGVydC1kYW5nZXIpKSB7QGluY2x1ZGUgaG9vay1hbGVydC1kYW5nZXIoKTt9XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stYWxlcnQtbWlzYykpIHtAaW5jbHVkZSBob29rLWFsZXJ0LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWFsZXJ0KCl7fVxuLy8gQG1peGluIGhvb2stYWxlcnQtY2xvc2UoKXt9XG4vLyBAbWl4aW4gaG9vay1hbGVydC1jbG9zZS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWFsZXJ0LXByaW1hcnkoKXt9XG4vLyBAbWl4aW4gaG9vay1hbGVydC1zdWNjZXNzKCl7fVxuLy8gQG1peGluIGhvb2stYWxlcnQtd2FybmluZygpe31cbi8vIEBtaXhpbiBob29rLWFsZXJ0LWRhbmdlcigpe31cbi8vIEBtaXhpbiBob29rLWFsZXJ0LW1pc2MoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBQbGFjZWhvbGRlclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIHBsYWNlaG9sZGVyIGJveGVzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstcGxhY2Vob2xkZXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHBsYWNlaG9sZGVyLW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJHBsYWNlaG9sZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJHBsYWNlaG9sZGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJHBsYWNlaG9sZGVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUGxhY2Vob2xkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstcGxhY2Vob2xkZXIge1xuICAgIG1hcmdpbi1ib3R0b206ICRwbGFjZWhvbGRlci1tYXJnaW4tdmVydGljYWw7XG4gICAgcGFkZGluZzogJHBsYWNlaG9sZGVyLXBhZGRpbmctdmVydGljYWwgJHBsYWNlaG9sZGVyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiAkcGxhY2Vob2xkZXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stcGxhY2Vob2xkZXIpKSB7QGluY2x1ZGUgaG9vay1wbGFjZWhvbGRlcigpO31cbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXBsYWNlaG9sZGVyIHsgbWFyZ2luLXRvcDogJHBsYWNlaG9sZGVyLW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLXBsYWNlaG9sZGVyID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stcGxhY2Vob2xkZXItbWlzYykpIHtAaW5jbHVkZSBob29rLXBsYWNlaG9sZGVyLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXBsYWNlaG9sZGVyKCl7fVxuLy8gQG1peGluIGhvb2stcGxhY2Vob2xkZXItbWlzYygpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIEJhZGdlXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgbm90aWZpY2F0aW9uIGJhZGdlc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWJhZGdlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRiYWRnZS1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOHB4ICFkZWZhdWx0O1xuJGJhZGdlLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuJGJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMHB4ICFkZWZhdWx0O1xuJGJhZGdlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGJhZGdlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRiYWRnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMXB4ICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCYWRnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTdHlsZVxuICogMi4gQ2VudGVyIGNoaWxkIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICovXG5cbi51ay1iYWRnZSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6ICRiYWRnZS1zaXplO1xuICAgIGhlaWdodDogJGJhZGdlLXNpemU7XG4gICAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmctdmVydGljYWwgJGJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBib3JkZXItcmFkaXVzOiAkYmFkZ2UtYm9yZGVyLXJhZGl1cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDEgKi9cbiAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICAgIC8qIDIgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1iYWRnZSkpIHtAaW5jbHVkZSBob29rLWJhZGdlKCk7fVxufVxuXG4vKlxuICogUmVxdWlyZWQgZm9yIGBhYFxuICovXG5cbi51ay1iYWRnZTpob3Zlcixcbi51ay1iYWRnZTpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhZGdlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stYmFkZ2UtaG92ZXIoKTt9XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stYmFkZ2UtbWlzYykpIHtAaW5jbHVkZSBob29rLWJhZGdlLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWJhZGdlKCl7fVxuLy8gQG1peGluIGhvb2stYmFkZ2UtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1iYWRnZS1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1iYWRnZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtYmFkZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhZGdlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYWRnZS1ob3Zlcigpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIExhYmVsXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBpbmRpY2F0ZSBpbXBvcnRhbnQgbm90ZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1sYWJlbGBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1sYWJlbC1zdWNjZXNzYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGFiZWwtd2FybmluZ2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxhYmVsLWRhbmdlcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kbGFiZWwtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRsYWJlbC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRsYWJlbC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsYWJlbC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGxhYmVsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcblxuJGxhYmVsLXN1Y2Nlc3MtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGxhYmVsLXN1Y2Nlc3MtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRsYWJlbC13YXJuaW5nLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXdhcm5pbmctYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsYWJlbC13YXJuaW5nLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kbGFiZWwtZGFuZ2VyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsYWJlbC1kYW5nZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IExhYmVsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmctdmVydGljYWwgJGxhYmVsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBsaW5lLWhlaWdodDogJGxhYmVsLWxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGFiZWwpKSB7QGluY2x1ZGUgaG9vay1sYWJlbCgpO31cbn1cblxuXG4vKiBDb2xvciBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogU3VjY2Vzc1xuICovXG5cbi51ay1sYWJlbC1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGFiZWwtc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtc3VjY2Vzcy1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGFiZWwtc3VjY2VzcykpIHtAaW5jbHVkZSBob29rLWxhYmVsLXN1Y2Nlc3MoKTt9XG59XG5cbi8qXG4gKiBXYXJuaW5nXG4gKi9cblxuLnVrLWxhYmVsLXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsYWJlbC13YXJuaW5nLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC13YXJuaW5nLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1sYWJlbC13YXJuaW5nKSkge0BpbmNsdWRlIGhvb2stbGFiZWwtd2FybmluZygpO31cbn1cblxuLypcbiAqIERhbmdlclxuICovXG5cbi51ay1sYWJlbC1kYW5nZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsYWJlbC1kYW5nZXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWRhbmdlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGFiZWwtZGFuZ2VyKSkge0BpbmNsdWRlIGhvb2stbGFiZWwtZGFuZ2VyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWxhYmVsLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1sYWJlbC1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1sYWJlbCgpe31cbi8vIEBtaXhpbiBob29rLWxhYmVsLXN1Y2Nlc3MoKXt9XG4vLyBAbWl4aW4gaG9vay1sYWJlbC13YXJuaW5nKCl7fVxuLy8gQG1peGluIGhvb2stbGFiZWwtZGFuZ2VyKCl7fVxuLy8gQG1peGluIGhvb2stbGFiZWwtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtbGFiZWwtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1sYWJlbCgpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIE92ZXJsYXlcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBjb250ZW50IGFyZWFzIG92ZXJsYXlpbmcgYW4gaW1hZ2Vcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1vdmVybGF5YFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLW92ZXJsYXktaWNvbmBcbi8vXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay1vdmVybGF5LWRlZmF1bHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vdmVybGF5LXByaW1hcnlgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJG92ZXJsYXktcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJG92ZXJsYXktcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuXG4kb3ZlcmxheS1kZWZhdWx0LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmdiYSgkZ2xvYmFsLWJhY2tncm91bmQsIDAuOCkgIWRlZmF1bHQ7XG5cbiRvdmVybGF5LXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQsIDAuOCkgIWRlZmF1bHQ7XG4kb3ZlcmxheS1wcmltYXJ5LWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgbGlnaHQgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE92ZXJsYXlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstb3ZlcmxheSB7XG4gICAgcGFkZGluZzogJG92ZXJsYXktcGFkZGluZy12ZXJ0aWNhbCAkb3ZlcmxheS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW92ZXJsYXkpKSB7QGluY2x1ZGUgaG9vay1vdmVybGF5KCk7fVxufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLW92ZXJsYXkgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBJY29uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW92ZXJsYXktaWNvbiB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW92ZXJsYXktaWNvbikpIHtAaW5jbHVkZSBob29rLW92ZXJsYXktaWNvbigpO31cbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdFxuICovXG5cbi51ay1vdmVybGF5LWRlZmF1bHQge1xuICAgIGJhY2tncm91bmQ6ICRvdmVybGF5LWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stb3ZlcmxheS1kZWZhdWx0KSkge0BpbmNsdWRlIGhvb2stb3ZlcmxheS1kZWZhdWx0KCk7fVxufVxuXG4vKlxuICogUHJpbWFyeVxuICovXG5cbi51ay1vdmVybGF5LXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRvdmVybGF5LXByaW1hcnktYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stb3ZlcmxheS1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2stb3ZlcmxheS1wcmltYXJ5KCk7fVxufVxuXG4vLyBDb2xvciBNb2RlXG5AaWYgKCAkb3ZlcmxheS1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1vdmVybGF5LXByaW1hcnkgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XG5AaWYgKCAkb3ZlcmxheS1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLW92ZXJsYXktcHJpbWFyeSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLW92ZXJsYXktbWlzYykpIHtAaW5jbHVkZSBob29rLW92ZXJsYXktbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stb3ZlcmxheSgpe31cbi8vIEBtaXhpbiBob29rLW92ZXJsYXktaWNvbigpe31cbi8vIEBtaXhpbiBob29rLW92ZXJsYXktZGVmYXVsdCgpe31cbi8vIEBtaXhpbiBob29rLW92ZXJsYXktcHJpbWFyeSgpe31cbi8vIEBtaXhpbiBob29rLW92ZXJsYXktbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQXJ0aWNsZVxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGFydGljbGVzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstYXJ0aWNsZWBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1hcnRpY2xlLXRpdGxlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYXJ0aWNsZS1tZXRhYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRhcnRpY2xlLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcblxuJGFydGljbGUtdGl0bGUtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtMnhsYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYXJ0aWNsZS10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgJGFydGljbGUtdGl0bGUtZm9udC1zaXplLW0gKiAwLjg1ICFkZWZhdWx0O1xuJGFydGljbGUtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuMiAhZGVmYXVsdDtcblxuJGFydGljbGUtbWV0YS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGFydGljbGUtbWV0YS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcbiRhcnRpY2xlLW1ldGEtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBcnRpY2xlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFydGljbGUge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYXJ0aWNsZSkpIHtAaW5jbHVkZSBob29rLWFydGljbGUoKTt9XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstYXJ0aWNsZSA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIEFkamFjZW50IHNpYmxpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYXJ0aWNsZSArIC51ay1hcnRpY2xlIHtcbiAgICBtYXJnaW4tdG9wOiAkYXJ0aWNsZS1tYXJnaW4tdG9wO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1hcnRpY2xlLWFkamFjZW50KSkge0BpbmNsdWRlIGhvb2stYXJ0aWNsZS1hZGphY2VudCgpO31cbn1cblxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hcnRpY2xlLXRpdGxlIHtcbiAgICBmb250LXNpemU6ICRhcnRpY2xlLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGFydGljbGUtdGl0bGUtbGluZS1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWFydGljbGUtdGl0bGUpKSB7QGluY2x1ZGUgaG9vay1hcnRpY2xlLXRpdGxlKCk7fVxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1hcnRpY2xlLXRpdGxlIHsgZm9udC1zaXplOiAkYXJ0aWNsZS10aXRsZS1mb250LXNpemUtbTsgfVxuXG59XG5cblxuLyogTWV0YVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hcnRpY2xlLW1ldGEge1xuICAgIGZvbnQtc2l6ZTogJGFydGljbGUtbWV0YS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRhcnRpY2xlLW1ldGEtbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6ICRhcnRpY2xlLW1ldGEtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWFydGljbGUtbWV0YSkpIHtAaW5jbHVkZSBob29rLWFydGljbGUtbWV0YSgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1hcnRpY2xlLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1hcnRpY2xlLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWFydGljbGUoKXt9XG4vLyBAbWl4aW4gaG9vay1hcnRpY2xlLWFkamFjZW50KCl7fVxuLy8gQG1peGluIGhvb2stYXJ0aWNsZS10aXRsZSgpe31cbi8vIEBtaXhpbiBob29rLWFydGljbGUtbWV0YSgpe31cbi8vIEBtaXhpbiBob29rLWFydGljbGUtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtYXJ0aWNsZS1tZXRhLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1hcnRpY2xlLXRpdGxlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1hcnRpY2xlLW1ldGEoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBDb21tZW50XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgbmVzdGVkIGNvbW1lbnRzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY29tbWVudGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1jb21tZW50LWJvZHlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb21tZW50LWhlYWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbW1lbnQtdGl0bGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb21tZW50LW1ldGFgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb21tZW50LWF2YXRhcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbW1lbnQtbGlzdGBcbi8vXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay1jb21tZW50LXByaW1hcnlgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGNvbW1lbnQtaGVhZGVyLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4kY29tbWVudC10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xuJGNvbW1lbnQtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcblxuJGNvbW1lbnQtbWV0YS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGNvbW1lbnQtbWV0YS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcbiRjb21tZW50LW1ldGEtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kY29tbWVudC1saXN0LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG4kY29tbWVudC1saXN0LXBhZGRpbmctbGVmdDogICAgICAgICAgICAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcbiRjb21tZW50LWxpc3QtcGFkZGluZy1sZWZ0LW06ICAgICAgICAgICAgICAgICAgICAxMDBweCAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ29tbWVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb21tZW50IHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY29tbWVudCkpIHtAaW5jbHVkZSBob29rLWNvbW1lbnQoKTt9XG59XG5cblxuLyogU2VjdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY29tbWVudC1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvbW1lbnQtYm9keSkpIHtAaW5jbHVkZSBob29rLWNvbW1lbnQtYm9keSgpO31cbn1cblxuLnVrLWNvbW1lbnQtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbW1lbnQtaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvbW1lbnQtaGVhZGVyKSkge0BpbmNsdWRlIGhvb2stY29tbWVudC1oZWFkZXIoKTt9XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstY29tbWVudC1ib2R5ID4gOmxhc3QtY2hpbGQsXG4udWstY29tbWVudC1oZWFkZXIgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb21tZW50LXRpdGxlIHtcbiAgICBmb250LXNpemU6ICRjb21tZW50LXRpdGxlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGNvbW1lbnQtdGl0bGUtbGluZS1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvbW1lbnQtdGl0bGUpKSB7QGluY2x1ZGUgaG9vay1jb21tZW50LXRpdGxlKCk7fVxufVxuXG5cbi8qIE1ldGFcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY29tbWVudC1tZXRhIHtcbiAgICBmb250LXNpemU6ICRjb21tZW50LW1ldGEtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkY29tbWVudC1tZXRhLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiAkY29tbWVudC1tZXRhLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jb21tZW50LW1ldGEpKSB7QGluY2x1ZGUgaG9vay1jb21tZW50LW1ldGEoKTt9XG59XG5cblxuLyogQXZhdGFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbW1lbnQtYXZhdGFyIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY29tbWVudC1hdmF0YXIpKSB7QGluY2x1ZGUgaG9vay1jb21tZW50LWF2YXRhcigpO31cbn1cblxuXG4vKiBMaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbW1lbnQtbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBBZGphY2VudCBzaWJsaW5ncyAqL1xuLnVrLWNvbW1lbnQtbGlzdCA+IDpudGgtY2hpbGQobisyKSB7XG4gICAgbWFyZ2luLXRvcDogJGNvbW1lbnQtbGlzdC1tYXJnaW4tdG9wO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jb21tZW50LWxpc3QtYWRqYWNlbnQpKSB7QGluY2x1ZGUgaG9vay1jb21tZW50LWxpc3QtYWRqYWNlbnQoKTt9XG59XG5cbi8qXG4gKiBTdWJsaXN0c1xuICogTm90ZTogR2VuZXJhbCBzaWJsaW5nIHNlbGVjdG9yIGFsbG93cyByZXBseSBibG9jayBiZXR3ZWVuIGNvbW1lbnQgYW5kIHN1Ymxpc3RcbiAqL1xuXG4udWstY29tbWVudC1saXN0IC51ay1jb21tZW50IH4gdWwge1xuICAgIG1hcmdpbjogJGNvbW1lbnQtbGlzdC1tYXJnaW4tdG9wIDAgMCAwO1xuICAgIHBhZGRpbmctbGVmdDogJGNvbW1lbnQtbGlzdC1wYWRkaW5nLWxlZnQ7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY29tbWVudC1saXN0LXN1YikpIHtAaW5jbHVkZSBob29rLWNvbW1lbnQtbGlzdC1zdWIoKTt9XG59XG5cbi8qIFRhYmxldCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY29tbWVudC1saXN0IC51ay1jb21tZW50IH4gdWwgeyBwYWRkaW5nLWxlZnQ6ICRjb21tZW50LWxpc3QtcGFkZGluZy1sZWZ0LW07IH1cblxufVxuXG4vKiBBZGphY2VudCBzaWJsaW5ncyAqL1xuLnVrLWNvbW1lbnQtbGlzdCAudWstY29tbWVudCB+IHVsID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiAkY29tbWVudC1saXN0LW1hcmdpbi10b3A7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvbW1lbnQtbGlzdC1zdWItYWRqYWNlbnQpKSB7QGluY2x1ZGUgaG9vay1jb21tZW50LWxpc3Qtc3ViLWFkamFjZW50KCk7fVxufVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbW1lbnQtcHJpbWFyeSB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvbW1lbnQtcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLWNvbW1lbnQtcHJpbWFyeSgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1jb21tZW50LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1jb21tZW50LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWNvbW1lbnQoKXt9XG4vLyBAbWl4aW4gaG9vay1jb21tZW50LWJvZHkoKXt9XG4vLyBAbWl4aW4gaG9vay1jb21tZW50LWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLWNvbW1lbnQtdGl0bGUoKXt9XG4vLyBAbWl4aW4gaG9vay1jb21tZW50LW1ldGEoKXt9XG4vLyBAbWl4aW4gaG9vay1jb21tZW50LWF2YXRhcigpe31cbi8vIEBtaXhpbiBob29rLWNvbW1lbnQtbGlzdC1hZGphY2VudCgpe31cbi8vIEBtaXhpbiBob29rLWNvbW1lbnQtbGlzdC1zdWIoKXt9XG4vLyBAbWl4aW4gaG9vay1jb21tZW50LWxpc3Qtc3ViLWFkamFjZW50KCl7fVxuLy8gQG1peGluIGhvb2stY29tbWVudC1wcmltYXJ5KCl7fVxuLy8gQG1peGluIGhvb2stY29tbWVudC1taXNjKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgU2VhcmNoXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgdGhlIHNlYXJjaFxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXNlYXJjaGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1zZWFyY2gtaW5wdXRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWFyY2gtdG9nZ2xlYFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLXNlYXJjaC1pY29uYFxuLy9cbi8vIE1vZGlmaWVyOiAgICAgICAgYHVrLXNlYXJjaC1kZWZhdWx0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VhcmNoLW5hdmJhcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlYXJjaC1sYXJnZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kc2VhcmNoLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kc2VhcmNoLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiRzZWFyY2gtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcblxuJHNlYXJjaC1kZWZhdWx0LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNDBweCAhZGVmYXVsdDtcbiRzZWFyY2gtZGVmYXVsdC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb250cm9sLWhlaWdodCAhZGVmYXVsdDtcbiRzZWFyY2gtZGVmYXVsdC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRzZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHNlYXJjaC1kZWZhdWx0LWZvY3VzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBkYXJrZW4oJHNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcblxuJHNlYXJjaC1kZWZhdWx0LWljb24td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbnRyb2wtaGVpZ2h0ICFkZWZhdWx0O1xuXG4kc2VhcmNoLW5hdmJhci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwMHB4ICFkZWZhdWx0O1xuJHNlYXJjaC1uYXZiYXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MHB4ICFkZWZhdWx0O1xuJHNlYXJjaC1uYXZiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRzZWFyY2gtbmF2YmFyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiRzZWFyY2gtbmF2YmFyLWljb24td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDBweCAhZGVmYXVsdDtcblxuJHNlYXJjaC1sYXJnZS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDBweCAhZGVmYXVsdDtcbiRzZWFyY2gtbGFyZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODBweCAhZGVmYXVsdDtcbiRzZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kc2VhcmNoLWxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtMnhsYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiRzZWFyY2gtbGFyZ2UtaWNvbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgODBweCAhZGVmYXVsdDtcblxuJHNlYXJjaC10b2dnbGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC10b2dnbGUtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTZWFyY2hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ29udGFpbmVyIGZpdHMgaXRzIGNvbnRlbnRcbiAqIDIuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XG4gKiAzLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3dcbiAqIDQuIFJlc2V0IGBmb3JtYFxuICovXG5cbi51ay1zZWFyY2gge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogMiAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiAzICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIDQgKi9cbiAgICBtYXJnaW46IDA7XG59XG5cblxuLyogSW5wdXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgb24gT1MgWCBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxuLnVrLXNlYXJjaC1pbnB1dDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1zZWFyY2gtaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24geyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZXMgcGxhY2Vob2xkZXIgdHJhbnNwYXJlbmN5IGluIEZpcmVmb3guXG4gKi9cblxuLnVrLXNlYXJjaC1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIDEuIERlZmluZSBjb25zaXN0ZW50IGJveCBzaXppbmcuXG4gKiAyLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3gvSUUgYW5kIENocm9tZS9TYWZhcmkvT3BlcmEuXG4gKiAzLiBSZW1vdmUgYGJvcmRlci1yYWRpdXNgIGluIGlPUy5cbiAqIDQuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIGFsbCBicm93c2Vyc1xuICogNS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqIDYuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIGlPUy5cbiAqIDcuIFZlcnRpY2FsIGFsaWdubWVudFxuICogOC4gVGFrZSB0aGUgZnVsbCBjb250YWluZXIgd2lkdGhcbiAqIDkuIFN0eWxlXG4gKi9cblxuLnVrLXNlYXJjaC1pbnB1dCB7XG4gICAgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICAvKiAzICovXG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAvKiA0ICovXG4gICAgZm9udDogaW5oZXJpdDtcbiAgICAvKiA1ICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgLyogNiAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvKiA3ICovXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvKiA4ICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogOSAqL1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogJHNlYXJjaC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2VhcmNoLWlucHV0KSkge0BpbmNsdWRlIGhvb2stc2VhcmNoLWlucHV0KCk7fVxufVxuXG4udWstc2VhcmNoLWlucHV0OmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBQbGFjZWhvbGRlciAqL1xuLnVrLXNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogJHNlYXJjaC1wbGFjZWhvbGRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4udWstc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkc2VhcmNoLXBsYWNlaG9sZGVyLWNvbG9yOyB9XG5cblxuLyogSWNvbiAoQWRvcHRzIGB1ay1pY29uYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgZm9jdXMgc3R5bGVcbiAqL1xuXG4udWstc2VhcmNoLWljb246Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG5cbi8qXG4gKiBQb3NpdGlvbiBhYm92ZSBpbnB1dFxuICogMS4gU2V0IHBvc2l0aW9uXG4gKiAyLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcbiAqIDMuIFN0eWxlXG4gKi9cblxuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24ge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIC8qIDIgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qIDMgKi9cbiAgICBjb2xvcjogJHNlYXJjaC1pY29uLWNvbG9yO1xufVxuXG4vKlxuICogUmVxdWlyZWQgZm9yIGBhYC5cbiAqL1xuXG4udWstc2VhcmNoIC51ay1zZWFyY2gtaWNvbjpob3ZlciB7IGNvbG9yOiAkc2VhcmNoLWljb24tY29sb3I7IH1cblxuLypcbiAqIE1ha2UgYGlucHV0YCBlbGVtZW50IGNsaWNrYWJsZSB0aHJvdWdoIGljb24sIGUuZy4gaWYgaXQncyBhIGBzcGFuYFxuICovXG5cbi51ay1zZWFyY2ggLnVrLXNlYXJjaC1pY29uOm5vdChhKTpub3QoYnV0dG9uKTpub3QoaW5wdXQpIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLypcbiAqIFBvc2l0aW9uIG1vZGlmaWVyXG4gKi9cblxuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24tZmxpcCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbn1cblxuXG4vKiBEZWZhdWx0IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNlYXJjaC1kZWZhdWx0IHsgd2lkdGg6ICRzZWFyY2gtZGVmYXVsdC13aWR0aDsgfVxuXG4vKlxuICogSW5wdXRcbiAqL1xuXG4udWstc2VhcmNoLWRlZmF1bHQgLnVrLXNlYXJjaC1pbnB1dCB7XG4gICAgaGVpZ2h0OiAkc2VhcmNoLWRlZmF1bHQtaGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogJHNlYXJjaC1kZWZhdWx0LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc2VhcmNoLWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zZWFyY2gtZGVmYXVsdC1pbnB1dCkpIHtAaW5jbHVkZSBob29rLXNlYXJjaC1kZWZhdWx0LWlucHV0KCk7fVxufVxuXG4vKiBGb2N1cyAqL1xuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWFyY2gtZGVmYXVsdC1mb2N1cy1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zZWFyY2gtZGVmYXVsdC1pbnB1dC1mb2N1cykpIHtAaW5jbHVkZSBob29rLXNlYXJjaC1kZWZhdWx0LWlucHV0LWZvY3VzKCk7fVxufVxuXG4vKlxuICogSWNvblxuICovXG5cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWljb24geyB3aWR0aDogJHNlYXJjaC1kZWZhdWx0LWljb24td2lkdGg7IH1cblxuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaWNvbjpub3QoLnVrLXNlYXJjaC1pY29uLWZsaXApIH4gLnVrLXNlYXJjaC1pbnB1dCB7IHBhZGRpbmctbGVmdDogKCRzZWFyY2gtZGVmYXVsdC1pY29uLXdpZHRoKTsgfVxuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaWNvbi1mbGlwIH4gLnVrLXNlYXJjaC1pbnB1dCB7IHBhZGRpbmctcmlnaHQ6ICgkc2VhcmNoLWRlZmF1bHQtaWNvbi13aWR0aCk7IH1cblxuXG4vKiBOYXZiYXIgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc2VhcmNoLW5hdmJhciB7IHdpZHRoOiAkc2VhcmNoLW5hdmJhci13aWR0aDsgfVxuXG4vKlxuICogSW5wdXRcbiAqL1xuXG4udWstc2VhcmNoLW5hdmJhciAudWstc2VhcmNoLWlucHV0IHtcbiAgICBoZWlnaHQ6ICRzZWFyY2gtbmF2YmFyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLW5hdmJhci1iYWNrZ3JvdW5kO1xuICAgIGZvbnQtc2l6ZTogJHNlYXJjaC1uYXZiYXItZm9udC1zaXplO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zZWFyY2gtbmF2YmFyLWlucHV0KSkge0BpbmNsdWRlIGhvb2stc2VhcmNoLW5hdmJhci1pbnB1dCgpO31cbn1cblxuLypcbiAqIEljb25cbiAqL1xuXG4udWstc2VhcmNoLW5hdmJhciAudWstc2VhcmNoLWljb24geyB3aWR0aDogJHNlYXJjaC1uYXZiYXItaWNvbi13aWR0aDsgfVxuXG4udWstc2VhcmNoLW5hdmJhciAudWstc2VhcmNoLWljb246bm90KC51ay1zZWFyY2gtaWNvbi1mbGlwKSB+IC51ay1zZWFyY2gtaW5wdXQgeyBwYWRkaW5nLWxlZnQ6ICgkc2VhcmNoLW5hdmJhci1pY29uLXdpZHRoKTsgfVxuLnVrLXNlYXJjaC1uYXZiYXIgLnVrLXNlYXJjaC1pY29uLWZsaXAgfiAudWstc2VhcmNoLWlucHV0IHsgcGFkZGluZy1yaWdodDogKCRzZWFyY2gtbmF2YmFyLWljb24td2lkdGgpOyB9XG5cblxuLyogTGFyZ2UgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc2VhcmNoLWxhcmdlIHsgd2lkdGg6ICRzZWFyY2gtbGFyZ2Utd2lkdGg7IH1cblxuLypcbiAqIElucHV0XG4gKi9cblxuLnVrLXNlYXJjaC1sYXJnZSAudWstc2VhcmNoLWlucHV0IHtcbiAgICBoZWlnaHQ6ICRzZWFyY2gtbGFyZ2UtaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDtcbiAgICBmb250LXNpemU6ICRzZWFyY2gtbGFyZ2UtZm9udC1zaXplO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zZWFyY2gtbGFyZ2UtaW5wdXQpKSB7QGluY2x1ZGUgaG9vay1zZWFyY2gtbGFyZ2UtaW5wdXQoKTt9XG59XG5cbi8qXG4gKiBJY29uXG4gKi9cblxuLnVrLXNlYXJjaC1sYXJnZSAudWstc2VhcmNoLWljb24geyB3aWR0aDogJHNlYXJjaC1sYXJnZS1pY29uLXdpZHRoOyB9XG5cbi51ay1zZWFyY2gtbGFyZ2UgLnVrLXNlYXJjaC1pY29uOm5vdCgudWstc2VhcmNoLWljb24tZmxpcCkgfiAudWstc2VhcmNoLWlucHV0IHsgcGFkZGluZy1sZWZ0OiAoJHNlYXJjaC1sYXJnZS1pY29uLXdpZHRoKTsgfVxuLnVrLXNlYXJjaC1sYXJnZSAudWstc2VhcmNoLWljb24tZmxpcCB+IC51ay1zZWFyY2gtaW5wdXQgeyBwYWRkaW5nLXJpZ2h0OiAoJHNlYXJjaC1sYXJnZS1pY29uLXdpZHRoKTsgfVxuXG5cbi8qIFRvZ2dsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1zZWFyY2gtdG9nZ2xlIHtcbiAgICBjb2xvcjogJHNlYXJjaC10b2dnbGUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlYXJjaC10b2dnbGUpKSB7QGluY2x1ZGUgaG9vay1zZWFyY2gtdG9nZ2xlKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstc2VhcmNoLXRvZ2dsZTpob3Zlcixcbi51ay1zZWFyY2gtdG9nZ2xlOmZvY3VzIHtcbiAgICBjb2xvcjogJHNlYXJjaC10b2dnbGUtaG92ZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlYXJjaC10b2dnbGUtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1zZWFyY2gtdG9nZ2xlLWhvdmVyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLXNlYXJjaC1taXNjKSkge0BpbmNsdWRlIGhvb2stc2VhcmNoLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXNlYXJjaC1pbnB1dCgpe31cbi8vIEBtaXhpbiBob29rLXNlYXJjaC1kZWZhdWx0LWlucHV0KCl7fVxuLy8gQG1peGluIGhvb2stc2VhcmNoLWRlZmF1bHQtaW5wdXQtZm9jdXMoKXt9XG4vLyBAbWl4aW4gaG9vay1zZWFyY2gtbmF2YmFyLWlucHV0KCl7fVxuLy8gQG1peGluIGhvb2stc2VhcmNoLWxhcmdlLWlucHV0KCl7fVxuXG4vLyBAbWl4aW4gaG9vay1zZWFyY2gtdG9nZ2xlKCl7fVxuLy8gQG1peGluIGhvb2stc2VhcmNoLXRvZ2dsZS1ob3Zlcigpe31cblxuLy8gQG1peGluIGhvb2stc2VhcmNoLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLXNlYXJjaC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXNlYXJjaC1wbGFjZWhvbGRlci1jb2xvcjogICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcblxuJGludmVyc2Utc2VhcmNoLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kaW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWZvY3VzLWJhY2tncm91bmQ6ICAgICAgIGZhZGVpbigkaW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG5cbiRpbnZlcnNlLXNlYXJjaC1uYXZiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4kaW52ZXJzZS1zZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuJGludmVyc2Utc2VhcmNoLXRvZ2dsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc2VhcmNoLXRvZ2dsZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1pbnB1dCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2Utc2VhcmNoLWRlZmF1bHQtaW5wdXQtZm9jdXMoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXNlYXJjaC1uYXZiYXItaW5wdXQoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXNlYXJjaC1sYXJnZS1pbnB1dCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2Utc2VhcmNoLXRvZ2dsZSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2Utc2VhcmNoLXRvZ2dsZS1ob3Zlcigpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQWNjb3JkaW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYWNjb3JkaW9uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWFjY29yZGlvbmBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1hY2NvcmRpb24tdGl0bGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hY2NvcmRpb24tY29udGVudGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1vcGVuYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRhY2NvcmRpb24taXRlbS1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAxLjQgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGFjY29yZGlvbi10aXRsZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1jb250ZW50LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEFjY29yZGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hY2NvcmRpb24ge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYWNjb3JkaW9uKSkge0BpbmNsdWRlIGhvb2stYWNjb3JkaW9uKCk7fVxufVxuXG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYWNjb3JkaW9uID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiAkYWNjb3JkaW9uLWl0ZW0tbWFyZ2luLXRvcDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYWNjb3JkaW9uLWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1hY2NvcmRpb24taXRlbSgpO31cbn1cblxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hY2NvcmRpb24tdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRhY2NvcmRpb24tdGl0bGUtbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6ICRhY2NvcmRpb24tdGl0bGUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWFjY29yZGlvbi10aXRsZSkpIHtAaW5jbHVkZSBob29rLWFjY29yZGlvbi10aXRsZSgpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWFjY29yZGlvbi10aXRsZTpob3Zlcixcbi51ay1hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGNvbG9yOiAkYWNjb3JkaW9uLXRpdGxlLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1hY2NvcmRpb24tdGl0bGUtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1hY2NvcmRpb24tdGl0bGUtaG92ZXIoKTt9XG59XG5cblxuLyogQ29udGVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hY2NvcmRpb24tY29udGVudCB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIG1hcmdpbi10b3A6ICRhY2NvcmRpb24tY29udGVudC1tYXJnaW4tdG9wO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1hY2NvcmRpb24tY29udGVudCkpIHtAaW5jbHVkZSBob29rLWFjY29yZGlvbi1jb250ZW50KCk7fVxufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuIC51ay1hY2NvcmRpb24tY29udGVudCA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWFjY29yZGlvbi1taXNjKSkge0BpbmNsdWRlIGhvb2stYWNjb3JkaW9uLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWFjY29yZGlvbigpe31cbi8vIEBtaXhpbiBob29rLWFjY29yZGlvbi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2stYWNjb3JkaW9uLXRpdGxlKCl7fVxuLy8gQG1peGluIGhvb2stYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stYWNjb3JkaW9uLWNvbnRlbnQoKXt9XG4vLyBAbWl4aW4gaG9vay1hY2NvcmRpb24tbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWhvdmVyLWNvbG9yOiAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1hY2NvcmRpb24taXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYWNjb3JkaW9uLXRpdGxlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtaG92ZXIoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBEcm9wXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBwb3NpdGlvbiBhbnkgZWxlbWVudCBuZXh0IHRvIGFueSBvdGhlciBlbGVtZW50LlxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRyb3BgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZHJvcC10b3AtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3AtYm90dG9tLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wLWxlZnQtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3AtcmlnaHQtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3Atc3RhY2tgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wLWdyaWRgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstb3BlbmBcbi8vXG4vLyBVc2VzOiAgICAgICAgICAgIEFuaW1hdGlvblxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRkcm9wLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCArIDIwICFkZWZhdWx0O1xuJGRyb3Atd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAwcHggIWRlZmF1bHQ7XG4kZHJvcC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRHJvcFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICogMy4gU2V0IGEgZGVmYXVsdCB3aWR0aFxuICovXG5cbi51ay1kcm9wIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRkcm9wLXotaW5kZXg7XG4gICAgLyogMyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRkcm9wLXdpZHRoO1xufVxuXG4vKiBTaG93ICovXG4udWstZHJvcC51ay1vcGVuIHsgZGlzcGxheTogYmxvY2s7IH1cblxuXG4vKiBEaXJlY3Rpb24gLyBBbGlnbm1lbnQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRGlyZWN0aW9uICovXG5bY2xhc3MqPSd1ay1kcm9wLXRvcCddIHsgbWFyZ2luLXRvcDogKC0kZHJvcC1tYXJnaW4pOyB9XG5bY2xhc3MqPSd1ay1kcm9wLWJvdHRvbSddIHsgbWFyZ2luLXRvcDogJGRyb3AtbWFyZ2luOyB9XG5bY2xhc3MqPSd1ay1kcm9wLWxlZnQnXSB7IG1hcmdpbi1sZWZ0OiAoLSRkcm9wLW1hcmdpbik7IH1cbltjbGFzcyo9J3VrLWRyb3AtcmlnaHQnXSB7IG1hcmdpbi1sZWZ0OiAkZHJvcC1tYXJnaW47IH1cblxuXG4vKiBHcmlkIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1kcm9wLXN0YWNrIC51ay1kcm9wLWdyaWQgPiAqIHsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWRyb3AtbWlzYykpIHtAaW5jbHVkZSBob29rLWRyb3AtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stZHJvcC1taXNjKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBEcm9wZG93blxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGRyb3Bkb3duIG1lbnVzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstZHJvcGRvd25gXG4vL1xuLy8gQWRvcHRlZDogICAgICAgICBgdWstZHJvcGRvd24tbmF2YFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWRyb3Bkb3duLXRvcC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJvcGRvd24tYm90dG9tLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wZG93bi1sZWZ0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wZG93bi1yaWdodC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJvcGRvd24tc3RhY2tgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wZG93bi1ncmlkYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kZHJvcGRvd24tei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC16LWluZGV4ICsgMjAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tbWluLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4kZHJvcGRvd24tcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZHJvcGRvd24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLW5hdi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tbmF2LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJGRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRHJvcGRvd25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gSGlkZSBieSBkZWZhdWx0XG4gKiAyLiBTZXQgcG9zaXRpb25cbiAqIDMuIFNldCBhIGRlZmF1bHQgd2lkdGhcbiAqIDQuIFN0eWxlXG4gKi9cblxuLnVrLWRyb3Bkb3duIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRkcm9wZG93bi16LWluZGV4O1xuICAgIC8qIDMgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3duLW1pbi13aWR0aDtcbiAgICAvKiA0ICovXG4gICAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRkcm9wZG93bi1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZHJvcGRvd24pKSB7QGluY2x1ZGUgaG9vay1kcm9wZG93bigpO31cbn1cblxuLyogU2hvdyAqL1xuLnVrLWRyb3Bkb3duLnVrLW9wZW4geyBkaXNwbGF5OiBibG9jazsgfVxuXG5cbi8qIE5hdlxuICogQWRvcHRzIGB1ay1uYXZgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWRyb3Bkb3duLW5hdiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZHJvcGRvd24tbmF2KSkge0BpbmNsdWRlIGhvb2stZHJvcGRvd24tbmF2KCk7fVxufVxuXG4vKlxuICogSXRlbXNcbiAqL1xuXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogJGRyb3Bkb3duLW5hdi1pdGVtLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kcm9wZG93bi1uYXYtaXRlbSkpIHtAaW5jbHVkZSBob29rLWRyb3Bkb3duLW5hdi1pdGVtKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICsgQWN0aXZlICovXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhOmhvdmVyLFxuLnVrLWRyb3Bkb3duLW5hdiA+IGxpID4gYTpmb2N1cyxcbi51ay1kcm9wZG93bi1uYXYgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogJGRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kcm9wZG93bi1uYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyKCk7fVxufVxuXG4vKlxuICogSGVhZGVyXG4gKi9cblxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LWhlYWRlciB7XG4gICAgY29sb3I6ICRkcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kcm9wZG93bi1uYXYtaGVhZGVyKSkge0BpbmNsdWRlIGhvb2stZHJvcGRvd24tbmF2LWhlYWRlcigpO31cbn1cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtZGl2aWRlciB7XG4gICAgYm9yZGVyLXRvcDogJGRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kcm9wZG93bi1uYXYtZGl2aWRlcikpIHtAaW5jbHVkZSBob29rLWRyb3Bkb3duLW5hdi1kaXZpZGVyKCk7fVxufVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogJGRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0tY29sb3I7IH1cblxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmhvdmVyLFxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmZvY3VzLFxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHsgY29sb3I6ICRkcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOyB9XG5cblxuLyogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIERpcmVjdGlvbiAqL1xuW2NsYXNzKj0ndWstZHJvcGRvd24tdG9wJ10geyBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bi1tYXJnaW4pOyB9XG5bY2xhc3MqPSd1ay1kcm9wZG93bi1ib3R0b20nXSB7IG1hcmdpbi10b3A6ICRkcm9wZG93bi1tYXJnaW47IH1cbltjbGFzcyo9J3VrLWRyb3Bkb3duLWxlZnQnXSB7IG1hcmdpbi1sZWZ0OiAoLSRkcm9wZG93bi1tYXJnaW4pOyB9XG5bY2xhc3MqPSd1ay1kcm9wZG93bi1yaWdodCddIHsgbWFyZ2luLWxlZnQ6ICRkcm9wZG93bi1tYXJnaW47IH1cblxuXG4vKiBHcmlkIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1kcm9wZG93bi1zdGFjayAudWstZHJvcGRvd24tZ3JpZCA+ICogeyB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1kcm9wZG93bi1taXNjKSkge0BpbmNsdWRlIGhvb2stZHJvcGRvd24tbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stZHJvcGRvd24oKXt9XG4vLyBAbWl4aW4gaG9vay1kcm9wZG93bi1uYXYoKXt9XG4vLyBAbWl4aW4gaG9vay1kcm9wZG93bi1uYXYtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stZHJvcGRvd24tbmF2LWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLWRyb3Bkb3duLW5hdi1kaXZpZGVyKCl7fVxuLy8gQG1peGluIGhvb2stZHJvcGRvd24tbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgTW9kYWxcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBtb2RhbCBkaWFsb2dzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbW9kYWxgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstbW9kYWwtcGFnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWRpYWxvZ2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWhlYWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWJvZHlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tb2RhbC1mb290ZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tb2RhbC10aXRsZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWNsb3NlYFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLW1vZGFsLWNsb3NlLWRlZmF1bHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tb2RhbC1jbG9zZS1vdXRzaWRlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtY2xvc2UtZnVsbGBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1tb2RhbC1jb250YWluZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tb2RhbC1mdWxsYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLW9wZW5gXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJG1vZGFsLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCArIDEwICFkZWZhdWx0O1xuJG1vZGFsLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsMC42KSAhZGVmYXVsdDtcblxuJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLXM6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLW06ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuJG1vZGFsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kbW9kYWwtcGFkZGluZy12ZXJ0aWNhbC1zOiAgICAgICAgICAgICAgICAgICAgICAgNTBweCAhZGVmYXVsdDtcblxuJG1vZGFsLWRpYWxvZy13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwMHB4ICFkZWZhdWx0O1xuJG1vZGFsLWRpYWxvZy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJG1vZGFsLWNvbnRhaW5lci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgIDEyMDBweCAhZGVmYXVsdDtcblxuJG1vZGFsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJG1vZGFsLWJvZHktcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuXG4kbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgKCRtb2RhbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsIC8gMikgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgKCRtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsIC8gMikgIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kbW9kYWwtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC14bGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xuJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIDEuMyAhZGVmYXVsdDtcblxuJG1vZGFsLWNsb3NlLXBvc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xuJG1vZGFsLWNsb3NlLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcblxuJG1vZGFsLWNsb3NlLW91dHNpZGUtcG9zaXRpb246ICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kbW9kYWwtY2xvc2Utb3V0c2lkZS10cmFuc2xhdGU6ICAgICAgICAgICAgICAgICAgMTAwJSAhZGVmYXVsdDtcbiRtb2RhbC1jbG9zZS1vdXRzaWRlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKCRnbG9iYWwtaW52ZXJzZS1jb2xvciwgMjAlKSAhZGVmYXVsdDtcbiRtb2RhbC1jbG9zZS1vdXRzaWRlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE1vZGFsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBBbGxvdyBzY3JvbGxpbmcgZm9yIHRoZSBtb2RhbCBkaWFsb2dcbiAqIDQuIEhvcml6b250YWwgcGFkZGluZ1xuICogNS4gTWFzayB0aGUgYmFja2dyb3VuZCBwYWdlXG4gKiA2LiBGYWRlLWluIHRyYW5zaXRpb25cbiAqL1xuXG4udWstbW9kYWwge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6ICRtb2RhbC16LWluZGV4O1xuICAgIC8qIDMgKi9cbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAvKiA0ICovXG4gICAgcGFkZGluZzogJG1vZGFsLXBhZGRpbmctdmVydGljYWwgJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAvKiA1ICovXG4gICAgYmFja2dyb3VuZDogJG1vZGFsLWJhY2tncm91bmQ7XG4gICAgLyogNiAqL1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsKSkge0BpbmNsdWRlIGhvb2stbW9kYWwoKTt9XG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1tb2RhbCB7IHBhZGRpbmc6ICRtb2RhbC1wYWRkaW5nLXZlcnRpY2FsLXMgJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbC1zOyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstbW9kYWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwtbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbC1tO1xuICAgIH1cblxufVxuXG4vKlxuICogT3BlblxuICovXG5cbi51ay1tb2RhbC51ay1vcGVuIHsgb3BhY2l0eTogMTsgfVxuXG5cbi8qIFBhZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUHJldmVudCBzY3JvbGxiYXJzXG4gKi9cblxuLnVrLW1vZGFsLXBhZ2UgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG5cblxuLyogRGlhbG9nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IGZvciBzcGlubmVyIGFuZCBjbG9zZSBidXR0b25cbiAqIDIuIERpbWVuc2lvbnNcbiAqIDMuIEZpeCBgbWF4LXdpZHRoOiAxMDAlYCBub3Qgd29ya2luZyBpbiBjb21iaW5hdGlvbiB3aXRoIGZsZXggYW5kIHJlc3BvbnNpdmUgaW1hZ2VzIGluIElFMTFcbiAqICAgIGAhaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcndyaXRlIGB1ay13aWR0aC1hdXRvYC4gU2VlIGAjbW9kYWwtbWVkaWEtaW1hZ2VgIGluIHRlc3RzXG4gKiA0LiBTdHlsZVxuICogNS4gU2xpZGUtaW4gdHJhbnNpdGlvblxuICovXG5cbi51ay1tb2RhbC1kaWFsb2cge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6ICRtb2RhbC1kaWFsb2ctd2lkdGg7XG4gICAgLyogMyAqL1xuICAgIG1heC13aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlIC0gMC4wMXB4KScpICFpbXBvcnRhbnQ7XG4gICAgLyogNCAqL1xuICAgIGJhY2tncm91bmQ6ICRtb2RhbC1kaWFsb2ctYmFja2dyb3VuZDtcbiAgICAvKiA1ICovXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMHB4KTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGxpbmVhcjtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWRpYWxvZykpIHtAaW5jbHVkZSBob29rLW1vZGFsLWRpYWxvZygpO31cbn1cblxuLypcbiAqIE9wZW5cbiAqL1xuXG4udWstb3BlbiA+IC51ay1tb2RhbC1kaWFsb2cge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQ29udGFpbmVyIHNpemVcbiAqIFRha2UgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgQ29udGFpbmVyIGNvbXBvbmVudFxuICovXG5cbi51ay1tb2RhbC1jb250YWluZXIgLnVrLW1vZGFsLWRpYWxvZyB7IHdpZHRoOiAkbW9kYWwtY29udGFpbmVyLXdpZHRoOyB9XG5cbi8qXG4gKiBGdWxsIHNpemVcbiAqIDEuIFJlbW92ZSBwYWRkaW5nIGFuZCBiYWNrZ3JvdW5kIGZyb20gbW9kYWxcbiAqIDIuIFJlc2V0IGFsbCBkZWZhdWx0IGRlY2xhcmF0aW9ucyBmcm9tIG1vZGFsIGRpYWxvZ1xuICovXG5cbi8qIDEgKi9cbi51ay1tb2RhbC1mdWxsIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi8qIDIgKi9cbi51ay1tb2RhbC1mdWxsIC51ay1tb2RhbC1kaWFsb2cge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1tb2RhbC1mdWxsKSkge0BpbmNsdWRlIGhvb2stbW9kYWwtZnVsbCgpO31cbn1cblxuXG4vKiBTZWN0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1tb2RhbC1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgcGFkZGluZzogJG1vZGFsLWJvZHktcGFkZGluZy12ZXJ0aWNhbCAkbW9kYWwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWJvZHkpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1ib2R5KCk7fVxufVxuXG4udWstbW9kYWwtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgcGFkZGluZzogJG1vZGFsLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsICRtb2RhbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJhY2tncm91bmQ6ICRtb2RhbC1oZWFkZXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtaGVhZGVyKSkge0BpbmNsdWRlIGhvb2stbW9kYWwtaGVhZGVyKCk7fVxufVxuXG4udWstbW9kYWwtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgcGFkZGluZzogJG1vZGFsLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsICRtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJhY2tncm91bmQ6ICRtb2RhbC1mb290ZXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtZm9vdGVyKSkge0BpbmNsdWRlIGhvb2stbW9kYWwtZm9vdGVyKCk7fVxufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLW1vZGFsLWJvZHkgPiA6bGFzdC1jaGlsZCxcbi51ay1tb2RhbC1oZWFkZXIgPiA6bGFzdC1jaGlsZCxcbi51ay1tb2RhbC1mb290ZXIgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1tb2RhbC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAkbW9kYWwtdGl0bGUtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLXRpdGxlKSkge0BpbmNsdWRlIGhvb2stbW9kYWwtdGl0bGUoKTt9XG59XG5cblxuLyogQ2xvc2VcbiAqIEFkb3B0cyBgdWstY2xvc2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2NsYXNzKj0ndWstbW9kYWwtY2xvc2UtJ10ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkbW9kYWwtei1pbmRleDtcbiAgICB0b3A6ICRtb2RhbC1jbG9zZS1wb3NpdGlvbjtcbiAgICByaWdodDogJG1vZGFsLWNsb3NlLXBvc2l0aW9uO1xuICAgIHBhZGRpbmc6ICRtb2RhbC1jbG9zZS1wYWRkaW5nO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1tb2RhbC1jbG9zZSkpIHtAaW5jbHVkZSBob29rLW1vZGFsLWNsb3NlKCk7fVxufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIGFkamFjZW50IGVsZW1lbnRcbiAqL1xuXG5bY2xhc3MqPSd1ay1tb2RhbC1jbG9zZS0nXTpmaXJzdC1jaGlsZCArICogeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qXG4gKiBIb3ZlclxuICovXG5cbltjbGFzcyo9J3VrLW1vZGFsLWNsb3NlLSddOmhvdmVyIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtY2xvc2UtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1ob3ZlcigpO31cbn1cblxuLypcbiAqIERlZmF1bHRcbiAqL1xuXG4udWstbW9kYWwtY2xvc2UtZGVmYXVsdCB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLWRlZmF1bHQpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0KCk7fVxufVxuXG4udWstbW9kYWwtY2xvc2UtZGVmYXVsdDpob3ZlciB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLWRlZmF1bHQtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0LWhvdmVyKCk7fVxufVxuXG4vKlxuICogT3V0c2lkZVxuICogMS4gUHJldmVudCBzY3JvbGxiYXIgb24gc21hbGwgZGV2aWNlc1xuICovXG5cbi51ay1tb2RhbC1jbG9zZS1vdXRzaWRlIHtcbiAgICB0b3A6ICRtb2RhbC1jbG9zZS1vdXRzaWRlLXBvc2l0aW9uO1xuICAgIC8qIDEgKi9cbiAgICByaWdodDogKC0kbW9kYWwtY2xvc2UtcGFkZGluZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLSgkbW9kYWwtY2xvc2Utb3V0c2lkZS10cmFuc2xhdGUpKTtcbiAgICBjb2xvcjogJG1vZGFsLWNsb3NlLW91dHNpZGUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLW91dHNpZGUpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlKCk7fVxufVxuXG4udWstbW9kYWwtY2xvc2Utb3V0c2lkZTpob3ZlciB7XG4gICAgY29sb3I6ICRtb2RhbC1jbG9zZS1vdXRzaWRlLWhvdmVyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbW9kYWwtY2xvc2Utb3V0c2lkZS1ob3ZlcigpO31cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAvKiAxICovXG4gICAgLnVrLW1vZGFsLWNsb3NlLW91dHNpZGUge1xuICAgICAgICByaWdodDogJG1vZGFsLWNsb3NlLW91dHNpZGUtcG9zaXRpb247XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKCRtb2RhbC1jbG9zZS1vdXRzaWRlLXRyYW5zbGF0ZSwgLSgkbW9kYWwtY2xvc2Utb3V0c2lkZS10cmFuc2xhdGUpKTtcbiAgICB9XG5cbn1cblxuLypcbiAqIEZ1bGxcbiAqL1xuXG4udWstbW9kYWwtY2xvc2UtZnVsbCB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLWZ1bGwpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1mdWxsKCk7fVxufVxuXG4udWstbW9kYWwtY2xvc2UtZnVsbDpob3ZlciB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLWZ1bGwtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1mdWxsLWhvdmVyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1tb2RhbCgpe31cbi8vIEBtaXhpbiBob29rLW1vZGFsLWRpYWxvZygpe31cbi8vIEBtaXhpbiBob29rLW1vZGFsLWZ1bGwoKXt9XG4vLyBAbWl4aW4gaG9vay1tb2RhbC1oZWFkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1tb2RhbC1ib2R5KCl7fVxuLy8gQG1peGluIGhvb2stbW9kYWwtZm9vdGVyKCl7fVxuLy8gQG1peGluIGhvb2stbW9kYWwtdGl0bGUoKXt9XG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZSgpe31cbi8vIEBtaXhpbiBob29rLW1vZGFsLWNsb3NlLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stbW9kYWwtY2xvc2UtZGVmYXVsdCgpe31cbi8vIEBtaXhpbiBob29rLW1vZGFsLWNsb3NlLWRlZmF1bHQtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlKCl7fVxuLy8gQG1peGluIGhvb2stbW9kYWwtY2xvc2Utb3V0c2lkZS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLW1vZGFsLWNsb3NlLWZ1bGwoKXt9XG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1mdWxsLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stbW9kYWwtbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgU2xpZGVzaG93XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgc2xpZGVzaG93c1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXNsaWRlc2hvd2Bcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1zbGlkZXNob3ctaXRlbXNgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTbGlkZXNob3dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cbiAqL1xuXG4udWstc2xpZGVzaG93IHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2xpZGVzaG93KSkge0BpbmNsdWRlIGhvb2stc2xpZGVzaG93KCk7fVxufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBhbmQgc3RhY2tpbmcgY29udGV4dFxuICogMi4gUmVzZXQgbGlzdFxuICogMy4gQ2xpcCBjaGlsZCBlbGVtZW50c1xuICogNC4gUHJldmVudCBkaXNwbGF5aW5nIHRoZSBjYWxsb3V0IGluZm9ybWF0aW9uIG9uIGlPUy5cbiAqL1xuXG4udWstc2xpZGVzaG93LWl0ZW1zIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogNCAqL1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cblxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFBvc2l0aW9uIGl0ZW1zIGFib3ZlIGVhY2ggb3RoZXJcbiAqIDIuIFRha2UgdGhlIGZ1bGwgd2lkdGhcbiAqIDMuIENsaXAgY2hpbGQgZWxlbWVudHMsIGUuZy4gZm9yIGB1ay1jb3ZlcmBcbiAqIDQuIE9wdGltaXplIGFuaW1hdGlvblxuICogNS4gRGlzYWJsZSBob3Jpem9udGFsIHBhbm5pbmcgZ2VzdHVyZXMgaW4gSUUxMSBhbmQgRWRnZVxuICogNi4gU3VwcHJlc3Mgb3V0bGluZSBvbiBmb2N1c1xuICovXG5cbi51ay1zbGlkZXNob3ctaXRlbXMgPiAqIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIC8qIDIgKi9cbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgLyogMyAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogNCAqL1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgLyogNSAqL1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG5cbi8qIDYgKi9cbi51ay1zbGlkZXNob3ctaXRlbXMgPiA6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG5cbi8qXG4gKiBIaWRlIG5vdCBhY3RpdmUgaXRlbXNcbiAqL1xuXG4udWstc2xpZGVzaG93LWl0ZW1zID4gOm5vdCgudWstYWN0aXZlKSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZXNob3ctbWlzYykpIHtAaW5jbHVkZSBob29rLXNsaWRlc2hvdy1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1zbGlkZXNob3coKXt9XG4vLyBAbWl4aW4gaG9vay1zbGlkZXNob3ctbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgU2xpZGVyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgaG9yaXpvbnRhbCBzbGlkZXJzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc2xpZGVyYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLXNsaWRlci1jb250YWluZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zbGlkZXItaXRlbXNgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRzbGlkZXItY29udGFpbmVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgLTExcHggIWRlZmF1bHQ7XG4kc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAgICAgICAgIC0zOXB4ICFkZWZhdWx0O1xuJHNsaWRlci1jb250YWluZXItbWFyZ2luLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAtMjVweCAhZGVmYXVsdDtcbiRzbGlkZXItY29udGFpbmVyLW1hcmdpbi1yaWdodDogICAgICAgICAgICAgICAgICAgICAgLTI1cHggIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNsaWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG5cbi51ay1zbGlkZXIge1xuICAgIC8qIDEgKi9cbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZXIpKSB7QGluY2x1ZGUgaG9vay1zbGlkZXIoKTt9XG59XG5cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIENsaXAgY2hpbGQgZWxlbWVudHNcbiAqL1xuXG4udWstc2xpZGVyLWNvbnRhaW5lciB7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIFdpZGVuIGNvbnRhaW5lciB0byBwcmV2ZW50IGJveC1zaGFkb3dzIGZyb20gY2xpcHBpbmcsIGBsYXJnZS1ib3gtc2hhZG93YFxuICovXG5cbi51ay1zbGlkZXItY29udGFpbmVyLW9mZnNldCB7XG4gICAgbWFyZ2luOiAkc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tdG9wICRzbGlkZXItY29udGFpbmVyLW1hcmdpbi1yaWdodCAkc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tYm90dG9tICRzbGlkZXItY29udGFpbmVyLW1hcmdpbi1sZWZ0O1xuICAgIHBhZGRpbmc6ICgkc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tdG9wICogLTEpICgkc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tcmlnaHQgKiAtMSkgKCRzbGlkZXItY29udGFpbmVyLW1hcmdpbi1ib3R0b20gKiAtMSkgKCRzbGlkZXItY29udGFpbmVyLW1hcmdpbi1sZWZ0ICogLTEpO1xufVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBPcHRpbWl6ZSBhbmltYXRpb25cbiAqIDIuIENyZWF0ZSBhIGNvbnRhaW5pbmcgYmxvY2suIEluIFNhZmFyaSBpdCdzIG5laXRoZXIgY3JlYXRlZCBieSBgdHJhbnNmb3JtYCBub3IgYHdpbGwtY2hhbmdlYC5cbiAqL1xuXG4udWstc2xpZGVyLWl0ZW1zIHtcbiAgICAvKiAxICovXG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKlxuICogMS4gUmVzZXQgbGlzdCBzdHlsZSB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggZ3JpZFxuICogMi4gUHJldmVudCBkaXNwbGF5aW5nIHRoZSBjYWxsb3V0IGluZm9ybWF0aW9uIG9uIGlPUy5cbiAqL1xuXG4udWstc2xpZGVyLWl0ZW1zOm5vdCgudWstZ3JpZCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cblxuLnVrLXNsaWRlci1pdGVtcy51ay1ncmlkIHsgZmxleC13cmFwOiBub3dyYXA7IH1cblxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIExldCBpdGVtcyB0YWtlIGNvbnRlbnQgZGltZW5zaW9ucyAoMCAwIGF1dG8pXG4gKiAgICBgbWF4LXdpZHRoYCBuZWVkZWQgdG8ga2VlcCBpbWFnZSByZXNwb25zaXZlbmVzcyBhbmQgcHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICogNC4gRGlzYWJsZSBob3Jpem9udGFsIHBhbm5pbmcgZ2VzdHVyZXMgaW4gSUUxMSBhbmQgRWRnZVxuICogNS4gU3VwcHJlc3Mgb3V0bGluZSBvbiBmb2N1c1xuICovXG5cbi51ay1zbGlkZXItaXRlbXMgPiAqIHtcbiAgICAvKiAxICovXG4gICAgZmxleDogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogMyAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiA0ICovXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbn1cblxuLyogNSAqL1xuLnVrLXNsaWRlci1pdGVtcyA+IDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZXItbWlzYykpIHtAaW5jbHVkZSBob29rLXNsaWRlci1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1zbGlkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1zbGlkZXItbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgU3RpY2t5XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBtYWtlIGVsZW1lbnRzIHN0aWNreSBpbiB0aGUgdmlld3BvcnRcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1zdGlja3lgXG4vL1xuLy8gTW9kaWZpZXI6ICAgICAgICBgdWstc3RpY2t5LWZpeGVkYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kc3RpY2t5LXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC16LWluZGV4IC0gMjAgIWRlZmF1bHQ7XG5cbiRzdGlja3ktYW5pbWF0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAwLjJzICFkZWZhdWx0O1xuJHN0aWNreS1yZXZlcnNlLWFuaW1hdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgIDAuMnMgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFN0aWNreVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBGb3JjZSBuZXcgbGF5ZXIgdG8gcmVzb2x2ZSBmcmFtZSByYXRlIGlzc3VlcyBvbiBkZXZpY2VzIHdpdGggbG93ZXIgZnJhbWUgcmF0ZXNcbiAqL1xuXG4udWstc3RpY2t5LWZpeGVkIHtcbiAgICB6LWluZGV4OiAkc3RpY2t5LXotaW5kZXg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKlxuICogRmFzdGVyIGFuaW1hdGlvbnNcbiAqL1xuXG4udWstc3RpY2t5W2NsYXNzKj0ndWstYW5pbWF0aW9uLSddIHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkc3RpY2t5LWFuaW1hdGlvbi1kdXJhdGlvbjsgfVxuXG4udWstc3RpY2t5LnVrLWFuaW1hdGlvbi1yZXZlcnNlIHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkc3RpY2t5LXJldmVyc2UtYW5pbWF0aW9uLWR1cmF0aW9uOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stc3RpY2t5LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1zdGlja3ktbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stc3RpY2t5LW1pc2MoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIE9mZi1jYW52YXNcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhbiBvZmYtY2FudmFzIHNpZGViYXJcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1vZmZjYW52YXNgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstb2ZmY2FudmFzLWJhcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9mZmNhbnZhcy1jb250YWluZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vZmZjYW52YXMtcGFnZWBcbi8vXG4vLyBBZG9wdGVkOiAgICAgICAgIGB1ay1vZmZjYW52YXMtY2xvc2VgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstb2ZmY2FudmFzLWZsaXBgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vZmZjYW52YXMtYmFyLWFuaW1hdGlvbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9mZmNhbnZhcy1yZXZlYWxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vZmZjYW52YXMtb3ZlcmxheWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9mZmNhbnZhcy1jb250YWluZXItYW5pbWF0aW9uYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLW9wZW5gXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJG9mZmNhbnZhcy16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1iYXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI3MHB4ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1iYXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1iYXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1iYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWJhci1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgbGlnaHQgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtYmFyLXdpZHRoLW06ICAgICAgICAgICAgICAgICAgICAgICAgICAzNTBweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtYmFyLXBhZGRpbmctdmVydGljYWwtbTogICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWJhci1wYWRkaW5nLWhvcml6b250YWwtbTogICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLWNsb3NlLXBvc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgMjBweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtY2xvc2UtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICByZ2JhKDAsMCwwLDAuMSkgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE9mZi1jYW52YXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gSGlkZSBieSBkZWZhdWx0XG4gKiAyLiBTZXQgcG9zaXRpb25cbiAqL1xuXG4udWstb2ZmY2FudmFzIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLXotaW5kZXg7XG59XG5cbi8qXG4gKiBGbGlwIG1vZGlmaWVyXG4gKi9cblxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG59XG5cblxuLyogQmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNldCBwb3NpdGlvblxuICogMi4gU2l6ZSBhbmQgc3R5bGVcbiAqIDMuIEFsbG93IHNjcm9sbGluZ1xuICovXG5cbi51ay1vZmZjYW52YXMtYmFyIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogKC0kb2ZmY2FudmFzLWJhci13aWR0aCk7XG4gICAgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRvZmZjYW52YXMtYmFyLXdpZHRoO1xuICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtYmFyLXBhZGRpbmctdmVydGljYWwgJG9mZmNhbnZhcy1iYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFyLWJhY2tncm91bmQ7XG4gICAgLyogMyAqL1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1vZmZjYW52YXMtYmFyKSkge0BpbmNsdWRlIGhvb2stb2ZmY2FudmFzLWJhcigpO31cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstb2ZmY2FudmFzLWJhciB7XG4gICAgICAgIGxlZnQ6ICgtJG9mZmNhbnZhcy1iYXItd2lkdGgtbSk7XG4gICAgICAgIHdpZHRoOiAkb2ZmY2FudmFzLWJhci13aWR0aC1tO1xuICAgICAgICBwYWRkaW5nOiAkb2ZmY2FudmFzLWJhci1wYWRkaW5nLXZlcnRpY2FsLW0gJG9mZmNhbnZhcy1iYXItcGFkZGluZy1ob3Jpem9udGFsLW07XG4gICAgfVxuXG59XG5cbi8vIENvbG9yIE1vZGVcbkBpZiAoICRvZmZjYW52YXMtYmFyLWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1vZmZjYW52YXMtYmFyIHsgQGV4dGVuZCAudWstbGlnaHQgIW9wdGlvbmFsO30gfVxuQGlmICggJG9mZmNhbnZhcy1iYXItY29sb3ItbW9kZSA9PSBkYXJrICkgeyAudWstb2ZmY2FudmFzLWJhciB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxuXG4vKiBGbGlwIG1vZGlmaWVyICovXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6ICgtJG9mZmNhbnZhcy1iYXItd2lkdGgpO1xufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1vZmZjYW52YXMtZmxpcCAudWstb2ZmY2FudmFzLWJhciB7IHJpZ2h0OiAoLSRvZmZjYW52YXMtYmFyLXdpZHRoLW0pOyB9XG5cbn1cblxuLypcbiAqIE9wZW5cbiAqL1xuXG4udWstb3BlbiA+IC51ay1vZmZjYW52YXMtYmFyIHsgbGVmdDogMDsgfVxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vcGVuID4gLnVrLW9mZmNhbnZhcy1iYXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG59XG5cbi8qXG4gKiBTbGlkZSBBbmltYXRpb24gKFVzZWQgaW4gc2xpZGUgYW5kIHB1c2ggbW9kZSlcbiAqL1xuXG4udWstb2ZmY2FudmFzLWJhci1hbmltYXRpb24geyB0cmFuc2l0aW9uOiBsZWZ0IDAuM3MgZWFzZS1vdXQ7IH1cbi51ay1vZmZjYW52YXMtZmxpcCAudWstb2ZmY2FudmFzLWJhci1hbmltYXRpb24geyB0cmFuc2l0aW9uLXByb3BlcnR5OiByaWdodDsgfVxuXG4vKlxuICogUmV2ZWFsIEFuaW1hdGlvblxuICogMS4gU2V0IHBvc2l0aW9uXG4gKiAyLiBDbGlwIHRoZSBiYXJcbiAqIDMuIEFuaW1hdGlvblxuICogNC4gUmVzZXQgcG9zaXRpb25cbiAqL1xuXG4udWstb2ZmY2FudmFzLXJldmVhbCB7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLyogMiAqL1xuICAgIHdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogMyAqL1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZS1vdXQ7XG59XG5cbi51ay1vZmZjYW52YXMtcmV2ZWFsIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgICAvKiA0ICovXG4gICAgbGVmdDogMDtcbn1cblxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtcmV2ZWFsIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgICAvKiA0ICovXG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbn1cblxuLnVrLW9wZW4gPiAudWstb2ZmY2FudmFzLXJldmVhbCB7IHdpZHRoOiAkb2ZmY2FudmFzLWJhci13aWR0aDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1vcGVuID4gLnVrLW9mZmNhbnZhcy1yZXZlYWwgeyB3aWR0aDogJG9mZmNhbnZhcy1iYXItd2lkdGgtbTsgfVxuXG59XG5cbi8qXG4gKiBGbGlwIG1vZGlmaWVyXG4gKi9cblxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtcmV2ZWFsIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG5cbi8qIENsb3NlXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1vZmZjYW52YXMtY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLXotaW5kZXg7XG4gICAgdG9wOiAkb2ZmY2FudmFzLWNsb3NlLXBvc2l0aW9uO1xuICAgIHJpZ2h0OiAkb2ZmY2FudmFzLWNsb3NlLXBvc2l0aW9uO1xuICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtY2xvc2UtcGFkZGluZztcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stb2ZmY2FudmFzLWNsb3NlKSkge0BpbmNsdWRlIGhvb2stb2ZmY2FudmFzLWNsb3NlKCk7fVxufVxuXG5cbi8qIE92ZXJsYXlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogT3ZlcmxheSB0aGUgd2hvbGUgcGFnZS4gTmVlZGVkIGZvciB0aGUgYDo6YmVmb3JlYFxuICogMS4gVXNpbmcgYDEwMHZ3YCBzbyBubyBtb2RpZmljYXRpb24gaXMgbmVlZGVkIHdoZW4gb2ZmLWNhbnZhcyBpcyBmbGlwcGVkXG4gKiAyLiBBbGxvdyBmb3IgY2xvc2luZyB3aXRoIHN3aXBlIGdlc3R1cmUgb24gZGV2aWNlcyB3aXRoIHBvaW50ZXIgZXZlbnRzLlxuICovXG5cbi51ay1vZmZjYW52YXMtb3ZlcmxheSB7XG4gICAgLyogMSAqL1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICAvKiAyICovXG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vKlxuICogMS4gTWFzayB0aGUgd2hvbGUgcGFnZVxuICogMi4gRmFkZS1pbiB0cmFuc2l0aW9uXG4gKi9cblxuLnVrLW9mZmNhbnZhcy1vdmVybGF5OjpiZWZvcmUge1xuICAgIC8qIDEgKi9cbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1vdmVybGF5LWJhY2tncm91bmQ7XG4gICAgLyogMiAqL1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW9mZmNhbnZhcy1vdmVybGF5KSkge0BpbmNsdWRlIGhvb2stb2ZmY2FudmFzLW92ZXJsYXkoKTt9XG59XG5cbi51ay1vZmZjYW52YXMtb3ZlcmxheS51ay1vcGVuOjpiZWZvcmUgeyBvcGFjaXR5OiAxOyB9XG5cblxuLyogUHJldmVudCBzY3JvbGxpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUHJldmVudCBob3Jpem9udGFsIHNjcm9sbGJhciB3aGVuIHRoZSBjb250ZW50IGlzIHNsaWRlLW91dFxuICogSGFzIHRvIGJlIG9uIHRoZSBgaHRtbGAgZWxlbWVudCB0b28gdG8gbWFrZSBpdCB3b3JrIG9uIHRoZSBgYm9keWBcbiAqL1xuXG4udWstb2ZmY2FudmFzLXBhZ2UsXG4udWstb2ZmY2FudmFzLWNvbnRhaW5lciB7IG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQcmVwYXJlIHNsaWRlLW91dCBhbmltYXRpb24gKFVzZWQgaW4gcmV2ZWFsIGFuZCBwdXNoIG1vZGUpXG4gKiBVc2luZyBgcG9zaXRpb246IGxlZnRgIGluc3RlYWQgb2YgYHRyYW5zZm9ybWAgYmVjYXVzZSBwb3NpdGlvbiBgZml4ZWRgIGVsZW1lbnRzIGxpa2Ugc3RpY2t5IG5hdmJhcnNcbiAqIGxvc2UgdGhlaXIgZml4ZWQgc3RhdGUgYW5kIGJlaGF2ZXMgbGlrZSBgYWJzb2x1dGVgIHdpdGhpbiBhIHRyYW5zZm9ybWVkIGNvbnRhaW5lclxuICogMS4gUHJvdmlkZSBhIGZpeGVkIHdpZHRoIGFuZCBwcmV2ZW50IHNocmlua2luZ1xuICovXG5cbi51ay1vZmZjYW52YXMtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuM3MgZWFzZS1vdXQ7XG4gICAgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8qXG4gKiBBY3RpdmF0ZSBzbGlkZS1vdXQgYW5pbWF0aW9uXG4gKi9cblxuOm5vdCgudWstb2ZmY2FudmFzLWZsaXApLnVrLW9mZmNhbnZhcy1jb250YWluZXItYW5pbWF0aW9uIHsgbGVmdDogJG9mZmNhbnZhcy1iYXItd2lkdGg7IH1cblxuLnVrLW9mZmNhbnZhcy1mbGlwLnVrLW9mZmNhbnZhcy1jb250YWluZXItYW5pbWF0aW9uIHsgbGVmdDogKC0kb2ZmY2FudmFzLWJhci13aWR0aCk7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICA6bm90KC51ay1vZmZjYW52YXMtZmxpcCkudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24geyBsZWZ0OiAkb2ZmY2FudmFzLWJhci13aWR0aC1tOyB9XG5cbiAgICAudWstb2ZmY2FudmFzLWZsaXAudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24geyBsZWZ0OiAoLSRvZmZjYW52YXMtYmFyLXdpZHRoLW0pOyB9XG5cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1vZmZjYW52YXMtbWlzYykpIHtAaW5jbHVkZSBob29rLW9mZmNhbnZhcy1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1vZmZjYW52YXMtYmFyKCl7fVxuLy8gQG1peGluIGhvb2stb2ZmY2FudmFzLWNsb3NlKCl7fVxuLy8gQG1peGluIGhvb2stb2ZmY2FudmFzLW92ZXJsYXkoKXt9XG4vLyBAbWl4aW4gaG9vay1vZmZjYW52YXMtbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgU3dpdGNoZXJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIG5hdmlnYXRlIHRocm91Z2ggZGlmZmVyZW50IGNvbnRlbnQgcGFuZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1zd2l0Y2hlcmBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFN3aXRjaGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlc2V0IGxpc3RcbiAqL1xuXG4udWstc3dpdGNoZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSGlkZSBub3QgYWN0aXZlIGl0ZW1zXG4gKi9cblxuLnVrLXN3aXRjaGVyID4gOm5vdCgudWstYWN0aXZlKSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1zd2l0Y2hlciA+ICogPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1zd2l0Y2hlci1taXNjKSkge0BpbmNsdWRlIGhvb2stc3dpdGNoZXItbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stc3dpdGNoZXItbWlzYygpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIExlYWRlclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGRvdCBsZWFkZXJzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbGVhZGVyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRsZWFkZXItZmlsbC1jb250ZW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnF1b3RlKCcuJykgIWRlZmF1bHQ7XG4kbGVhZGVyLWZpbGwtbWFyZ2luLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IExlYWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1sZWFkZXIgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qXG4gKiAxLiBQbGFjZSBlbGVtZW50IGluIHRleHQgZmxvd1xuICogMi4gTmV2ZXIgYnJlYWsgaW50byBhIG5ldyBsaW5lXG4gKiAzLiBHZXQgYSBzdHJpbmcgYmFjayB3aXRoIGFzIG1hbnkgcmVwZWF0aW5nIGNoYXJhY3RlcnMgdG8gZmlsbCB0aGUgY29udGFpbmVyXG4gKiA0LiBQcmV2ZW50IHdyYXBwaW5nLiBPdmVyZmxvd2luZyBjaGFyYWN0ZXJzIHdpbGwgYmUgY2xpcHBlZCBieSB0aGUgY29udGFpbmVyXG4gKi9cblxuLnVrLWxlYWRlci1maWxsOjphZnRlciB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogJGxlYWRlci1maWxsLW1hcmdpbi1sZWZ0O1xuICAgIC8qIDIgKi9cbiAgICB3aWR0aDogMDtcbiAgICAvKiAzICovXG4gICAgY29udGVudDogYXR0cihkYXRhLWZpbGwpO1xuICAgIC8qIDQgKi9cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1sZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1sZWFkZXIoKTt9XG59XG5cbi8qXG4gKiBIaWRlIGlmIG1lZGlhIGRvZXMgbm90IG1hdGNoXG4gKi9cblxuLnVrLWxlYWRlci1maWxsLnVrLWxlYWRlci1oaWRlOjphZnRlciB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqIFBhc3MgZmlsbCBjaGFyYWN0ZXIgdG8gSlNcbiAqL1xuXG4udWstbGVhZGVyLWZpbGwtY29udGVudDo6YmVmb3JlIHsgY29udGVudDogJyN7JGxlYWRlci1maWxsLWNvbnRlbnR9JzsgfVxuOnJvb3QgeyAtLXVrLWxlYWRlci1maWxsLWNvbnRlbnQ6ICN7JGxlYWRlci1maWxsLWNvbnRlbnR9OyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stbGVhZGVyLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1sZWFkZXItbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stbGVhZGVyKCl7fVxuLy8gQG1peGluIGhvb2stbGVhZGVyLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWxlYWRlcigpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgTm90aWZpY2F0aW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgbm90aWZpY2F0aW9uIG1lc3NhZ2VzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbm90aWZpY2F0aW9uYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlYFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi1jbG9zZWBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1ub3RpZmljYXRpb24tdG9wLWNlbnRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi10b3AtcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ub3RpZmljYXRpb24tYm90dG9tLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ub3RpZmljYXRpb24tYm90dG9tLWNlbnRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzc2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmdgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuJG5vdGlmaWNhdGlvbi1wb3NpdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC16LWluZGV4ICsgNDAgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUwcHggIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tbWVzc2FnZS1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZ3V0dGVyICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tbWVzc2FnZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tbWVzc2FnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAxLjQgIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24tY2xvc2UtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZyArIDVweCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tY2xvc2UtcmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZyAhZGVmYXVsdDtcblxuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MtY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtd2FybmluZy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE5vdGlmaWNhdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTZXQgcG9zaXRpb25cbiAqIDIuIERpbWVuc2lvbnNcbiAqL1xuXG4udWstbm90aWZpY2F0aW9uIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogJG5vdGlmaWNhdGlvbi1wb3NpdGlvbjtcbiAgICBsZWZ0OiAkbm90aWZpY2F0aW9uLXBvc2l0aW9uO1xuICAgIHotaW5kZXg6ICRub3RpZmljYXRpb24tei1pbmRleDtcbiAgICAvKiAyICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJG5vdGlmaWNhdGlvbi13aWR0aDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbm90aWZpY2F0aW9uKSkge0BpbmNsdWRlIGhvb2stbm90aWZpY2F0aW9uKCk7fVxufVxuXG5cbi8qIFBvc2l0aW9uIG1vZGlmaWVyc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQsXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogJG5vdGlmaWNhdGlvbi1wb3NpdGlvbjtcbn1cblxuLnVrLW5vdGlmaWNhdGlvbi10b3AtY2VudGVyLFxuLnVrLW5vdGlmaWNhdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IG1hdGguZGl2KCRub3RpZmljYXRpb24td2lkdGgsIC0yKTtcbn1cblxuLnVrLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdCxcbi51ay1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LFxuLnVrLW5vdGlmaWNhdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAkbm90aWZpY2F0aW9uLXBvc2l0aW9uO1xufVxuXG5cbi8qIFJlc3BvbnNpdmVuZXNzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBQaG9uZXMgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC14c21hbGwtbWF4KSB7XG5cbiAgICAudWstbm90aWZpY2F0aW9uIHtcbiAgICAgICAgbGVmdDogJG5vdGlmaWNhdGlvbi1wb3NpdGlvbjtcbiAgICAgICAgcmlnaHQ6ICRub3RpZmljYXRpb24tcG9zaXRpb247XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG59XG5cblxuLyogTWVzc2FnZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogJG5vdGlmaWNhdGlvbi1tZXNzYWdlLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRub3RpZmljYXRpb24tbWVzc2FnZS1jb2xvcjtcbiAgICBmb250LXNpemU6ICRub3RpZmljYXRpb24tbWVzc2FnZS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRub3RpZmljYXRpb24tbWVzc2FnZS1saW5lLWhlaWdodDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlKSkge0BpbmNsdWRlIGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UoKTt9XG59XG5cbiogKyAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2UgeyBtYXJnaW4tdG9wOiAkbm90aWZpY2F0aW9uLW1lc3NhZ2UtbWFyZ2luLXRvcDsgfVxuXG5cbi8qIENsb3NlXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1ub3RpZmljYXRpb24tY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJG5vdGlmaWNhdGlvbi1jbG9zZS10b3A7XG4gICAgcmlnaHQ6ICRub3RpZmljYXRpb24tY2xvc2UtcmlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5vdGlmaWNhdGlvbi1jbG9zZSkpIHtAaW5jbHVkZSBob29rLW5vdGlmaWNhdGlvbi1jbG9zZSgpO31cbn1cblxuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlOmhvdmVyIC51ay1ub3RpZmljYXRpb24tY2xvc2UgeyBkaXNwbGF5OiBibG9jazsgfVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQcmltYXJ5XG4gKi9cblxuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnkge1xuICAgIGNvbG9yOiAkbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnkoKTt9XG59XG5cbi8qXG4gKiBTdWNjZXNzXG4gKi9cblxuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3Mge1xuICAgIGNvbG9yOiAkbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcykpIHtAaW5jbHVkZSBob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MoKTt9XG59XG5cbi8qXG4gKiBXYXJuaW5nXG4gKi9cblxuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcge1xuICAgIGNvbG9yOiAkbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZy1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZykpIHtAaW5jbHVkZSBob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcoKTt9XG59XG5cbi8qXG4gKiBEYW5nZXJcbiAqL1xuXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyIHtcbiAgICBjb2xvcjogJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyKSkge0BpbmNsdWRlIGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLW5vdGlmaWNhdGlvbi1taXNjKSkge0BpbmNsdWRlIGhvb2stbm90aWZpY2F0aW9uLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLW5vdGlmaWNhdGlvbigpe31cbi8vIEBtaXhpbiBob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlKCl7fVxuLy8gQG1peGluIGhvb2stbm90aWZpY2F0aW9uLWNsb3NlKCl7fVxuLy8gQG1peGluIGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeSgpe31cbi8vIEBtaXhpbiBob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MoKXt9XG4vLyBAbWl4aW4gaG9vay1ub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nKCl7fVxuLy8gQG1peGluIGhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyKCl7fVxuLy8gQG1peGluIGhvb2stbm90aWZpY2F0aW9uLW1pc2MoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFRvb2x0aXBcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSB0b29sdGlwc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXRvb2x0aXBgXG4vL1xuLy8gTW9kaWZpZXJzICAgICAgICBgdWstdG9vbHRpcC10b3BgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLXRvcC1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstdG9vbHRpcC10b3AtcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLWJvdHRvbWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvb2x0aXAtYm90dG9tLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLWJvdHRvbS1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvb2x0aXAtbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvb2x0aXAtcmlnaHRgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiR0b29sdGlwLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXotaW5kZXggKyAzMCAhZGVmYXVsdDtcbiR0b29sdGlwLW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcbiR0b29sdGlwLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAzcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgNnB4ICFkZWZhdWx0O1xuJHRvb2x0aXAtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICM2NjYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgMnB4ICFkZWZhdWx0O1xuJHRvb2x0aXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiR0b29sdGlwLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMnB4ICFkZWZhdWx0O1xuXG4kdG9vbHRpcC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVG9vbHRpcFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFBvc2l0aW9uXG4gKiAzLiBSZW1vdmUgdG9vbHRpcCBmcm9tIGRvY3VtZW50IGZsb3cgdG8ga2VlcCB0aGUgVUlraXQgY29udGFpbmVyIGZyb20gY2hhbmdpbmcgaXRzIHNpemUgd2hlbiBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCBpbml0aWFsbHlcbiAqIDQuIERpbWVuc2lvbnNcbiAqIDUuIFN0eWxlXG4gKi9cblxuLnVrLXRvb2x0aXAge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJHRvb2x0aXAtei1pbmRleDtcbiAgICAvKiAzICovXG4gICAgdG9wOiAwO1xuICAgIC8qIDQgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xuICAgIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmctdmVydGljYWwgJHRvb2x0aXAtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIC8qIDUgKi9cbiAgICBiYWNrZ3JvdW5kOiAkdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLWJvcmRlci1yYWRpdXM7XG4gICAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10b29sdGlwKSkge0BpbmNsdWRlIGhvb2stdG9vbHRpcCgpO31cbn1cblxuLyogU2hvdyAqL1xuLnVrLXRvb2x0aXAudWstYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH1cblxuXG4vKiBEaXJlY3Rpb24gLyBBbGlnbm1lbnQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRGlyZWN0aW9uICovXG5bY2xhc3MqPSd1ay10b29sdGlwLXRvcCddIHsgbWFyZ2luLXRvcDogKC0kdG9vbHRpcC1tYXJnaW4pOyB9XG5bY2xhc3MqPSd1ay10b29sdGlwLWJvdHRvbSddIHsgbWFyZ2luLXRvcDogJHRvb2x0aXAtbWFyZ2luOyB9XG5bY2xhc3MqPSd1ay10b29sdGlwLWxlZnQnXSB7IG1hcmdpbi1sZWZ0OiAoLSR0b29sdGlwLW1hcmdpbik7IH1cbltjbGFzcyo9J3VrLXRvb2x0aXAtcmlnaHQnXSB7IG1hcmdpbi1sZWZ0OiAkdG9vbHRpcC1tYXJnaW47IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay10b29sdGlwLW1pc2MpKSB7QGluY2x1ZGUgaG9vay10b29sdGlwLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXRvb2x0aXAoKXt9XG4vLyBAbWl4aW4gaG9vay10b29sdGlwLW1pc2MoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFNvcnRhYmxlXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgc29ydGFibGUgZ3JpZHMgYW5kIGxpc3RzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc29ydGFibGVgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstc29ydGFibGUtZHJhZ2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNvcnRhYmxlLXBsYWNlaG9sZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc29ydGFibGUtaGFuZGxlYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXNvcnRhYmxlLWVtcHR5YFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWRyYWdgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHNvcnRhYmxlLWRyYWdnZWQtei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCArIDUwICFkZWZhdWx0O1xuXG4kc29ydGFibGUtcGxhY2Vob2xkZXItb3BhY2l0eTogICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcblxuJHNvcnRhYmxlLWVtcHR5LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNvcnRhYmxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNvcnRhYmxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNvcnRhYmxlKSkge0BpbmNsdWRlIGhvb2stc29ydGFibGUoKTt9XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstc29ydGFibGUgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBEcmFnXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNvcnRhYmxlLWRyYWcge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6ICRzb3J0YWJsZS1kcmFnZ2VkLXotaW5kZXggIWltcG9ydGFudDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc29ydGFibGUtZHJhZykpIHtAaW5jbHVkZSBob29rLXNvcnRhYmxlLWRyYWcoKTt9XG59XG5cblxuLyogUGxhY2Vob2xkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc29ydGFibGUtcGxhY2Vob2xkZXIge1xuICAgIG9wYWNpdHk6ICRzb3J0YWJsZS1wbGFjZWhvbGRlci1vcGFjaXR5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zb3J0YWJsZS1wbGFjZWhvbGRlcikpIHtAaW5jbHVkZSBob29rLXNvcnRhYmxlLXBsYWNlaG9sZGVyKCk7fVxufVxuXG5cbi8qIEVtcHR5IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNvcnRhYmxlLWVtcHR5IHtcbiAgICBtaW4taGVpZ2h0OiAkc29ydGFibGUtZW1wdHktaGVpZ2h0O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zb3J0YWJsZS1lbXB0eSkpIHtAaW5jbHVkZSBob29rLXNvcnRhYmxlLWVtcHR5KCk7fVxufVxuXG5cbi8qIEhhbmRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEhvdmVyICovXG4udWstc29ydGFibGUtaGFuZGxlOmhvdmVyIHsgY3Vyc29yOiBtb3ZlOyB9XG5cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1zb3J0YWJsZS1taXNjKSkge0BpbmNsdWRlIGhvb2stc29ydGFibGUtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stc29ydGFibGUoKXt9XG4vLyBAbWl4aW4gaG9vay1zb3J0YWJsZS1kcmFnKCl7fVxuLy8gQG1peGluIGhvb2stc29ydGFibGUtcGxhY2Vob2xkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1zb3J0YWJsZS1lbXB0eSgpe31cbi8vIEBtaXhpbiBob29rLXNvcnRhYmxlLW1pc2MoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIENvdW50ZG93blxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGNvdW50ZG93biB0aW1lcnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1jb3VudGRvd25gXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstY291bnRkb3duLW51bWJlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvdW50ZG93bi1zZXBhcmF0b3JgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb3VudGRvd24tbGFiZWxgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGNvdW50ZG93bi1udW1iZXItbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgIDAuOCAhZGVmYXVsdDtcbiRjb3VudGRvd24tbnVtYmVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAycmVtICFkZWZhdWx0OyAvLyAzMnB4XG4kY291bnRkb3duLW51bWJlci1mb250LXNpemUtczogICAgICAgICAgICAgICAgICAgNHJlbSAhZGVmYXVsdDsgLy8gNjRweFxuJGNvdW50ZG93bi1udW1iZXItZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgIDZyZW0gIWRlZmF1bHQ7IC8vIDk2cHhcblxuJGNvdW50ZG93bi1zZXBhcmF0b3ItbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgIDEuNiAhZGVmYXVsdDtcbiRjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0OyAvLyAxNnB4XG4kY291bnRkb3duLXNlcGFyYXRvci1mb250LXNpemUtczogICAgICAgICAgICAgICAgMnJlbSAhZGVmYXVsdDsgLy8gMzJweFxuJGNvdW50ZG93bi1zZXBhcmF0b3ItZm9udC1zaXplLW06ICAgICAgICAgICAgICAgIDNyZW0gIWRlZmF1bHQ7IC8vIDQ4cHhcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ291bnRkb3duXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvdW50ZG93biB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvdW50ZG93bikpIHtAaW5jbHVkZSBob29rLWNvdW50ZG93bigpO31cbn1cblxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvdW50ZG93bi1udW1iZXIsXG4udWstY291bnRkb3duLXNlcGFyYXRvciB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvdW50ZG93bi1pdGVtKSkge0BpbmNsdWRlIGhvb2stY291bnRkb3duLWl0ZW0oKTt9XG59XG5cblxuLyogTnVtYmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKlxuICogMS4gTWFrZSBudW1iZXJzIGFsbCBvZiB0aGUgc2FtZSBzaXplIHRvIHByZXZlbnQganVtcGluZy4gTXVzdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIGZvbnQuXG4gKiAyLiBTdHlsZVxuICovXG5cbi51ay1jb3VudGRvd24tbnVtYmVyIHtcbiAgICAvKiAxICovXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAvKiAyICovXG4gICAgZm9udC1zaXplOiAkY291bnRkb3duLW51bWJlci1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRjb3VudGRvd24tbnVtYmVyLWxpbmUtaGVpZ2h0O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jb3VudGRvd24tbnVtYmVyKSkge0BpbmNsdWRlIGhvb2stY291bnRkb3duLW51bWJlcigpO31cbn1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWNvdW50ZG93bi1udW1iZXIgeyBmb250LXNpemU6ICRjb3VudGRvd24tbnVtYmVyLWZvbnQtc2l6ZS1zOyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY291bnRkb3duLW51bWJlciB7IGZvbnQtc2l6ZTogJGNvdW50ZG93bi1udW1iZXItZm9udC1zaXplLW07IH1cblxufVxuXG5cbi8qIFNlcGFyYXRvclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb3VudGRvd24tc2VwYXJhdG9yIHtcbiAgICBmb250LXNpemU6ICRjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGNvdW50ZG93bi1zZXBhcmF0b3ItbGluZS1oZWlnaHQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNvdW50ZG93bi1zZXBhcmF0b3IpKSB7QGluY2x1ZGUgaG9vay1jb3VudGRvd24tc2VwYXJhdG9yKCk7fVxufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstY291bnRkb3duLXNlcGFyYXRvciB7IGZvbnQtc2l6ZTogJGNvdW50ZG93bi1zZXBhcmF0b3ItZm9udC1zaXplLXM7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1jb3VudGRvd24tc2VwYXJhdG9yIHsgZm9udC1zaXplOiAkY291bnRkb3duLXNlcGFyYXRvci1mb250LXNpemUtbTsgfVxuXG59XG5cblxuLyogTGFiZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY291bnRkb3duLWxhYmVsIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY291bnRkb3duLWxhYmVsKSkge0BpbmNsdWRlIGhvb2stY291bnRkb3duLWxhYmVsKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWNvdW50ZG93bi1taXNjKSkge0BpbmNsdWRlIGhvb2stY291bnRkb3duLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWNvdW50ZG93bigpe31cbi8vIEBtaXhpbiBob29rLWNvdW50ZG93bi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2stY291bnRkb3duLW51bWJlcigpe31cbi8vIEBtaXhpbiBob29rLWNvdW50ZG93bi1zZXBhcmF0b3IoKXt9XG4vLyBAbWl4aW4gaG9vay1jb3VudGRvd24tbGFiZWwoKXt9XG4vLyBAbWl4aW4gaG9vay1jb3VudGRvd24tbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtY291bnRkb3duLWl0ZW0oKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWNvdW50ZG93bi1udW1iZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWNvdW50ZG93bi1zZXBhcmF0b3IoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWNvdW50ZG93bi1sYWJlbCgpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgR3JpZFxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIHJlc3BvbnNpdmUsIGZsdWlkIGFuZCBuZXN0YWJsZSBncmlkc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWdyaWRgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZ3JpZC1zbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWVkaXVtYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1sYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtY29sbGFwc2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLWRpdmlkZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hdGNoYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1zdGFja2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWFyZ2luYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1tYXJnaW4tc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hcmdpbi1tZWRpdW1gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hcmdpbi1sYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWFyZ2luLWNvbGxhcHNlYFxuLy9cbi8vIFN1Yi1tb2RpZmllcjogICAgYHVrLWdyaWQtaXRlbS1tYXRjaGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1maXJzdC1jb2x1bW5gXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGdyaWQtZ3V0dGVyLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWd1dHRlci1ob3Jpem9udGFsICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLWhvcml6b250YWwtbDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci12ZXJ0aWNhbC1sOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sICFkZWZhdWx0O1xuXG4kZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kZ3JpZC1zbWFsbC1ndXR0ZXItdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgJGdyaWQtc21hbGwtZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XG5cbiRncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLW1lZGl1bS1ndXR0ZXItdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAkZ3JpZC1tZWRpdW0tZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XG5cbiRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG4kZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sOiAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWwtbDogICAgICAgICAgICAgICAgICAgJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbCAhZGVmYXVsdDtcblxuJGdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGdyaWQtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBHcmlkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEFsbG93IGNlbGxzIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBSZXNldCBsaXN0XG4gKi9cblxuLnVrLWdyaWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiAyICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLypcbiAqIEdyaWQgY2VsbFxuICogTm90ZTogU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnMsIGJ1dCBzaHJpbmtzOiAwIDEgYXV0b1xuICogUmVzZXQgbWFyZ2luIGZvciBlLmcuIHBhcmFncmFwaHNcbiAqL1xuXG4udWstZ3JpZCA+ICogeyBtYXJnaW46IDA7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1ncmlkID4gKiA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIEd1dHRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZhdWx0XG4gKi9cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQgeyBtYXJnaW4tbGVmdDogKC0kZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCk7IH1cbi51ay1ncmlkID4gKiB7IHBhZGRpbmctbGVmdDogJGdyaWQtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQsXG4udWstZ3JpZCA+IC51ay1ncmlkLW1hcmdpbixcbiogKyAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAkZ3JpZC1ndXR0ZXItdmVydGljYWw7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC8qIEhvcml6b250YWwgKi9cbiAgICAudWstZ3JpZCB7IG1hcmdpbi1sZWZ0OiAoLSRncmlkLWd1dHRlci1ob3Jpem9udGFsLWwpOyB9XG4gICAgLnVrLWdyaWQgPiAqIHsgcGFkZGluZy1sZWZ0OiAkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAvKiBWZXJ0aWNhbCAqL1xuICAgIC51ay1ncmlkICsgLnVrLWdyaWQsXG4gICAgLnVrLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4sXG4gICAgKiArIC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6ICRncmlkLWd1dHRlci12ZXJ0aWNhbC1sOyB9XG5cbn1cblxuLypcbiAqIFNtYWxsXG4gKi9cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtc21hbGwsXG4udWstZ3JpZC1jb2x1bW4tc21hbGwgeyBtYXJnaW4tbGVmdDogKC0kZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCk7IH1cbi51ay1ncmlkLXNtYWxsID4gKixcbi51ay1ncmlkLWNvbHVtbi1zbWFsbCA+ICogIHsgcGFkZGluZy1sZWZ0OiAkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQgKyAudWstZ3JpZC1zbWFsbCxcbi51ay1ncmlkICsgLnVrLWdyaWQtcm93LXNtYWxsLFxuLnVrLWdyaWQtc21hbGwgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1yb3ctc21hbGwgPiAudWstZ3JpZC1tYXJnaW4sXG4qICsgLnVrLWdyaWQtbWFyZ2luLXNtYWxsIHsgbWFyZ2luLXRvcDogJGdyaWQtc21hbGwtZ3V0dGVyLXZlcnRpY2FsOyB9XG5cbi8qXG4gKiBNZWRpdW1cbiAqL1xuXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1tZWRpdW0sXG4udWstZ3JpZC1jb2x1bW4tbWVkaXVtIHsgbWFyZ2luLWxlZnQ6ICgtJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsKTsgfVxuLnVrLWdyaWQtbWVkaXVtID4gKixcbi51ay1ncmlkLWNvbHVtbi1tZWRpdW0gPiAqIHsgcGFkZGluZy1sZWZ0OiAkZ3JpZC1tZWRpdW0tZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtbWVkaXVtLFxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctbWVkaXVtLFxuLnVrLWdyaWQtbWVkaXVtID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LW1lZGl1bSA+IC51ay1ncmlkLW1hcmdpbixcbiogKyAudWstZ3JpZC1tYXJnaW4tbWVkaXVtIHsgbWFyZ2luLXRvcDogJGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1sYXJnZSxcbi51ay1ncmlkLWNvbHVtbi1sYXJnZSB7IG1hcmdpbi1sZWZ0OiAoLSRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsKTsgfVxuLnVrLWdyaWQtbGFyZ2UgPiAqLFxuLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gKiB7IHBhZGRpbmctbGVmdDogJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtbGFyZ2UsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1sYXJnZSxcbi51ay1ncmlkLWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi10b3A6ICRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLyogSG9yaXpvbnRhbCAqL1xuICAgIC51ay1ncmlkLWxhcmdlLFxuICAgIC51ay1ncmlkLWNvbHVtbi1sYXJnZSB7IG1hcmdpbi1sZWZ0OiAoLSRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwpOyB9XG4gICAgLnVrLWdyaWQtbGFyZ2UgPiAqLFxuICAgIC51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICogeyBwYWRkaW5nLWxlZnQ6ICRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWw7IH1cblxuICAgIC8qIFZlcnRpY2FsICovXG4gICAgLnVrLWdyaWQgKyAudWstZ3JpZC1sYXJnZSxcbiAgICAudWstZ3JpZCArIC51ay1ncmlkLXJvdy1sYXJnZSxcbiAgICAudWstZ3JpZC1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbiAgICAudWstZ3JpZC1yb3ctbGFyZ2UgPiAudWstZ3JpZC1tYXJnaW4sXG4gICAgKiArIC51ay1ncmlkLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi10b3A6ICRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbC1sOyB9XG5cbn1cblxuLypcbiAqIENvbGxhcHNlXG4gKi9cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtY29sbGFwc2UsXG4udWstZ3JpZC1jb2x1bW4tY29sbGFwc2UgeyBtYXJnaW4tbGVmdDogMDsgfVxuLnVrLWdyaWQtY29sbGFwc2UgPiAqLFxuLnVrLWdyaWQtY29sdW1uLWNvbGxhcHNlID4gKiB7IHBhZGRpbmctbGVmdDogMDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQgKyAudWstZ3JpZC1jb2xsYXBzZSxcbi51ay1ncmlkICsgLnVrLWdyaWQtcm93LWNvbGxhcHNlLFxuLnVrLWdyaWQtY29sbGFwc2UgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1yb3ctY29sbGFwc2UgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAwOyB9XG5cblxuLyogRGl2aWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1ncmlkLWRpdmlkZXIgPiAqIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYm9yZGVyLWxlZnQ6ICRncmlkLWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkICRncmlkLWRpdmlkZXItYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1ncmlkLWRpdmlkZXItaG9yaXpvbnRhbCkpIHtAaW5jbHVkZSBob29rLWdyaWQtZGl2aWRlci1ob3Jpem9udGFsKCk7fVxufVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogJGdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJGdyaWQtZGl2aWRlci1ib3JkZXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWdyaWQtZGl2aWRlci12ZXJ0aWNhbCkpIHtAaW5jbHVkZSBob29rLWdyaWQtZGl2aWRlci12ZXJ0aWNhbCgpO31cbn1cblxuLypcbiAqIERlZmF1bHRcbiAqL1xuXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1kaXZpZGVyIHsgbWFyZ2luLWxlZnQ6IC0oJGdyaWQtZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxuLnVrLWdyaWQtZGl2aWRlciA+ICogeyBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUgeyBsZWZ0OiAkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHsgbWFyZ2luLXRvcDogKCRncmlkLWd1dHRlci12ZXJ0aWNhbCAqIDIpOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgICB0b3A6ICgtJGdyaWQtZ3V0dGVyLXZlcnRpY2FsKTtcbiAgICBsZWZ0OiAoJGdyaWQtZ3V0dGVyLWhvcml6b250YWwgKiAyKTtcbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC8qIEhvcml6b250YWwgKi9cbiAgICAudWstZ3JpZC1kaXZpZGVyIHsgbWFyZ2luLWxlZnQ6IC0oJGdyaWQtZ3V0dGVyLWhvcml6b250YWwtbCAqIDIpOyB9XG4gICAgLnVrLWdyaWQtZGl2aWRlciA+ICogeyBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7IH1cblxuICAgIC51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUgeyBsZWZ0OiAkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAvKiBWZXJ0aWNhbCAqL1xuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6ICgkZ3JpZC1ndXR0ZXItdmVydGljYWwtbCAqIDIpOyB9XG5cbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgICAgIHRvcDogKC0kZ3JpZC1ndXR0ZXItdmVydGljYWwtbCk7XG4gICAgICAgIGxlZnQ6ICgkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7XG4gICAgfVxuXG59XG5cbi8qXG4gKiBTbWFsbFxuICovXG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwgeyBtYXJnaW4tbGVmdDogLSgkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwgPiAqLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1zbWFsbCA+ICogeyBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUgeyBsZWZ0OiAkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoJGdyaWQtc21hbGwtZ3V0dGVyLXZlcnRpY2FsICogMik7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgdG9wOiAoLSRncmlkLXNtYWxsLWd1dHRlci12ZXJ0aWNhbCk7XG4gICAgbGVmdDogKCRncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsICogMik7XG59XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgdG9wOiAoLSRncmlkLXNtYWxsLWd1dHRlci12ZXJ0aWNhbCk7IH1cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgbGVmdDogKCRncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cblxuLypcbiAqIE1lZGl1bVxuICovXG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1tZWRpdW0sXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLW1lZGl1bSB7IG1hcmdpbi1sZWZ0OiAtKCRncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtID4gKixcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gKiB7IHBhZGRpbmctbGVmdDogKCRncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1tZWRpdW0gPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLW1lZGl1bSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7IGxlZnQ6ICRncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6ICgkZ3JpZC1tZWRpdW0tZ3V0dGVyLXZlcnRpY2FsICogMik7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIHRvcDogKC0kZ3JpZC1tZWRpdW0tZ3V0dGVyLXZlcnRpY2FsKTtcbiAgICBsZWZ0OiAoJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICogMik7XG59XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IHRvcDogKC0kZ3JpZC1tZWRpdW0tZ3V0dGVyLXZlcnRpY2FsKTsgfVxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgbGVmdDogKCRncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG5cbi8qXG4gKiBMYXJnZVxuICovXG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgeyBtYXJnaW4tbGVmdDogLSgkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiAqLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICogeyBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUgeyBsZWZ0OiAkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsICogMik7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgdG9wOiAoLSRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbCk7XG4gICAgbGVmdDogKCRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsICogMik7XG59XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgdG9wOiAoLSRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbCk7IH1cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgbGVmdDogKCRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC8qIEhvcml6b250YWwgKi9cbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UsXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSB7IG1hcmdpbi1sZWZ0OiAtKCRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwgKiAyKTsgfVxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSA+ICosXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICogeyBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7IH1cblxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbDsgfVxuXG4gICAgLyogVmVydGljYWwgKi9cbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbixcbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsLWwgKiAyKTsgfVxuXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgICAgIHRvcDogKC0kZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWwtbCk7XG4gICAgICAgIGxlZnQ6ICgkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7XG4gICAgfVxuXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUgeyB0b3A6ICgtJGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsLWwpOyB9XG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUgeyBsZWZ0OiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbCAqIDIpOyB9XG5cbn1cblxuXG4vKiBNYXRjaCBjaGlsZCBvZiBhIGdyaWQgY2VsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBCZWhhdmUgbGlrZSBhIGJsb2NrIGVsZW1lbnRcbiAqIDEuIFdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBUYWtlIHRoZSBmdWxsIHdpZHRoLCBhdCBsZWFzdCAxMDAlLiBPbmx5IGlmIG5vIGNsYXNzIGZyb20gdGhlIFdpZHRoIGNvbXBvbmVudCBpcyBzZXQuXG4gKiAzLiBFeHBhbmQgd2lkdGggZXZlbiBpZiBsYXJnZXIgdGhhbiAxMDAlLCBlLmcuIGJlY2F1c2Ugb2YgbmVnYXRpdmUgbWFyZ2luIChOZWVkZWQgZm9yIG5lc3RlZCBncmlkcylcbiAqL1xuXG4udWstZ3JpZC1tYXRjaCA+ICosXG4udWstZ3JpZC1pdGVtLW1hdGNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi51ay1ncmlkLW1hdGNoID4gKiA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSksXG4udWstZ3JpZC1pdGVtLW1hdGNoID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMyAqL1xuICAgIGZsZXg6IGF1dG87XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stZ3JpZC1taXNjKSkge0BpbmNsdWRlIGhvb2stZ3JpZC1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1ncmlkLWRpdmlkZXItaG9yaXpvbnRhbCgpe31cbi8vIEBtaXhpbiBob29rLWdyaWQtZGl2aWRlci12ZXJ0aWNhbCgpe31cbi8vIEBtaXhpbiBob29rLWdyaWQtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtZ3JpZC1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtZ3JpZC1kaXZpZGVyLWhvcml6b250YWwoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWdyaWQtZGl2aWRlci12ZXJ0aWNhbCgpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIE5hdlxuLy8gRGVzY3JpcHRpb246ICAgICBEZWZpbmVzIHN0eWxlcyBmb3IgbGlzdCBuYXZpZ2F0aW9uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLW5hdmBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1uYXYtaGVhZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2LWRpdmlkZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXYtc3ViYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLW5hdi1wYXJlbnQtaWNvbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1kZWZhdWx0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2LXByaW1hcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXYtY2VudGVyYCxcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1kaXZpZGVyYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBhcmVudGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9wZW5gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b3VjaGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuJG5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG5cbiRuYXYtc3VibGlzdC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kbmF2LXN1Ymxpc3QtcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcbiRuYXYtc3VibGlzdC1kZWVwZXItcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xuJG5hdi1zdWJsaXN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcblxuJG5hdi1wYXJlbnQtaWNvbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICgkZ2xvYmFsLWxpbmUtaGVpZ2h0ICogMWVtKSAhZGVmYXVsdDtcbiRuYXYtcGFyZW50LWljb24taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAkbmF2LXBhcmVudC1pY29uLXdpZHRoICFkZWZhdWx0O1xuJG5hdi1wYXJlbnQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cbiRuYXYtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAkbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcbiRuYXYtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAkbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xuJG5hdi1oZWFkZXItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJG5hdi1oZWFkZXItdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgIHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRuYXYtaGVhZGVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuJG5hdi1kaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcbiRuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuXG4kbmF2LWRlZmF1bHQtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1kaXZpZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRuYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcblxuJG5hdi1wcmltYXJ5LWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xuJG5hdi1wcmltYXJ5LWl0ZW0tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kbmF2LXByaW1hcnktaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXByaW1hcnktaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRuYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcblxuJG5hdi1kaXZpZGVycy1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kbmF2LWRpdmlkZXJzLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbmF2LWRpdmlkZXJzLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRpbnRlcm5hbC1uYXYtcGFyZW50LWNsb3NlLWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlsaW5lJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIjMDAwJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMS4xJTIyJTIwcG9pbnRzJTNEJTIyMTAlMjAxJTIwNCUyMDclMjAxMCUyMDEzJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XG4kaW50ZXJuYWwtbmF2LXBhcmVudC1vcGVuLWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlsaW5lJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIjMDAwJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMS4xJTIyJTIwcG9pbnRzJTNEJTIyMSUyMDQlMjA3JTIwMTAlMjAxMyUyMDQlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIiAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTmF2XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlc2V0XG4gKi9cblxuLnVrLW5hdixcbi51ay1uYXYgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8qXG4qIDEuIENlbnRlciBjb250ZW50IHZlcnRpY2FsbHksIGUuZy4gYW4gaWNvblxuKiAyLiBJbWl0YXRlIHdoaXRlIHNwYWNlIGdhcCB3aGVuIHVzaW5nIGZsZXhib3hcbiogMy4gUmVzZXQgbGlua1xuKiA0LiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9uczogMCAwIGF1dG9cbiAqL1xuXG4udWstbmF2IGxpID4gYSB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAyICovXG4gICAgY29sdW1uLWdhcDogMC4yNWVtO1xuICAgIC8qIDMqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLyogNCAqL1xuLnVrLW5hdiBsaSA+IGEgPiAqIHsgZmxleDogbm9uZTsgfVxuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgZm9jdXMgc3R5bGVcbiAqL1xuXG4udWstbmF2IGxpID4gYTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIEl0ZW1zXG4gKiBNdXN0IHRhcmdldCBgYWAgZWxlbWVudHMgdG8gZXhjbHVkZSBvdGhlciBlbGVtZW50cyAoZS5nLiBsaXN0cylcbiAqL1xuXG4udWstbmF2ID4gbGkgPiBhIHsgcGFkZGluZzogJG5hdi1pdGVtLXBhZGRpbmctdmVydGljYWwgJG5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG5cbi8qIFN1Ymxpc3RzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIExldmVsIDJcbiAqIGB1bGAgbmVlZGVkIGZvciBoaWdoZXIgc3BlY2lmaWNpdHkgdG8gb3ZlcnJpZGUgcGFkZGluZ1xuICovXG5cbnVsLnVrLW5hdi1zdWIge1xuICAgIHBhZGRpbmc6ICRuYXYtc3VibGlzdC1wYWRkaW5nLXZlcnRpY2FsIDAgJG5hdi1zdWJsaXN0LXBhZGRpbmctdmVydGljYWwgJG5hdi1zdWJsaXN0LXBhZGRpbmctbGVmdDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LXN1YikpIHtAaW5jbHVkZSBob29rLW5hdi1zdWIoKTt9XG59XG5cbi8qXG4gKiBMZXZlbCAzIGFuZCBkZWVwZXJcbiAqL1xuXG4udWstbmF2LXN1YiB1bCB7IHBhZGRpbmctbGVmdDogJG5hdi1zdWJsaXN0LWRlZXBlci1wYWRkaW5nLWxlZnQ7IH1cblxuLypcbiAqIEl0ZW1zXG4gKi9cblxuLnVrLW5hdi1zdWIgYSB7IHBhZGRpbmc6ICRuYXYtc3VibGlzdC1pdGVtLXBhZGRpbmctdmVydGljYWwgMDsgfVxuXG5cbi8qIFBhcmVudCBpY29uIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdi1wYXJlbnQtaWNvbiA+IC51ay1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogJG5hdi1wYXJlbnQtaWNvbi13aWR0aDtcbiAgICBoZWlnaHQ6ICRuYXYtcGFyZW50LWljb24taGVpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1uYXYtcGFyZW50LWNsb3NlLWltYWdlLCBcIiMwMDBcIiwgJG5hdi1wYXJlbnQtaWNvbi1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtcGFyZW50LWljb24pKSB7QGluY2x1ZGUgaG9vay1uYXYtcGFyZW50LWljb24oKTt9XG59XG5cbi51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50LnVrLW9wZW4gPiBhOjphZnRlciB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1uYXYtcGFyZW50LW9wZW4taW1hZ2UsIFwiIzAwMFwiLCAkbmF2LXBhcmVudC1pY29uLWNvbG9yKTsgfVxuXG5cbi8qIEhlYWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXYtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAkbmF2LWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsICRuYXYtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJG5hdi1oZWFkZXItdGV4dC10cmFuc2Zvcm07XG4gICAgZm9udC1zaXplOiAkbmF2LWhlYWRlci1mb250LXNpemU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1oZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1uYXYtaGVhZGVyKCk7fVxufVxuXG4udWstbmF2LWhlYWRlcjpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi10b3A6ICRuYXYtaGVhZGVyLW1hcmdpbi10b3A7IH1cblxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdiA+LnVrLW5hdi1kaXZpZGVyIHtcbiAgICBtYXJnaW46ICRuYXYtZGl2aWRlci1tYXJnaW4tdmVydGljYWwgJG5hdi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGl2aWRlcikpIHtAaW5jbHVkZSBob29rLW5hdi1kaXZpZGVyKCk7fVxufVxuXG5cbi8qIERlZmF1bHQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2LWRlZmF1bHQge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGVmYXVsdCkpIHtAaW5jbHVkZSBob29rLW5hdi1kZWZhdWx0KCk7fVxufVxuXG4vKlxuICogSXRlbXNcbiAqL1xuXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAkbmF2LWRlZmF1bHQtaXRlbS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LWRlZmF1bHQtaXRlbSkpIHtAaW5jbHVkZSBob29rLW5hdi1kZWZhdWx0LWl0ZW0oKTt9XG59XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1uYXYtZGVmYXVsdCA+IGxpID4gYTpob3Zlcixcbi51ay1uYXYtZGVmYXVsdCA+IGxpID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICRuYXYtZGVmYXVsdC1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbmF2LWRlZmF1bHQtaXRlbS1ob3ZlcigpO31cbn1cblxuLyogQWN0aXZlICovXG4udWstbmF2LWRlZmF1bHQgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogJG5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlKCk7fVxufVxuXG4vKlxuICogSGVhZGVyXG4gKi9cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyIHtcbiAgICBjb2xvcjogJG5hdi1kZWZhdWx0LWhlYWRlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LWRlZmF1bHQtaGVhZGVyKSkge0BpbmNsdWRlIGhvb2stbmF2LWRlZmF1bHQtaGVhZGVyKCk7fVxufVxuXG4vKlxuICogRGl2aWRlclxuICovXG5cbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3A6ICRuYXYtZGVmYXVsdC1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1kZWZhdWx0LWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1uYXYtZGVmYXVsdC1kaXZpZGVyKCk7fVxufVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYSB7IGNvbG9yOiAkbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBhOmhvdmVyLFxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGE6Zm9jdXMgeyBjb2xvcjogJG5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjsgfVxuXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7IGNvbG9yOiAkbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjsgfVxuXG5cbi8qIFByaW1hcnkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2LXByaW1hcnkge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLW5hdi1wcmltYXJ5KCk7fVxufVxuXG4vKlxuICogSXRlbXNcbiAqL1xuXG4udWstbmF2LXByaW1hcnkgPiBsaSA+IGEge1xuICAgIGZvbnQtc2l6ZTogJG5hdi1wcmltYXJ5LWl0ZW0tZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbmF2LXByaW1hcnktaXRlbS1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogJG5hdi1wcmltYXJ5LWl0ZW0tY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1wcmltYXJ5LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1uYXYtcHJpbWFyeS1pdGVtKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbmF2LXByaW1hcnkgPiBsaSA+IGE6aG92ZXIsXG4udWstbmF2LXByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAkbmF2LXByaW1hcnktaXRlbS1ob3Zlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LXByaW1hcnktaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKTt9XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLW5hdi1wcmltYXJ5ID4gbGkudWstYWN0aXZlID4gYSB7XG4gICAgY29sb3I6ICRuYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LXByaW1hcnktaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZSgpO31cbn1cblxuLypcbiAqIEhlYWRlclxuICovXG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LWhlYWRlciB7XG4gICAgY29sb3I6ICRuYXYtcHJpbWFyeS1oZWFkZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1wcmltYXJ5LWhlYWRlcikpIHtAaW5jbHVkZSBob29rLW5hdi1wcmltYXJ5LWhlYWRlcigpO31cbn1cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBib3JkZXItdG9wOiAkbmF2LXByaW1hcnktZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJG5hdi1wcmltYXJ5LWRpdmlkZXItYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtcHJpbWFyeS1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2stbmF2LXByaW1hcnktZGl2aWRlcigpO31cbn1cblxuLypcbiAqIFN1Ymxpc3RzXG4gKi9cblxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogJG5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1jb2xvcjsgfVxuXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYTpob3Zlcixcbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhOmZvY3VzIHsgY29sb3I6ICRuYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I7IH1cblxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEgeyBjb2xvcjogJG5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I7IH1cblxuXG4vKiBBbGlnbm1lbnQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ2VudGVyIGhlYWRlclxuICogMi4gQ2VudGVyIGl0ZW1zXG4gKi9cblxuIC8qIDEgKi9cbi51ay1uYXYtY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gLyogMiAqL1xuLnVrLW5hdi1jZW50ZXIgbGkgPiBhIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLyogU3VibGlzdHMgKi9cbi51ay1uYXYtY2VudGVyIC51ay1uYXYtc3ViLFxuLnVrLW5hdi1jZW50ZXIgLnVrLW5hdi1zdWIgdWwgeyBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyogUGFyZW50IGljb24gbW9kaWZpZXIgICovXG4udWstbmF2LWNlbnRlci51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50ID4gYTo6YWZ0ZXIgeyBtYXJnaW4tbGVmdDogMDsgfVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdi51ay1uYXYtZGl2aWRlciA+IDpub3QoLnVrLW5hdi1kaXZpZGVyKSArIDpub3QoLnVrLW5hdi1oZWFkZXIsIC51ay1uYXYtZGl2aWRlcikge1xuICAgIG1hcmdpbi10b3A6ICRuYXYtZGl2aWRlcnMtbWFyZ2luLXRvcDtcbiAgICBwYWRkaW5nLXRvcDogJG5hdi1kaXZpZGVycy1tYXJnaW4tdG9wO1xuICAgIGJvcmRlci10b3A6ICRuYXYtZGl2aWRlcnMtYm9yZGVyLXdpZHRoIHNvbGlkICRuYXYtZGl2aWRlcnMtYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGl2aWRlcnMpKSB7QGluY2x1ZGUgaG9vay1uYXYtZGl2aWRlcnMoKTt9XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1uYXYtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stbmF2LXN1Yigpe31cbi8vIEBtaXhpbiBob29rLW5hdi1wYXJlbnQtaWNvbigpe31cbi8vIEBtaXhpbiBob29rLW5hdi1oZWFkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXYtZGl2aWRlcigpe31cbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0KCl7fVxuLy8gQG1peGluIGhvb2stbmF2LWRlZmF1bHQtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSgpe31cbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWRpdmlkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeSgpe31cbi8vIEBtaXhpbiBob29rLW5hdi1wcmltYXJ5LWl0ZW0oKXt9XG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stbmF2LXByaW1hcnktaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1oZWFkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1kaXZpZGVyKCl7fVxuLy8gQG1peGluIGhvb2stbmF2LWRpdmlkZXJzKCl7fVxuLy8gQG1peGluIGhvb2stbmF2LW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLW5hdi1wYXJlbnQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtZGVmYXVsdC1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG5cbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2LXByaW1hcnktaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1jb2xvcjogICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcblxuJGludmVyc2UtbmF2LWRpdmlkZXJzLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1wYXJlbnQtaWNvbigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LWRlZmF1bHQtZGl2aWRlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LXByaW1hcnktZGl2aWRlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LWRpdmlkZXJzKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgTmF2YmFyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgaG9yaXpvbnRhbCBuYXZpZ2F0aW9uIGJhcnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1uYXZiYXJgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstbmF2YmFyLWNvbnRhaW5lcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXJpZ2h0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWNlbnRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci1jZW50ZXItbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci1jZW50ZXItcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItbmF2YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWl0ZW1gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItdG9nZ2xlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXN1YnRpdGxlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWRyb3BiYXJgXG4vL1xuLy8gQWRvcHRlZDogICAgICAgICBgdWstbmF2YmFyLWRyb3Bkb3duYCArIE1vZGlmaWVyc1xuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWRyb3Bkb3duLW5hdmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci1kcm9wZG93bi1ncmlkYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXRvZ2dsZS1pY29uYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLW5hdmJhci1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXRyYW5zcGFyZW50YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXN0aWNreWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci1kcm9wZG93bi1zdGFja2Bcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wYXJlbnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vcGVuYFxuLy9cbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kbmF2YmFyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5hdmJhci1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG5cbiRuYXZiYXItbmF2LWl0ZW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICA4MHB4ICFkZWZhdWx0O1xuJG5hdmJhci1uYXYtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kbmF2YmFyLW5hdi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbmF2LWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRuYXZiYXItbmF2LWl0ZW0tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJG5hdmJhci1uYXYtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuXG4kbmF2YmFyLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJG5hdmJhci10b2dnbGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLXRvZ2dsZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJG5hdmJhci1zdWJ0aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuXG4kbmF2YmFyLWRyb3Bkb3duLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC16LWluZGV4ICsgMjAgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci1ob3Jpem9udGFsOiAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci12ZXJ0aWNhbDogICAgICAgICAgICRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCAhZGVmYXVsdDtcblxuJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi10b3A6ICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXItbWFyZ2luLWJvdHRvbTogICAgICAgICAgJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi10b3AgIWRlZmF1bHQ7XG5cbiRuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXItd2lkdGg6ICAgICAgICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOiAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuXG4kbmF2YmFyLWRyb3BiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgJG5hdmJhci1kcm9wZG93bi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG5hdmJhci1kcm9wYmFyLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCAtIDIwICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBOYXZiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgdG8gY2VudGVyIG5hdmJhciBncm91cFxuICovXG5cbi51ay1uYXZiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyKCk7fVxufVxuXG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXZiYXItY29udGFpbmVyOm5vdCgudWstbmF2YmFyLXRyYW5zcGFyZW50KSB7XG4gICAgYmFja2dyb3VuZDogJG5hdmJhci1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItY29udGFpbmVyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLWNvbnRhaW5lcigpO31cbn1cblxuLy8gQ29sb3IgTW9kZVxuQGlmICggJG5hdmJhci1jb2xvci1tb2RlID09IGxpZ2h0ICkgeyAudWstbmF2YmFyLWNvbnRhaW5lcjpub3QoLnVrLW5hdmJhci10cmFuc3BhcmVudCkgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XG5AaWYgKCAkbmF2YmFyLWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLW5hdmJhci1jb250YWluZXI6bm90KC51ay1uYXZiYXItdHJhbnNwYXJlbnQpIHsgQGV4dGVuZCAudWstZGFyayAhb3B0aW9uYWw7fSB9XG5cbi8qXG4gKiBSZW1vdmUgcHNldWRvIGVsZW1lbnRzIGNyZWF0ZWQgYnkgbWljcm8gY2xlYXJmaXggYXMgcHJlY2F1dGlvbiAoaWYgQ29udGFpbmVyIGNvbXBvbmVudCBpcyB1c2VkKVxuICovXG5cbi51ay1uYXZiYXItY29udGFpbmVyID4gOjpiZWZvcmUsXG4udWstbmF2YmFyLWNvbnRhaW5lciA+IDo6YWZ0ZXIgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBHcm91cHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWxpZ24gbmF2cyBhbmQgaXRlbXMgdmVydGljYWxseSBpZiB0aGV5IGhhdmUgYSBkaWZmZXJlbnQgaGVpZ2h0XG4gKiAyLiBOb3RlOiBJRSAxMSByZXF1aXJlcyBhbiBleHRyYSBgZGl2YCB3aGljaCBhZmZlY3RzIHRoZSBjZW50ZXIgc2VsZWN0b3JcbiAqL1xuXG4udWstbmF2YmFyLWxlZnQsXG4udWstbmF2YmFyLXJpZ2h0LFxuLy8gMi4gW2NsYXNzKj0ndWstbmF2YmFyLWNlbnRlciddLFxuLnVrLW5hdmJhci1jZW50ZXIsXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0ID4gKixcbi51ay1uYXZiYXItY2VudGVyLXJpZ2h0ID4gKiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAvKiAxICovXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLypcbiAqIEhvcml6b250YWwgYWxpZ25tZW50XG4gKiAxLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgY2VudGVyZWQgbmF2YmFyIHdpdGggc3ViIGdyb3VwcyAobGVmdC9yaWdodClcbiAqIDIuIEZpeCB0ZXh0IHdyYXBwaW5nIGlmIGNvbnRlbnQgaXMgbGFyZ2VyIHRoYW4gNTAlIG9mIHRoZSBjb250YWluZXIuXG4gKiAzLiBOZWVkZWQgZm9yIGRyb3Bkb3ducyBiZWNhdXNlIGEgbmV3IHBvc2l0aW9uIGNvbnRleHQgaXMgY3JlYXRlZFxuICogICAgYHotaW5kZXhgIG11c3QgYmUgc21hbGxlciB0aGFuIG9mZi1jYW52YXNcbiAqIDQuIEFsaWduIHN1YiBncm91cHMgZm9yIGNlbnRlcmVkIG5hdmJhclxuICovXG5cbi51ay1uYXZiYXItcmlnaHQgeyBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4udWstbmF2YmFyLWNlbnRlcjpvbmx5LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnVrLW5hdmJhci1jZW50ZXI6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgIC8qIDIgKi9cbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvKiAzICovXG4gICAgei1pbmRleDogJGdsb2JhbC16LWluZGV4IC0gMTA7XG59XG5cbi8qIDQgKi9cbi51ay1uYXZiYXItY2VudGVyLWxlZnQsXG4udWstbmF2YmFyLWNlbnRlci1yaWdodCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICB0b3A6IDA7XG59XG5cbi51ay1uYXZiYXItY2VudGVyLWxlZnQgeyByaWdodDogMTAwJTsgfVxuLnVrLW5hdmJhci1jZW50ZXItcmlnaHQgeyBsZWZ0OiAxMDAlOyB9XG5cbltjbGFzcyo9J3VrLW5hdmJhci1jZW50ZXItJ10ge1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5cbi8qIE5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBSZXNldCBsaXN0XG4gKi9cblxuLnVrLW5hdmJhci1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8qXG4gKiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogT25seSBub3QgYGFic29sdXRlYCBwb3NpdGlvbmVkIGdyb3Vwc1xuICovXG5cbi51ay1uYXZiYXItbGVmdCxcbi51ay1uYXZiYXItcmlnaHQsXG4udWstbmF2YmFyLWNlbnRlcjpvbmx5LWNoaWxkIHsgZmxleC13cmFwOiB3cmFwOyB9XG5cbi8qXG4gKiBJdGVtc1xuICogMS4gQ2VudGVyIGNvbnRlbnQgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKiAyLiBJbWl0YXRlIHdoaXRlIHNwYWNlIGdhcCB3aGVuIHVzaW5nIGZsZXhib3hcbiAqIDMuIERpbWVuc2lvbnNcbiAqIDQuIFN0eWxlXG4gKiA1LiBSZXF1aXJlZCBmb3IgYGFgXG4gKi9cblxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEsICAgIC8vIE5hdiBpdGVtXG4udWstbmF2YmFyLWl0ZW0sICAgICAgICAgICAgLy8gQ29udGVudCBpdGVtXG4udWstbmF2YmFyLXRvZ2dsZSB7ICAgICAgICAgLy8gQ2xpY2thYmxlIGl0ZW1cbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qIDIgKi9cbiAgICBjb2x1bW4tZ2FwOiAwLjI1ZW07XG4gICAgLyogMyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogJG5hdmJhci1uYXYtaXRlbS1oZWlnaHQ7XG4gICAgcGFkZGluZzogMCAkbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAvKiA0ICovXG4gICAgZm9udC1zaXplOiAkbmF2YmFyLW5hdi1pdGVtLWZvbnQtc2l6ZTtcbiAgICBmb250LWZhbWlseTogJG5hdmJhci1uYXYtaXRlbS1mb250LWZhbWlseTtcbiAgICAvKiA1ICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKlxuICogTmF2IGl0ZW1zXG4gKi9cblxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAkbmF2YmFyLW5hdi1pdGVtLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItbmF2LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItbmF2LWl0ZW0oKTt9XG59XG5cbi8qXG4gKiBIb3ZlclxuICogQXBwbHkgaG92ZXIgc3R5bGUgYWxzbyB0byBmb2N1cyBzdGF0ZSBhbmQgaWYgZHJvcGRvd24gaXMgb3BlbmVkXG4gKi9cblxuLnVrLW5hdmJhci1uYXYgPiBsaTpob3ZlciA+IGEsXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyxcbi51ay1uYXZiYXItbmF2ID4gbGkgPiBhW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICBjb2xvcjogJG5hdmJhci1uYXYtaXRlbS1ob3Zlci1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXIoKTt9XG59XG5cbi8qIE9uQ2xpY2sgKi9cbi51ay1uYXZiYXItbmF2ID4gbGkgPiBhOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRuYXZiYXItbmF2LWl0ZW0tb25jbGljay1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2spKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItbmF2LWl0ZW0tb25jbGljaygpO31cbn1cblxuLyogQWN0aXZlICovXG4udWstbmF2YmFyLW5hdiA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICAgIGNvbG9yOiAkbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUoKTt9XG59XG5cblxuLyogSXRlbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXZiYXItaXRlbSB7XG4gICAgY29sb3I6ICRuYXZiYXItaXRlbS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItaXRlbSgpO31cbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1uYXZiYXItaXRlbSA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIFRvZ2dsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXZiYXItdG9nZ2xlIHtcbiAgICBjb2xvcjogJG5hdmJhci10b2dnbGUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci10b2dnbGUpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItdG9nZ2xlKCk7fVxufVxuXG4udWstbmF2YmFyLXRvZ2dsZTpob3Zlcixcbi51ay1uYXZiYXItdG9nZ2xlOmZvY3VzLFxuLnVrLW5hdmJhci10b2dnbGUudWstb3BlbiB7XG4gICAgY29sb3I6ICRuYXZiYXItdG9nZ2xlLWhvdmVyLWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItdG9nZ2xlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLXRvZ2dsZS1ob3ZlcigpO31cbn1cblxuLypcbiAqIEljb25cbiAqIEFkb3B0cyBgdWstaWNvbmBcbiAqL1xuXG4udWstbmF2YmFyLXRvZ2dsZS1pY29uIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG46aG92ZXIgPiAudWstbmF2YmFyLXRvZ2dsZS1pY29uLFxuOmZvY3VzID4gLnVrLW5hdmJhci10b2dnbGUtaWNvbiB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci10b2dnbGUtaWNvbi1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW5hdmJhci10b2dnbGUtaWNvbi1ob3ZlcigpO31cbn1cblxuXG4vKiBTdWJ0aXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXZiYXItc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogJG5hdmJhci1zdWJ0aXRsZS1mb250LXNpemU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1zdWJ0aXRsZSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1zdWJ0aXRsZSgpO31cbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2YmFyLXByaW1hcnkge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1wcmltYXJ5KCk7fVxufVxuXG4udWstbmF2YmFyLXRyYW5zcGFyZW50IHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLXRyYW5zcGFyZW50KSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLXRyYW5zcGFyZW50KCk7fVxufVxuXG4udWstbmF2YmFyLXN0aWNreSB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1zdGlja3kpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItc3RpY2t5KCk7fVxufVxuXG5cbi8qIERyb3Bkb3duXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkb3B0cyBgdWstZHJvcGRvd25gXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICogMy4gU2V0IGEgZGVmYXVsdCB3aWR0aFxuICogNC4gU3R5bGVcbiAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRuYXZiYXItZHJvcGRvd24tei1pbmRleDtcbiAgICAvKiAzICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJG5hdmJhci1kcm9wZG93bi13aWR0aDtcbiAgICAvKiA0ICovXG4gICAgcGFkZGluZzogJG5hdmJhci1kcm9wZG93bi1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRuYXZiYXItZHJvcGRvd24tYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJG5hdmJhci1kcm9wZG93bi1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3Bkb3duKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLWRyb3Bkb3duKCk7fVxufVxuXG4vKiBTaG93ICovXG4udWstbmF2YmFyLWRyb3Bkb3duLnVrLW9wZW4geyBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xuICovXG5cbi8qIERpcmVjdGlvbiAqL1xuW2NsYXNzKj0ndWstbmF2YmFyLWRyb3Bkb3duLXRvcCddIHsgbWFyZ2luLXRvcDogKC0kbmF2YmFyLWRyb3Bkb3duLW1hcmdpbik7IH1cbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi1ib3R0b20nXSB7IG1hcmdpbi10b3A6ICRuYXZiYXItZHJvcGRvd24tbWFyZ2luOyB9XG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tbGVmdCddIHsgbWFyZ2luLWxlZnQ6ICgtJG5hdmJhci1kcm9wZG93bi1tYXJnaW4pOyB9XG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tcmlnaHQnXSB7IG1hcmdpbi1sZWZ0OiAkbmF2YmFyLWRyb3Bkb3duLW1hcmdpbjsgfVxuXG4vKlxuICogR3JpZFxuICogQWRvcHRzIGB1ay1ncmlkYFxuICovXG5cbi8qIEd1dHRlciBIb3Jpem9udGFsICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgeyBtYXJnaW4tbGVmdDogKC0kbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWwpOyB9XG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiAqIHsgcGFkZGluZy1sZWZ0OiAkbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogR3V0dGVyIFZlcnRpY2FsICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAkbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLXZlcnRpY2FsOyB9XG5cbi8qIFN0YWNrICovXG4udWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrIC51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+ICogeyB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiBXaWR0aCBtb2RpZmllclxuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtMjpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykgeyB3aWR0aDogKCRuYXZiYXItZHJvcGRvd24td2lkdGggKiAyKTsgfVxuLnVrLW5hdmJhci1kcm9wZG93bi13aWR0aC0zOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrKSB7IHdpZHRoOiAoJG5hdmJhci1kcm9wZG93bi13aWR0aCAqIDMpOyB9XG4udWstbmF2YmFyLWRyb3Bkb3duLXdpZHRoLTQ6bm90KC51ay1uYXZiYXItZHJvcGRvd24tc3RhY2spIHsgd2lkdGg6ICgkbmF2YmFyLWRyb3Bkb3duLXdpZHRoICogNCk7IH1cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtNTpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykgeyB3aWR0aDogKCRuYXZiYXItZHJvcGRvd24td2lkdGggKiA1KTsgfVxuXG4vKlxuICogRHJvcGJhciBtb2RpZmllclxuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24tZHJvcGJhciB7XG4gICAgbWFyZ2luLXRvcDogJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi1ib3R0b207XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1kcm9wZG93bi1kcm9wYmFyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXIoKTt9XG59XG5cblxuLyogRHJvcGRvd24gTmF2XG4gKiBBZG9wdHMgYHVrLW5hdmBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1kcm9wZG93bi1uYXYpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGRvd24tbmF2KCk7fVxufVxuXG4vKlxuICogSXRlbXNcbiAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYSB7XG4gICAgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbSgpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgPiBsaSA+IGE6aG92ZXIsXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3ZlcigpO31cbn1cblxuLyogQWN0aXZlICovXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICAgIGNvbG9yOiAkbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1hY3RpdmUoKTt9XG59XG5cbi8qXG4gKiBIZWFkZXJcbiAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LWhlYWRlciB7XG4gICAgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1oZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlcigpO31cbn1cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3A6ICRuYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkICRuYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXIoKTt9XG59XG5cbi8qXG4gKiBTdWJsaXN0c1xuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6aG92ZXIsXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmZvY3VzIHsgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjsgfVxuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHsgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I7IH1cblxuXG4vKiBEcm9wYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdmJhci1kcm9wYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkbmF2YmFyLWRyb3BiYXItYmFja2dyb3VuZDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3BiYXIpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGJhcigpO31cbn1cblxuLypcbiAqIFNsaWRlIG1vZGlmaWVyXG4gKi9cblxuLnVrLW5hdmJhci1kcm9wYmFyLXNsaWRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJG5hdmJhci1kcm9wYmFyLXotaW5kZXg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3BiYXItc2xpZGUpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGJhci1zbGlkZSgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItbWlzYykpIHtAaW5jbHVkZSBob29rLW5hdmJhci1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1uYXZiYXIoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXZiYXItY29udGFpbmVyKCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLW5hdi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKXt9XG4vLyBAbWl4aW4gaG9vay1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLWl0ZW0oKXt9XG4vLyBAbWl4aW4gaG9vay1uYXZiYXItdG9nZ2xlKCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLXRvZ2dsZS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci10b2dnbGUtaWNvbigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci10b2dnbGUtaWNvbi1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1zdWJ0aXRsZSgpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1wcmltYXJ5KCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLXRyYW5zcGFyZW50KCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLXN0aWNreSgpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bi1kcm9wYmFyKCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlcigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlcigpe31cbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wYmFyKCl7fVxuLy8gQG1peGluIGhvb2stbmF2YmFyLWRyb3BiYXItc2xpZGUoKXt9XG4vLyBAbWl4aW4gaG9vay1uYXZiYXItbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2YmFyLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2YmFyLXRvZ2dsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtbmF2YmFyLXRvZ2dsZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0oKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdmJhci1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBTdWJuYXZcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhIHN1YiBuYXZpZ2F0aW9uXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc3VibmF2YFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXN1Ym5hdi1kaXZpZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc3VibmF2LXBpbGxgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZmlyc3QtY29sdW1uYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRzdWJuYXYtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xuXG4kc3VibmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRzdWJuYXYtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJHN1Ym5hdi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kc3VibmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcblxuJHN1Ym5hdi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICRzdWJuYXYtbWFyZ2luLWhvcml6b250YWwgIWRlZmF1bHQ7XG4kc3VibmF2LWRpdmlkZXItYm9yZGVyLWhlaWdodDogICAgICAgICAgICAgICAgICAgMS41ZW0gIWRlZmF1bHQ7XG4kc3VibmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kc3VibmF2LWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRzdWJuYXYtcGlsbC1pdGVtLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkc3VibmF2LWl0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHN1Ym5hdi1waWxsLWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kc3VibmF2LXBpbGwtaXRlbS1vbmNsaWNrLWJhY2tncm91bmQ6ICAgICAgICAgICAgJHN1Ym5hdi1waWxsLWl0ZW0taG92ZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAgICAgICAgICAkc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG5cbiRzdWJuYXYtaXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTdWJuYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIENlbnRlciBpdGVtcyB2ZXJ0aWNhbGx5IGlmIHRoZXkgaGF2ZSBhIGRpZmZlcmVudCBoZWlnaHRcbiAqIDMuIEd1dHRlclxuICogNC4gUmVzZXQgbGlzdFxuICovXG5cbi51ay1zdWJuYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiAyICovXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAzICovXG4gICAgbWFyZ2luLWxlZnQ6ICgtJHN1Ym5hdi1tYXJnaW4taG9yaXpvbnRhbCk7XG4gICAgLyogNCAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc3VibmF2KSkge0BpbmNsdWRlIGhvb2stc3VibmF2KCk7fVxufVxuXG4vKlxuICogMS4gU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnM6IDAgMCBhdXRvXG4gKiAyLiBHdXR0ZXJcbiAqIDMuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IGZvciBkcm9wZG93bnNcbiAqL1xuXG4udWstc3VibmF2ID4gKiB7XG4gICAgLyogMSAqL1xuICAgIGZsZXg6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIHBhZGRpbmctbGVmdDogJHN1Ym5hdi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICAvKiAzICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEl0ZW1zIG11c3QgdGFyZ2V0IGBhYCBlbGVtZW50cyB0byBleGNsdWRlIG90aGVyIGVsZW1lbnRzIChlLmcuIGRyb3Bkb3ducylcbiAqIFVzaW5nIGA6Zmlyc3QtY2hpbGRgIGluc3RlYWQgb2YgYGFgIHRvIHN1cHBvcnQgYHNwYW5gIGVsZW1lbnRzIGZvciB0ZXh0XG4gKiAxLiBDZW50ZXIgY29udGVudCB2ZXJ0aWNhbGx5LCBlLmcuIGFuIGljb25cbiAqIDIuIEltaXRhdGUgd2hpdGUgc3BhY2UgZ2FwIHdoZW4gdXNpbmcgZmxleGJveFxuICogMy4gU3R5bGVcbiAqL1xuXG4udWstc3VibmF2ID4gKiA+IDpmaXJzdC1jaGlsZCB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAyICovXG4gICAgY29sdW1uLWdhcDogMC4yNWVtO1xuICAgIC8qIDMgKi9cbiAgICBjb2xvcjogJHN1Ym5hdi1pdGVtLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zdWJuYXYtaXRlbSkpIHtAaW5jbHVkZSBob29rLXN1Ym5hdi1pdGVtKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstc3VibmF2ID4gKiA+IGE6aG92ZXIsXG4udWstc3VibmF2ID4gKiA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAkc3VibmF2LWl0ZW0taG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkc3VibmF2LWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXN1Ym5hdi1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stc3VibmF2LWl0ZW0taG92ZXIoKTt9XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLXN1Ym5hdiA+IC51ay1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogJHN1Ym5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKSkge0BpbmNsdWRlIGhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKCk7fVxufVxuXG5cbi8qIERpdmlkZXIgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogU2V0IGd1dHRlciBcbiAqL1xuXG4udWstc3VibmF2LWRpdmlkZXIgeyBtYXJnaW4tbGVmdDogLSgoJHN1Ym5hdi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsICogMikgKyAkc3VibmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoKTsgfVxuXG4vKlxuICogQWxpZ24gaXRlbXMgYW5kIGRpdmlkZXIgdmVydGljYWxseVxuICovXG5cbi51ay1zdWJuYXYtZGl2aWRlciA+ICoge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLypcbiAqIERpdmlkZXJcbiAqIDEuIGBudGgtY2hpbGRgIG1ha2VzIGl0IGFsc28gd29yayB3aXRob3V0IEpTIGlmIGl0J3Mgb25seSBvbmUgcm93XG4gKi9cblxuLnVrLXN1Ym5hdi1kaXZpZGVyID4gOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgaGVpZ2h0OiAkc3VibmF2LWRpdmlkZXItYm9yZGVyLWhlaWdodDtcbiAgICBtYXJnaW4tbGVmdDogKCRzdWJuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbCAtICRzdWJuYXYtbWFyZ2luLWhvcml6b250YWwpO1xuICAgIG1hcmdpbi1yaWdodDogJHN1Ym5hdi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIGJvcmRlci1sZWZ0OiAkc3VibmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4vKiAxICovXG4udWstc3VibmF2LWRpdmlkZXIgPiA6bnRoLWNoaWxkKG4rMik6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkc3VibmF2LWRpdmlkZXItYm9yZGVyO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zdWJuYXYtZGl2aWRlcikpIHtAaW5jbHVkZSBob29rLXN1Ym5hdi1kaXZpZGVyKCk7fVxufVxuXG5cbi8qIFBpbGwgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nOiAkc3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICRzdWJuYXYtcGlsbC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiAkc3VibmF2LXBpbGwtaXRlbS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkc3VibmF2LXBpbGwtaXRlbS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc3VibmF2LXBpbGwtaXRlbSkpIHtAaW5jbHVkZSBob29rLXN1Ym5hdi1waWxsLWl0ZW0oKTt9XG59XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1zdWJuYXYtcGlsbCA+ICogPiBhOmhvdmVyLFxuLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRzdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stc3VibmF2LXBpbGwtaXRlbS1ob3ZlcigpO31cbn1cblxuLyogT25DbGljayAqL1xuLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3VibmF2LXBpbGwtaXRlbS1vbmNsaWNrLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRzdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaykpIHtAaW5jbHVkZSBob29rLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaygpO31cbn1cblxuLyogQWN0aXZlICovXG4udWstc3VibmF2LXBpbGwgPiAudWstYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRzdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpO31cbn1cblxuXG4vKiBEaXNhYmxlZFxuICogVGhlIHNhbWUgZm9yIGFsbCBzdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc3VibmF2ID4gLnVrLWRpc2FibGVkID4gYSB7XG4gICAgY29sb3I6ICRzdWJuYXYtaXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc3VibmF2LWl0ZW0tZGlzYWJsZWQpKSB7QGluY2x1ZGUgaG9vay1zdWJuYXYtaXRlbS1kaXNhYmxlZCgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1zdWJuYXYtbWlzYykpIHtAaW5jbHVkZSBob29rLXN1Ym5hdi1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1zdWJuYXYoKXt9XG4vLyBAbWl4aW4gaG9vay1zdWJuYXYtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLXN1Ym5hdi1pdGVtLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stc3VibmF2LWRpdmlkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1zdWJuYXYtcGlsbC1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2stc3VibmF2LXBpbGwtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaygpe31cbi8vIEBtaXhpbiBob29rLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stc3VibmF2LWl0ZW0tZGlzYWJsZWQoKXt9XG4vLyBAbWl4aW4gaG9vay1zdWJuYXYtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2Utc3VibmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogICAkaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAkaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2Utc3VibmF2LWl0ZW0tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1zdWJuYXYtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2Utc3VibmF2LWl0ZW0taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWFjdGl2ZSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2Utc3VibmF2LWRpdmlkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0oKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaygpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWRpc2FibGVkKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBCcmVhZGNydW1iXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSBicmVhZGNydW1iIG5hdmlnYXRpb25cbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1icmVhZGNydW1iYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWRpc2FibGVkYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRicmVhZGNydW1iLWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1iLWRpdmlkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIvXCIgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRicmVhZGNydW1iLWl0ZW0tZm9udC1zaXplICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCcmVhZGNydW1iXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlc2V0IGxpc3RcbiAqL1xuXG4udWstYnJlYWRjcnVtYiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1icmVhZGNydW1iKSkge0BpbmNsdWRlIGhvb2stYnJlYWRjcnVtYigpO31cbn1cblxuLypcbiAqIDEuIERvZXNuJ3QgZ2VuZXJhdGUgYW55IGJveCBhbmQgcmVwbGFjZWQgYnkgY2hpbGQgYm94ZXNcbiAqL1xuXG4udWstYnJlYWRjcnVtYiA+ICogeyBkaXNwbGF5OiBjb250ZW50czsgfVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJyZWFkY3J1bWIgPiAqID4gKiB7XG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYi1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWItaXRlbS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnJlYWRjcnVtYi1pdGVtKSkge0BpbmNsdWRlIGhvb2stYnJlYWRjcnVtYi1pdGVtKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnJlYWRjcnVtYiA+ICogPiA6aG92ZXIsXG4udWstYnJlYWRjcnVtYiA+ICogPiA6Zm9jdXMge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGJyZWFkY3J1bWItaXRlbS1ob3Zlci10ZXh0LWRlY29yYXRpb247XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJyZWFkY3J1bWItaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWJyZWFkY3J1bWItaXRlbS1ob3ZlcigpO31cbn1cblxuLyogRGlzYWJsZWQgKi9cbi51ay1icmVhZGNydW1iID4gLnVrLWRpc2FibGVkID4gKiB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCkpIHtAaW5jbHVkZSBob29rLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCgpO31cbn1cblxuLyogQWN0aXZlICovXG4udWstYnJlYWRjcnVtYiA+IDpsYXN0LWNoaWxkID4gc3Bhbixcbi51ay1icmVhZGNydW1iID4gOmxhc3QtY2hpbGQgPiBhOm5vdChbaHJlZl0pIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1icmVhZGNydW1iLWl0ZW0tYWN0aXZlKCk7fVxufVxuXG4vKlxuICogRGl2aWRlclxuICogYG50aC1jaGlsZGAgbWFrZXMgaXQgYWxzbyB3b3JrIHdpdGhvdXQgSlMgaWYgaXQncyBvbmx5IG9uZSByb3dcbiAqIDEuIFJlbW92ZSBzcGFjZSBiZXR3ZWVuIGlubGluZSBibG9jayBlbGVtZW50cy5cbiAqIDIuIFN0eWxlXG4gKi9cblxuLnVrLWJyZWFkY3J1bWIgPiA6bnRoLWNoaWxkKG4rMik6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRicmVhZGNydW1iLWRpdmlkZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIDEgKi9cbiAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWItZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbCAwIHVucXVvdGUoJ2NhbGMoI3skYnJlYWRjcnVtYi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsfSAtIDRweCknKTtcbiAgICAvKiAyICovXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYi1kaXZpZGVyLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnJlYWRjcnVtYi1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2stYnJlYWRjcnVtYi1kaXZpZGVyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWJyZWFkY3J1bWItbWlzYykpIHtAaW5jbHVkZSBob29rLWJyZWFkY3J1bWItbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stYnJlYWRjcnVtYigpe31cbi8vIEBtaXhpbiBob29rLWJyZWFkY3J1bWItaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWJyZWFkY3J1bWItaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCgpe31cbi8vIEBtaXhpbiBob29rLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1icmVhZGNydW1iLWRpdmlkZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1icmVhZGNydW1iLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtYnJlYWRjcnVtYi1kaXZpZGVyKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBQYWdpbmF0aW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSBwYWdlIG5hdmlnYXRpb25cbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1wYWdpbmF0aW9uYFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLXBhZ2luYXRpb24tbmV4dGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBhZ2luYXRpb24tcHJldmlvdXNgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZGlzYWJsZWRgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHBhZ2luYXRpb24tbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFBhZ2luYXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIEd1dHRlclxuICogMy4gUmVzZXQgbGlzdFxuICovXG5cbi51ay1wYWdpbmF0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbi1sZWZ0OiAoLSRwYWdpbmF0aW9uLW1hcmdpbi1ob3Jpem9udGFsKTtcbiAgICAvKiAzICovXG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1wYWdpbmF0aW9uKSkge0BpbmNsdWRlIGhvb2stcGFnaW5hdGlvbigpO31cbn1cblxuLypcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICogMi4gR3V0dGVyXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgZHJvcGRvd25zXG4gKi9cblxuLnVrLXBhZ2luYXRpb24gPiAqIHtcbiAgICAvKiAxICovXG4gICAgZmxleDogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcGFkZGluZy1sZWZ0OiAkcGFnaW5hdGlvbi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICAvKiAzICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFByZXZlbnQgZ2FwIGlmIGNoaWxkIGVsZW1lbnQgaXMgYGlubGluZS1ibG9ja2AsIGUuZy4gYW4gaWNvblxuICogMi4gU3R5bGVcbiAqL1xuXG4udWstcGFnaW5hdGlvbiA+ICogPiAqIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLyogMiAqL1xuICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stcGFnaW5hdGlvbi1pdGVtKSkge0BpbmNsdWRlIGhvb2stcGFnaW5hdGlvbi1pdGVtKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstcGFnaW5hdGlvbiA+ICogPiA6aG92ZXIsXG4udWstcGFnaW5hdGlvbiA+ICogPiA6Zm9jdXMge1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24taXRlbS1ob3Zlci10ZXh0LWRlY29yYXRpb247XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXBhZ2luYXRpb24taXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLXBhZ2luYXRpb24taXRlbS1ob3ZlcigpO31cbn1cblxuLyogQWN0aXZlICovXG4udWstcGFnaW5hdGlvbiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXBhZ2luYXRpb24taXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlKCk7fVxufVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVrLXBhZ2luYXRpb24gPiAudWstZGlzYWJsZWQgPiAqIHtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2stcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLXBhZ2luYXRpb24tbWlzYykpIHtAaW5jbHVkZSBob29rLXBhZ2luYXRpb24tbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stcGFnaW5hdGlvbigpe31cbi8vIEBtaXhpbiBob29rLXBhZ2luYXRpb24taXRlbSgpe31cbi8vIEBtaXhpbiBob29rLXBhZ2luYXRpb24taXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLXBhZ2luYXRpb24taXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQoKXt9XG4vLyBAbWl4aW4gaG9vay1wYWdpbmF0aW9uLW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCgpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgVGFiXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSB0YWJiZWQgbmF2aWdhdGlvblxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXRhYmBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay10YWItYm90dG9tYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFiLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10YWItcmlnaHRgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZGlzYWJsZWRgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHRhYi1tYXJnaW4taG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgMjBweCAhZGVmYXVsdDtcblxuJHRhYi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiR0YWItaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcbiR0YWItaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kdGFiLWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJHRhYi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiR0YWItaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kdGFiLWl0ZW0tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUYWJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIEd1dHRlclxuICogMy4gUmVzZXQgbGlzdFxuICovXG5cbi51ay10YWIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiAyICovXG4gICAgbWFyZ2luLWxlZnQ6ICgtJHRhYi1tYXJnaW4taG9yaXpvbnRhbCk7XG4gICAgLyogMyAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFiKSkge0BpbmNsdWRlIGhvb2stdGFiKCk7fVxufVxuXG4vKlxuICogMS4gU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnM6IDAgMCBhdXRvXG4gKiAyLiBHdXR0ZXJcbiAqIDMuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IGZvciBkcm9wZG93bnNcbiAqL1xuXG4udWstdGFiID4gKiB7XG4gICAgLyogMSAqL1xuICAgIGZsZXg6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIHBhZGRpbmctbGVmdDogJHRhYi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICAvKiAzICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEl0ZW1zIG11c3QgdGFyZ2V0IGBhYCBlbGVtZW50cyB0byBleGNsdWRlIG90aGVyIGVsZW1lbnRzIChlLmcuIGRyb3Bkb3ducylcbiAqIDEuIENlbnRlciBjb250ZW50IHZlcnRpY2FsbHksIGUuZy4gYW4gaWNvblxuICogMi4gSW1pdGF0ZSB3aGl0ZSBzcGFjZSBnYXAgd2hlbiB1c2luZyBmbGV4Ym94XG4gKiAzLiBDZW50ZXIgY29udGVudCBpZiBhIHdpZHRoIGlzIHNldFxuICogNC4gU3R5bGVcbiAqL1xuXG4udWstdGFiID4gKiA+IGEge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLyogMiAqL1xuICAgIGNvbHVtbi1nYXA6IDAuMjVlbTtcbiAgICAvKiAzICovXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgLyogNCAqL1xuICAgIHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nLXZlcnRpY2FsICR0YWItaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgY29sb3I6ICR0YWItaXRlbS1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFiLWl0ZW0pKSB7QGluY2x1ZGUgaG9vay10YWItaXRlbSgpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXRhYiA+ICogPiBhOmhvdmVyLFxuLnVrLXRhYiA+ICogPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogJHRhYi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJHRhYi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFiLWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay10YWItaXRlbS1ob3ZlcigpO31cbn1cblxuLyogQWN0aXZlICovXG4udWstdGFiID4gLnVrLWFjdGl2ZSA+IGEge1xuICAgIGNvbG9yOiAkdGFiLWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10YWItaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay10YWItaXRlbS1hY3RpdmUoKTt9XG59XG5cbi8qIERpc2FibGVkICovXG4udWstdGFiID4gLnVrLWRpc2FibGVkID4gYSB7XG4gICAgY29sb3I6ICR0YWItaXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFiLWl0ZW0tZGlzYWJsZWQpKSB7QGluY2x1ZGUgaG9vay10YWItaXRlbS1kaXNhYmxlZCgpO31cbn1cblxuXG4vKiBQb3NpdGlvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBCb3R0b21cbiAqL1xuXG4udWstdGFiLWJvdHRvbSB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRhYi1ib3R0b20pKSB7QGluY2x1ZGUgaG9vay10YWItYm90dG9tKCk7fVxufVxuXG4udWstdGFiLWJvdHRvbSA+ICogPiBhIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFiLWJvdHRvbS1pdGVtKSkge0BpbmNsdWRlIGhvb2stdGFiLWJvdHRvbS1pdGVtKCk7fVxufVxuXG4vKlxuICogTGVmdCArIFJpZ2h0XG4gKiAxLiBSZXNldCBHdXR0ZXJcbiAqL1xuXG4udWstdGFiLWxlZnQsXG4udWstdGFiLXJpZ2h0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qIDEgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLyogMSAqL1xuLnVrLXRhYi1sZWZ0ID4gKixcbi51ay10YWItcmlnaHQgPiAqIHsgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi51ay10YWItbGVmdCB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRhYi1sZWZ0KSkge0BpbmNsdWRlIGhvb2stdGFiLWxlZnQoKTt9XG59XG5cbi51ay10YWItcmlnaHQge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10YWItcmlnaHQpKSB7QGluY2x1ZGUgaG9vay10YWItcmlnaHQoKTt9XG59XG5cbi51ay10YWItbGVmdCA+ICogPiBhIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRhYi1sZWZ0LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay10YWItbGVmdC1pdGVtKCk7fVxufVxuXG4udWstdGFiLXJpZ2h0ID4gKiA+IGEge1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGFiLXJpZ2h0LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay10YWItcmlnaHQtaXRlbSgpO31cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay10YWItbWlzYykpIHtAaW5jbHVkZSBob29rLXRhYi1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay10YWIoKXt9XG4vLyBAbWl4aW4gaG9vay10YWItaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLXRhYi1pdGVtLWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stdGFiLWl0ZW0tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stdGFiLWl0ZW0tZGlzYWJsZWQoKXt9XG4vLyBAbWl4aW4gaG9vay10YWItYm90dG9tKCl7fVxuLy8gQG1peGluIGhvb2stdGFiLWJvdHRvbS1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2stdGFiLWxlZnQoKXt9XG4vLyBAbWl4aW4gaG9vay10YWItbGVmdC1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2stdGFiLXJpZ2h0KCl7fVxuLy8gQG1peGluIGhvb2stdGFiLXJpZ2h0LWl0ZW0oKXt9XG4vLyBAbWl4aW4gaG9vay10YWItbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtdGFiLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdGFiLWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdGFiLWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtdGFiLWl0ZW0tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS10YWIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRhYi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS10YWItaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtdGFiLWl0ZW0tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS10YWItaXRlbS1kaXNhYmxlZCgpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIFNsaWRlbmF2XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgcHJldmlvdXMvbmV4dCBpY29uIG5hdmlnYXRpb25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc2xpZGVuYXZgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstc2xpZGVuYXYtY29udGFpbmVyYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXNsaWRlbmF2LXByZXZpb3VzYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2xpZGVuYXYtbmV4dGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNsaWRlbmF2LWxhcmdlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRzbGlkZW5hdi1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kc2xpZGVuYXYtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcblxuJHNsaWRlbmF2LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1jb2xvciwgMC41KSAhZGVmYXVsdDtcbiRzbGlkZW5hdi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtY29sb3IsIDAuOSkgIWRlZmF1bHQ7XG4kc2xpZGVuYXYtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkZ2xvYmFsLWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuXG4kc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRzbGlkZW5hdi1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAkc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU2xpZGVuYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRvcHRzIGB1ay1pY29uYFxuICovXG5cbi51ay1zbGlkZW5hdiB7XG4gICAgcGFkZGluZzogJHNsaWRlbmF2LXBhZGRpbmctdmVydGljYWwgJHNsaWRlbmF2LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBjb2xvcjogJHNsaWRlbmF2LWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZW5hdikpIHtAaW5jbHVkZSBob29rLXNsaWRlbmF2KCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstc2xpZGVuYXY6aG92ZXIsXG4udWstc2xpZGVuYXY6Zm9jdXMge1xuICAgIGNvbG9yOiAkc2xpZGVuYXYtaG92ZXItY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2xpZGVuYXYtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1zbGlkZW5hdi1ob3ZlcigpO31cbn1cblxuLyogT25DbGljayAqL1xuLnVrLXNsaWRlbmF2OmFjdGl2ZSB7XG4gICAgY29sb3I6ICRzbGlkZW5hdi1hY3RpdmUtY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNsaWRlbmF2LWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLXNsaWRlbmF2LWFjdGl2ZSgpO31cbn1cblxuXG4vKiBJY29uIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFByZXZpb3VzXG4gKi9cblxuLnVrLXNsaWRlbmF2LXByZXZpb3VzIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2xpZGVuYXYtcHJldmlvdXMpKSB7QGluY2x1ZGUgaG9vay1zbGlkZW5hdi1wcmV2aW91cygpO31cbn1cblxuLypcbiAqIE5leHRcbiAqL1xuXG4udWstc2xpZGVuYXYtbmV4dCB7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNsaWRlbmF2LW5leHQpKSB7QGluY2x1ZGUgaG9vay1zbGlkZW5hdi1uZXh0KCk7fVxufVxuXG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc2xpZGVuYXYtbGFyZ2Uge1xuICAgIHBhZGRpbmc6ICRzbGlkZW5hdi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsICRzbGlkZW5hdi1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNsaWRlbmF2LWxhcmdlKSkge0BpbmNsdWRlIGhvb2stc2xpZGVuYXYtbGFyZ2UoKTt9XG59XG5cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNsaWRlbmF2LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2xpZGVuYXYtY29udGFpbmVyKSkge0BpbmNsdWRlIGhvb2stc2xpZGVuYXYtY29udGFpbmVyKCk7fVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLXNsaWRlbmF2LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1zbGlkZW5hdi1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1zbGlkZW5hdigpe31cbi8vIEBtaXhpbiBob29rLXNsaWRlbmF2LWhvdmVyKCl7fVxuLy8gQG1peGluIGhvb2stc2xpZGVuYXYtYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stc2xpZGVuYXYtcHJldmlvdXMoKXt9XG4vLyBAbWl4aW4gaG9vay1zbGlkZW5hdi1uZXh0KCl7fVxuLy8gQG1peGluIGhvb2stc2xpZGVuYXYtbGFyZ2UoKXt9XG4vLyBAbWl4aW4gaG9vay1zbGlkZW5hdi1jb250YWluZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1zbGlkZW5hdi1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1zbGlkZW5hdi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCRpbnZlcnNlLWdsb2JhbC1jb2xvciwgMC43KSAhZGVmYXVsdDtcbiRpbnZlcnNlLXNsaWRlbmF2LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgIHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjk1KSAhZGVmYXVsdDtcbiRpbnZlcnNlLXNsaWRlbmF2LWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgIHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjcpICFkZWZhdWx0O1xuXG5cblxuLy8gQG1peGluIGhvb2staW52ZXJzZS1zbGlkZW5hdigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2Utc2xpZGVuYXYtaG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXNsaWRlbmF2LWFjdGl2ZSgpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgRG90bmF2XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgZG90IG5hdmlnYXRpb25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstZG90bmF2YFxuLy9cbi8vIE1vZGlmaWVyOiAgICAgICAgYHVrLWRvdG5hdi12ZXJ0aWNhbGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGRvdG5hdi1tYXJnaW4taG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgIDEycHggIWRlZmF1bHQ7XG4kZG90bmF2LW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgJGRvdG5hdi1tYXJnaW4taG9yaXpvbnRhbCAhZGVmYXVsdDtcblxuJGRvdG5hdi1pdGVtLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG4kZG90bmF2LWl0ZW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRvdG5hdi1pdGVtLXdpZHRoICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgIDUwJSAhZGVmYXVsdDtcblxuJGRvdG5hdi1pdGVtLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1jb2xvciwgMC4yKSAhZGVmYXVsdDtcbiRkb3RuYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtY29sb3IsIDAuNikgIWRlZmF1bHQ7XG4kZG90bmF2LWl0ZW0tb25jbGljay1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgcmdiYSgkZ2xvYmFsLWNvbG9yLCAwLjIpICFkZWZhdWx0O1xuJGRvdG5hdi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1jb2xvciwgMC42KSAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRG90bmF2XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEFsbG93IGl0ZW1zIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBSZXNldCBsaXN0XG4gKiAzLiBHdXR0ZXJcbiAqL1xuXG4udWstZG90bmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIG1hcmdpbi1sZWZ0OiAoLSRkb3RuYXYtbWFyZ2luLWhvcml6b250YWwpO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kb3RuYXYpKSB7QGluY2x1ZGUgaG9vay1kb3RuYXYoKTt9XG59XG5cbi8qXG4gKiAxLiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9uczogMCAwIGF1dG9cbiAqIDIuIEd1dHRlclxuICovXG5cbi51ay1kb3RuYXYgPiAqIHtcbiAgICAvKiAxICovXG4gICAgZmxleDogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcGFkZGluZy1sZWZ0OiAkZG90bmF2LW1hcmdpbi1ob3Jpem9udGFsO1xufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEl0ZW1zXG4gKiAxLiBIaWRlIHRleHQgaWYgcHJlc2VudFxuICovXG5cbi51ay1kb3RuYXYgPiAqID4gKiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJGRvdG5hdi1pdGVtLXdpZHRoO1xuICAgIGhlaWdodDogJGRvdG5hdi1pdGVtLWhlaWdodDtcbiAgICBib3JkZXItcmFkaXVzOiAkZG90bmF2LWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkZG90bmF2LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAvKiAxICovXG4gICAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kb3RuYXYtaXRlbSkpIHtAaW5jbHVkZSBob29rLWRvdG5hdi1pdGVtKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstZG90bmF2ID4gKiA+IDpob3Zlcixcbi51ay1kb3RuYXYgPiAqID4gOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZG90bmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kb3RuYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWRvdG5hdi1pdGVtLWhvdmVyKCk7fVxufVxuXG4vKiBPbkNsaWNrICovXG4udWstZG90bmF2ID4gKiA+IDphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkb3RuYXYtaXRlbS1vbmNsaWNrLWJhY2tncm91bmQ7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRvdG5hdi1pdGVtLW9uY2xpY2spKSB7QGluY2x1ZGUgaG9vay1kb3RuYXYtaXRlbS1vbmNsaWNrKCk7fVxufVxuXG4vKiBBY3RpdmUgKi9cbi51ay1kb3RuYXYgPiAudWstYWN0aXZlID4gKiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRvdG5hdi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUoKTt9XG59XG5cblxuLyogTW9kaWZpZXI6ICd1ay1kb3RuYXYtdmVydGljYWwnXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENoYW5nZSBkaXJlY3Rpb25cbiAqIDIuIEd1dHRlclxuICovXG5cbi51ay1kb3RuYXYtdmVydGljYWwge1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qIDIgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAoLSRkb3RuYXYtbWFyZ2luLXZlcnRpY2FsKTtcbn1cblxuLyogMiAqL1xuLnVrLWRvdG5hdi12ZXJ0aWNhbCA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXRvcDogJGRvdG5hdi1tYXJnaW4tdmVydGljYWw7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stZG90bmF2LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1kb3RuYXYtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stZG90bmF2KCl7fVxuLy8gQG1peGluIGhvb2stZG90bmF2LWl0ZW0oKXt9XG4vLyBAbWl4aW4gaG9vay1kb3RuYXYtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWRvdG5hdi1pdGVtLW9uY2xpY2soKXt9XG4vLyBAbWl4aW4gaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1kb3RuYXYtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGludmVyc2UtZG90bmF2LWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1kb3RuYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICByZ2JhKCRpbnZlcnNlLWdsb2JhbC1jb2xvciwgMC45KSAhZGVmYXVsdDtcbiRpbnZlcnNlLWRvdG5hdi1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogICAgICAgIHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuJGludmVyc2UtZG90bmF2LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuOSkgIWRlZmF1bHQ7XG5cblxuXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtZG90bmF2LWl0ZW0tb25jbGljaygpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtZG90bmF2LWl0ZW0tYWN0aXZlKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgVGh1bWJuYXZcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSB0aHVtYm5haWwgbmF2aWdhdGlvbnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10aHVtYm5hdmBcbi8vXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay10aHVtYm5hdi12ZXJ0aWNhbGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHRodW1ibmF2LW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kdGh1bWJuYXYtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgJHRodW1ibmF2LW1hcmdpbi1ob3Jpem9udGFsICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUaHVtYm5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gUmVzZXQgbGlzdFxuICogMy4gR3V0dGVyXG4gKi9cblxuLnVrLXRodW1ibmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIG1hcmdpbi1sZWZ0OiAoLSR0aHVtYm5hdi1tYXJnaW4taG9yaXpvbnRhbCk7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRodW1ibmF2KSkge0BpbmNsdWRlIGhvb2stdGh1bWJuYXYoKTt9XG59XG5cbi8qXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rczogMCAxIGF1dG9cbiAqIDEuIEd1dHRlclxuICovXG5cbi51ay10aHVtYm5hdiA+ICoge1xuICAgIC8qIDEgKi9cbiAgICBwYWRkaW5nLWxlZnQ6ICR0aHVtYm5hdi1tYXJnaW4taG9yaXpvbnRhbDtcbn1cblxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBJdGVtc1xuICovXG5cbi51ay10aHVtYm5hdiA+ICogPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRodW1ibmF2LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay10aHVtYm5hdi1pdGVtKCk7fVxufVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstdGh1bWJuYXYgPiAqID4gOmhvdmVyLFxuLnVrLXRodW1ibmF2ID4gKiA+IDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGh1bWJuYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLXRodW1ibmF2LWl0ZW0taG92ZXIoKTt9XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLXRodW1ibmF2ID4gLnVrLWFjdGl2ZSA+ICoge1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10aHVtYm5hdi1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLXRodW1ibmF2LWl0ZW0tYWN0aXZlKCk7fVxufVxuXG5cbi8qIE1vZGlmaWVyOiAndWstdGh1bWJuYXYtdmVydGljYWwnXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENoYW5nZSBkaXJlY3Rpb25cbiAqIDIuIEd1dHRlclxuICovXG5cbi51ay10aHVtYm5hdi12ZXJ0aWNhbCB7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6ICgtJHRodW1ibmF2LW1hcmdpbi12ZXJ0aWNhbCk7XG59XG5cbi8qIDIgKi9cbi51ay10aHVtYm5hdi12ZXJ0aWNhbCA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXRvcDogJHRodW1ibmF2LW1hcmdpbi12ZXJ0aWNhbDtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay10aHVtYm5hdi1taXNjKSkge0BpbmNsdWRlIGhvb2stdGh1bWJuYXYtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stdGh1bWJuYXYoKXt9XG4vLyBAbWl4aW4gaG9vay10aHVtYm5hdi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2stdGh1bWJuYXYtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLXRodW1ibmF2LWl0ZW0tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stdGh1bWJuYXYtbWlzYygpe31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbS1hY3RpdmUoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBJY29ubmF2XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgaWNvbiBuYXZpZ2F0aW9uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWljb25uYXZgXG4vL1xuLy8gTW9kaWZpZXI6ICAgICAgICBgdWstaWNvbm5hdi12ZXJ0aWNhbGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGljb25uYXYtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcbiRpY29ubmF2LW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgJGljb25uYXYtbWFyZ2luLWhvcml6b250YWwgIWRlZmF1bHQ7XG5cbiRpY29ubmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcblxuJGljb25uYXYtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xuXG4kaWNvbm5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEljb25uYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIFJlc2V0IGxpc3RcbiAqIDMuIEd1dHRlclxuICovXG5cbi51ay1pY29ubmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIG1hcmdpbi1sZWZ0OiAoLSRpY29ubmF2LW1hcmdpbi1ob3Jpem9udGFsKTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staWNvbm5hdikpIHtAaW5jbHVkZSBob29rLWljb25uYXYoKTt9XG59XG5cbi8qXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rczogMCAxIGF1dG9cbiAqIDEuIEd1dHRlclxuICovXG5cbi51ay1pY29ubmF2ID4gKiB7XG4gICAgLyogMSAqL1xuICAgIHBhZGRpbmctbGVmdDogJGljb25uYXYtbWFyZ2luLWhvcml6b250YWw7XG59XG5cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSXRlbXMgbXVzdCB0YXJnZXQgYGFgIGVsZW1lbnRzIHRvIGV4Y2x1ZGUgb3RoZXIgZWxlbWVudHMgKGUuZy4gZHJvcGRvd25zKVxuICogMS4gQ2VudGVyIGNvbnRlbnQgdmVydGljYWxseSBpZiB0aGVyZSBpcyBzdGlsbCBzb21lIHRleHRcbiAqIDIuIEltaXRhdGUgd2hpdGUgc3BhY2UgZ2FwIHdoZW4gdXNpbmcgZmxleGJveFxuICogMy4gRm9yY2UgdGV4dCBub3QgdG8gYWZmZWN0IGl0ZW0gaGVpZ2h0XG4gKiA0LiBTdHlsZVxuICogNS4gUmVxdWlyZWQgZm9yIGBhYCBpZiB0aGVyZSBpcyBzdGlsbCBzb21lIHRleHRcbiAqL1xuXG4udWstaWNvbm5hdiA+ICogPiBhIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qIDIgKi9cbiAgICBjb2x1bW4tZ2FwOiAwLjI1ZW07XG4gICAgLyogMyAqL1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIC8qIDQgKi9cbiAgICBjb2xvcjogJGljb25uYXYtaXRlbS1jb2xvcjtcbiAgICAvKiA1ICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pY29ubmF2LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1pY29ubmF2LWl0ZW0oKTt9XG59XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1pY29ubmF2ID4gKiA+IGE6aG92ZXIsXG4udWstaWNvbm5hdiA+ICogPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogJGljb25uYXYtaXRlbS1ob3Zlci1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pY29ubmF2LWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pY29ubmF2LWl0ZW0taG92ZXIoKTt9XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLWljb25uYXYgPiAudWstYWN0aXZlID4gYSB7XG4gICAgY29sb3I6ICRpY29ubmF2LWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pY29ubmF2LWl0ZW0tYWN0aXZlKSkge0BpbmNsdWRlIGhvb2staWNvbm5hdi1pdGVtLWFjdGl2ZSgpO31cbn1cblxuXG4vKiBNb2RpZmllcjogJ3VrLWljb25uYXYtdmVydGljYWwnXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENoYW5nZSBkaXJlY3Rpb25cbiAqIDIuIEd1dHRlclxuICovXG5cbi51ay1pY29ubmF2LXZlcnRpY2FsIHtcbiAgICAvKiAxICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKiAyICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogKC0kaWNvbm5hdi1tYXJnaW4tdmVydGljYWwpO1xufVxuXG4vKiAyICovXG4udWstaWNvbm5hdi12ZXJ0aWNhbCA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXRvcDogJGljb25uYXYtbWFyZ2luLXZlcnRpY2FsO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWljb25uYXYtbWlzYykpIHtAaW5jbHVkZSBob29rLWljb25uYXYtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2staWNvbm5hdigpe31cbi8vIEBtaXhpbiBob29rLWljb25uYXYtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWljb25uYXYtaXRlbS1ob3Zlcigpe31cbi8vIEBtaXhpbiBob29rLWljb25uYXYtaXRlbS1hY3RpdmUoKXt9XG4vLyBAbWl4aW4gaG9vay1pY29ubmF2LW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLWljb25uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xuJGludmVyc2UtaWNvbm5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1pY29ubmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtaWNvbm5hdi1pdGVtKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWljb25uYXYtaXRlbS1hY3RpdmUoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBMaWdodGJveFxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGFuIGxpZ2h0Ym94IGltYWdlIGdhbGxlcnlcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1saWdodGJveGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1saWdodGJveC1wYWdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtaXRlbXNgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saWdodGJveC10b29sYmFyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtdG9vbGJhci1pY29uYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtYnV0dG9uYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtY2FwdGlvbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpZ2h0Ym94LWlmcmFtZWBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1vcGVuYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRsaWdodGJveC16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXotaW5kZXggKyAxMCAhZGVmYXVsdDtcbiRsaWdodGJveC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuXG4kbGlnaHRib3gtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjcpICFkZWZhdWx0O1xuJGxpZ2h0Ym94LWl0ZW0tbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgIDEwMHZ3ICFkZWZhdWx0O1xuJGxpZ2h0Ym94LWl0ZW0tbWF4LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDEwMHZoICFkZWZhdWx0O1xuXG4kbGlnaHRib3gtdG9vbGJhci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRsaWdodGJveC10b29sYmFyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xuJGxpZ2h0Ym94LXRvb2xiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsMC4zKSAhZGVmYXVsdDtcbiRsaWdodGJveC10b29sYmFyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNykgIWRlZmF1bHQ7XG5cbiRsaWdodGJveC10b29sYmFyLWljb24tcGFkZGluZzogICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kbGlnaHRib3gtdG9vbGJhci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjcpICFkZWZhdWx0O1xuXG4kbGlnaHRib3gtdG9vbGJhci1pY29uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcblxuJGxpZ2h0Ym94LWJ1dHRvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XG4kbGlnaHRib3gtYnV0dG9uLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0Ym94LXRvb2xiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRsaWdodGJveC1idXR0b24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNykgIWRlZmF1bHQ7XG5cbiRsaWdodGJveC1idXR0b24taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBMaWdodGJveFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICogMy4gQWxsb3cgc2Nyb2xsaW5nIGZvciB0aGUgbW9kYWwgZGlhbG9nXG4gKiA0LiBIb3Jpem9udGFsIHBhZGRpbmdcbiAqIDUuIE1hc2sgdGhlIGJhY2tncm91bmQgcGFnZVxuICogNi4gRmFkZS1pbiB0cmFuc2l0aW9uXG4gKiA3LiBQcmV2ZW50IGNhbmNlbGxhdGlvbiBvZiBwb2ludGVyIGV2ZW50cyB3aGlsZSBkcmFnZ2luZ1xuICovXG5cbi51ay1saWdodGJveCB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJGxpZ2h0Ym94LXotaW5kZXg7XG4gICAgLyogNSAqL1xuICAgIGJhY2tncm91bmQ6ICRsaWdodGJveC1iYWNrZ3JvdW5kO1xuICAgIC8qIDYgKi9cbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xuICAgIC8qIDcgKi9cbiAgICB0b3VjaC1hY3Rpb246IHBpbmNoLXpvb207XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpZ2h0Ym94KSkge0BpbmNsdWRlIGhvb2stbGlnaHRib3goKTt9XG59XG5cbi8qXG4gKiBPcGVuXG4gKiAxLiBDZW50ZXIgY2hpbGRcbiAqIDIuIEZhZGUtaW5cbiAqL1xuXG4udWstbGlnaHRib3gudWstb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLyogMiAqL1xuICAgIG9wYWNpdHk6IDE7XG59XG5cblxuLyogUGFnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQcmV2ZW50IHNjcm9sbGJhcnNcbiAqL1xuXG4udWstbGlnaHRib3gtcGFnZSB7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENlbnRlciBjaGlsZCB3aXRoaW4gdGhlIHZpZXdwb3J0XG4gKiAyLiBOb3QgdmlzaWJsZSBieSBkZWZhdWx0XG4gKiAzLiBDb2xvciBuZWVkZWQgZm9yIHNwaW5uZXIgaWNvblxuICogNC4gT3B0aW1pemUgYW5pbWF0aW9uXG4gKiA1LiBSZXNwb25zaXZlbmVzc1xuICogICAgVXNpbmcgYHZoYCBmb3IgYG1heC1oZWlnaHRgIHRvIGZpeCBpbWFnZSBwcm9wb3J0aW9ucyBhZnRlciByZXNpemUgaW4gU2FmYXJpIGFuZCBPcGVyYVxuICogICAgVXNpbmcgYHZoYCBhbmQgYHZ3YCB0byBtYWtlIHJlc3BvbnNpdmUgaW1hZ2Ugd29yayBpbiBJRTExXG4gKiA2LiBTdXBwcmVzcyBvdXRsaW5lIG9uIGZvY3VzXG4gKi9cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiB7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLyogMiAqL1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAzICovXG4gICAgY29sb3I6ICRsaWdodGJveC1pdGVtLWNvbG9yO1xuICAgIC8qIDQgKi9cbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saWdodGJveC1pdGVtKSkge0BpbmNsdWRlIGhvb2stbGlnaHRib3gtaXRlbSgpO31cbn1cblxuLyogNSAqL1xuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiA+ICoge1xuICAgIG1heC13aWR0aDogJGxpZ2h0Ym94LWl0ZW0tbWF4LXdpZHRoO1xuICAgIG1heC1oZWlnaHQ6ICRsaWdodGJveC1pdGVtLW1heC1oZWlnaHQ7XG59XG5cbi8qIDYgKi9cbi51ay1saWdodGJveC1pdGVtcyA+IDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiA+IDpub3QoaWZyYW1lKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4udWstbGlnaHRib3gtaXRlbXMgPiAudWstYWN0aXZlIHsgZGlzcGxheTogZmxleDsgfVxuXG4vKiBUb29sYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWxpZ2h0Ym94LXRvb2xiYXIge1xuICAgIHBhZGRpbmc6ICRsaWdodGJveC10b29sYmFyLXBhZGRpbmctdmVydGljYWwgJGxpZ2h0Ym94LXRvb2xiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJhY2tncm91bmQ6ICRsaWdodGJveC10b29sYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsaWdodGJveC10b29sYmFyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saWdodGJveC10b29sYmFyKSkge0BpbmNsdWRlIGhvb2stbGlnaHRib3gtdG9vbGJhcigpO31cbn1cblxuLnVrLWxpZ2h0Ym94LXRvb2xiYXIgPiAqIHsgY29sb3I6ICRsaWdodGJveC10b29sYmFyLWNvbG9yOyB9XG5cblxuLyogVG9vbGJhciBJY29uIChDbG9zZSlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbGlnaHRib3gtdG9vbGJhci1pY29uIHtcbiAgICBwYWRkaW5nOiAkbGlnaHRib3gtdG9vbGJhci1pY29uLXBhZGRpbmc7XG4gICAgY29sb3I6ICRsaWdodGJveC10b29sYmFyLWljb24tY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpZ2h0Ym94LXRvb2xiYXItaWNvbikpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LXRvb2xiYXItaWNvbigpO31cbn1cblxuLypcbiAqIEhvdmVyXG4gKi9cblxuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbjpob3ZlciB7XG4gICAgY29sb3I6ICRsaWdodGJveC10b29sYmFyLWljb24taG92ZXItY29sb3I7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpZ2h0Ym94LXRvb2xiYXItaWNvbi1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LXRvb2xiYXItaWNvbi1ob3ZlcigpO31cbn1cblxuXG5cbi8qIEJ1dHRvbiAoU2xpZGVuYXYpXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENlbnRlciBpY29uIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICovXG5cbi51ay1saWdodGJveC1idXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRsaWdodGJveC1idXR0b24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRsaWdodGJveC1idXR0b24tc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHRib3gtYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsaWdodGJveC1idXR0b24tY29sb3I7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpZ2h0Ym94LWJ1dHRvbikpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LWJ1dHRvbigpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWxpZ2h0Ym94LWJ1dHRvbjpob3Zlcixcbi51ay1saWdodGJveC1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAkbGlnaHRib3gtYnV0dG9uLWhvdmVyLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saWdodGJveC1idXR0b24taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1saWdodGJveC1idXR0b24taG92ZXIoKTt9XG59XG5cbi8qIE9uQ2xpY2sgKi9cbi51ay1saWdodGJveC1idXR0b246YWN0aXZlIHtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGlnaHRib3gtYnV0dG9uLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LWJ1dHRvbi1hY3RpdmUoKTt9XG59XG5cblxuLyogQ2FwdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saWdodGJveC1jYXB0aW9uOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuXG5cbi8qIElmcmFtZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saWdodGJveC1pZnJhbWUge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgaGVpZ2h0OiA4MCU7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stbGlnaHRib3gtbWlzYykpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWxpZ2h0Ym94KCl7fVxuLy8gQG1peGluIGhvb2stbGlnaHRib3gtaXRlbSgpe31cbi8vIEBtaXhpbiBob29rLWxpZ2h0Ym94LXRvb2xiYXIoKXt9XG4vLyBAbWl4aW4gaG9vay1saWdodGJveC10b29sYmFyLWljb24oKXt9XG4vLyBAbWl4aW4gaG9vay1saWdodGJveC10b29sYmFyLWljb24taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1saWdodGJveC1idXR0b24oKXt9XG4vLyBAbWl4aW4gaG9vay1saWdodGJveC1idXR0b24taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay1saWdodGJveC1idXR0b24tYWN0aXZlKCl7fVxuLy8gQG1peGluIGhvb2stbGlnaHRib3gtbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQW5pbWF0aW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3Iga2V5ZnJhbWUgYW5pbWF0aW9uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWFuaW1hdGlvbi0qYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWFuaW1hdGlvbi1mYWRlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYW5pbWF0aW9uLXNjYWxlLXVwYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYW5pbWF0aW9uLXNjYWxlLWRvd25gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2xpZGUtdG9wLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2xpZGUtYm90dG9tLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2xpZGUtbGVmdC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYW5pbWF0aW9uLXNsaWRlLXJpZ2h0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24ta2VuYnVybnNgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2hha2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc3Ryb2tlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYW5pbWF0aW9uLXJldmVyc2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tZmFzdGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1hbmltYXRpb24tdG9nZ2xlYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kYW5pbWF0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41cyAhZGVmYXVsdDtcbiRhbmltYXRpb24tZmFkZS1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAwLjhzICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1zdHJva2UtZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgIDJzICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1rZW5idXJucy1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgIDE1cyAhZGVmYXVsdDtcbiRhbmltYXRpb24tZmFzdC1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAwLjFzICFkZWZhdWx0O1xuXG4kYW5pbWF0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZTogICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRhbmltYXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZTogICAgICAgICAgICAgICA1MHB4ICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBbmltYXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bY2xhc3MqPSd1ay1hbmltYXRpb24tJ10ge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJGFuaW1hdGlvbi1kdXJhdGlvbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuXG5cbi8qIEFuaW1hdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRmFkZVxuICovXG5cbi51ay1hbmltYXRpb24tZmFkZSB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGU7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkYW5pbWF0aW9uLWZhZGUtZHVyYXRpb247XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xufVxuXG4vKlxuICogU2NhbGVcbiAqL1xuXG4udWstYW5pbWF0aW9uLXNjYWxlLXVwIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtc2NhbGUtMDI7IH1cbi51ay1hbmltYXRpb24tc2NhbGUtZG93biB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTE4OyB9XG5cbi8qXG4gKiBTbGlkZVxuICovXG5cbi51ay1hbmltYXRpb24tc2xpZGUtdG9wIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtdG9wOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbSB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbTsgfVxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0IHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtbGVmdDsgfVxuLnVrLWFuaW1hdGlvbi1zbGlkZS1yaWdodCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXJpZ2h0OyB9XG5cbi8qXG4gKiBTbGlkZSBTbWFsbFxuICovXG5cbi51ay1hbmltYXRpb24tc2xpZGUtdG9wLXNtYWxsIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtdG9wLXNtYWxsOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbS1zbWFsbCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbS1zbWFsbDsgfVxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LXNtYWxsIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtbGVmdC1zbWFsbDsgfVxuLnVrLWFuaW1hdGlvbi1zbGlkZS1yaWdodC1zbWFsbCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXJpZ2h0LXNtYWxsOyB9XG5cbi8qXG4gKiBTbGlkZSBNZWRpdW1cbiAqL1xuXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcC1tZWRpdW0geyBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3AtbWVkaXVtOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbS1tZWRpdW0geyBhbmltYXRpb24tbmFtZTogdWstZmFkZS1ib3R0b20tbWVkaXVtOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLWxlZnQtbWVkaXVtIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtbGVmdC1tZWRpdW07IH1cbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtbWVkaXVtIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQtbWVkaXVtOyB9XG5cbi8qXG4gKiBLZW5idXJuc1xuICovXG5cbi51ay1hbmltYXRpb24ta2VuYnVybnMge1xuICAgIGFuaW1hdGlvbi1uYW1lOiB1ay1zY2FsZS1rZW5idXJucztcbiAgICBhbmltYXRpb24tZHVyYXRpb246ICRhbmltYXRpb24ta2VuYnVybnMtZHVyYXRpb247XG59XG5cbi8qXG4gKiBTaGFrZVxuICovXG5cbi51ay1hbmltYXRpb24tc2hha2UgeyBhbmltYXRpb24tbmFtZTogdWstc2hha2U7IH1cblxuLypcbiAqIFNWRyBTdHJva2VcbiAqIFRoZSBgLS11ay1hbmltYXRpb24tc3Ryb2tlYCBjdXN0b20gcHJvcGVydHkgY29udGFpbnMgdGhlIGxvbmdlc3QgcGF0aCBsZW5ndGguXG4gKiBTZXQgaXQgbWFudWFsbHkgb3IgdXNlIGB1ay1zdmc9XCJzdHJva2UtYW5pbWF0aW9uOiB0cnVlXCJgIHRvIHNldCBpdCBhdXRvbWF0aWNhbGx5LlxuICogQWxsIHN0cm9rZXMgYXJlIGFuaW1hdGVkIGJ5IHRoZSBzYW1lIHBhY2UgYW5kIGRvZXNuJ3QgZW5kIHNpbXVsdGFuZW91c2x5LlxuICogVG8gZW5kIHNpbXVsdGFuZW91c2x5LCBgcGF0aExlbmd0aD1cIjFcImAgY291bGQgYmUgdXNlZCwgYnV0IGl0J3Mgbm90IHdvcmtpbmcgaW4gU2FmYXJpIHlldC5cbiAqL1xuXG4udWstYW5pbWF0aW9uLXN0cm9rZSB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHVrLXN0cm9rZTtcbiAgICBzdHJva2UtZGFzaGFycmF5OiB2YXIoLS11ay1hbmltYXRpb24tc3Ryb2tlKTtcbiAgICBhbmltYXRpb24tZHVyYXRpb246ICRhbmltYXRpb24tc3Ryb2tlLWR1cmF0aW9uO1xufVxuXG5cbi8qIERpcmVjdGlvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAudWstYW5pbWF0aW9uLXJldmVyc2Uge1xuICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuXG4vKiBEdXJhdGlvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAudWstYW5pbWF0aW9uLWZhc3QgeyBhbmltYXRpb24tZHVyYXRpb246ICRhbmltYXRpb24tZmFzdC1kdXJhdGlvbjsgfVxuXG5cbi8qIFRvZ2dsZSAoSG92ZXIgKyBGb2N1cylcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBUaGUgdG9nZ2xlIGlzIHRyaWdnZXJlZCBvbiB0b3VjaCBkZXZpY2VzIHVzaW5nIGA6Zm9jdXNgIGFuZCB0YWJpbmRleFxuICovXG5cbi51ay1hbmltYXRpb24tdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIFtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7IGFuaW1hdGlvbi1uYW1lOiBub25lOyB9XG5cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG5cbi51ay1hbmltYXRpb24tdG9nZ2xlIHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbiAqIFJlbW92ZSBvdXRsaW5lIGZvciBgdGFiaW5kZXhgXG4gKi9cblxuLnVrLWFuaW1hdGlvbi10b2dnbGU6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG5cblxuLyogS2V5ZnJhbWVzIHVzZWQgYnkgYW5pbWF0aW9uIGNsYXNzZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRmFkZVxuICovXG5cbkBrZXlmcmFtZXMgdWstZmFkZSB7XG4gICAgMCUgeyBvcGFjaXR5OiAwOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLypcbiAqIFNsaWRlIFRvcFxuICovXG5cbkBrZXlmcmFtZXMgdWstZmFkZS10b3Age1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cbi8qXG4gKiBTbGlkZSBCb3R0b21cbiAqL1xuXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtYm90dG9tIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cbi8qXG4gKiBTbGlkZSBMZWZ0XG4gKi9cblxuQGtleWZyYW1lcyB1ay1mYWRlLWxlZnQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG59XG5cbi8qXG4gKiBTbGlkZSBSaWdodFxuICovXG5cbkBrZXlmcmFtZXMgdWstZmFkZS1yaWdodCB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxufVxuXG4vKlxuICogU2xpZGUgVG9wIFNtYWxsXG4gKi9cblxuQGtleWZyYW1lcyB1ay1mYWRlLXRvcC1zbWFsbCB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRhbmltYXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cbi8qXG4gKiBTbGlkZSBCb3R0b20gU21hbGxcbiAqL1xuXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtYm90dG9tLXNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkYW5pbWF0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuXG4vKlxuICogU2xpZGUgTGVmdCBTbWFsbFxuICovXG5cbkBrZXlmcmFtZXMgdWstZmFkZS1sZWZ0LXNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJGFuaW1hdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGUpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbn1cblxuLypcbiAqIFNsaWRlIFJpZ2h0IFNtYWxsXG4gKi9cblxuQGtleWZyYW1lcyB1ay1mYWRlLXJpZ2h0LXNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkYW5pbWF0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxufVxuXG4vKlxuICogU2xpZGUgVG9wIE1lZGl1bVxuICovXG5cbkBrZXlmcmFtZXMgdWstZmFkZS10b3AtbWVkaXVtIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGFuaW1hdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG5cbi8qXG4gKiBTbGlkZSBCb3R0b20gTWVkaXVtXG4gKi9cblxuQGtleWZyYW1lcyB1ay1mYWRlLWJvdHRvbS1tZWRpdW0ge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRhbmltYXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuXG4vKlxuICogU2xpZGUgTGVmdCBNZWRpdW1cbiAqL1xuXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtbGVmdC1tZWRpdW0ge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kYW5pbWF0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGUpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbn1cblxuLypcbiAqIFNsaWRlIFJpZ2h0IE1lZGl1bVxuICovXG5cbkBrZXlmcmFtZXMgdWstZmFkZS1yaWdodC1tZWRpdW0ge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRhbmltYXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxufVxuXG4vKlxuICogU2NhbGUgVXBcbiAqL1xuXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtc2NhbGUtMDIge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjIpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi8qXG4gKiBTY2FsZSBEb3duXG4gKi9cblxuQGtleWZyYW1lcyB1ay1mYWRlLXNjYWxlLTE4IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS44KTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG4vKlxuICogS2VuYnVybnNcbiAqL1xuXG5Aa2V5ZnJhbWVzIHVrLXNjYWxlLWtlbmJ1cm5zIHtcbiAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9XG59XG5cbi8qXG4gKiBTaGFrZVxuICovXG5cbkBrZXlmcmFtZXMgdWstc2hha2Uge1xuICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgMTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC05cHgpOyB9XG4gICAgMjAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cbiAgICAzMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTdweCk7IH1cbiAgICA0MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgfVxuICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTsgfVxuICAgIDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpOyB9XG4gICAgNzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XG4gICAgODAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbiAgICA5MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7IH1cbn1cblxuLypcbiAqIFN0cm9rZVxuICovXG5cbiBAa2V5ZnJhbWVzIHVrLXN0cm9rZSB7XG4gICAgMCUgeyBzdHJva2UtZGFzaG9mZnNldDogdmFyKC0tdWstYW5pbWF0aW9uLXN0cm9rZSk7IH1cbiAgICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH1cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1hbmltYXRpb24tbWlzYykpIHtAaW5jbHVkZSBob29rLWFuaW1hdGlvbi1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1hbmltYXRpb24tbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgV2lkdGhcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciB3aWR0aHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1jaGlsZC13aWR0aC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstd2lkdGgtKmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kd2lkdGgtc21hbGwtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUwcHggIWRlZmF1bHQ7XG4kd2lkdGgtbWVkaXVtLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAwcHggIWRlZmF1bHQ7XG4kd2lkdGgtbGFyZ2Utd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUwcHggIWRlZmF1bHQ7XG4kd2lkdGgteGxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAwcHggIWRlZmF1bHQ7XG4kd2lkdGgtMnhsYXJnZS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgNzUwcHggIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFdpZHRoXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKiBFcXVhbCBjaGlsZCB3aWR0aHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bY2xhc3MqPSd1ay1jaGlsZC13aWR0aCddID4gKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnVrLWNoaWxkLXdpZHRoLTEtMiA+ICogeyB3aWR0aDogNTAlOyB9XG4udWstY2hpbGQtd2lkdGgtMS0zID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cbi51ay1jaGlsZC13aWR0aC0xLTQgPiAqIHsgd2lkdGg6IDI1JTsgfVxuLnVrLWNoaWxkLXdpZHRoLTEtNSA+ICogeyB3aWR0aDogMjAlOyB9XG4udWstY2hpbGQtd2lkdGgtMS02ID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cblxuLnVrLWNoaWxkLXdpZHRoLWF1dG8gPiAqIHsgd2lkdGg6IGF1dG87IH1cblxuLypcbiAqIDEuIFJlc2V0IHRoZSBgbWluLXdpZHRoYCwgd2hpY2ggaXMgc2V0IHRvIGF1dG8gYnkgZGVmYXVsdCwgYmVjYXVzZVxuICogICAgZmxleCBpdGVtcyB3b24ndCBzaHJpbmsgYmVsb3cgdGhlaXIgbWluaW11bSBpbnRyaW5zaWMgY29udGVudCBzaXplLlxuICogICAgVXNpbmcgYDFweGAgaW5zdGVhZCBvZiBgMGAsIHNvIGl0ZW1zIHN0aWxsIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lLFxuICogICAgaWYgdGhleSBoYXZlIHplcm8gd2lkdGggYW5kIHBhZGRpbmcgYW5kIHRoZSBwcmVkZWNlc3NvciBpcyAxMDAlIHdpZGUuXG4gKi9cblxuLnVrLWNoaWxkLXdpZHRoLWV4cGFuZCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgIGZsZXg6IDE7XG4gICAgLyogMSAqL1xuICAgIG1pbi13aWR0aDogMXB4O1xufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstY2hpbGQtd2lkdGgtMS0xXFxAcyA+ICogeyB3aWR0aDogMTAwJTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTJcXEBzID4gKiB7IHdpZHRoOiA1MCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS0zXFxAcyA+ICogeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDMuMDAxKScpOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQHMgPiAqIHsgd2lkdGg6IDI1JTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTVcXEBzID4gKiB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS02XFxAcyA+ICogeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDYuMDAxKScpOyB9XG5cbiAgICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQHMgPiAqIHsgd2lkdGg6IGF1dG87IH1cbiAgICAudWstY2hpbGQtd2lkdGgtZXhwYW5kXFxAcyA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDFweDtcbiAgICB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY2hpbGQtd2lkdGgtMS0xXFxAbSA+ICogeyB3aWR0aDogMTAwJTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTJcXEBtID4gKiB7IHdpZHRoOiA1MCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS0zXFxAbSA+ICogeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDMuMDAxKScpOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQG0gPiAqIHsgd2lkdGg6IDI1JTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTVcXEBtID4gKiB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS02XFxAbSA+ICogeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDYuMDAxKScpOyB9XG5cbiAgICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQG0gPiAqIHsgd2lkdGg6IGF1dG87IH1cbiAgICAudWstY2hpbGQtd2lkdGgtZXhwYW5kXFxAbSA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDFweDtcbiAgICB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1jaGlsZC13aWR0aC0xLTFcXEBsID4gKiB7IHdpZHRoOiAxMDAlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQGwgPiAqIHsgd2lkdGg6IDUwJTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTNcXEBsID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS00XFxAbCA+ICogeyB3aWR0aDogMjUlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQGwgPiAqIHsgd2lkdGg6IDIwJTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTZcXEBsID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cblxuICAgIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAbCA+ICogeyB3aWR0aDogYXV0bzsgfVxuICAgIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBsID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xuXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQHhsID4gKiB7IHdpZHRoOiAxMDAlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQHhsID4gKiB7IHdpZHRoOiA1MCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS0zXFxAeGwgPiAqIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknKTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTRcXEB4bCA+ICogeyB3aWR0aDogMjUlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQHhsID4gKiB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS02XFxAeGwgPiAqIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknKTsgfVxuXG4gICAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEB4bCA+ICogeyB3aWR0aDogYXV0bzsgfVxuICAgIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEB4bCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDFweDtcbiAgICB9XG5cbn1cblxuXG4vKiBTaW5nbGUgV2lkdGhzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIGBtYXgtd2lkdGhgIGlzIG5lZWRlZCBmb3IgdGhlIHBpeGVsLWJhc2VkIGNsYXNzZXNcbiAqL1xuXG5bY2xhc3MqPSd1ay13aWR0aCddIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qIEhhbHZlcyAqL1xuLnVrLXdpZHRoLTEtMiB7IHdpZHRoOiA1MCU7IH1cblxuLyogVGhpcmRzICovXG4udWstd2lkdGgtMS0zIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknKTsgfVxuLnVrLXdpZHRoLTItMyB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJyk7IH1cblxuLyogUXVhcnRlcnMgKi9cbi51ay13aWR0aC0xLTQgeyB3aWR0aDogMjUlOyB9XG4udWstd2lkdGgtMy00IHsgd2lkdGg6IDc1JTsgfVxuXG4vKiBGaWZ0aHMgKi9cbi51ay13aWR0aC0xLTUgeyB3aWR0aDogMjAlOyB9XG4udWstd2lkdGgtMi01IHsgd2lkdGg6IDQwJTsgfVxuLnVrLXdpZHRoLTMtNSB7IHdpZHRoOiA2MCU7IH1cbi51ay13aWR0aC00LTUgeyB3aWR0aDogODAlOyB9XG5cbi8qIFNpeHRocyAqL1xuLnVrLXdpZHRoLTEtNiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cbi51ay13aWR0aC01LTYgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogNSAvIDYuMDAxKScpOyB9XG5cbi8qIFBpeGVsICovXG4udWstd2lkdGgtc21hbGwgeyB3aWR0aDogJHdpZHRoLXNtYWxsLXdpZHRoOyB9XG4udWstd2lkdGgtbWVkaXVtIHsgd2lkdGg6ICR3aWR0aC1tZWRpdW0td2lkdGg7IH1cbi51ay13aWR0aC1sYXJnZSB7IHdpZHRoOiAkd2lkdGgtbGFyZ2Utd2lkdGg7IH1cbi51ay13aWR0aC14bGFyZ2UgeyB3aWR0aDogJHdpZHRoLXhsYXJnZS13aWR0aDsgfVxuLnVrLXdpZHRoLTJ4bGFyZ2UgeyB3aWR0aDogJHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cbkBpZiAoJGRlcHJlY2F0ZWQgPT0gdHJ1ZSkge1xuLnVrLXdpZHRoLXh4bGFyZ2UgeyB3aWR0aDogJHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cbn1cblxuLyogQXV0byAqL1xuLnVrLXdpZHRoLWF1dG8geyB3aWR0aDogYXV0bzsgfVxuXG4vKiBFeHBhbmQgKi9cbi51ay13aWR0aC1leHBhbmQge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7XG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC8qIFdob2xlICovXG4gICAgLnVrLXdpZHRoLTEtMVxcQHMgeyB3aWR0aDogMTAwJTsgfVxuXG4gICAgLyogSGFsdmVzICovXG4gICAgLnVrLXdpZHRoLTEtMlxcQHMgeyB3aWR0aDogNTAlOyB9XG5cbiAgICAvKiBUaGlyZHMgKi9cbiAgICAudWstd2lkdGgtMS0zXFxAcyB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cbiAgICAudWstd2lkdGgtMi0zXFxAcyB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJyk7IH1cblxuICAgIC8qIFF1YXJ0ZXJzICovXG4gICAgLnVrLXdpZHRoLTEtNFxcQHMgeyB3aWR0aDogMjUlOyB9XG4gICAgLnVrLXdpZHRoLTMtNFxcQHMgeyB3aWR0aDogNzUlOyB9XG5cbiAgICAvKiBGaWZ0aHMgKi9cbiAgICAudWstd2lkdGgtMS01XFxAcyB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstd2lkdGgtMi01XFxAcyB7IHdpZHRoOiA0MCU7IH1cbiAgICAudWstd2lkdGgtMy01XFxAcyB7IHdpZHRoOiA2MCU7IH1cbiAgICAudWstd2lkdGgtNC01XFxAcyB7IHdpZHRoOiA4MCU7IH1cblxuICAgIC8qIFNpeHRocyAqL1xuICAgIC51ay13aWR0aC0xLTZcXEBzIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknKTsgfVxuICAgIC51ay13aWR0aC01LTZcXEBzIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDUgLyA2LjAwMSknKTsgfVxuXG4gICAgLyogUGl4ZWwgKi9cbiAgICAudWstd2lkdGgtc21hbGxcXEBzIHsgd2lkdGg6ICR3aWR0aC1zbWFsbC13aWR0aDsgfVxuICAgIC51ay13aWR0aC1tZWRpdW1cXEBzIHsgd2lkdGg6ICR3aWR0aC1tZWRpdW0td2lkdGg7IH1cbiAgICAudWstd2lkdGgtbGFyZ2VcXEBzIHsgd2lkdGg6ICR3aWR0aC1sYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC14bGFyZ2VcXEBzIHsgd2lkdGg6ICR3aWR0aC14bGFyZ2Utd2lkdGg7IH1cbiAgICAudWstd2lkdGgtMnhsYXJnZVxcQHMgeyB3aWR0aDogJHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cbiAgICBAaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcbi51ay13aWR0aC14eGxhcmdlXFxAcyB7IHdpZHRoOiAkd2lkdGgtMnhsYXJnZS13aWR0aDsgfVxufVxuXG4gICAgLyogQXV0byAqL1xuICAgIC51ay13aWR0aC1hdXRvXFxAcyB7IHdpZHRoOiBhdXRvOyB9XG5cbiAgICAvKiBFeHBhbmQgKi9cbiAgICAudWstd2lkdGgtZXhwYW5kXFxAcyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC8qIFdob2xlICovXG4gICAgLnVrLXdpZHRoLTEtMVxcQG0geyB3aWR0aDogMTAwJTsgfVxuXG4gICAgLyogSGFsdmVzICovXG4gICAgLnVrLXdpZHRoLTEtMlxcQG0geyB3aWR0aDogNTAlOyB9XG5cbiAgICAvKiBUaGlyZHMgKi9cbiAgICAudWstd2lkdGgtMS0zXFxAbSB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cbiAgICAudWstd2lkdGgtMi0zXFxAbSB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJyk7IH1cblxuICAgIC8qIFF1YXJ0ZXJzICovXG4gICAgLnVrLXdpZHRoLTEtNFxcQG0geyB3aWR0aDogMjUlOyB9XG4gICAgLnVrLXdpZHRoLTMtNFxcQG0geyB3aWR0aDogNzUlOyB9XG5cbiAgICAvKiBGaWZ0aHMgKi9cbiAgICAudWstd2lkdGgtMS01XFxAbSB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstd2lkdGgtMi01XFxAbSB7IHdpZHRoOiA0MCU7IH1cbiAgICAudWstd2lkdGgtMy01XFxAbSB7IHdpZHRoOiA2MCU7IH1cbiAgICAudWstd2lkdGgtNC01XFxAbSB7IHdpZHRoOiA4MCU7IH1cblxuICAgIC8qIFNpeHRocyAqL1xuICAgIC51ay13aWR0aC0xLTZcXEBtIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknKTsgfVxuICAgIC51ay13aWR0aC01LTZcXEBtIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDUgLyA2LjAwMSknKTsgfVxuXG4gICAgLyogUGl4ZWwgKi9cbiAgICAudWstd2lkdGgtc21hbGxcXEBtIHsgd2lkdGg6ICR3aWR0aC1zbWFsbC13aWR0aDsgfVxuICAgIC51ay13aWR0aC1tZWRpdW1cXEBtIHsgd2lkdGg6ICR3aWR0aC1tZWRpdW0td2lkdGg7IH1cbiAgICAudWstd2lkdGgtbGFyZ2VcXEBtIHsgd2lkdGg6ICR3aWR0aC1sYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC14bGFyZ2VcXEBtIHsgd2lkdGg6ICR3aWR0aC14bGFyZ2Utd2lkdGg7IH1cbiAgICAudWstd2lkdGgtMnhsYXJnZVxcQG0geyB3aWR0aDogJHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cbiAgICBAaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcbi51ay13aWR0aC14eGxhcmdlXFxAbSB7IHdpZHRoOiAkd2lkdGgtMnhsYXJnZS13aWR0aDsgfVxufVxuXG4gICAgIC8qIEF1dG8gKi9cbiAgICAudWstd2lkdGgtYXV0b1xcQG0geyB3aWR0aDogYXV0bzsgfVxuXG4gICAgLyogRXhwYW5kICovXG4gICAgLnVrLXdpZHRoLWV4cGFuZFxcQG0ge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDFweDtcbiAgICB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC8qIFdob2xlICovXG4gICAgLnVrLXdpZHRoLTEtMVxcQGwgeyB3aWR0aDogMTAwJTsgfVxuXG4gICAgLyogSGFsdmVzICovXG4gICAgLnVrLXdpZHRoLTEtMlxcQGwgeyB3aWR0aDogNTAlOyB9XG5cbiAgICAvKiBUaGlyZHMgKi9cbiAgICAudWstd2lkdGgtMS0zXFxAbCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cbiAgICAudWstd2lkdGgtMi0zXFxAbCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJyk7IH1cblxuICAgIC8qIFF1YXJ0ZXJzICovXG4gICAgLnVrLXdpZHRoLTEtNFxcQGwgeyB3aWR0aDogMjUlOyB9XG4gICAgLnVrLXdpZHRoLTMtNFxcQGwgeyB3aWR0aDogNzUlOyB9XG5cbiAgICAvKiBGaWZ0aHMgKi9cbiAgICAudWstd2lkdGgtMS01XFxAbCB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstd2lkdGgtMi01XFxAbCB7IHdpZHRoOiA0MCU7IH1cbiAgICAudWstd2lkdGgtMy01XFxAbCB7IHdpZHRoOiA2MCU7IH1cbiAgICAudWstd2lkdGgtNC01XFxAbCB7IHdpZHRoOiA4MCU7IH1cblxuICAgIC8qIFNpeHRocyAqL1xuICAgIC51ay13aWR0aC0xLTZcXEBsIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknKTsgfVxuICAgIC51ay13aWR0aC01LTZcXEBsIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDUgLyA2LjAwMSknKTsgfVxuXG4gICAgLyogUGl4ZWwgKi9cbiAgICAudWstd2lkdGgtc21hbGxcXEBsIHsgd2lkdGg6ICR3aWR0aC1zbWFsbC13aWR0aDsgfVxuICAgIC51ay13aWR0aC1tZWRpdW1cXEBsIHsgd2lkdGg6ICR3aWR0aC1tZWRpdW0td2lkdGg7IH1cbiAgICAudWstd2lkdGgtbGFyZ2VcXEBsIHsgd2lkdGg6ICR3aWR0aC1sYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC14bGFyZ2VcXEBsIHsgd2lkdGg6ICR3aWR0aC14bGFyZ2Utd2lkdGg7IH1cbiAgICAudWstd2lkdGgtMnhsYXJnZVxcQGwgeyB3aWR0aDogJHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cbiAgICBAaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcbi51ay13aWR0aC14eGxhcmdlXFxAbCB7IHdpZHRoOiAkd2lkdGgtMnhsYXJnZS13aWR0aDsgfVxufVxuXG4gICAgLyogQXV0byAqL1xuICAgIC51ay13aWR0aC1hdXRvXFxAbCB7IHdpZHRoOiBhdXRvOyB9XG5cbiAgICAvKiBFeHBhbmQgKi9cbiAgICAudWstd2lkdGgtZXhwYW5kXFxAbCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xuXG4gICAgLyogV2hvbGUgKi9cbiAgICAudWstd2lkdGgtMS0xXFxAeGwgeyB3aWR0aDogMTAwJTsgfVxuXG4gICAgLyogSGFsdmVzICovXG4gICAgLnVrLXdpZHRoLTEtMlxcQHhsIHsgd2lkdGg6IDUwJTsgfVxuXG4gICAgLyogVGhpcmRzICovXG4gICAgLnVrLXdpZHRoLTEtM1xcQHhsIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknKTsgfVxuICAgIC51ay13aWR0aC0yLTNcXEB4bCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJyk7IH1cblxuICAgIC8qIFF1YXJ0ZXJzICovXG4gICAgLnVrLXdpZHRoLTEtNFxcQHhsIHsgd2lkdGg6IDI1JTsgfVxuICAgIC51ay13aWR0aC0zLTRcXEB4bCB7IHdpZHRoOiA3NSU7IH1cblxuICAgIC8qIEZpZnRocyAqL1xuICAgIC51ay13aWR0aC0xLTVcXEB4bCB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstd2lkdGgtMi01XFxAeGwgeyB3aWR0aDogNDAlOyB9XG4gICAgLnVrLXdpZHRoLTMtNVxcQHhsIHsgd2lkdGg6IDYwJTsgfVxuICAgIC51ay13aWR0aC00LTVcXEB4bCB7IHdpZHRoOiA4MCU7IH1cblxuICAgIC8qIFNpeHRocyAqL1xuICAgIC51ay13aWR0aC0xLTZcXEB4bCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cbiAgICAudWstd2lkdGgtNS02XFxAeGwgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogNSAvIDYuMDAxKScpOyB9XG5cbiAgICAvKiBQaXhlbCAqL1xuICAgIC51ay13aWR0aC1zbWFsbFxcQHhsIHsgd2lkdGg6ICR3aWR0aC1zbWFsbC13aWR0aDsgfVxuICAgIC51ay13aWR0aC1tZWRpdW1cXEB4bCB7IHdpZHRoOiAkd2lkdGgtbWVkaXVtLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLWxhcmdlXFxAeGwgeyB3aWR0aDogJHdpZHRoLWxhcmdlLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLXhsYXJnZVxcQHhsIHsgd2lkdGg6ICR3aWR0aC14bGFyZ2Utd2lkdGg7IH1cbiAgICAudWstd2lkdGgtMnhsYXJnZVxcQHhsIHsgd2lkdGg6ICR3aWR0aC0yeGxhcmdlLXdpZHRoOyB9XG4gICAgQGlmICgkZGVwcmVjYXRlZCA9PSB0cnVlKSB7XG4udWstd2lkdGgteHhsYXJnZVxcQHhsIHsgd2lkdGg6ICR3aWR0aC0yeGxhcmdlLXdpZHRoOyB9XG59XG5cbiAgICAvKiBBdXRvICovXG4gICAgLnVrLXdpZHRoLWF1dG9cXEB4bCB7IHdpZHRoOiBhdXRvOyB9XG5cbiAgICAvKiBFeHBhbmQgKi9cbiAgICAudWstd2lkdGgtZXhwYW5kXFxAeGwge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDFweDtcbiAgICB9XG5cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay13aWR0aC1taXNjKSkge0BpbmNsdWRlIGhvb2std2lkdGgtbWlzYygpO31cblxuLy8gQG1peGluIGhvb2std2lkdGgtbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgSGVpZ2h0XG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgaGVpZ2h0c1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWhlaWdodC0qYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRoZWlnaHQtc21hbGwtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTBweCAhZGVmYXVsdDtcbiRoZWlnaHQtbWVkaXVtLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAzMDBweCAhZGVmYXVsdDtcbiRoZWlnaHQtbGFyZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NTBweCAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogSGVpZ2h0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2NsYXNzKj0ndWstaGVpZ2h0J10geyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXG4gKiBPbmx5IHdvcmtzIGlmIHBhcmVudCBlbGVtZW50IGhhcyBhIGhlaWdodCBzZXRcbiAqL1xuXG4udWstaGVpZ2h0LTEtMSB7IGhlaWdodDogMTAwJTsgfVxuXG4vKlxuICogVXNlZnVsIHRvIGNyZWF0ZSBpbWFnZSB0ZWFzZXJzXG4gKi9cblxuLnVrLWhlaWdodC12aWV3cG9ydCB7IG1pbi1oZWlnaHQ6IDEwMHZoOyB9XG5cbi8qXG4gKiBQaXhlbFxuICogVXNlZnVsIGZvciBgb3ZlcmZsb3c6IGF1dG9gXG4gKi9cblxuLnVrLWhlaWdodC1zbWFsbCB7IGhlaWdodDogJGhlaWdodC1zbWFsbC1oZWlnaHQ7IH1cbi51ay1oZWlnaHQtbWVkaXVtIHsgaGVpZ2h0OiAkaGVpZ2h0LW1lZGl1bS1oZWlnaHQ7IH1cbi51ay1oZWlnaHQtbGFyZ2UgeyBoZWlnaHQ6ICRoZWlnaHQtbGFyZ2UtaGVpZ2h0OyB9XG5cbi51ay1oZWlnaHQtbWF4LXNtYWxsIHsgbWF4LWhlaWdodDogJGhlaWdodC1zbWFsbC1oZWlnaHQ7IH1cbi51ay1oZWlnaHQtbWF4LW1lZGl1bSB7IG1heC1oZWlnaHQ6ICRoZWlnaHQtbWVkaXVtLWhlaWdodDsgfVxuLnVrLWhlaWdodC1tYXgtbGFyZ2UgeyBtYXgtaGVpZ2h0OiAkaGVpZ2h0LWxhcmdlLWhlaWdodDsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWhlaWdodC1taXNjKSkge0BpbmNsdWRlIGhvb2staGVpZ2h0LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWhlaWdodC1taXNjKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBUZXh0XG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgdGV4dFxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXRleHQtKmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kdGV4dC1sZWFkLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kdGV4dC1sZWFkLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuJHRleHQtbGVhZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG5cbiR0ZXh0LW1ldGEtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0ZXh0LW1ldGEtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAxLjQgIWRlZmF1bHQ7XG4kdGV4dC1tZXRhLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcblxuJHRleHQtc21hbGwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJHRleHQtc21hbGwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcblxuJHRleHQtbGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHRleHQtbGFyZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcblxuJHRleHQtbXV0ZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kdGV4dC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcbiR0ZXh0LXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcbiR0ZXh0LXNlY29uZGFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRleHQtc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRleHQtd2FybmluZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtd2FybmluZy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRleHQtZGFuZ2VyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiR0ZXh0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVGV4dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRleHQtbGVhZCB7XG4gICAgZm9udC1zaXplOiAkdGV4dC1sZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHRleHQtbGVhZC1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogJHRleHQtbGVhZC1jb2xvcjtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGV4dC1sZWFkKSkge0BpbmNsdWRlIGhvb2stdGV4dC1sZWFkKCk7fVxufVxuXG4udWstdGV4dC1tZXRhIHtcbiAgICBmb250LXNpemU6ICR0ZXh0LW1ldGEtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkdGV4dC1tZXRhLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiAkdGV4dC1tZXRhLWNvbG9yO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10ZXh0LW1ldGEpKSB7QGluY2x1ZGUgaG9vay10ZXh0LW1ldGEoKTt9XG59XG5cblxuLyogU2l6ZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGV4dC1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICR0ZXh0LXNtYWxsLWxpbmUtaGVpZ2h0O1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10ZXh0LXNtYWxsKSkge0BpbmNsdWRlIGhvb2stdGV4dC1zbWFsbCgpO31cbn1cblxuLnVrLXRleHQtbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogJHRleHQtbGFyZ2UtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkdGV4dC1sYXJnZS1saW5lLWhlaWdodDtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGV4dC1sYXJnZSkpIHtAaW5jbHVkZSBob29rLXRleHQtbGFyZ2UoKTt9XG59XG5cbi51ay10ZXh0LWRlZmF1bHQge1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZS1oZWlnaHQ7XG59XG5cblxuLyogV2VpZ2h0IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRleHQtbGlnaHQgeyBmb250LXdlaWdodDogMzAwOyB9XG4udWstdGV4dC1ub3JtYWwgeyBmb250LXdlaWdodDogNDAwOyB9XG4udWstdGV4dC1ib2xkIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuIFxuLnVrLXRleHQtbGlnaHRlciB7IGZvbnQtd2VpZ2h0OiBsaWdodGVyOyB9XG4udWstdGV4dC1ib2xkZXIgeyBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbiBcbi8qIFN0eWxlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiBcbi51ay10ZXh0LWl0YWxpYyB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5cbi8qIFRyYW5zZm9ybSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10ZXh0LWNhcGl0YWxpemUgeyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50OyB9XG4udWstdGV4dC11cHBlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LWxvd2VyY2FzZSB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDsgfVxuXG5cbi8qIERlY29yYXRpb24gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGV4dC1kZWNvcmF0aW9uLW5vbmUgeyB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG5cbi8qIENvbG9yIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10ZXh0LW11dGVkIHsgY29sb3I6ICR0ZXh0LW11dGVkLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LWVtcGhhc2lzIHsgY29sb3I6ICR0ZXh0LWVtcGhhc2lzLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LXByaW1hcnkgeyBjb2xvcjogJHRleHQtcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1zZWNvbmRhcnkgeyBjb2xvcjogJHRleHQtc2Vjb25kYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LXN1Y2Nlc3MgeyBjb2xvcjogJHRleHQtc3VjY2Vzcy1jb2xvciAhaW1wb3J0YW50OyB9XG4udWstdGV4dC13YXJuaW5nIHsgY29sb3I6ICR0ZXh0LXdhcm5pbmctY29sb3IgIWltcG9ydGFudDsgfVxuLnVrLXRleHQtZGFuZ2VyIHsgY29sb3I6ICR0ZXh0LWRhbmdlci1jb2xvciAhaW1wb3J0YW50OyB9XG5cblxuLyogQmFja2dyb3VuZCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBUaGUgYmFja2dyb3VuZCBjbGlwcyB0byB0aGUgZm9yZWdyb3VuZCB0ZXh0LiBXb3JrcyBpbiBDaHJvbWUsIEZpcmVmb3gsIFNhZmFyaSwgRWRnZSBhbmQgT3BlcmFcbiAqICAgIERlZmF1bHQgY29sb3IgaXMgc2V0IHRvIHRyYW5zcGFyZW50XG4gKiAyLiBDb250YWluZXIgZml0cyB0aGUgdGV4dFxuICogMy4gRmFsbGJhY2sgY29sb3IgZm9yIElFMTFcbiAqL1xuXG4udWstdGV4dC1iYWNrZ3JvdW5kIHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLyogMiAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKiAzICovXG4gICAgY29sb3I6ICR0ZXh0LWJhY2tncm91bmQtY29sb3IgIWltcG9ydGFudDtcbn1cblxuQHN1cHBvcnRzICgtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dCkge1xuXG4gICAgLnVrLXRleHQtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGV4dC1iYWNrZ3JvdW5kKSkge0BpbmNsdWRlIGhvb2stdGV4dC1iYWNrZ3JvdW5kKCk7fVxuICAgIH1cblxufVxuXG5cbi8qIEFsaWdubWVudCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGV4dC1sZWZ0IHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1yaWdodCB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LWNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay10ZXh0LWxlZnRcXEBzIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLXRleHQtcmlnaHRcXEBzIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LWNlbnRlclxcQHMgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLXRleHQtbGVmdFxcQG0geyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dC1yaWdodFxcQG0geyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLXRleHQtY2VudGVyXFxAbSB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay10ZXh0LWxlZnRcXEBsIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLXRleHQtcmlnaHRcXEBsIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LWNlbnRlclxcQGwgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQteGxhcmdlKSB7XG5cbiAgICAudWstdGV4dC1sZWZ0XFxAeGwgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dC1yaWdodFxcQHhsIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LWNlbnRlclxcQHhsIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKlxuICogVmVydGljYWxcbiAqL1xuXG4udWstdGV4dC10b3AgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LW1pZGRsZSB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDsgfVxuLnVrLXRleHQtYm90dG9tIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1iYXNlbGluZSB7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG5cblxuLyogV3JhcCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcgb250byBtdWx0aXBsZSBsaW5lc1xuICovXG5cbi51ay10ZXh0LW5vd3JhcCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLypcbiAqIDEuIE1ha2Ugc3VyZSBhIG1heC13aWR0aCBpcyBzZXQgYWZ0ZXIgd2hpY2ggdHJ1bmNhdGlvbiBjYW4gb2NjdXJcbiAqIDIuIFByZXZlbnQgdGV4dCBmcm9tIHdyYXBwaW5nIG9udG8gbXVsdGlwbGUgbGluZXMsIGFuZCB0cnVuY2F0ZSB3aXRoIGFuIGVsbGlwc2lzXG4gKiAzLiBGaXggZm9yIHRhYmxlIGNlbGxzXG4gKi9cblxuLnVrLXRleHQtdHJ1bmNhdGUge1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogMiAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogMiAqL1xudGgudWstdGV4dC10cnVuY2F0ZSxcbnRkLnVrLXRleHQtdHJ1bmNhdGUgeyBtYXgtd2lkdGg6IDA7IH1cblxuXG4vKlxuICogMS4gV3JhcCBsb25nIHdvcmRzIG9udG8gdGhlIG5leHQgbGluZSBhbmQgYnJlYWsgdGhlbSBpZiB0aGV5IGFyZSB0b28gbG9uZyB0byBmaXRcbiAqIDIuIExlZ2FjeSBgd29yZC13cmFwYCBhcyBmYWxsYmFjayBmb3IgYG92ZXJmbG93LXdyYXBgXG4gKiAzLiBGaXggYG92ZXJmbG93LXdyYXBgIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRoIHRhYmxlIGNlbGxzIGluIENocm9tZSwgT3BlcmEsIElFMTEgYW5kIEVkZ2VcbiAqICAgIE11c3QgdXNlIGBicmVhay1hbGxgIHRvIHN1cHBvcnQgSUUxMSBhbmQgRWRnZVxuICogTm90ZTogTm90IHVzaW5nIGBoeXBoZW5zOiBhdXRvO2AgYmVjYXVzZSBpdCBoeXBoZW5hdGVzIHRleHQgZXZlbiBpZiBub3QgbmVlZGVkXG4gKi9cblxuLnVrLXRleHQtYnJlYWsge1xuICAgIC8qIDEgKi9cbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIC8qIDIgKi9cbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi8qIDMgKi9cbnRoLnVrLXRleHQtYnJlYWssXG50ZC51ay10ZXh0LWJyZWFrIHsgd29yZC1icmVhazogYnJlYWstYWxsOyB9XG5cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay10ZXh0LW1pc2MpKSB7QGluY2x1ZGUgaG9vay10ZXh0LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXRleHQtbGVhZCgpe31cbi8vIEBtaXhpbiBob29rLXRleHQtbWV0YSgpe31cbi8vIEBtaXhpbiBob29rLXRleHQtc21hbGwoKXt9XG4vLyBAbWl4aW4gaG9vay10ZXh0LWxhcmdlKCl7fVxuLy8gQG1peGluIGhvb2stdGV4dC1iYWNrZ3JvdW5kKCl7fVxuLy8gQG1peGluIGhvb2stdGV4dC1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS10ZXh0LWxlYWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS10ZXh0LW1ldGEtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS10ZXh0LW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS10ZXh0LWVtcGhhc2lzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS10ZXh0LXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGludmVyc2UtdGV4dC1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtdGV4dC1sZWFkKCl7fVxuLy8gQG1peGluIGhvb2staW52ZXJzZS10ZXh0LW1ldGEoKXt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIENvbHVtblxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgZm9yIHRleHQgY29sdW1uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWNvbHVtbi0qYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWNvbHVtbi1zcGFuYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWNvbHVtbi1kaXZpZGVyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRjb2x1bW4tZ3V0dGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRjb2x1bW4tZ3V0dGVyLWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbiRjb2x1bW4tZGl2aWRlci1ydWxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcbiRjb2x1bW4tZGl2aWRlci1ydWxlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IENvbHVtblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbltjbGFzcyo9J3VrLWNvbHVtbi0nXSB7IGNvbHVtbi1nYXA6ICRjb2x1bW4tZ3V0dGVyOyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICBbY2xhc3MqPSd1ay1jb2x1bW4tJ10geyBjb2x1bW4tZ2FwOiAkY29sdW1uLWd1dHRlci1sOyB9XG5cbn1cblxuLypcbiAqIEZpeCBpbWFnZSAxcHggbGluZSB3cmFwcGluZyBpbnRvIHRoZSBuZXh0IGNvbHVtbiBpbiBDaHJvbWVcbiAqL1xuXG5bY2xhc3MqPSd1ay1jb2x1bW4tJ10gaW1nIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7IH1cblxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIERvdWJsZSB0aGUgY29sdW1uIGdhcFxuICovXG5cbi51ay1jb2x1bW4tZGl2aWRlciB7XG4gICAgY29sdW1uLXJ1bGU6ICRjb2x1bW4tZGl2aWRlci1ydWxlLXdpZHRoIHNvbGlkICRjb2x1bW4tZGl2aWRlci1ydWxlLWNvbG9yO1xuICAgIC8qIDEgKi9cbiAgICBjb2x1bW4tZ2FwOiAoJGNvbHVtbi1ndXR0ZXIgKiAyKTtcbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1jb2x1bW4tZGl2aWRlciB7XG4gICAgICAgIGNvbHVtbi1nYXA6ICgkY29sdW1uLWd1dHRlci1sICogMik7XG4gICAgfVxuXG59XG5cblxuLyogV2lkdGggbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbHVtbi0xLTIgeyBjb2x1bW4tY291bnQ6IDI7fVxuLnVrLWNvbHVtbi0xLTMgeyBjb2x1bW4tY291bnQ6IDM7IH1cbi51ay1jb2x1bW4tMS00IHsgY29sdW1uLWNvdW50OiA0OyB9XG4udWstY29sdW1uLTEtNSB7IGNvbHVtbi1jb3VudDogNTsgfVxuLnVrLWNvbHVtbi0xLTYgeyBjb2x1bW4tY291bnQ6IDY7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWNvbHVtbi0xLTJcXEBzIHsgY29sdW1uLWNvdW50OiAyOyB9XG4gICAgLnVrLWNvbHVtbi0xLTNcXEBzIHsgY29sdW1uLWNvdW50OiAzOyB9XG4gICAgLnVrLWNvbHVtbi0xLTRcXEBzIHsgY29sdW1uLWNvdW50OiA0OyB9XG4gICAgLnVrLWNvbHVtbi0xLTVcXEBzIHsgY29sdW1uLWNvdW50OiA1OyB9XG4gICAgLnVrLWNvbHVtbi0xLTZcXEBzIHsgY29sdW1uLWNvdW50OiA2OyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY29sdW1uLTEtMlxcQG0geyBjb2x1bW4tY291bnQ6IDI7IH1cbiAgICAudWstY29sdW1uLTEtM1xcQG0geyBjb2x1bW4tY291bnQ6IDM7IH1cbiAgICAudWstY29sdW1uLTEtNFxcQG0geyBjb2x1bW4tY291bnQ6IDQ7IH1cbiAgICAudWstY29sdW1uLTEtNVxcQG0geyBjb2x1bW4tY291bnQ6IDU7IH1cbiAgICAudWstY29sdW1uLTEtNlxcQG0geyBjb2x1bW4tY291bnQ6IDY7IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWNvbHVtbi0xLTJcXEBsIHsgY29sdW1uLWNvdW50OiAyOyB9XG4gICAgLnVrLWNvbHVtbi0xLTNcXEBsIHsgY29sdW1uLWNvdW50OiAzOyB9XG4gICAgLnVrLWNvbHVtbi0xLTRcXEBsIHsgY29sdW1uLWNvdW50OiA0OyB9XG4gICAgLnVrLWNvbHVtbi0xLTVcXEBsIHsgY29sdW1uLWNvdW50OiA1OyB9XG4gICAgLnVrLWNvbHVtbi0xLTZcXEBsIHsgY29sdW1uLWNvdW50OiA2OyB9XG5cbn1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC14bGFyZ2UpIHtcblxuICAgIC51ay1jb2x1bW4tMS0yXFxAeGwgeyBjb2x1bW4tY291bnQ6IDI7IH1cbiAgICAudWstY29sdW1uLTEtM1xcQHhsIHsgY29sdW1uLWNvdW50OiAzOyB9XG4gICAgLnVrLWNvbHVtbi0xLTRcXEB4bCB7IGNvbHVtbi1jb3VudDogNDsgfVxuICAgIC51ay1jb2x1bW4tMS01XFxAeGwgeyBjb2x1bW4tY291bnQ6IDU7IH1cbiAgICAudWstY29sdW1uLTEtNlxcQHhsIHsgY29sdW1uLWNvdW50OiA2OyB9XG5cbn1cblxuLyogTWFrZSBlbGVtZW50IHNwYW4gYWNyb3NzIGFsbCBjb2x1bW5zXG4gKiBEb2VzIG5vdCB3b3JrIGluIEZpcmVmb3ggeWV0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbHVtbi1zcGFuIHsgY29sdW1uLXNwYW46IGFsbDsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLWNvbHVtbi1taXNjKSkge0BpbmNsdWRlIGhvb2stY29sdW1uLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWNvbHVtbi1taXNjKCl7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1jb2x1bW4tZGl2aWRlci1ydWxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XG5cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQ292ZXJcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIHRvIGxldCBlbWJlZGRlZCBjb250ZW50IGNvdmVyIHRoZWlyIGNvbnRhaW5lciBpbiBhIGNlbnRlcmVkIHBvc2l0aW9uXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY292ZXJgXG4vL1xuLy8gU3ViLW9iamVjdDogICAgICBgdWstY292ZXItY29udGFpbmVyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDb3ZlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBXb3JrcyB3aXRoIGlmcmFtZXMgYW5kIGVtYmVkZGVkIGNvbnRlbnRcbiAqIDEuIFJlc2V0IHJlc3BvbnNpdmVuZXNzIGZvciBlbWJlZGRlZCBjb250ZW50XG4gKiAyLiBDZW50ZXIgb2JqZWN0XG4gKiBOb3RlOiBQZXJjZW50IHZhbHVlcyBvbiB0aGUgYHRvcGAgcHJvcGVydHkgb25seSB3b3JrcyBpZiB0aGlzIGVsZW1lbnRcbiAqICAgICAgIGlzIGFic29sdXRlIHBvc2l0aW9uZWQgb3IgaWYgdGhlIGNvbnRhaW5lciBoYXMgYSBoZWlnaHRcbiAqL1xuXG4udWstY292ZXIge1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbn1cblxuaWZyYW1lLnVrLWNvdmVyIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuXG4vKiBDb250YWluZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUGFyZW50IGNvbnRhaW5lciB3aGljaCBjbGlwcyByZXNpemVkIG9iamVjdFxuICogMi4gTmVlZGVkIGlmIHRoZSBjaGlsZCBpcyBwb3NpdGlvbmVkIGFic29sdXRlLiBTZWUgbm90ZSBhYm92ZVxuICovXG5cbi51ay1jb3Zlci1jb250YWluZXIge1xuICAgIC8qIDEgKi9cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stY292ZXItbWlzYykpIHtAaW5jbHVkZSBob29rLWNvdmVyLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWNvdmVyLW1pc2MoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBCYWNrZ3JvdW5kXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgYmFja2dyb3VuZHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1iYWNrZ3JvdW5kLSpgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGJhY2tncm91bmQtZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRiYWNrZ3JvdW5kLW11dGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYmFja2dyb3VuZC1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYmFja2dyb3VuZC1zZWNvbmRhcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQmFja2dyb3VuZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLyogQ29sb3JcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYmFja2dyb3VuZC1kZWZhdWx0IHsgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtZGVmYXVsdC1iYWNrZ3JvdW5kOyB9XG4udWstYmFja2dyb3VuZC1tdXRlZCB7IGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLW11dGVkLWJhY2tncm91bmQ7IH1cbi51ay1iYWNrZ3JvdW5kLXByaW1hcnkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1wcmltYXJ5LWJhY2tncm91bmQ7IH1cbi51ay1iYWNrZ3JvdW5kLXNlY29uZGFyeSB7IGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLXNlY29uZGFyeS1iYWNrZ3JvdW5kOyB9XG5cblxuLyogU2l6ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1iYWNrZ3JvdW5kLWNvdmVyLFxuLnVrLWJhY2tncm91bmQtY29udGFpbixcbi51ay1iYWNrZ3JvdW5kLXdpZHRoLTEtMSxcbi51ay1iYWNrZ3JvdW5kLWhlaWdodC0xLTEge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLnVrLWJhY2tncm91bmQtY292ZXIgeyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4udWstYmFja2dyb3VuZC1jb250YWluIHsgYmFja2dyb3VuZC1zaXplOiBjb250YWluOyB9XG4udWstYmFja2dyb3VuZC13aWR0aC0xLTEgeyBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7IH1cbi51ay1iYWNrZ3JvdW5kLWhlaWdodC0xLTEgeyBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTsgfVxuXG5cbi8qIFBvc2l0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJhY2tncm91bmQtdG9wLWxlZnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbi51ay1iYWNrZ3JvdW5kLXRvcC1jZW50ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMDsgfVxuLnVrLWJhY2tncm91bmQtdG9wLXJpZ2h0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwOyB9XG4udWstYmFja2dyb3VuZC1jZW50ZXItbGVmdCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlOyB9XG4udWstYmFja2dyb3VuZC1jZW50ZXItY2VudGVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTsgfVxuLnVrLWJhY2tncm91bmQtY2VudGVyLXJpZ2h0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7IH1cbi51ay1iYWNrZ3JvdW5kLWJvdHRvbS1sZWZ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlOyB9XG4udWstYmFja2dyb3VuZC1ib3R0b20tY2VudGVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7IH1cbi51ay1iYWNrZ3JvdW5kLWJvdHRvbS1yaWdodCB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJTsgfVxuXG5cbi8qIFJlcGVhdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1iYWNrZ3JvdW5kLW5vcmVwZWF0IHsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuXG5cbi8qIEF0dGFjaG1lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gRml4IGJ1ZyBpbnRyb2R1Y2VkIGluIENocm9tZSA2NzogdGhlIGJhY2tncm91bmQgaW1hZ2UgaXMgbm90IHZpc2libGUgaWYgYW55IGVsZW1lbnQgb24gdGhlIHBhZ2UgdXNlcyBgdHJhbnNsYXRlM2RgXG4gKi9cblxuLnVrLWJhY2tncm91bmQtZml4ZWQge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgLyogMSAqL1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcbiAqIEV4Y2x1ZGUgdG91Y2ggZGV2aWNlcyBiZWNhdXNlIGBmaXhlZGAgZG9lc24ndCB3b3JrIG9uIGlPUyBhbmQgQW5kcm9pZFxuICovXG5cbkBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgLnVrLWJhY2tncm91bmQtZml4ZWQgeyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDsgfVxufVxuXG5cbi8qIEltYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogUGhvbmUgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC14c21hbGwtbWF4KSB7XG5cbiAgICAudWstYmFja2dyb3VuZC1pbWFnZVxcQHMgeyBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbC1tYXgpIHtcblxuICAgIC51ay1iYWNrZ3JvdW5kLWltYWdlXFxAbSB7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0tbWF4KSB7XG5cbiAgICAudWstYmFja2dyb3VuZC1pbWFnZVxcQGwgeyBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UtbWF4KSB7XG5cbiAgICAudWstYmFja2dyb3VuZC1pbWFnZVxcQHhsIHtiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG5cbi8qIEJsZW5kIG1vZGVzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtbXVsdGlwbHkgeyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5OyB9XG4udWstYmFja2dyb3VuZC1ibGVuZC1zY3JlZW4geyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtb3ZlcmxheSB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogb3ZlcmxheTsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtZGFya2VuIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBkYXJrZW47IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWxpZ2h0ZW4geyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGxpZ2h0ZW47IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWNvbG9yLWRvZGdlIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBjb2xvci1kb2RnZTsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtY29sb3ItYnVybiB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogY29sb3ItYnVybjsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtaGFyZC1saWdodCB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogaGFyZC1saWdodDsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtc29mdC1saWdodCB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogc29mdC1saWdodDsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtZGlmZmVyZW5jZSB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogZGlmZmVyZW5jZTsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtZXhjbHVzaW9uIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBleGNsdXNpb247IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWh1ZSB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogaHVlOyB9XG4udWstYmFja2dyb3VuZC1ibGVuZC1zYXR1cmF0aW9uIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBzYXR1cmF0aW9uOyB9XG4udWstYmFja2dyb3VuZC1ibGVuZC1jb2xvciB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogY29sb3I7IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWx1bWlub3NpdHkgeyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGx1bWlub3NpdHk7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1iYWNrZ3JvdW5kLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1iYWNrZ3JvdW5kLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLWJhY2tncm91bmQtbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQWxpZ25cbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIHRvIGFsaWduIGVtYmVkZGVkIGNvbnRlbnRcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1hbGlnbi1sZWZ0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbGlnbi1yaWdodC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYWxpZ24tY2VudGVyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRhbGlnbi1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcblxuJGFsaWduLW1hcmdpbi1ob3Jpem9udGFsLWw6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQWxpZ25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdFxuICovXG5cbltjbGFzcyo9J3VrLWFsaWduJ10ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206ICRhbGlnbi1tYXJnaW4tdmVydGljYWw7XG59XG5cbiogKyBbY2xhc3MqPSd1ay1hbGlnbiddIHsgbWFyZ2luLXRvcDogJGFsaWduLW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG4vKlxuICogQ2VudGVyXG4gKi9cblxuLnVrLWFsaWduLWNlbnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vKlxuICogTGVmdC9SaWdodFxuICovXG5cbi51ay1hbGlnbi1sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogJGFsaWduLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4udWstYWxpZ24tcmlnaHQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWxlZnQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1hbGlnbi1sZWZ0XFxAcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGFsaWduLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudWstYWxpZ24tcmlnaHRcXEBzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1hbGlnbi1sZWZ0XFxAbSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGFsaWduLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudWstYWxpZ24tcmlnaHRcXEBtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWFsaWduLWxlZnRcXEBsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnVrLWFsaWduLXJpZ2h0XFxAbCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAudWstYWxpZ24tbGVmdCxcbiAgICAudWstYWxpZ24tbGVmdFxcQHMsXG4gICAgLnVrLWFsaWduLWxlZnRcXEBtLFxuICAgIC51ay1hbGlnbi1sZWZ0XFxAbCB7IG1hcmdpbi1yaWdodDogJGFsaWduLW1hcmdpbi1ob3Jpem9udGFsLWw7IH1cblxuICAgIC51ay1hbGlnbi1yaWdodCxcbiAgICAudWstYWxpZ24tcmlnaHRcXEBzLFxuICAgIC51ay1hbGlnbi1yaWdodFxcQG0sXG4gICAgLnVrLWFsaWduLXJpZ2h0XFxAbCB7IG1hcmdpbi1sZWZ0OiAkYWxpZ24tbWFyZ2luLWhvcml6b250YWwtbDsgfVxuXG59XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQteGxhcmdlKSB7XG5cbiAgICAudWstYWxpZ24tbGVmdFxcQHhsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYWxpZ24tbWFyZ2luLWhvcml6b250YWwtbDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnVrLWFsaWduLXJpZ2h0XFxAeGwge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogJGFsaWduLW1hcmdpbi1ob3Jpem9udGFsLWw7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1hbGlnbi1taXNjKSkge0BpbmNsdWRlIGhvb2stYWxpZ24tbWlzYygpO31cblxuLy8gQG1peGluIGhvb2stYWxpZ24tbWlzYygpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIFNWR1xuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gc3R5bGUgU1ZHc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXN2Z2Bcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU1ZHXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEZpbGwgYWxsIFNWRyBlbGVtZW50cyB3aXRoIHRoZSBjdXJyZW50IHRleHQgY29sb3IgaWYgbm8gYGZpbGxgIGF0dHJpYnV0ZSBpcyBzZXRcbiAqIDIuIFNldCB0aGUgZmlsbCBhbmQgc3Ryb2tlIGNvbG9yIG9mIGFsbCBTVkcgZWxlbWVudHMgdG8gdGhlIGN1cnJlbnQgdGV4dCBjb2xvclxuICovXG5cbi8qIDEgKi9cbi51ay1zdmcsXG4vKiAyICovXG4udWstc3ZnOm5vdCgudWstcHJlc2VydmUpIFtmaWxsKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHsgZmlsbDogY3VycmVudGNvbG9yOyB9XG4udWstc3ZnOm5vdCgudWstcHJlc2VydmUpIFtzdHJva2UqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkgeyBzdHJva2U6IGN1cnJlbnRjb2xvcjsgfVxuXG4vKlxuICogRml4IEZpcmVmb3ggYmx1cnJ5IFNWRyByZW5kZXJpbmc6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDY4MzVcbiAqL1xuXG4udWstc3ZnIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwKTsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLXN2Zy1taXNjKSkge0BpbmNsdWRlIGhvb2stc3ZnLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXN2Zy1taXNjKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBVdGlsaXR5XG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBjb2xsZWN0aW9uXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstcGFuZWwtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNsZWFyZml4YFxuLy8gICAgICAgICAgICAgICAgICBgdWstZmxvYXQtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW92ZXJmbG93LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1yZXNpemUtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRpc3BsYXktKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWlubGluZS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcmVzcG9uc2l2ZS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcHJlc2VydmUtd2lkdGhgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ib3JkZXItKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJveC1zaGFkb3ctKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJveC1zaGFkb3ctYm90dG9tYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJvcGNhcGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxvZ29gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ibGVuZC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNmb3JtLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2Zvcm0tb3JpZ2luLSpgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstZGlzYWJsZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcmFnYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJhZ292ZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wcmVzZXJ2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kcGFuZWwtc2Nyb2xsYWJsZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgMTcwcHggIWRlZmF1bHQ7XG4kcGFuZWwtc2Nyb2xsYWJsZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRwYW5lbC1zY3JvbGxhYmxlLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRwYW5lbC1zY3JvbGxhYmxlLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcblxuJGJvcmRlci1yb3VuZGVkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcblxuJGJveC1zaGFkb3ctZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMXMgIWRlZmF1bHQ7XG5cbiRib3gtc2hhZG93LWJvdHRvbS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctYm90dG9tLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgIDEwMCUgIWRlZmF1bHQ7XG4kYm94LXNoYWRvdy1ib3R0b20tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIzQ0NCAhZGVmYXVsdDtcbiRib3gtc2hhZG93LWJvdHRvbS1ibHVyOiAgICAgICAgICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xuXG4kZHJvcGNhcC1tYXJnaW4tcmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRkcm9wY2FwLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCRnbG9iYWwtbGluZS1oZWlnaHQgKiAzKSAqIDFlbSkgIWRlZmF1bHQ7XG5cbiRsb2dvLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRsb2dvLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGxvZ28tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XG4kbG9nby1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJGRyYWdvdmVyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgMCAyMHB4IHJnYmEoMTAwLDEwMCwxMDAsMC4zKSAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVXRpbGl0eVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLyogUGFuZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1wYW5lbCA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qXG4gKiBTY3JvbGxhYmxlXG4gKi9cblxuLnVrLXBhbmVsLXNjcm9sbGFibGUge1xuICAgIGhlaWdodDogJHBhbmVsLXNjcm9sbGFibGUtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRwYW5lbC1zY3JvbGxhYmxlLXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkcGFuZWwtc2Nyb2xsYWJsZS1ib3JkZXItd2lkdGggc29saWQgJHBhbmVsLXNjcm9sbGFibGUtYm9yZGVyO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICByZXNpemU6IGJvdGg7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXBhbmVsLXNjcm9sbGFibGUpKSB7QGluY2x1ZGUgaG9vay1wYW5lbC1zY3JvbGxhYmxlKCk7fVxufVxuXG5cbi8qIENsZWFyZml4XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIGB0YWJsZS1jZWxsYCBpcyB1c2VkIHdpdGggYDo6YmVmb3JlYCBiZWNhdXNlIGB0YWJsZWAgY3JlYXRlcyBhIDFweCBnYXAgd2hlbiBpdCBiZWNvbWVzIGEgZmxleCBpdGVtLCBvbmx5IGluIFdlYmtpdFxuICogMi4gYHRhYmxlYCBpcyB1c2VkIGFnYWluIHdpdGggYDo6YWZ0ZXJgIGJlY2F1c2UgYGNsZWFyYCBvbmx5IHdvcmtzIHdpdGggYmxvY2sgZWxlbWVudHMuXG4gKiBOb3RlOiBgZGlzcGxheTogYmxvY2tgIHdpdGggYG92ZXJmbG93OiBoaWRkZW5gIGlzIGN1cnJlbnRseSBub3Qgd29ya2luZyBpbiB0aGUgbGF0ZXN0IFNhZmFyaVxuICovXG5cbi8qIDEgKi9cbi51ay1jbGVhcmZpeDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi8qIDIgKi9cbi51ay1jbGVhcmZpeDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cblxuLyogRmxvYXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKi9cblxuLnVrLWZsb2F0LWxlZnQgeyBmbG9hdDogbGVmdDsgfVxuLnVrLWZsb2F0LXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qIDEgKi9cbltjbGFzcyo9J3VrLWZsb2F0LSddIHsgbWF4LXdpZHRoOiAxMDAlOyB9XG5cblxuLyogT3ZlcmZvd1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1vdmVyZmxvdy1oaWRkZW4geyBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qXG4gKiBFbmFibGUgc2Nyb2xsYmFycyBpZiBjb250ZW50IGlzIGNsaXBwZWRcbiAqIE5vdGU6IEZpcmVmb3ggaWdub3JlcyBgcGFkZGluZy1ib3R0b21gIGZvciB0aGUgc2Nyb2xsYWJsZSBvdmVyZmxvdyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg1MThcbiAqL1xuXG4udWstb3ZlcmZsb3ctYXV0byB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4udWstb3ZlcmZsb3ctYXV0byA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIFJlc2l6ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1yZXNpemUgeyByZXNpemU6IGJvdGg7IH1cbi51ay1yZXNpemUtdmVydGljYWwgeyByZXNpemU6IHZlcnRpY2FsOyB9XG5cblxuLyogRGlzcGxheVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1kaXNwbGF5LWJsb2NrIHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuLnVrLWRpc3BsYXktaW5saW5lIHsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cbi51ay1kaXNwbGF5LWlubGluZS1ibG9jayB7IGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XG5cblxuLyogSW5saW5lXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENvbnRhaW5lciBmaXRzIGl0cyBjb250ZW50XG4gKiAyLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICogMy4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKiA0LiBCZWhhdmUgbGlrZSBtb3N0IGlubGluZS1ibG9jayBlbGVtZW50c1xuICogNS4gRm9yY2UgbmV3IGxheWVyIHdpdGhvdXQgY3JlYXRpbmcgYSBuZXcgc3RhY2tpbmcgY29udGV4dFxuICogICAgdG8gZml4IDFweCBnbGl0Y2ggd2hlbiBjb21iaW5lZCB3aXRoIG92ZXJsYXlzIGFuZCB0cmFuc2l0aW9ucyBpbiBXZWJraXRcbiAqIDYuIENsaXAgY2hpbGQgZWxlbWVudHNcbiAqL1xuXG5bY2xhc3MqPSd1ay1pbmxpbmUnXSB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8qIDMgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogNCAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLyogNSAqL1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4udWstaW5saW5lLWNsaXAge1xuICAgIC8qIDYgKi9cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5cbi8qIFJlc3BvbnNpdmUgb2JqZWN0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQcmVzZXJ2ZSBvcmlnaW5hbCBkaW1lbnNpb25zXG4gKiBCZWNhdXNlIGBpbWcsIGB2aWRlb2AsIGBjYW52YXNgIGFuZCAgYGF1ZGlvYCBhcmUgYWxyZWFkeSByZXNwb25zaXZlIGJ5IGRlZmF1bHQsIHNlZSBCYXNlIGNvbXBvbmVudFxuICovXG5cbi51ay1wcmVzZXJ2ZS13aWR0aCxcbi51ay1wcmVzZXJ2ZS13aWR0aCBjYW52YXMsXG4udWstcHJlc2VydmUtd2lkdGggaW1nLFxuLnVrLXByZXNlcnZlLXdpZHRoIHN2Zyxcbi51ay1wcmVzZXJ2ZS13aWR0aCB2aWRlbyB7IG1heC13aWR0aDogbm9uZTsgfVxuXG4vKlxuICogUmVzcG9uc2l2ZW5lc3NcbiAqIENvcnJlY3RzIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgYmVoYXZpb3IgaWYgcGFkZGluZyBhbmQgYm9yZGVyIGFyZSB1c2VkXG4gKi9cblxuLnVrLXJlc3BvbnNpdmUtd2lkdGgsXG4udWstcmVzcG9uc2l2ZS1oZWlnaHQgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXG4gKiAxLiBTZXQgYSBtYXhpbXVtIHdpZHRoLiBgaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgYHVrLXByZXNlcnZlLXdpZHRoIGltZ2BcbiAqIDIuIEF1dG8gc2NhbGUgdGhlIGhlaWdodC4gT25seSBuZWVkZWQgaWYgYGhlaWdodGAgYXR0cmlidXRlIGlzIHByZXNlbnRcbiAqL1xuXG4udWstcmVzcG9uc2l2ZS13aWR0aCB7XG4gICAgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIC8qIDIgKi9cbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qXG4gKiAxLiBTZXQgYSBtYXhpbXVtIGhlaWdodC4gT25seSB3b3JrcyBpZiB0aGUgcGFyZW50IGVsZW1lbnQgaGFzIGEgZml4ZWQgaGVpZ2h0XG4gKiAyLiBBdXRvIHNjYWxlIHRoZSB3aWR0aC4gT25seSBuZWVkZWQgaWYgYHdpZHRoYCBhdHRyaWJ1dGUgaXMgcHJlc2VudFxuICogMy4gUmVzZXQgbWF4LXdpZHRoLCB3aGljaCBgaW1nLCBgdmlkZW9gLCBgY2FudmFzYCBhbmQgIGBhdWRpb2AgYWxyZWFkeSBoYXZlIGJ5IGRlZmF1bHRcbiAqL1xuXG4udWstcmVzcG9uc2l2ZS1oZWlnaHQge1xuICAgIC8qIDEgKi9cbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIC8qIDIgKi9cbiAgICB3aWR0aDogYXV0bztcbiAgICAvKiAzICovXG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG5cbi8qIEJvcmRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1ib3JkZXItY2lyY2xlIHsgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4udWstYm9yZGVyLXBpbGwgeyBib3JkZXItcmFkaXVzOiA1MDBweDsgfVxuLnVrLWJvcmRlci1yb3VuZGVkIHsgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yb3VuZGVkLWJvcmRlci1yYWRpdXM7IH1cblxuLypcbiAqIEZpeCBgb3ZlcmZsb3c6IGhpZGRlbmAgdG8gYmUgaWdub3JlZCB3aXRoIGJvcmRlci1yYWRpdXMgYW5kIENTUyB0cmFuc2Zvcm1zIGluIFdlYmtpdFxuICovXG5cbi51ay1pbmxpbmUtY2xpcFtjbGFzcyo9J3VrLWJvcmRlci0nXSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9XG5cblxuLyogQm94LXNoYWRvd1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1ib3gtc2hhZG93LXNtYWxsIHsgYm94LXNoYWRvdzogJGdsb2JhbC1zbWFsbC1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1tZWRpdW0geyBib3gtc2hhZG93OiAkZ2xvYmFsLW1lZGl1bS1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1sYXJnZSB7IGJveC1zaGFkb3c6ICRnbG9iYWwtbGFyZ2UtYm94LXNoYWRvdzsgfVxuLnVrLWJveC1zaGFkb3cteGxhcmdlIHsgYm94LXNoYWRvdzogJGdsb2JhbC14bGFyZ2UtYm94LXNoYWRvdzsgfVxuXG4vKlxuICogSG92ZXJcbiAqL1xuXG5bY2xhc3MqPSd1ay1ib3gtc2hhZG93LWhvdmVyJ10geyB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICRib3gtc2hhZG93LWR1cmF0aW9uIGVhc2UtaW4tb3V0OyB9XG5cbi51ay1ib3gtc2hhZG93LWhvdmVyLXNtYWxsOmhvdmVyIHsgYm94LXNoYWRvdzogJGdsb2JhbC1zbWFsbC1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1ob3Zlci1tZWRpdW06aG92ZXIgeyBib3gtc2hhZG93OiAkZ2xvYmFsLW1lZGl1bS1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1ob3Zlci1sYXJnZTpob3ZlciB7IGJveC1zaGFkb3c6ICRnbG9iYWwtbGFyZ2UtYm94LXNoYWRvdzsgfVxuLnVrLWJveC1zaGFkb3ctaG92ZXIteGxhcmdlOmhvdmVyIHsgYm94LXNoYWRvdzogJGdsb2JhbC14bGFyZ2UtYm94LXNoYWRvdzsgfVxuXG5cbi8qIEJveC1zaGFkb3cgYm90dG9tXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNldCBwb3NpdGlvbi5cbiAqIDIuIFNldCBzdHlsZVxuICogMy4gRml4IHNoYWRvdyBiZWluZyBjbGlwcGVkIGluIFNhZmFyaSBpZiBjb250YWluZXIgaXMgYW5pbWF0ZWRcbiAqL1xuXG5Ac3VwcG9ydHMgKGZpbHRlcjogYmx1cigwKSkge1xuIFxuICAgIC51ay1ib3gtc2hhZG93LWJvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLnVrLWJveC1zaGFkb3ctYm90dG9tOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAvKiAxICovXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAoLSRib3gtc2hhZG93LWJvdHRvbS1oZWlnaHQpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIC8qIDIgKi9cbiAgICAgICAgaGVpZ2h0OiAkYm94LXNoYWRvdy1ib3R0b20taGVpZ2h0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm94LXNoYWRvdy1ib3R0b20tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZDogJGJveC1zaGFkb3ctYm90dG9tLWJhY2tncm91bmQ7XG4gICAgICAgIGZpbHRlcjogYmx1cigkYm94LXNoYWRvdy1ib3R0b20tYmx1cik7XG4gICAgICAgIC8qIDMgKi9cbiAgICAgICAgd2lsbC1jaGFuZ2U6IGZpbHRlcjtcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJveC1zaGFkb3ctYm90dG9tKSkge0BpbmNsdWRlIGhvb2stYm94LXNoYWRvdy1ib3R0b20oKTt9XG4gICAgfVxuXG59XG5cblxuLyogRHJvcCBjYXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gRmlyZWZveCBkb2Vzbid0IGFwcGx5IGA6OmZpcnN0LWxldHRlcmAgaWYgdGhlIGZpcnN0IGxldHRlciBpcyBpbnNpZGUgY2hpbGQgZWxlbWVudHNcbiAqICAgIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDAwNFxuICogMi4gSW4gRmlyZWZveCwgYSBmbG9hdGluZyBgOjpmaXJzdC1sZXR0ZXJgIGRvZXNuJ3QgaGF2ZSBhIGxpbmUgYm94IGFuZCB0aGVyZSBmb3Igbm8gYGxpbmUtaGVpZ2h0YFxuICogICAgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3OTMzXG4gKiAzLiBDYXVzZWQgYnkgMS46IEVkZ2UgY3JlYXRlcyB0d28gbmVzdGVkIGA6OmZpcnN0LWxldHRlcmAgY29udGFpbmVycywgb25lIGZvciBlYWNoIHNlbGVjdG9yXG4gKiAgICBUaGlzIGRvdWJsZXMgdGhlIGBmb250LXNpemVgIGV4cG9uZW50aWFsIHdoZW4gdXNpbmcgdGhlIGBlbWAgdW5pdC5cbiAqL1xuXG4udWstZHJvcGNhcDo6Zmlyc3QtbGV0dGVyLFxuLyogMSAqL1xuLnVrLWRyb3BjYXAgPiBwOmZpcnN0LW9mLXR5cGU6OmZpcnN0LWxldHRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZHJvcGNhcC1tYXJnaW4tcmlnaHQ7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAkZHJvcGNhcC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRyb3BjYXApKSB7QGluY2x1ZGUgaG9vay1kcm9wY2FwKCk7fVxufVxuXG4vKiAyICovXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuXG4gIC51ay1kcm9wY2FwOjpmaXJzdC1sZXR0ZXIsXG4gIC51ay1kcm9wY2FwID4gcDpmaXJzdC1vZi10eXBlOjpmaXJzdC1sZXR0ZXIgeyBtYXJnaW4tdG9wOiAxLjElOyB9XG5cbn1cblxuLyogMyAqL1xuQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG5cbiAgLnVrLWRyb3BjYXAgPiBwOmZpcnN0LW9mLXR5cGU6OmZpcnN0LWxldHRlciB7IGZvbnQtc2l6ZTogMWVtOyB9XG5cbn1cblxuXG4vKiBMb2dvXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFJlcXVpcmVkIGZvciBgYWBcbiAqL1xuXG4udWstbG9nbyB7XG4gICAgZm9udC1zaXplOiAkbG9nby1mb250LXNpemU7XG4gICAgZm9udC1mYW1pbHk6ICRsb2dvLWZvbnQtZmFtaWx5O1xuICAgIGNvbG9yOiAkbG9nby1jb2xvcjtcbiAgICAvKiAxICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1sb2dvKSkge0BpbmNsdWRlIGhvb2stbG9nbygpO31cbn1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWxvZ286aG92ZXIsXG4udWstbG9nbzpmb2N1cyB7XG4gICAgY29sb3I6ICRsb2dvLWhvdmVyLWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLyogMSAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbG9nby1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWxvZ28taG92ZXIoKTt9XG59XG5cbi51ay1sb2dvLWludmVyc2UgeyBkaXNwbGF5OiBub25lOyB9XG5cblxuLyogRGlzYWJsZWQgU3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZGlzYWJsZWQgeyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG5cbi8qIERyYWcgU3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gTmVlZGVkIGlmIG1vdmluZyBvdmVyIGVsZW1lbnRzIHdpdGggaGF2ZSB0aGVpciBvd24gY3Vyc29yIG9uIGhvdmVyLCBlLmcuIGxpbmtzIG9yIGJ1dHRvbnNcbiAqIDIuIEZpeCBkcmFnZ2luZyBvdmVyIGlmcmFtZXNcbiAqL1xuXG4udWstZHJhZyxcbi8qIDEgKi9cbi51ay1kcmFnICogeyBjdXJzb3I6IG1vdmU7IH1cblxuLyogMiAqL1xuLnVrLWRyYWcgaWZyYW1lIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuXG4vKiBEcmFnb3ZlciBTdGF0ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBDcmVhdGUgYSBib3gtc2hhZG93IHdoZW4gZHJhZ2dpbmcgYSBmaWxlIG92ZXIgdGhlIHVwbG9hZCBhcmVhXG4gKi9cblxuLnVrLWRyYWdvdmVyIHsgYm94LXNoYWRvdzogJGRyYWdvdmVyLWJveC1zaGFkb3c7IH1cblxuXG4vKiBCbGVuZCBtb2Rlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1ibGVuZC1tdWx0aXBseSB7IG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuLnVrLWJsZW5kLXNjcmVlbiB7IG1peC1ibGVuZC1tb2RlOiBzY3JlZW47IH1cbi51ay1ibGVuZC1vdmVybGF5IHsgbWl4LWJsZW5kLW1vZGU6IG92ZXJsYXk7IH1cbi51ay1ibGVuZC1kYXJrZW4geyBtaXgtYmxlbmQtbW9kZTogZGFya2VuOyB9XG4udWstYmxlbmQtbGlnaHRlbiB7IG1peC1ibGVuZC1tb2RlOiBsaWdodGVuOyB9XG4udWstYmxlbmQtY29sb3ItZG9kZ2UgeyBtaXgtYmxlbmQtbW9kZTogY29sb3ItZG9kZ2U7IH1cbi51ay1ibGVuZC1jb2xvci1idXJuIHsgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWJ1cm47IH1cbi51ay1ibGVuZC1oYXJkLWxpZ2h0IHsgbWl4LWJsZW5kLW1vZGU6IGhhcmQtbGlnaHQ7IH1cbi51ay1ibGVuZC1zb2Z0LWxpZ2h0IHsgbWl4LWJsZW5kLW1vZGU6IHNvZnQtbGlnaHQ7IH1cbi51ay1ibGVuZC1kaWZmZXJlbmNlIHsgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7IH1cbi51ay1ibGVuZC1leGNsdXNpb24geyBtaXgtYmxlbmQtbW9kZTogZXhjbHVzaW9uOyB9XG4udWstYmxlbmQtaHVlIHsgbWl4LWJsZW5kLW1vZGU6IGh1ZTsgfVxuLnVrLWJsZW5kLXNhdHVyYXRpb24geyBtaXgtYmxlbmQtbW9kZTogc2F0dXJhdGlvbjsgfVxuLnVrLWJsZW5kLWNvbG9yIHsgbWl4LWJsZW5kLW1vZGU6IGNvbG9yOyB9XG4udWstYmxlbmQtbHVtaW5vc2l0eSB7IG1peC1ibGVuZC1tb2RlOiBsdW1pbm9zaXR5OyB9XG5cblxuLyogVHJhbnNmb3JtXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdHJhbnNmb3JtLWNlbnRlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cblxuLyogVHJhbnNmb3JtIE9yaWdpblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tdG9wLWxlZnQgeyB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7IH1cbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1jZW50ZXIgeyB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMDsgfVxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tdG9wLXJpZ2h0IHsgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwOyB9XG4udWstdHJhbnNmb3JtLW9yaWdpbi1jZW50ZXItbGVmdCB7IHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlOyB9XG4udWstdHJhbnNmb3JtLW9yaWdpbi1jZW50ZXItcmlnaHQgeyB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTsgfVxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tYm90dG9tLWxlZnQgeyB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7IH1cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWJvdHRvbS1jZW50ZXIgeyB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTsgfVxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tYm90dG9tLXJpZ2h0IHsgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stdXRpbGl0eS1taXNjKSkge0BpbmNsdWRlIGhvb2stdXRpbGl0eS1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1wYW5lbC1zY3JvbGxhYmxlKCl7fVxuLy8gQG1peGluIGhvb2stYm94LXNoYWRvdy1ib3R0b20oKXt9XG4vLyBAbWl4aW4gaG9vay1kcm9wY2FwKCl7fVxuLy8gQG1peGluIGhvb2stbG9nbygpe31cbi8vIEBtaXhpbiBob29rLWxvZ28taG92ZXIoKXt9XG4vLyBAbWl4aW4gaG9vay11dGlsaXR5LW1pc2MoKXt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRpbnZlcnNlLWxvZ28tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWxvZ28taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuXG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UtZHJvcGNhcCgpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbG9nbygpe31cbi8vIEBtaXhpbiBob29rLWludmVyc2UtbG9nby1ob3Zlcigpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgRmxleFxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgZm9yIGxheW91dHMgYmFzZWQgb24gZmxleGJveFxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWZsZXgtKmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRmxleFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1mbGV4IHsgZGlzcGxheTogZmxleDsgfVxuLnVrLWZsZXgtaW5saW5lIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuLypcbiAqIFJlbW92ZSBwc2V1ZG8gZWxlbWVudHMgY3JlYXRlZCBieSBtaWNybyBjbGVhcmZpeCBhcyBwcmVjYXV0aW9uXG4gKi9cblxuLnVrLWZsZXg6OmJlZm9yZSxcbi51ay1mbGV4OjphZnRlcixcbi51ay1mbGV4LWlubGluZTo6YmVmb3JlLFxuLnVrLWZsZXgtaW5saW5lOjphZnRlciB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vKiBBbGlnbm1lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWxpZ24gaXRlbXMgYWxvbmcgdGhlIG1haW4gYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmbGV4IGNvbnRhaW5lclxuICogUm93OiBIb3Jpem9udGFsXG4gKi9cblxuLy8gRGVmYXVsdFxuLnVrLWZsZXgtbGVmdCB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuLnVrLWZsZXgtY2VudGVyIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbi51ay1mbGV4LXJpZ2h0IHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuLnVrLWZsZXgtYmV0d2VlbiB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuLnVrLWZsZXgtYXJvdW5kIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstZmxleC1sZWZ0XFxAcyB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIC51ay1mbGV4LWNlbnRlclxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC51ay1mbGV4LXJpZ2h0XFxAcyB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAudWstZmxleC1iZXR3ZWVuXFxAcyB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC51ay1mbGV4LWFyb3VuZFxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWZsZXgtbGVmdFxcQG0geyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAudWstZmxleC1jZW50ZXJcXEBtIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAudWstZmxleC1yaWdodFxcQG0geyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLnVrLWZsZXgtYmV0d2VlblxcQG0geyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAudWstZmxleC1hcm91bmRcXEBtIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWZsZXgtbGVmdFxcQGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAudWstZmxleC1jZW50ZXJcXEBsIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAudWstZmxleC1yaWdodFxcQGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLnVrLWZsZXgtYmV0d2VlblxcQGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAudWstZmxleC1hcm91bmRcXEBsIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxufVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xuXG4gICAgLnVrLWZsZXgtbGVmdFxcQHhsIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgLnVrLWZsZXgtY2VudGVyXFxAeGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC51ay1mbGV4LXJpZ2h0XFxAeGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLnVrLWZsZXgtYmV0d2VlblxcQHhsIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLnVrLWZsZXgtYXJvdW5kXFxAeGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG59XG5cbi8qXG4gKiBBbGlnbiBpdGVtcyBpbiB0aGUgY3Jvc3MgYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmbGV4IGNvbnRhaW5lclxuICogUm93OiBWZXJ0aWNhbFxuICovXG5cbi8vIERlZmF1bHRcbi51ay1mbGV4LXN0cmV0Y2ggeyBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuLnVrLWZsZXgtdG9wIHsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbi51ay1mbGV4LW1pZGRsZSB7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbi51ay1mbGV4LWJvdHRvbSB7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG5cbi8qIERpcmVjdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIERlZmF1bHRcbi51ay1mbGV4LXJvdyB7IGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbi51ay1mbGV4LXJvdy1yZXZlcnNlIHsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4udWstZmxleC1jb2x1bW4geyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4udWstZmxleC1jb2x1bW4tcmV2ZXJzZSB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG5cbi8qIFdyYXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBEZWZhdWx0XG4udWstZmxleC1ub3dyYXAgeyBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuLnVrLWZsZXgtd3JhcCB7IGZsZXgtd3JhcDogd3JhcDsgfVxuLnVrLWZsZXgtd3JhcC1yZXZlcnNlIHsgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7IH1cblxuLypcbiAqIEFsaWducyBpdGVtcyB3aXRoaW4gdGhlIGZsZXggY29udGFpbmVyIHdoZW4gdGhlcmUgaXMgZXh0cmEgc3BhY2UgaW4gdGhlIGNyb3NzLWF4aXNcbiAqIE9ubHkgd29ya3MgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBsaW5lIG9mIGZsZXggaXRlbXNcbiAqL1xuXG4vLyBEZWZhdWx0XG4udWstZmxleC13cmFwLXN0cmV0Y2ggeyBhbGlnbi1jb250ZW50OiBzdHJldGNoOyB9XG4udWstZmxleC13cmFwLXRvcCB7IGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbi51ay1mbGV4LXdyYXAtbWlkZGxlIHsgYWxpZ24tY29udGVudDogY2VudGVyOyB9XG4udWstZmxleC13cmFwLWJvdHRvbSB7IGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4udWstZmxleC13cmFwLWJldHdlZW4geyBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4udWstZmxleC13cmFwLWFyb3VuZCB7IGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG5cbi8qIEl0ZW0gb3JkZXJpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdCBpcyAwXG4gKi9cblxuLnVrLWZsZXgtZmlyc3QgeyBvcmRlcjogLTE7fVxuLnVrLWZsZXgtbGFzdCB7IG9yZGVyOiA5OTt9XG5cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWZsZXgtZmlyc3RcXEBzIHsgb3JkZXI6IC0xOyB9XG4gICAgLnVrLWZsZXgtbGFzdFxcQHMgeyBvcmRlcjogOTk7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1mbGV4LWZpcnN0XFxAbSB7IG9yZGVyOiAtMTsgfVxuICAgIC51ay1mbGV4LWxhc3RcXEBtIHsgb3JkZXI6IDk5OyB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1mbGV4LWZpcnN0XFxAbCB7IG9yZGVyOiAtMTsgfVxuICAgIC51ay1mbGV4LWxhc3RcXEBsIHsgb3JkZXI6IDk5OyB9XG5cbn1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC14bGFyZ2UpIHtcblxuICAgIC51ay1mbGV4LWZpcnN0XFxAeGwgeyBvcmRlcjogLTE7IH1cbiAgICAudWstZmxleC1sYXN0XFxAeGwgeyBvcmRlcjogOTk7IH1cblxufVxuXG5cbi8qIEl0ZW0gZGltZW5zaW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBJbml0aWFsOiAwIDEgYXV0b1xuICogQ29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rc1xuICovXG5cbi8qXG4gKiBObyBGbGV4OiAwIDAgYXV0b1xuICogQ29udGVudCBkaW1lbnNpb25zXG4gKi9cblxuLnVrLWZsZXgtbm9uZSB7IGZsZXg6IG5vbmU7IH1cblxuLypcbiAqIFJlbGF0aXZlIEZsZXg6IDEgMSBhdXRvXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgY29uc2lkZXJpbmcgY29udGVudFxuICovXG5cbi51ay1mbGV4LWF1dG8geyBmbGV4OiBhdXRvOyB9XG5cbi8qXG4gKiBBYnNvbHV0ZSBGbGV4OiAxIDEgMCVcbiAqIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gZmxleFxuICovXG5cbi51ay1mbGV4LTEgeyBmbGV4OiAxOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stZmxleC1taXNjKSkge0BpbmNsdWRlIGhvb2stZmxleC1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1mbGV4LW1pc2MoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBNYXJnaW5cbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciBtYXJnaW5zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbWFyZ2luLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tYXJnaW4tc21hbGwtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1hcmdpbi1tZWRpdW0tKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1hcmdpbi1sYXJnZS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLXhsYXJnZS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLXJlbW92ZS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLWF1dG8tKmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kbWFyZ2luLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4kbWFyZ2luLXNtYWxsLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xuXG4kbWFyZ2luLW1lZGl1bS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcblxuJG1hcmdpbi1sYXJnZS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XG4kbWFyZ2luLWxhcmdlLW1hcmdpbi1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuXG4kbWFyZ2luLXhsYXJnZS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xuJG1hcmdpbi14bGFyZ2UtbWFyZ2luLWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE1hcmdpblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZhdWx0XG4gKi9cblxuLnVrLW1hcmdpbiB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWFyZ2luOyB9XG4qICsgLnVrLW1hcmdpbiB7IG1hcmdpbi10b3A6ICRtYXJnaW4tbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi10b3AgeyBtYXJnaW4tdG9wOiAkbWFyZ2luLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tbGVmdCB7IG1hcmdpbi1sZWZ0OiAkbWFyZ2luLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLW1hcmdpbiAhaW1wb3J0YW50OyB9XG5cblxuLyogU21hbGxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbWFyZ2luLXNtYWxsIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1zbWFsbC1tYXJnaW47IH1cbiogKyAudWstbWFyZ2luLXNtYWxsIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1zbWFsbC1tYXJnaW4gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXNtYWxsLXRvcCB7IG1hcmdpbi10b3A6ICRtYXJnaW4tc21hbGwtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tc21hbGwtYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1zbWFsbC1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1zbWFsbC1sZWZ0IHsgbWFyZ2luLWxlZnQ6ICRtYXJnaW4tc21hbGwtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tc21hbGwtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tc21hbGwtbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBNZWRpdW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbWFyZ2luLW1lZGl1bSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWVkaXVtLW1hcmdpbjsgfVxuKiArIC51ay1tYXJnaW4tbWVkaXVtIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW0tbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1tZWRpdW0tdG9wIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW0tbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tbWVkaXVtLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWVkaXVtLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLW1lZGl1bS1sZWZ0IHsgbWFyZ2luLWxlZnQ6ICRtYXJnaW4tbWVkaXVtLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLW1lZGl1bS1yaWdodCB7IG1hcmdpbi1yaWdodDogJG1hcmdpbi1tZWRpdW0tbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBMYXJnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlLW1hcmdpbjsgfVxuKiArIC51ay1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tdG9wOiAkbWFyZ2luLWxhcmdlLW1hcmdpbiAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbGFyZ2UtdG9wIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1sYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1sYXJnZS1ib3R0b20geyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLWxhcmdlLWxlZnQgeyBtYXJnaW4tbGVmdDogJG1hcmdpbi1sYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1sYXJnZS1yaWdodCB7IG1hcmdpbi1yaWdodDogJG1hcmdpbi1sYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2UtbWFyZ2luLWw7IH1cbiAgICAqICsgLnVrLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi10b3A6ICRtYXJnaW4tbGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxuXG4gICAgLnVrLW1hcmdpbi1sYXJnZS10b3AgeyBtYXJnaW4tdG9wOiAkbWFyZ2luLWxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLWxhcmdlLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4tbGFyZ2UtbGVmdCB7IG1hcmdpbi1sZWZ0OiAkbWFyZ2luLWxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLWxhcmdlLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLWxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cblxufVxuXG5cbi8qIFhMYXJnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1tYXJnaW4teGxhcmdlIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2UtbWFyZ2luOyB9XG4qICsgLnVrLW1hcmdpbi14bGFyZ2UgeyBtYXJnaW4tdG9wOiAkbWFyZ2luLXhsYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXhsYXJnZS10b3AgeyBtYXJnaW4tdG9wOiAkbWFyZ2luLXhsYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi14bGFyZ2UtYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4teGxhcmdlLWxlZnQgeyBtYXJnaW4tbGVmdDogJG1hcmdpbi14bGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4teGxhcmdlLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLXhsYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLW1hcmdpbi14bGFyZ2UgeyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXhsYXJnZS1tYXJnaW4tbDsgfVxuICAgICogKyAudWstbWFyZ2luLXhsYXJnZSB7IG1hcmdpbi10b3A6ICRtYXJnaW4teGxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cblxuICAgIC51ay1tYXJnaW4teGxhcmdlLXRvcCB7IG1hcmdpbi10b3A6ICRtYXJnaW4teGxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLXhsYXJnZS1ib3R0b20geyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXhsYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi14bGFyZ2UtbGVmdCB7IG1hcmdpbi1sZWZ0OiAkbWFyZ2luLXhsYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi14bGFyZ2UtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4teGxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cblxufVxuXG5cbi8qIEF1dG9cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbWFyZ2luLWF1dG8ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi51ay1tYXJnaW4tYXV0by10b3AgeyBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tYXV0by1ib3R0b20geyBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tYXV0by1sZWZ0IHsgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1hdXRvLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLXZlcnRpY2FsIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstbWFyZ2luLWF1dG9cXEBzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEBzIHsgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQHMgeyBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLW1hcmdpbi1hdXRvXFxAbSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAbSB7IG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBtIHsgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLW1hcmdpbi1hdXRvXFxAbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAbCB7IG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBsIHsgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xuXG4gICAgLnVrLW1hcmdpbi1hdXRvXFxAeGwge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudWstbWFyZ2luLWF1dG8tbGVmdFxcQHhsIHsgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQHhsIHsgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxufVxuXG5cbi8qIFJlbW92ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAudWstbWFyZ2luLXJlbW92ZSB7IG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gLnVrLW1hcmdpbi1yZW1vdmUtdG9wIHsgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG4gLnVrLW1hcmdpbi1yZW1vdmUtYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4gLnVrLW1hcmdpbi1yZW1vdmUtbGVmdCB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAudWstbWFyZ2luLXJlbW92ZS1yaWdodCB7IG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4gXG4gLnVrLW1hcmdpbi1yZW1vdmUtdmVydGljYWwge1xuICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiB9XG4gXG4gLnVrLW1hcmdpbi1yZW1vdmUtYWRqYWNlbnQgKyAqLFxuIC51ay1tYXJnaW4tcmVtb3ZlLWZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG4gLnVrLW1hcmdpbi1yZW1vdmUtbGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEBzIHsgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAcyB7IG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAbSB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQG0geyBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAbCB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQGwgeyBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQteGxhcmdlKSB7XG5cbiAgICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAeGwgeyBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHRcXEB4bCB7IG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbn1cblxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLW1hcmdpbi1taXNjKSkge0BpbmNsdWRlIGhvb2stbWFyZ2luLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLW1hcmdpbi1taXNjKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBQYWRkaW5nXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgcGFkZGluZ1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXBhZGRpbmdgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wYWRkaW5nLWxhcmdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcGFkZGluZy1yZW1vdmUtKmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kcGFkZGluZy1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRwYWRkaW5nLXBhZGRpbmctbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcblxuJHBhZGRpbmctc21hbGwtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XG5cbiRwYWRkaW5nLWxhcmdlLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xuJHBhZGRpbmctbGFyZ2UtcGFkZGluZy1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1ndXR0ZXIgIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFBhZGRpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstcGFkZGluZyB7IHBhZGRpbmc6ICRwYWRkaW5nLXBhZGRpbmc7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1wYWRkaW5nIHsgcGFkZGluZzogJHBhZGRpbmctcGFkZGluZy1sOyB9XG5cbn1cblxuXG4vKiBTbWFsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1wYWRkaW5nLXNtYWxsIHsgcGFkZGluZzogJHBhZGRpbmctc21hbGwtcGFkZGluZzsgfVxuXG5cbi8qIExhcmdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXBhZGRpbmctbGFyZ2UgeyBwYWRkaW5nOiAkcGFkZGluZy1sYXJnZS1wYWRkaW5nOyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstcGFkZGluZy1sYXJnZSB7IHBhZGRpbmc6ICRwYWRkaW5nLWxhcmdlLXBhZGRpbmctbDsgfVxuXG59XG5cblxuLyogUmVtb3ZlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXBhZGRpbmctcmVtb3ZlIHsgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG4udWstcGFkZGluZy1yZW1vdmUtdG9wIHsgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxuLnVrLXBhZGRpbmctcmVtb3ZlLWJvdHRvbSB7IHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbi51ay1wYWRkaW5nLXJlbW92ZS1sZWZ0IHsgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbi51ay1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4udWstcGFkZGluZy1yZW1vdmUtdmVydGljYWwge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnVrLXBhZGRpbmctcmVtb3ZlLWhvcml6b250YWwge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay1wYWRkaW5nLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1wYWRkaW5nLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXBhZGRpbmctbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgUG9zaXRpb25cbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIHRvIHBvc2l0aW9uIGNvbnRlbnRcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1wb3NpdGlvbi1hYnNvbHV0ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXJlbGF0aXZlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tei1pbmRleGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXRvcGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWJvdHRvbWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXRvcC1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tdG9wLWNlbnRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXRvcC1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWJvdHRvbS1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tYm90dG9tLWNlbnRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWJvdHRvbS1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWNlbnRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWNlbnRlci1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tY2VudGVyLXJpZ2h0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tY292ZXJgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstcG9zaXRpb24tc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1tZWRpdW1gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1sYXJnZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kcG9zaXRpb24tc21hbGwtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZ3V0dGVyICFkZWZhdWx0O1xuJHBvc2l0aW9uLW1lZGl1bS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcbiRwb3NpdGlvbi1sYXJnZS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XG4kcG9zaXRpb24tbGFyZ2UtbWFyZ2luLWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFBvc2l0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKiBEaXJlY3Rpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFByZXZlbnQgY29udGVudCBvdmVyZmxvdyBpZiBgbWF4LXdpZHRoOiAxMDAlYCBpcyB1c2VkIGluc2lkZSBwb3NpdGlvbiBjb250YWluZXIuXG4gKi9cblxuW2NsYXNzKj0ndWstcG9zaXRpb24tdG9wJ10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1ib3R0b20nXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLWxlZnQnXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLXJpZ2h0J10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXInXSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuXG4vKiBFZGdlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIERvbid0IHVzZSBgd2lkdGg6IDEwMCVgIGJlY2F1c2UgaXQgaXMgd3JvbmcgaWYgdGhlIHBhcmVudCBoYXMgcGFkZGluZy4gKi9cbi51ay1wb3NpdGlvbi10b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4udWstcG9zaXRpb24tYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbn1cblxuLnVrLXBvc2l0aW9uLWxlZnQge1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cblxuLnVrLXBvc2l0aW9uLXJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG5cbi8qIENvcm5lcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstcG9zaXRpb24tdG9wLWxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xufVxuXG4udWstcG9zaXRpb24tdG9wLXJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi51ay1wb3NpdGlvbi1ib3R0b20tbGVmdCB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbi51ay1wb3NpdGlvbi1ib3R0b20tcmlnaHQge1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbn1cblxuLypcbiAqIENlbnRlclxuICogMS4gRml4IHRleHQgd3JhcHBpbmcgaWYgY29udGVudCBpcyBsYXJnZXIgdGhhbiA1MCUgb2YgdGhlIGNvbnRhaW5lci5cbiAqL1xuXG4udWstcG9zaXRpb24tY2VudGVyIHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAvKiAxICovXG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiBWZXJ0aWNhbCAqL1xuW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi51ay1wb3NpdGlvbi1jZW50ZXItbGVmdCB7IGxlZnQ6IDA7IH1cbi51ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQgeyByaWdodDogMDsgfVxuXG4udWstcG9zaXRpb24tY2VudGVyLWxlZnQtb3V0IHtcbiAgICByaWdodDogMTAwJTtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbi51ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQtb3V0IHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbn1cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXG4udWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAvKiAxICovXG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4udWstcG9zaXRpb24tdG9wLWNlbnRlciB7IHRvcDogMDsgfVxuLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIgeyBib3R0b206IDA7IH1cblxuXG4vKiBDb3ZlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1wb3NpdGlvbi1jb3ZlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbn1cblxuXG4vKiBVdGlsaXR5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXBvc2l0aW9uLXJlbGF0aXZlIHsgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBvc2l0aW9uLWFic29sdXRlIHsgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBvc2l0aW9uLWZpeGVkIHsgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBvc2l0aW9uLXotaW5kZXggeyB6LWluZGV4OiAxOyB9XG5cblxuLyogTWFyZ2luIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFNtYWxsXG4gKi9cblxuLnVrLXBvc2l0aW9uLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAtICgjeyRwb3NpdGlvbi1zbWFsbC1tYXJnaW59ICogMikpJyk7XG4gICAgbWFyZ2luOiAkcG9zaXRpb24tc21hbGwtbWFyZ2luO1xufVxuXG4udWstcG9zaXRpb24tc21hbGwudWstcG9zaXRpb24tY2VudGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC0kcG9zaXRpb24tc21hbGwtbWFyZ2luLCAoLSRwb3NpdGlvbi1zbWFsbC1tYXJnaW4pKTsgfVxuXG4udWstcG9zaXRpb24tc21hbGxbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuLnVrLXBvc2l0aW9uLXNtYWxsW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLXJpZ2h0J10geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWSgtJHBvc2l0aW9uLXNtYWxsLW1hcmdpbik7IH1cblxuLnVrLXBvc2l0aW9uLXNtYWxsLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXG4udWstcG9zaXRpb24tc21hbGwudWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVYKC0kcG9zaXRpb24tc21hbGwtbWFyZ2luKTsgfVxuXG4vKlxuICogTWVkaXVtXG4gKi9cblxuLnVrLXBvc2l0aW9uLW1lZGl1bSB7XG4gICAgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgLSAoI3skcG9zaXRpb24tbWVkaXVtLW1hcmdpbn0gKiAyKSknKTtcbiAgICBtYXJnaW46ICRwb3NpdGlvbi1tZWRpdW0tbWFyZ2luO1xufVxuXG4udWstcG9zaXRpb24tbWVkaXVtLnVrLXBvc2l0aW9uLWNlbnRlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZSgtJHBvc2l0aW9uLW1lZGl1bS1tYXJnaW4sICgtJHBvc2l0aW9uLW1lZGl1bS1tYXJnaW4pKTsgfVxuXG4udWstcG9zaXRpb24tbWVkaXVtW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbi51ay1wb3NpdGlvbi1tZWRpdW1bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC0kcG9zaXRpb24tbWVkaXVtLW1hcmdpbik7IH1cblxuLnVrLXBvc2l0aW9uLW1lZGl1bS51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxuLnVrLXBvc2l0aW9uLW1lZGl1bS51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVgoLSRwb3NpdGlvbi1tZWRpdW0tbWFyZ2luKTsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuXG4udWstcG9zaXRpb24tbGFyZ2Uge1xuICAgIG1heC13aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlIC0gKCN7JHBvc2l0aW9uLWxhcmdlLW1hcmdpbn0gKiAyKSknKTtcbiAgICBtYXJnaW46ICRwb3NpdGlvbi1sYXJnZS1tYXJnaW47XG59XG5cbi51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi1jZW50ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGUoLSRwb3NpdGlvbi1sYXJnZS1tYXJnaW4sICgtJHBvc2l0aW9uLWxhcmdlLW1hcmdpbikpOyB9XG5cbi51ay1wb3NpdGlvbi1sYXJnZVtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1sZWZ0J10sXG4udWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC0kcG9zaXRpb24tbGFyZ2UtbWFyZ2luKTsgfVxuXG4udWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tdG9wLWNlbnRlcixcbi51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVgoLSRwb3NpdGlvbi1sYXJnZS1tYXJnaW4pOyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstcG9zaXRpb24tbGFyZ2Uge1xuICAgICAgICBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAtICgjeyRwb3NpdGlvbi1sYXJnZS1tYXJnaW4tbH0gKiAyKSknKTtcbiAgICAgICAgbWFyZ2luOiAkcG9zaXRpb24tbGFyZ2UtbWFyZ2luLWw7XG4gICAgfVxuXG4gICAgLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWNlbnRlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZSgtJHBvc2l0aW9uLWxhcmdlLW1hcmdpbi1sLCAoLSRwb3NpdGlvbi1sYXJnZS1tYXJnaW4tbCkpOyB9XG5cbiAgICAudWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuICAgIC51ay1wb3NpdGlvbi1sYXJnZVtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLSRwb3NpdGlvbi1sYXJnZS1tYXJnaW4tbCk7IH1cblxuICAgIC51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxuICAgIC51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVgoLSRwb3NpdGlvbi1sYXJnZS1tYXJnaW4tbCk7IH1cblxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGlmKG1peGluLWV4aXN0cyhob29rLXBvc2l0aW9uLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1wb3NpdGlvbi1taXNjKCk7fVxuXG4vLyBAbWl4aW4gaG9vay1wb3NpdGlvbi1taXNjKCl7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBUcmFuc2l0aW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgdHJhbnNpdGlvbnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10cmFuc2l0aW9uLSpgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstdHJhbnNpdGlvbi1mYWRlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zY2FsZS11cGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zaXRpb24tc2NhbGUtZG93bmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zaXRpb24tc2xpZGUtdG9wLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLXNsaWRlLXJpZ2h0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLW9wYXF1ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zaXRpb24tc2xvd2Bcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay10cmFuc2l0aW9uLXRvZ2dsZWAsXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLWFjdGl2ZWBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuM3MgIWRlZmF1bHQ7XG5cbiR0cmFuc2l0aW9uLXNjYWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjAzICFkZWZhdWx0O1xuXG4kdHJhbnNpdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGU6ICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiR0cmFuc2l0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGU6ICAgICAgICAgICAgICA1MHB4ICFkZWZhdWx0O1xuXG4kdHJhbnNpdGlvbi1zbG93LWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgMC43cyAhZGVmYXVsdDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVHJhbnNpdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLyogVG9nZ2xlIChIb3ZlciArIEZvY3VzKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG5cbi51ay10cmFuc2l0aW9uLXRvZ2dsZSB7XG4gICAgLyogMSAqL1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qXG4gKiBSZW1vdmUgb3V0bGluZSBmb3IgYHRhYmluZGV4YFxuICovXG5cbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuXG4vKiBUcmFuc2l0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBUaGUgdG9nZ2xlIGlzIHRyaWdnZXJlZCBvbiB0b3VjaCBkZXZpY2VzIGJ5IHR3byBtZXRob2RzOlxuICogMS4gVXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XG4gKiAyLiBVc2luZyBgOmhvdmVyYCBhbmQgYSBgdG91Y2hzdGFydGAgZXZlbnQgbGlzdGVuZXIgcmVnaXN0ZXJlZCBvbiB0aGUgZG9jdW1lbnRcbiAqICAgIChEb2Vzbid0IHdvcmsgb24gU3VyZmFjZSB0b3VjaCBkZXZpY2VzKVxuICpcbiAqIE5vdGU6IFRyYW5zaXRpb25zIGRvbid0IHdvcmsgd2l0aCBgdWstcG9zdGlvbi1jZW50ZXItKmAgY2xhc3NlcyBiZWNhdXNlIHRoZXkgYWxzbyB1c2UgYHRyYW5zZm9ybWAsXG4gKiAgICAgICB0aGVyZWZvcmUgaXQncyByZWNvbW1lbmRlZCB0byB1c2UgYW4gZXh0cmEgYGRpdmAgZm9yIHRoZSB0cmFuc2l0aW9uLlxuICovXG5cbi51ay10cmFuc2l0aW9uLWZhZGUsXG5bY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNjYWxlJ10sXG5bY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10ge1xuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybSwgZmlsdGVyO1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi8qXG4gKiBGYWRlXG4gKi9cblxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIC51ay10cmFuc2l0aW9uLWZhZGUsXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tZmFkZSxcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tZmFkZSB7IG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIFNjYWxlXG4gKi9cblxuLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAgeyB0cmFuc2Zvcm06IHNjYWxlKDEsMSk7IH1cbi51ay10cmFuc2l0aW9uLXNjYWxlLWRvd24geyB0cmFuc2Zvcm06IHNjYWxlKCR0cmFuc2l0aW9uLXNjYWxlLCR0cmFuc2l0aW9uLXNjYWxlKTsgfVxuXG4vKiBTaG93ICovXG4udWstdHJhbnNpdGlvbi10b2dnbGU6aG92ZXIgLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAsXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAsXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIC51ay10cmFuc2l0aW9uLXNjYWxlLXVwIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoJHRyYW5zaXRpb24tc2NhbGUsJHRyYW5zaXRpb24tc2NhbGUpO1xufVxuXG4udWstdHJhbnNpdGlvbi10b2dnbGU6aG92ZXIgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93bixcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyAudWstdHJhbnNpdGlvbi1zY2FsZS1kb3duLFxuLnVrLXRyYW5zaXRpb24tYWN0aXZlLnVrLWFjdGl2ZSAudWstdHJhbnNpdGlvbi1zY2FsZS1kb3duIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwxKTtcbn1cblxuLypcbiAqIFNsaWRlXG4gKi9cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtdG9wIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtYm90dG9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG4udWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtdG9wLXNtYWxsIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kdHJhbnNpdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGUpOyB9XG4udWstdHJhbnNpdGlvbi1zbGlkZS1ib3R0b20tc21hbGwgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtbGVmdC1zbWFsbCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtcmlnaHQtc21hbGwgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3AtbWVkaXVtIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kdHJhbnNpdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtYm90dG9tLW1lZGl1bSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkdHJhbnNpdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtbGVmdC1tZWRpdW0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSR0cmFuc2l0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGUpOyB9XG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC1tZWRpdW0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHRyYW5zaXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZSk7IH1cblxuLyogU2hvdyAqL1xuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10sXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApO1xufVxuXG5cbi8qIE9wYWNpdHkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdHJhbnNpdGlvbi1vcGFxdWUgeyBvcGFjaXR5OiAxOyB9XG5cblxuLyogRHVyYXRpb24gbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRyYW5zaXRpb24tc2xvdyB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLXNsb3ctZHVyYXRpb247IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay10cmFuc2l0aW9uLW1pc2MpKSB7QGluY2x1ZGUgaG9vay10cmFuc2l0aW9uLW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXRyYW5zaXRpb24tbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgVmlzaWJpbGl0eVxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgdG8gc2hvdyBvciBoaWRlIGNvbnRlbnQgb24gYnJlYWtwb2ludHMsIGhvdmVyIG9yIHRvdWNoXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstaGlkZGVuLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay12aXNpYmxlLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1pbnZpc2libGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay12aXNpYmxlLXRvZ2dsZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhpZGRlbi1ob3ZlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWludmlzaWJsZS1ob3ZlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhpZGRlbi10b3VjaGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhpZGRlbi1ub3RvdWNoYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBWaXNpYmlsaXR5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEhpZGRlblxuICogYGhpZGRlbmAgYXR0cmlidXRlIGFsc28gc2V0IGhlcmUgdG8gbWFrZSBpdCBzdHJvbmdlclxuICovXG5cbltoaWRkZW5dLFxuLnVrLWhpZGRlbiB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstaGlkZGVuXFxAcyB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWhpZGRlblxcQG0geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWhpZGRlblxcQGwgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xuXG4gICAgLnVrLWhpZGRlblxcQHhsIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLypcbiAqIFZpc2libGVcbiAqL1xuXG4vKiBQaG9uZSBwb3J0cmFpdCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXhzbWFsbC1tYXgpIHtcblxuICAgIC51ay12aXNpYmxlXFxAcyB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLW1heCkge1xuXG4gICAgLnVrLXZpc2libGVcXEBtIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LW1lZGl1bS1tYXgpIHtcblxuICAgIC51ay12aXNpYmxlXFxAbCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZS1tYXgpIHtcblxuICAgIC51ay12aXNpYmxlXFxAeGwgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG5cbi8qIFZpc2liaWxpdHlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstaW52aXNpYmxlIHsgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEhpZGRlblxuICogMS4gVGhlIHRvZ2dsZSBpcyB0cmlnZ2VyZWQgb24gdG91Y2ggZGV2aWNlcyB1c2luZyBgOmZvY3VzYCBhbmQgdGFiaW5kZXhcbiAqIDIuIFRoZSB0YXJnZXQgc3RheXMgdmlzaWJsZSBpZiBhbnkgZWxlbWVudCB3aXRoaW4gcmVjZWl2ZXMgZm9jdXMgdGhyb3VnaCBrZXlib2FyZFxuICogICAgRG9lc24ndCB3b3JrIGluIEVkZ2UsIHlldC5cbiAqIDMuIENhbid0IHVzZSBgZGlzcGxheTogbm9uZWAgbm9yIGB2aXNpYmlsaXR5OiBoaWRkZW5gIGJlY2F1c2UgYm90aCBhcmUgbm90IGZvY3VzYWJsZS5cbiAqXG4gKi9cblxuLyogMSArIDIgKi9cbi51ay12aXNpYmxlLXRvZ2dsZTpub3QoOmhvdmVyKTpub3QoOmZvY3VzKSAudWstaGlkZGVuLWhvdmVyOm5vdCg6Zm9jdXMtd2l0aGluKSB7XG4gICAgLyogMyAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLypcbiAqIEludmlzaWJsZVxuICovXG5cbi8qIDEgKyAyICovXG4udWstdmlzaWJsZS10b2dnbGU6bm90KDpob3Zlcik6bm90KDpmb2N1cykgLnVrLWludmlzaWJsZS1ob3Zlcjpub3QoOmZvY3VzLXdpdGhpbikge1xuICAgIC8qIDMgKi9cbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG5cbi51ay12aXNpYmxlLXRvZ2dsZSB7XG4gICAgLyogMSAqL1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qXG4gKiBSZW1vdmUgb3V0bGluZSBmb3IgYHRhYmluZGV4YFxuICovXG5cbi51ay12aXNpYmxlLXRvZ2dsZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuXG4vKiBUb3VjaFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBIaWRlIGlmIHByaW1hcnkgcG9pbnRpbmcgZGV2aWNlIGhhcyBsaW1pdGVkIGFjY3VyYWN5LCBlLmcuIGEgdG91Y2ggc2NyZWVuLlxuICogV29ya3Mgb24gbW9iaWxlIGJyb3dzZXJzOiBTYWZhcmksIENocm9tZSBhbmQgQW5kcm9pZCBicm93c2VyXG4gKi9cblxuQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgICAudWstaGlkZGVuLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbi8qXG4gKiBIaWRlIGlmIHByaW1hcnkgcG9pbnRpbmcgZGV2aWNlIGlzIGFjY3VyYXRlLCBlLmcuIG1vdXNlLlxuICogMS4gRmFsbGJhY2sgZm9yIElFMTEgYW5kIEZpcmVmb3gsIGJlY2F1c2UgYHBvaW50ZXJgIGlzIG5vdCBzdXBwb3J0ZWRcbiAqIDIuIFJlc2V0IGlmIHN1cHBvcnRlZFxuICovXG5cbi8qIDEgKi9cbi51ay1oaWRkZW4tbm90b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgIC51ay1oaWRkZW4tbm90b3VjaCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZihtaXhpbi1leGlzdHMoaG9vay12aXNpYmlsaXR5LW1pc2MpKSB7QGluY2x1ZGUgaG9vay12aXNpYmlsaXR5LW1pc2MoKTt9XG5cbi8vIEBtaXhpbiBob29rLXZpc2liaWxpdHktbWlzYygpe31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgSW52ZXJzZVxuLy8gRGVzY3JpcHRpb246ICAgICBJbnZlcnNlIGNvbXBvbmVudCBzdHlsZSBmb3IgbGlnaHQgb3IgZGFyayBiYWNrZ3JvdW5kc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWxpZ2h0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstZGFya2Bcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kaW52ZXJzZS1nbG9iYWwtY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgbGlnaHQgIWRlZmF1bHQ7XG5cbiRpbnZlcnNlLWdsb2JhbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtaW52ZXJzZS1jb2xvciwgMC43KSAhZGVmYXVsdDtcbiRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XG4kaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgcmdiYSgkZ2xvYmFsLWludmVyc2UtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG4kaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjogICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcblxuJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcbiRpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtaW52ZXJzZS1jb2xvciwgMC4xKSAhZGVmYXVsdDtcblxuJGludmVyc2UtZ2xvYmFsLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1pbnZlcnNlLWNvbG9yLCAwLjIpICFkZWZhdWx0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBJbnZlcnNlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG5cbi8qXG4gKiBJbXBsZW1lbnRlZCBjbGFzcyBkZXBlbmRzIG9uIHRoZSBnZW5lcmFsIHRoZW1lIGNvbG9yXG4gKiBgdWstbGlnaHRgIGlzIGZvciBsaWdodCBjb2xvcnMgb24gZGFyayBiYWNrZ3JvdW5kc1xuICogYHVrLWRhcmtgIGlzIG9yIGRhcmsgY29sb3JzIG9uIGxpZ2h0IGJhY2tncm91bmRzXG4gKi9cblxuQGlmICgkaW52ZXJzZS1nbG9iYWwtY29sb3ItbW9kZSA9PSBsaWdodCkgeyAudWstbGlnaHQgeyBAaWYgKG1peGluLWV4aXN0cyhob29rLWludmVyc2UpKSB7QGluY2x1ZGUgaG9vay1pbnZlcnNlKCk7fX19XG5cbkBpZiAoJGludmVyc2UtZ2xvYmFsLWNvbG9yLW1vZGUgPT0gZGFyaykgeyAudWstZGFyayB7IEBpZiAobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UoKTt9fX1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEBtaXhpbiBob29rLWludmVyc2UoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBQcmludFxuLy8gRGVzY3JpcHRpb246ICAgICBPcHRpbWl6ZSBwYWdlIGZvciBwcmludGluZ1xuLy9cbi8vIEFkYXB0ZWQgZnJvbSBodHRwOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlXG4vL1xuLy8gTW9kaWZpY2F0aW9uczogICBSZW1vdmVkIGxpbmsgYGhyZWZgIGFuZCBgdGl0bGVgIHJlbGF0ZWQgcnVsZXNcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUHJpbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgcHJpbnQge1xuXG4gICAgKixcbiAgICAqOjpiZWZvcmUsXG4gICAgKjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICBAaWYobWl4aW4tZXhpc3RzKGhvb2stcHJpbnQpKSB7QGluY2x1ZGUgaG9vay1wcmludCgpO31cblxufVxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEBtaXhpbiBob29rLXByaW50KCl7fVxuIiwiQGltcG9ydCBcIi4uLy4uL2NvbW1vbi92YXJcIjtcblxuLy8gSGVhZGRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuaDEsIC51ay1oMSwgaDIsIC51ay1oMiwgaDMsIC51ay1oMywgaDQsIC51ay1oNCwgaDUsIC51ay1oNSwgaDYsIC51ay1oNiwgLnVrLWhlYWRpbmctc21hbGwsIC51ay1oZWFkaW5nLW1lZGl1bSwgLnVrLWhlYWRpbmctbGFyZ2UsIC51ay1oZWFkaW5nLXhsYXJnZSwgLnVrLWhlYWRpbmctMnhsYXJnZSB7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRjb2xvcjogaW5oZXJpdDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmgxLCAudWstaDEge1xuXHRtYXJnaW46IC0xNXB4IC0xNXB4IDIwcHg7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAkY29sb3ItYm9yZGVyLWRlZmF1bHQ7XG5cdGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcblx0bGluZS1oZWlnaHQ6IDI2cHg7XG59XG5cbmgyLCAudWstaDIge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRmb250LXNpemU6IDEuNTcxNDI4NTdyZW07XG59XG5cbmgzLCAudWstaDMge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHRmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG5cbmg0LCAudWstaDQge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG5cbmg1LCAudWstaDUge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cblxuaDYsIC51ay1oNiB7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG5cdG1hcmdpbi1ib3R0b206IDJweDtcblx0Zm9udC1zaXplOiAxcmVtO1xufVxuXG5ocixcbi51ay1ociB7XG5cdGJvcmRlci1jb2xvcjogJGNvbG9yLWJvcmRlci1kZWZhdWx0O1xufVxuXG4vLyBtYXJnaW5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLW1hcmdpbiB7XG5cdCYteHNtYWxsIHtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cblx0XHQqICsgJiB7XG5cdFx0XHRtYXJnaW4tdG9wOiA1cHggIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQmLXRvcCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA1cHggIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQmLWJvdHRvbSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1cHggIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQmLWxlZnQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdCYtcmlnaHQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHggIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQmLXYge1xuXHRcdG1hcmdpbjoge1xuXHRcdFx0dG9wOiAyMHB4O1xuXHRcdFx0Ym90dG9tOiAyMHB4O1xuXHRcdH1cblxuXHRcdCYtc21hbGwge1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdHRvcDogMTBweDtcblx0XHRcdFx0Ym90dG9tOiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYteHNtYWxsIHtcblx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHR0b3A6IDVweDtcblx0XHRcdFx0Ym90dG9tOiA1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji1tZWRpdW0ge1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdHRvcDogNDBweDtcblx0XHRcdFx0Ym90dG9tOiA0MHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtbGFyZ2Uge1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdHRvcDogNDBweDtcblx0XHRcdFx0Ym90dG9tOiA0MHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cdFx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHRcdHRvcDogNzBweDtcblx0XHRcdFx0XHRib3R0b206IDcwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLXhsYXJnZSB7XG5cdFx0XHRtYXJnaW46IHtcblx0XHRcdFx0dG9wOiA3MHB4O1xuXHRcdFx0XHRib3R0b206IDcwcHg7XG5cdFx0XHR9XG5cblx0XHRcdEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblx0XHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdFx0dG9wOiAxNDBweDtcblx0XHRcdFx0XHRib3R0b206IDE0MHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji1oIHtcblx0XHRtYXJnaW46IHtcblx0XHRcdGxlZnQ6IDIwcHg7XG5cdFx0XHRyaWdodDogMjBweDtcblx0XHR9XG5cblx0XHQmLXNtYWxsIHtcblx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHRsZWZ0OiAxMHB4O1xuXHRcdFx0XHRyaWdodDogMTBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLXhzbWFsbCB7XG5cdFx0XHRtYXJnaW46IHtcblx0XHRcdFx0bGVmdDogNXB4O1xuXHRcdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtbWVkaXVtIHtcblx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHRsZWZ0OiA0MHB4O1xuXHRcdFx0XHRyaWdodDogNDBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLWxhcmdlIHtcblx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHRsZWZ0OiA0MHB4O1xuXHRcdFx0XHRyaWdodDogNDBweDtcblx0XHRcdH1cblxuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuXHRcdFx0XHRtYXJnaW46IHtcblx0XHRcdFx0XHRsZWZ0OiA3MHB4O1xuXHRcdFx0XHRcdHJpZ2h0OiA3MHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji14bGFyZ2Uge1xuXHRcdFx0bWFyZ2luOiB7XG5cdFx0XHRcdGxlZnQ6IDcwcHg7XG5cdFx0XHRcdHJpZ2h0OiA3MHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5cdFx0XHRcdG1hcmdpbjoge1xuXHRcdFx0XHRcdGxlZnQ6IDE0MHB4O1xuXHRcdFx0XHRcdHJpZ2h0OiAxNDBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuLy8gcGFkZGluZ1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4udWstcGFkZGluZyB7XG5cdCYtdG9wIHtcblx0XHRwYWRkaW5nLXRvcDogMzBweCAhaW1wb3J0YW50O1xuXHR9XG5cblx0Ji1ib3R0b20ge1xuXHRcdHBhZGRpbmctYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmLWxlZnQge1xuXHRcdHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50O1xuXHR9XG5cblx0Ji1yaWdodCB7XG5cdFx0cGFkZGluZy1yaWdodDogMzBweCAhaW1wb3J0YW50O1xuXHR9XG5cblx0QG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuXHRcdCYtdG9wIHtcblx0XHRcdHBhZGRpbmctdG9wOiA0MHB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcblx0XHQmLWJvdHRvbSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XG5cdFx0Ji1sZWZ0IHtcblx0XHRcdHBhZGRpbmctbGVmdDogNDBweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XG5cdFx0Ji1yaWdodCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji14eHNtYWxsIHtcblx0XHRwYWRkaW5nOiA1cHggIWltcG9ydGFudDtcblx0XHRcblx0XHQmLXRvcCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcblx0XHQmLWJvdHRvbSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcblx0XHQmLWxlZnQge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiA1cHggIWltcG9ydGFudDtcblx0XHR9XG5cdFxuXHRcdCYtcmlnaHQge1xuXHRcdFx0cGFkZGluZy1yaWdodDogNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji14c21hbGwge1xuXHRcdHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcblxuXHRcdCYtdG9wIHtcblx0XHRcdHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcblx0XHQmLWJvdHRvbSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XG5cdFx0Ji1sZWZ0IHtcblx0XHRcdHBhZGRpbmctbGVmdDogMTBweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XG5cdFx0Ji1yaWdodCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji1zbWFsbCB7XG5cdFx0Ji10b3Age1xuXHRcdFx0cGFkZGluZy10b3A6IDE1cHggIWltcG9ydGFudDtcblx0XHR9XG5cdFxuXHRcdCYtYm90dG9tIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcblx0XHQmLWxlZnQge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcblx0XHQmLXJpZ2h0IHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDE1cHggIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQmLWxhcmdlIHtcblx0XHQmLXRvcCB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMzBweCAhaW1wb3J0YW50O1xuXHRcdH1cblx0XG5cdFx0Ji1ib3R0b20ge1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDMwcHggIWltcG9ydGFudDtcblx0XHR9XG5cdFxuXHRcdCYtbGVmdCB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDMwcHggIWltcG9ydGFudDtcblx0XHR9XG5cdFxuXHRcdCYtcmlnaHQge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMzBweCAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcblx0XHRcdCYtdG9wIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDcwcHggIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHRcblx0XHRcdCYtYm90dG9tIHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDcwcHggIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHRcblx0XHRcdCYtbGVmdCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogNzBweCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdFxuXHRcdFx0Ji1yaWdodCB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDcwcHggIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cbi8vIFRhYmxlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi51ay10YWJsZSB7XG5cdC8vJi1ob3ZlciA+IHRyOmhvdmVyLFxuXHQvLyYtaG92ZXIgdGJvZHkgdHI6aG92ZXJcblxuXHQmLWhvdmVyIHtcblx0XHQmID4sXG5cdFx0dGJvZHkge1xuXHRcdFx0dHIge1xuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaG92ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0dGhlYWQge1xuXHRcdFx0XHR0ciB7XG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxufVxuXG5cblxuLy8gRm9ybVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4udWstZmllbGRzZXQge1xuXHQmLmJvcmRlciB7XG5cdFx0bGVnZW5kLFxuXHRcdC51ay1sZWdlbmQge1xuXHRcdFx0cGFkZGluZzogMCAuNWVtO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5cbi51ay1sZWdlbmQge1xuXHRmb250LXNpemU6IDEuMnJlbTtcbn1cblxuLnVrLWZvcm0ge1xuXHQmLXNtYWxsIHtcblx0XHQmOm5vdCh0ZXh0YXJlYSk6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcblx0XHRcdGhlaWdodDogMjRweDtcblx0XHR9XG5cblx0XHQmLnVrLXNlbGVjdCB7XG5cdFx0XHQmOm5vdCh0ZXh0YXJlYSk6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cbi8vIGlucHV0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnVrLWZvcm0tbGFiZWwsXG5sYWJlbCB7XG5cdGlucHV0IHtcblx0XHRmb250LXNpemU6IDFyZW07XG5cdH1cbn1cblxuLnVrLWlucHV0LFxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSksXG4udWstc2VhcmNoLWRlZmF1bHQgLnVrLXNlYXJjaC1pbnB1dCB7XG5cdGhlaWdodDogMzBweDtcbn1cblxuLnVrLWlucHV0LFxuLnVrLXNlbGVjdCxcbi51ay10ZXh0YXJlYSB7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0Ym9yZGVyLWNvbG9yOiAjNTA2ZDkwO1xuXG5cdCY6ZGlzYWJsZWQge1xuXHRcdGJvcmRlci1jb2xvcjogI2FhZDRlZjtcblx0fVxufVxuXG4udWstaW5wdXQge1xuXHQmW3R5cGU9XCJudW1iZXJcIl0ge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDFweDtcblxuXHRcdCY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDVweDtcblx0XHR9XG5cdH1cbn1cblxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuXHQmLnNtYWxsIHtcblx0XHRoZWlnaHQ6IDIycHg7XG5cdFx0Zm9udC1zaXplOiAwLjg3NXJlbTtcblx0fVxufVxuXG4udWstc2VhcmNoLWlucHV0IHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDZweDtcblx0cGFkZGluZy1yaWdodDogNnB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbGluaztcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMzBweDtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Y29sb3I6ICM2NjY7XG5cdGZvbnQ6IGluaGVyaXQ7XG5cblx0Jjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG5cdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBhdXRvO1xuXHR9XG59XG5cblxuXG5cbi8vIFJhZGlvIGFuZCBjaGVja2JveFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuXHRtYXJnaW46IHtcblx0XHR0b3A6IC0zcHg7XG5cdFx0bGVmdDogNXB4O1xuXHRcdHJpZ2h0OiA1cHg7XG5cdH1cblx0Ym9yZGVyLWNvbG9yOiAkY29sb3ItbGluaztcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0d2lkdGg6IDE4cHg7XG5cdGhlaWdodDogMThweDtcblxuXHQmOmNoZWNrZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3ItbGluaztcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cblxuXHQmOmRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyO1xuXHRcdGJvcmRlci1jb2xvcjogIzdjYWVjZTtcblxuXHRcdH4gc3BhbiB7XG5cdFx0XHRvcGFjaXR5OiAuNjtcblx0XHR9XG5cdH1cblxufVxuXG4udWstY2hlY2tib3gge1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0JjpjaGVja2VkIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7IGNoYXJzZXQ9VVRGLTgsICUzY3N2ZyUyMHdpZHRoJTNkJTIyMTglMjIlMjBoZWlnaHQlM2QlMjIxOCUyMiUyMHZpZXdCb3glM2QlMjIwJTIwMCUyMDE4JTIwMTglMjIlMjB4bWxucyUzZCUyMmh0dHAlM2ElMmYlMmZ3d3cudzMub3JnJTJmMjAwMCUyZnN2ZyUyMiUzZSUzY3BvbHlnb24lMjBmaWxsJTNkJTIyJTIzZWI2ZDQ1JTIyJTIwcG9pbnRzJTNkJTIyMTQuNCUyYzIuOSUyMDYuNyUyYzEwLjMlMjAzLjYlMmM3LjIlMjAxLjMlMmM5LjglMjA2LjclMmMxNS4xJTIwMTYuNyUyYzUuMSUyMiUyZiUzZSUzYyUyZnN2ZyUzZVwiKTtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvci1saW5rO1xuXG5cdFx0JjpkaXNhYmxlZCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7IGNoYXJzZXQ9VVRGLTgsICUzY3N2ZyUyMHdpZHRoJTNkJTIyMTglMjIlMjBoZWlnaHQlM2QlMjIxOCUyMiUyMHZpZXdCb3glM2QlMjIwJTIwMCUyMDE4JTIwMTglMjIlMjB4bWxucyUzZCUyMmh0dHAlM2ElMmYlMmZ3d3cudzMub3JnJTJmMjAwMCUyZnN2ZyUyMiUzZSUzY3BvbHlnb24lMjBmaWxsJTNkJTIyJTIzZjA5MTc1JTIyJTIwcG9pbnRzJTNkJTIyMTQuNCUyYzIuOSUyMDYuNyUyYzEwLjMlMjAzLjYlMmM3LjIlMjAxLjMlMmM5LjglMjA2LjclMmMxNS4xJTIwMTYuNyUyYzUuMSUyMiUyZiUzZSUzYyUyZnN2ZyUzZVwiKTtcblx0XHR9XG5cdH1cblxuXHQmOmluZGV0ZXJtaW5hdGUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sOyBjaGFyc2V0PVVURi04LCAlM2NzdmclMjB3aWR0aCUzZCUyMjE2JTIyJTIwaGVpZ2h0JTNkJTIyMTYlMjIlMjB2aWV3Qm94JTNkJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM2QlMjJodHRwJTNhJTJmJTJmd3d3LnczLm9yZyUyZjIwMDAlMmZzdmclMjIlM2UlM2NyZWN0JTIwZmlsbCUzZCUyMiUyM2ViNmQ0NSUyMiUyMHglM2QlMjIzJTIyJTIweSUzZCUyMjclMjIlMjB3aWR0aCUzZCUyMjEwJTIyJTIwaGVpZ2h0JTNkJTIyMyUyMiUyMCUyZiUzZSUzYyUyZnN2ZyUzZVwiKTtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvci1saW5rO1xuXHR9XG59XG5cbi51ay1yYWRpbyB7XG5cdCY6Y2hlY2tlZCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sOyBjaGFyc2V0PVVURi04LCAlM2NzdmclMjB3aWR0aCUzZCUyMjE4JTIyJTIwaGVpZ2h0JTNkJTIyMTglMjIlMjB2aWV3Qm94JTNkJTIyMCUyMDAlMjAxOCUyMDE4JTIyJTIweG1sbnMlM2QlMjJodHRwJTNhJTJmJTJmd3d3LnczLm9yZyUyZjIwMDAlMmZzdmclMjIlM2UlM2NjaXJjbGUlMjBmaWxsJTNkJTIyJTIzZWI2ZDQ1JTIyJTIwY3glM2QlMjI5JTIyJTIwY3klM2QlMjI5JTIyJTIwciUzZCUyMjYlMjIlMjAlMmYlM2UlM2MlMmZzdmclM2VcIik7XG5cdH1cblxuXHQmOmRpc2FibGVkOmNoZWNrZWQge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyUyMHdpZHRoJTNkJTIyMTglMjIlMjBoZWlnaHQlM2QlMjIxOCUyMiUyMHZpZXdCb3glM2QlMjIwJTIwMCUyMDE4JTIwMTglMjIlMjB4bWxucyUzZCUyMmh0dHAlM2ElMmYlMmZ3d3cudzMub3JnJTJmMjAwMCUyZnN2ZyUyMiUzZSUzY2NpcmNsZSUyMGZpbGwlM2QlMjIlMjM5OTklMjIlMjBjeCUzZCUyMjklMjIlMjBjeSUzZCUyMjklMjIlMjByJTNkJTIyNiUyMiUyMCUyZiUzZSUzYyUyZnN2ZyUzZVwiKTtcblx0fVxuXHRcbn1cblxuLy8gLnVrLWNoZWNrYm94OmNoZWNrZWQsXG4vLyAudWstY2hlY2tib3g6aW5kZXRlcm1pbmF0ZSB7XG4vLyBcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuLy8gXHRib3JkZXItY29sb3I6ICRjb2xvci1saW5rO1xuLy9cbi8vIFx0Jjpmb2N1cyB7XG4vLyBcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4vLyBcdH1cbi8vIH1cblxuXG4vLyBTZWxlY3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4udWstc2VsZWN0IHtcblx0Jjpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCAlM2NzdmclMjB3aWR0aCUzZCUyMjI0JTIyJTIwaGVpZ2h0JTNkJTIyMTYlMjIlMjB2aWV3Qm94JTNkJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM2QlMjJodHRwJTNhJTJmJTJmd3d3LnczLm9yZyUyZjIwMDAlMmZzdmclMjIlM2UlM2Nwb2x5Z29uJTIwZmlsbCUzZCUyMiUyMzM5NmU5MCUyMiUyMHBvaW50cyUzZCUyMjEyJTJjMTEuMyUyMDYuMyUyYzUuMyUyMDE3LjclMmM1LjMlMjIlMjAlMmYlM2UlM2MlMmZzdmclM2VcIik7XG5cdH1cbn1cblxuXG5cbi8vIHRhYlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4udWstdGFiIHtcblx0Jjo6YmVmb3JlIHtcblx0XHRib3JkZXItY29sb3I6ICNlNWU1ZTU7XG5cdH1cblxuXHQ+ICoge1xuXHRcdD4gYSB7XG5cdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG5cdFx0fVxuXHR9XG5cblx0PiAudWstYWN0aXZlIHtcblx0XHQ+IGEge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3ItYWN0aXZlO1xuXHRcdH1cblx0fVxuXG5cdCYuay10YWItMSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBub25lO1xuXHRcdH1cblxuXHRcdD4gKiB7XG5cdFx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRcdH1cblxuXHRcdFx0Ji51ay1hY3RpdmUge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0KyAqIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0KyAudWstc3dpdGNoZXIge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHR9XG5cdH1cblxuXHQmLmstdGFiLTIge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IC0xcHg7XG5cdFx0cGFkZGluZzogMCAxcmVtO1xuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0fVxuXG5cdFx0PiAqIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0cGFkZGluZzogM3B4IDE1cHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHR9XG5cblx0XHRcdCYudWstYWN0aXZlIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCsgKiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCsgKiB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcblx0XHR9XG5cdH1cblxufVxuXG5cblxuLy8gYnV0dG9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi51ay1idXR0b24ge1xuXHRwYWRkaW5nOiA1cHggMTVweDtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRib3JkZXItY29sb3I6ICRjb2xvci1saW5rO1xuXHRtaW4td2lkdGg6IDEwOXB4O1xuXHRtaW4taGVpZ2h0OiAzMHB4O1xuXHRsaW5lLWhlaWdodDogMTtcblx0Y29sb3I6ICRjb2xvci1saW5rO1xuXHRmb250LXNpemU6IDFyZW07XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdC8vZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdC8vYWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Ly9qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0Ly9mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuXHQrIC51ay1idXR0b24ge1xuXHRcdG1hcmdpbi1sZWZ0OiAuMmVtO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y0ZjdmOTtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvci1saW5rO1xuXHRcdGNvbG9yOiAkY29sb3ItbGluaztcblx0fVxuXG5cdCYuZGlzYWJsZWQsXG5cdCZbZGlzYWJsZWRdIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjYThiMmI5O1xuXHRcdGJvcmRlci1jb2xvcjogI2E4YjJiOTtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2E4YjJiOTtcblx0XHRcdGJvcmRlci1jb2xvcjogI2E4YjJiOTtcblx0XHR9XG5cdH1cblxuXHRzbWFsbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0bGluZS1oZWlnaHQ6IDFyZW07XG5cdH1cblxuXHQmLnIyIHtcblx0XHRtaW4taGVpZ2h0OiAzOXB4O1xuXHR9XG5cblx0XG5cdCYtc21hbGwge1xuXHRcdHBhZGRpbmc6IDNweCAxMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxNnB4O1xuXHRcdG1pbi1oZWlnaHQ6IDIycHg7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdFx0KyAudWstYnV0dG9uLXNtYWxsIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAuMmVtO1xuXHRcdH1cblx0fVxuXG5cdCYteHNtYWxsIHtcblx0XHRwYWRkaW5nOiAzcHggNnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxMXB4O1xuXHRcdG1pbi1oZWlnaHQ6IDE4cHg7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdFx0KyAudWstYnV0dG9uLXhzbWFsbCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogLjJlbTtcblx0XHR9XG5cdH1cblxuXHQmLWxhcmdlIHtcblx0XHRwYWRkaW5nOiA3IDQwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDM0cHg7XG5cdH1cblxuXHQmLWdyb3VwIHtcblx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXG5cdFx0W2NsYXNzKj1cInVrLWJ1dHRvbi1cIl0ge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGxhYmVsLmJ1dHRvbi1kZWZhdWx0IHtcblx0XHRcdG1hcmdpbjogMCAwIDAgLTFweDtcblxuXHRcdFx0W3R5cGU9XCJyYWRpb1wiXSxcblx0XHRcdFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdFx0XHQrIHNwYW4ge1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdD4gc3BhbiB7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHQ+IHNwYW4ge1xuXHRcdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQrIGxhYmVsLmJ1dHRvbi1kZWZhdWx0IHtcblx0XHRcdFx0W3R5cGU9XCJyYWRpb1wiXSxcblx0XHRcdFx0W3R5cGU9XCJjaGVja2JveFwiXSB7XG5cdFx0XHRcdFx0JjpjaGVja2VkIHtcblx0XHRcdFx0XHRcdCsgc3BhbiB7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdD4gKiArICoge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cdFx0fVxuXG5cdFx0LnVrLWJ1dHRvbjpub3QoLnVrLWJ1dHRvbi1kZWZhdWx0KSB7XG5cdFx0XHQrIC51ay1idXR0b246bm90KC51ay1idXR0b24tZGVmYXVsdCkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuc21hbGwge1xuXHRcdFx0LnVrLWJ1dHRvbixcblx0XHRcdC5idXR0b24tZGVmYXVsdCA+IHNwYW4ge1xuXHRcdFx0XHRwYWRkaW5nOiAzcHggMTBweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IDIycHg7XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdFx0Zm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYueHNtYWxsIHtcblx0XHRcdC51ay1idXR0b24sXG5cdFx0XHQuYnV0dG9uLWRlZmF1bHQgPiBzcGFuIHtcblx0XHRcdFx0cGFkZGluZzogM3B4IDZweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDExcHg7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IDE4cHg7XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdFx0Zm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYtYmFzaWMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1saW5rO1xuXHRcdGNvbG9yOiAjZmZmO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1saW5rLCA1JSk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXHR9XG5cblx0Ji1wcmltYXJ5IHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiAjZmZmO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCMxZTg3ZjAsIDUlKTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cblxuXHQmLXNlY29uZGFyeSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjMjIyLCA1JSk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXHR9XG5cblx0Ji1kYW5nZXIge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Y29sb3I6ICNmZmY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oI2YwNTA2ZSwgNSUpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblx0fVxuXG5cdCYtc3VjY2VzcyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzMyZDI5Njtcblx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjMzJkMjk2LCA1JSk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXHR9XG5cblx0Ji13YXJuaW5nIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhMDVhO1xuXHRcdGNvbG9yOiAjZmZmO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCNmYWEwNWEsIDUlKTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cblxuXHQmLWdyYXkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNhOGIyYjk7XG5cdFx0Y29sb3I6ICNmZmY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oI2E4YjJiOSwgNSUpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblx0fVxuXG5cdCYtZGFya2dyYXkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICM3MDcwNzA7XG5cdFx0Y29sb3I6ICNmZmY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIzcwNzA3MCwgNSUpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblx0fVxuXG5cdCYtb3JhbmdlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYWN0aXZlO1xuXHRcdGNvbG9yOiAjZmZmO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1hY3RpdmUsIDUlKTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cblxuXG5cbn1cbmEudWstYnV0dG9uIHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cblxuLy8gbW9kYWxcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLW1vZGFsIHtcblx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI1KTtcblx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuXHQmLXBhZ2Uge1xuXHRcdGJvZHkge1xuXHRcdFx0b3ZlcmZsb3cteTogaW5pdGlhbCAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdFtjbGFzcyo9J3VrLW1vZGFsLWNsb3NlLSddIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0dG9wOiAxOHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnXFxlMDBkJztcblx0XHRcdGZvbnQtZmFtaWx5OiBpY29uLWlzaGFyZTtcblx0XHRcdGZvbnQtc2l6ZTogMS41cmVtO1xuXHRcdFx0Y29sb3I6ICRjb2xvci1saW5rO1xuXHRcdH1cblx0fVxuXG5cdC51ay1tb2RhbC1kaWFsb2cge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAxNXB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdH1cblx0XG5cdC51ay1tb2RhbC1oZWFkZXIge1xuXHRcdG1hcmdpbjogMTVweCAxNXB4IDA7XG5cdFx0cGFkZGluZzogOHB4IDAgMTlweDtcblx0XHRcdGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjYzhkMGQ4O1xuXG5cdFx0aDIge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcblx0XHR9XG5cdH1cblxuXHQudWstbW9kYWwtYm9keSB7XG5cdFx0cGFkZGluZzogMjBweDtcblx0fVxuXG5cdC51ay1tb2RhbC1mb290ZXIge1xuXHRcdHBhZGRpbmc6IDIwcHggMTVweDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogMCAtMTJweCAxMnB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdCZbY2xhc3NePVwiaGVpZ2h0LVwiXSxcblx0JltjbGFzcyo9XCIgaGVpZ2h0LVwiXSB7XG5cdFx0LnVrLW1vZGFsLWRpYWxvZyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuXHRcdFx0PiAudWstbW9kYWwtYm9keSB7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0XHRcdFx0bWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRmbGV4OiAxIDAgYXV0bztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLnctYXV0byB7XG5cdFx0LnVrLW1vZGFsLWRpYWxvZyB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmLmZ1bGwtMTAwIHtcblx0XHQudWstbW9kYWwtZGlhbG9nIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHRcdC51ay1tb2RhbC1ib2R5IHtcblx0XHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvL3dpZHRoIDI1MCAtIDEyMDBweCAoc3RlcCA1MHB4KVxuXHQkdGVtcDogMjUwO1xuXHRAd2hpbGUgJHRlbXAgPD0gMTYwMCB7XG5cdFx0Ji53I3skdGVtcH0ge1xuXHRcdFx0LnVrLW1vZGFsLWRpYWxvZyB7XG5cdFx0XHRcdHdpZHRoOiAjeyR0ZW1wfXB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHQkdGVtcDogJHRlbXAgKyA1MDtcblx0fVxuXHRcblx0Ly93aWR0aCAyNSAtIDEwMCUgKHN0ZXAgNSUpXG5cdCR0ZW1wOiAyNTtcblx0QHdoaWxlICR0ZW1wIDw9IDEwMCB7XG5cdFx0Ji5wI3skdGVtcH0ge1xuXHRcdFx0LnVrLW1vZGFsLWRpYWxvZyB7XG5cdFx0XHRcdHdpZHRoOiAjeyR0ZW1wICogMSV9O1xuXHRcdFx0fVxuXHRcdH1cblx0XHQkdGVtcDogJHRlbXAgKyA1O1xuXHR9XG5cblx0Ly9oZWlnaHQgMTAwIC0gMTAwMHB4IChzdGVwIDI1cHgpXG5cdCR0ZW1wOiAxMDA7XG5cdEB3aGlsZSAkdGVtcCA8PSAxMDAwIHtcblx0XHQmLmhlaWdodC0jeyR0ZW1wfSB7XG5cdFx0XHQudWstbW9kYWwtZGlhbG9nIHtcblx0XHRcdFx0aGVpZ2h0OiAjeyR0ZW1wfXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYubWF4aGVpZ2h0LSN7JHRlbXB9IHtcblx0XHRcdC51ay1tb2RhbC1kaWFsb2cge1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiAjeyR0ZW1wfXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYubWluaGVpZ2h0LSN7JHRlbXB9IHtcblx0XHRcdC51ay1tb2RhbC1kaWFsb2cge1xuXHRcdFx0XHRtaW4taGVpZ2h0OiAjeyR0ZW1wfXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCR0ZW1wOiAkdGVtcCArIDI1O1xuXHR9XG59XG5cblxuXG4vLyBsYWJlbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4udWstbGFiZWwge1xuXHRtYXJnaW46IDAgMnB4O1xuXHRwYWRkaW5nOiAxcHggMTBweDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cblx0Ji5pbi1pbnB1dCB7XG5cdFx0cGFkZGluZy1sZWZ0OiA3cHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdC51ay1yYWRpbyxcblx0XHQudWstY2hlY2tib3gge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRcdFx0d2lkdGg6IDE2cHg7XG5cdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0fVxuXHR9XG5cblx0Ji1iYXNpYyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWxpbms7XG5cdH1cblxuXHQmLWdyYXkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNhOGIyYjk7XG5cdH1cblxuXHQmLWRhcmtncmF5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNWQ2NTZhO1xuXHR9XG5cblx0Ji1waW5rIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmVlO1xuXHRcdGNvbG9yOiAkY29sb3ItdGV4dC1iYXNlO1xuXHR9XG5cblx0Ji1vcmFuZ2Uge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1hY3RpdmU7XG5cdH1cblxuXHQmLXJlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YwMDtcblx0fVxuXG5cdCYtZGFya2JsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDc5Yjk7XG5cdH1cbn1cblxuXG5cbi8vIHRhYmxlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi51ay10YWJsZSB7XG5cdHRoIHtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0fVxuXG5cdHRoZWFkIHtcblx0XHR0aCB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRcdH1cblx0fVxuXG5cdCYteHNtYWxsIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0dGgsXG5cdFx0dGQge1xuXHRcdFx0cGFkZGluZzogNXB4IDdweDtcblx0XHR9XG5cblx0XHQudWstdGFibGUtbGluayA+IGEge1xuXHRcdFx0cGFkZGluZzogNXB4IDdweDtcblx0XHR9XG5cdH1cblxuXHQmLXh4c21hbGwge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHR0aCxcblx0XHR0ZCB7XG5cdFx0XHRwYWRkaW5nOiAxcHggM3B4O1xuXHRcdH1cblxuXHRcdC51ay10YWJsZS1saW5rID4gYSB7XG5cdFx0XHRwYWRkaW5nOiAxcHggM3B4O1xuXHRcdH1cblx0fVxuXG5cdCYtbWlkZGxlIHtcblx0XHR0Ym9keSB7XG5cdFx0XHR0aCB7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cbi8vIGxpc3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLWxpc3Qge1xuXHQmLnVrLWZsZXgge1xuXHRcdD4gOm50aC1jaGlsZChuKzIpIHtcblx0XHRcdG1hcmdpbi10b3A6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5cblxuXG4vLyBuYXZiYXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLW5hdmJhciB7XG5cblx0Ji1uYXYgPiBsaSA+IHNwYW4ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdG1pbi1oZWlnaHQ6IDgwcHg7XG5cdFx0cGFkZGluZzogMCAxNXB4O1xuXHRcdC8vZm9udC1zaXplOiAwLjg3NXJlbTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Y29sb3I6ICM5OTk7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHR0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuXHRcdHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yO1xuXHR9XG5cblx0Ji1uYXYgPiBsaSA+IGEsXG5cdCYtaXRlbSxcblx0Ji10b2dnbGUge1xuXHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHRcblx0XHQudWstZHJvcGRvd24ge1xuXHRcdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdH1cblx0fVxuXG5cdCYtc21hbGwge1xuXHRcdG1pbi1oZWlnaHQ6IDQwcHg7XG5cblx0XHQudWstbmF2YmFyLW5hdiA+IGxpID4gYSxcblx0XHQudWstbmF2YmFyLW5hdiA+IGxpID4gc3Bhbixcblx0XHQudWstbmF2YmFyLWl0ZW0sXG5cdFx0LnVrLW5hdmJhci10b2dnbGUge1xuXHRcdFx0bWluLWhlaWdodDogNDBweDtcblx0XHR9XG5cdH1cblxuXHQmLXZlcnRpY2FsIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdFx0LnVrLW5hdmJhci10b3Age1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdH1cblxuXHRcdC51ay1uYXZiYXItYm90dG9tIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0fVxuXG5cdFx0LnVrLW5hdmJhci1uYXYge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0fVxuXG5cblx0XHQudWstbmF2YmFyLW5hdiA+IGxpID4gYSxcblx0XHQudWstbmF2YmFyLW5hdiA+IGxpID4gc3Bhbixcblx0XHQudWstbmF2YmFyLWl0ZW0sXG5cdFx0LnVrLW5hdmJhci10b2dnbGUge1xuXHRcdFx0bWluLWhlaWdodDogNDBweDtcblx0XHR9XG5cdH1cblxuXHRcbn1cblxuXG4vL0NhcmRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLWNhcmQge1xuXHQmLXRpdGxlIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG5cblx0Ji1zbWFsbCB7XG5cdFx0LnVrLWNhcmQtaGVhZGVyIHtcblx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0fVxuXG5cdFx0LnVrLWNhcmQtYm9keSB7XG5cdFx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cdFx0fVxuXHR9XG59XG5cblxuXG4vL3NvcnRhYmxlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi51ay1zb3J0YWJsZSB7XG5cdCYtZW1wdHl7XG5cdFx0bWluLWhlaWdodDogMS41cmVtO1xuXHR9XG5cblx0Ji1wbGFjZWhvbGRlci1ib3JkZXIge1xuXHRcdC51ay1zb3J0YWJsZS1wbGFjZWhvbGRlciB7XG5cdFx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHJnYmEoMjU1LDAsMCwgLjUpO1xuXHRcdFx0b3BhY2l0eTogMTtcblxuXHRcdFx0PiAqIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cbi8vcHJvZ3Jlc3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLXByb2dyZXNzIHtcblx0Ji54c21hbGwge1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0XHRoZWlnaHQ6IDNweDtcblx0fVxuXG5cdCYuc21hbGwge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0aGVpZ2h0OiA2cHg7XG5cdH1cblxuXHQmLm1lZGl1bSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0XHRoZWlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuXG5cbi8vYWNjb3JkaW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi51ay1hY2NvcmRpb24ge1xuXHQmLXRpdGxlIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHdpZHRoOiAxZW07XG5cdFx0XHRoZWlnaHQ6IDFlbTtcblx0XHRcdG1hcmdpbjogMCA1cHggMCAwO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnJTIwd2lkdGglM2QlMjIxMyUyMiUyMGhlaWdodCUzZCUyMjEzJTIyJTIwdmlld0JveCUzZCUyMjAlMjAwJTIwMTMlMjAxMyUyMiUyMHhtbG5zJTNkJTIyaHR0cCUzYSUyZiUyZnd3dy53My5vcmclMmYyMDAwJTJmc3ZnJTIyJTNlJTNjcG9seWdvbiUyMHN0eWxlJTNkJTIyZmlsbCUzYSUyMzY2NjY2NiUzYiUyMiUyMHBvaW50cyUzZCUyMjEwLjElMmM2LjUlMjAzLjYlMmMxMyUyMDMuNiUyYzAlMjAlMjIlMmYlM2UlM2MlMmZzdmclM2UpO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG5cdFx0XHRcblxuXHRcdFx0LnVrLW9wZW4gPiAmIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyUyMHdpZHRoJTNkJTIyMTMlMjIlMjBoZWlnaHQlM2QlMjIxMyUyMiUyMHZpZXdCb3glM2QlMjIwJTIwMCUyMDEzJTIwMTMlMjIlMjB4bWxucyUzZCUyMmh0dHAlM2ElMmYlMmZ3d3cudzMub3JnJTJmMjAwMCUyZnN2ZyUyMiUzZSUzY3BvbHlnb24lMjBzdHlsZSUzZCUyMmZpbGwlM2ElMjM2NjY2NjYlM2IlMjIlMjBwb2ludHMlM2QlMjIxMC42JTJjMTElMjAxLjQlMmMxMC45JTIwMTAuNyUyYzEuOCUyMiUyZiUzZSUzYyUyZnN2ZyUzZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cbn1cblxuXG5cbi8vYWxlcnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLWFsZXJ0IHtcblx0Ji1zbWFsbCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRwYWRkaW5nOiA3cHggMjlweCA3cHggMTBweDtcblxuXHRcdCogKyAmIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0fVxuXHR9XG59XG5cblxuLnVrLXRleHQge1xuXHQmLWRpc2FibGVkIHtcblx0XHRjb2xvcjogI2M1YzVjNSAhaW1wb3J0YW50O1xuXHR9XG5cblx0Ji1iYXNpYyB7XG5cdFx0Y29sb3I6ICRjb2xvci10ZXh0LWJhc2U7XG5cdH1cblxuXHQmLW1lZGl1bSB7XG5cdFx0Zm9udC1zaXplOiAxLjJyZW07XG5cdH1cblxuXHQmLWRlZmF1bHQge1xuXHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0fVxufVxuXG5cbi51ay1iYWRnZSB7XG5cdCYuc21hbGwge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwIDRweDtcblx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0bWluLXdpZHRoOiAyMHB4O1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0fVxuXG5cdCYuZ3JheSB7XG5cdFx0YmFja2dyb3VuZDogI2VlZTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHRcdGNvbG9yOiAjNzc3ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmLmxpZ2h0Y3lhbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2UwZmZmZjtcblx0XHRjb2xvcjogIzgwODA4MCAhaW1wb3J0YW50O1xuXHR9XG5cblx0Ji5saWdodHBpbmsge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmI2YzE7XG5cdFx0Y29sb3I6ICM4MDgwODAgIWltcG9ydGFudDtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXF1YSk7XG5cdH1cbn1cblxuLy9ub3RpZmljYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLW5vdGlmaWNhdGlvbiB7XG5cdHdpZHRoOiBhdXRvO1xuXG5cdCYtY2VudGVyIHtcblx0XHRtYXJnaW4tbGVmdDogLTE3NXB4O1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDIwMHB4O1xuXHR9XG5cblx0Ji10b3AtbWlkZGxlLXJpZ2h0IHtcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdHJpZ2h0OiA0MHB4O1xuXHRcdHRvcDogMTAwcHg7XG5cdH1cblxuXHQmLW1lc3NhZ2Uge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDM1cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRib3gtc2hhZG93OiAwIDAgMTVweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdFx0Zm9udC1zaXplOiAwLjg3NXJlbTtcblx0XHR3aWR0aDogMzUwcHg7XG5cblx0XHQ+IGRpdiB7XG5cdFx0XHRwIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRcdCsgcCB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMWVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji1pbmZvIHtcblx0XHRcdHBhZGRpbmctbGVmdDogNDVweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICMzOWY7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmZmViOy8vI2ViZWJmZjtcblx0XHRcdHdpZHRoOiAzODBweDtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTWpBaUlIWnBaWGRDYjNnOUlqQWdNQ0F5TUNBeU1DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNDhZMmx5WTJ4bElHTjRQU0l4TUNJZ1kzazlJakUwSWlCeVBTSXhJajQ4TDJOcGNtTnNaVDQ4WTJseVkyeGxJR1pwYkd3OUltNXZibVVpSUhOMGNtOXJaVDBpSXpBd01DSWdjM1J5YjJ0bExYZHBaSFJvUFNJeExqRWlJR040UFNJeE1DSWdZM2s5SWpFd0lpQnlQU0k1SWo0OEwyTnBjbU5zWlQ0OGNHRjBhQ0JrUFNKTk1UQXVPVGNzTnk0M01pQkRNVEF1T0RVc09TNDFOQ0F4TUM0MU5pd3hNUzR5T1NBeE1DNDFOaXd4TVM0eU9TQkRNVEF1TlRFc01URXVPRGNnTVRBdU1qY3NNVElnT1M0NU9Td3hNaUJET1M0Mk9Td3hNaUE1TGpRNUxERXhMamczSURrdU5ETXNNVEV1TWprZ1F6a3VORE1zTVRFdU1qa2dPUzR4Tml3NUxqVTBJRGt1TURNc055NDNNaUJET0M0NU5pdzJMalUwSURrdU1ETXNOaUE1TGpBekxEWWdRemt1TURNc05TNDBOU0E1TGpRMkxEVXVNRElnT1M0NU9TdzFJRU14TUM0MU15dzFMakF4SURFd0xqazNMRFV1TkRRZ01UQXVPVGNzTmlCRE1UQXVPVGNzTmlBeE1TNHdOQ3cyTGpVMElERXdMamszTERjdU56SWdUREV3TGprM0xEY3VOeklnV2lJK1BDOXdZWFJvUGp3dmMzWm5QZz09Jyk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogMTVweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLWNsb3NlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG5cbi8vd2lkdGhcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLXdpZHRoIHtcblx0Ji14c21hbGwge1xuXHRcdHdpZHRoOiAxMDBweDtcblx0fVxuXG5cdCYteHhzbWFsbCB7XG5cdFx0d2lkdGg6IDc1cHg7XG5cdH1cbn1cblxuXG4vL2Ryb3Bkb3duXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi51ay1kcm9wZG93biB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLWJvcmRlci1kZWZhdWx0LCAxMCUpO1xufVxuXG5cblxuXG4vL2ZsZXhcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnVrLWZsZXgge1xuXHQmLWdhcCB7XG5cdFx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCA1MCB7XG5cdFx0XHQmLSN7JGl9IHtcblx0XHRcdFx0Z2FwOiAjeyRpfXB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLy9cbi8vXHR2YXJcbi8vXG5cblxuJGZvbnQtc2l6ZTogMTRweDtcbiRmb250LWZhbWlseTogXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiWXUgR290aGljXCIsIFwi5ri444K044K344OD44KvIE1lZGl1bVwiLCBcIll1IEdvdGhpYyBNZWRpdW1cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvTiBXM1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb05cIiwgXCJIaXJhZ2lubyBNYXJ1IEdvdGhpYyBXNCBKSVMyMDA0XCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtd2VpZ2h0OiA0MDA7XG5cblxuLy9jb2xvclxuJGNvbG9yLWJnLWJhc2U6ICNmMmY0ZjM7XG4kY29sb3ItYmctbmF2OiAjNmU2ZTZlO1xuJGNvbG9yLWJnLW5hdi1ob3ZlcjogIzg3NmU2NjtcbiRjb2xvci1iZy1tYXN0ZXI6ICMzZDg3YTM7XG4kY29sb3ItYmctbWFzdGVyLWRhcms6ICMxODZjODc7XG4kY29sb3ItYmctc2xhdmU6ICNiZTYzNmY7XG4kY29sb3ItYmctc2xhdmUtZGFyazogI2EwNDg1NTtcblxuJGNvbG9yLXRleHQ6ICM2NjY7XG4kY29sb3ItdGV4dC1iYXNlOiAjNDU1MjY3O1xuJGNvbG9yLXRleHQtaGVhZGVyOiAgI2ZmZjtcbiRjb2xvci10ZXh0LW5hdjogI2ZmZjtcbiRjb2xvci10ZXh0LW5hdi1hY3RpdmU6ICNmZmY7XG4kY29sb3ItdGV4dC1uYXYtZHJvcGRvd246IzM5NmU5MDtcbiRjb2xvci10ZXh0LWRpc2FibGVkOiAjODk4ZTk2O1xuJGNvbG9yLWxpbmstYmFzZTogIzFlODdmMDtcbiRjb2xvci1saW5rOiAjMzk2ZTkwO1xuXG4kY29sb3ItbGluay1uYXY6ICNmZmY7XG5cbiRjb2xvci1hY3RpdmU6ICNlYjZkNDU7XG4kY29sb3ItZm9jdXM6ICNlYjZkNDU7XG4kY29sb3ItaG92ZXI6ICNmMWRiZDY7XG4kY29sb3Itc2VsZWN0ZWQ6ICNmNWNjYzM7XG4kY29sb3Itc2VsZWN0ZWQtYm9yZGVyOiAjZGE5ZjkxO1xuJGNvbG9yLWRpc2FibGVkOiAjODg4ODg4O1xuXG4kY29sb3ItY2hrYnRuLWRlZmF1bHQ6ICRjb2xvci10ZXh0LWJhc2U7XG4kY29sb3ItY2hrYnRuLWRlZmF1bHQtYmc6ICNmZmY7XG4kY29sb3ItY2hrYnRuLWhvdmVyOiAkY29sb3ItbGluaztcbiRjb2xvci1jaGtidG4taG92ZXItYmc6ICNmNGY3Zjk7XG4kY29sb3ItY2hrYnRuLWNoZWNrZWQ6ICNmZmY7XG4kY29sb3ItY2hrYnRuLWNoZWNrZWQtYmc6ICRjb2xvci1hY3RpdmU7XG4kY29sb3ItY2hrYnRuLWRpc2FibGVkOiAjZmZmO1xuJGNvbG9yLWNoa2J0bi1kaXNhYmxlZC1iZzogI2E4YjJiOTtcbiRjb2xvci1jaGtidG4tZGlzYWJsZWQtY2hlY2tlZDogI2Y1ZjVmNTtcbiRjb2xvci1jaGtidG4tZGlzYWJsZWQtY2hlY2tlZC1iZzogI2JlOTg3NTsvLyNjNThmNWNcblxuJGNvbG9yLWJvcmRlci1kZWZhdWx0OiAjYzRkMGQ4O1xuJGJvcmRlci1iYXNlOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1kZWZhdWx0O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIl19 */