@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,700&display=swap);
/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com */
/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
*,
::before,
::after {
	box-sizing: border-box;
}
/**
Use a more readable tab size (opinionated).
*/
html {
	-moz-tab-size: 4;
	-o-tab-size: 4;
	   tab-size: 4;
}
/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
	line-height: 1.15; /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
}
/*
Sections
========
*/
/**
Remove the margin in all browsers.
*/
body {
	margin: 0;
}
/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/
body {
	font-family:
		system-ui,
		-apple-system, /* Firefox supports this but not yet `system-ui` */
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
}
/*
Grouping content
================
*/
/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/
hr {
	height: 0; /* 1 */
	color: inherit; /* 2 */
}
/*
Text-level semantics
====================
*/
/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr[title] {
	-webkit-text-decoration: underline dotted;
	        text-decoration: underline dotted;
}
/**
Add the correct font weight in Edge and Safari.
*/
b,
strong {
	font-weight: bolder;
}
/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
	font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
	font-size: 1em; /* 2 */
}
/**
Add the correct font size in all browsers.
*/
small {
	font-size: 80%;
}
/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
/*
Tabular data
============
*/
/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/
table {
	text-indent: 0; /* 1 */
	border-color: inherit; /* 2 */
}
/*
Forms
=====
*/
/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}
/**
Remove the inheritance of text transform in Edge and Firefox.
1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
	text-transform: none;
}
/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
}
/**
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
	border-style: none;
	padding: 0;
}
/**
Restore the focus styles unset by the previous rule.
*/
:-moz-focusring {
	outline: 1px dotted ButtonText;
}
/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/
:-moz-ui-invalid {
	box-shadow: none;
}
/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/
legend {
	padding: 0;
}
/**
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
	vertical-align: baseline;
}
/**
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}
/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type='search'] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}
/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
	-webkit-appearance: none;
}
/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}
/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
	display: list-item;
}
/**
 * Manually forked from SUIT CSS Base: https://github.com/suitcss/base
 * A thin layer on top of normalize.css that provides a starting point more
 * suitable for web applications.
 */
/**
 * Removes the default spacing and border for appropriate elements.
 */
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}
button {
  background-color: transparent;
  background-image: none;
}
fieldset {
  margin: 0;
  padding: 0;
}
ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
/**
 * Tailwind custom reset styles
 */
/**
 * 1. Use the user's configured `sans` font-family (with Tailwind's default
 *    sans-serif font stack as a fallback) as a sane default.
 * 2. Use Tailwind's default "normal" line-height so the user isn't forced
 *    to override it to ensure consistency even when using the default theme.
 */
html {
  font-family: "Helvetica", "Arial", sans-serif; /* 1 */
  line-height: 1.5; /* 2 */
}
/**
 * Inherit font-family and line-height from `html` so users can set them as
 * a class directly on the `html` element.
 */
body {
  font-family: inherit;
  line-height: inherit;
}
/**
 * 1. Prevent padding and border from affecting element width.
 *
 *    We used to set this in the html element and inherit from
 *    the parent element for everything else. This caused issues
 *    in shadow-dom-enhanced elements like <details> where the content
 *    is wrapped by a div with box-sizing set to `content-box`.
 *
 *    https://github.com/mozdevs/cssremedy/issues/4
 *
 *
 * 2. Allow adding a border to an element by just adding a border-width.
 *
 *    By default, the way the browser specifies that an element should have no
 *    border is by setting it's border-style to `none` in the user-agent
 *    stylesheet.
 *
 *    In order to easily add borders to elements by just setting the `border-width`
 *    property, we change the default border-style for all elements to `solid`, and
 *    use border-width to hide them instead. This way our `border` utilities only
 *    need to set the `border-width` property instead of the entire `border`
 *    shorthand, making our border utilities much more straightforward to compose.
 *
 *    https://github.com/tailwindcss/tailwindcss/pull/116
 */
*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: currentColor; /* 2 */
}
/*
 * Ensure horizontal rules are visible by default
 */
hr {
  border-top-width: 1px;
}
/**
 * Undo the `border-style: none` reset that Normalize applies to images so that
 * our `border-{width}` utilities have the expected effect.
 *
 * The Normalize reset is unnecessary for us since we default the border-width
 * to 0 on all elements.
 *
 * https://github.com/tailwindcss/tailwindcss/issues/362
 */
img {
  border-style: solid;
}
textarea {
  resize: vertical;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  color: #a1a1aa;
}
input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #a1a1aa;
}
button,
[role="button"] {
  cursor: pointer;
}
/**
 * Override legacy focus reset from Normalize with modern Firefox focus styles.
 *
 * This is actually an improvement over the new defaults in Firefox in our testing,
 * as it triggers the better focus styles even for links, which still use a dotted
 * outline in Firefox by default.
 */
:-moz-focusring {
	outline: auto;
}
table {
  border-collapse: collapse;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
/**
 * Reset links to optimize for opt-in styling instead of
 * opt-out.
 */
a {
  color: inherit;
  text-decoration: inherit;
}
/**
 * Reset form element properties that are easy to forget to
 * style explicitly so you don't inadvertently introduce
 * styles that deviate from your design system. These styles
 * supplement a partial reset that is already applied by
 * normalize.css.
 */
button,
input,
optgroup,
select,
textarea {
  padding: 0;
  line-height: inherit;
  color: inherit;
}
/**
 * Use the configured 'mono' font family for elements that
 * are expected to be rendered with a monospace font, falling
 * back to the system monospace stack if there is no configured
 * 'mono' font family.
 */
pre,
code,
kbd,
samp {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
/**
 * 1. Make replaced elements `display: block` by default as that's
 *    the behavior you want almost all of the time. Inspired by
 *    CSS Remedy, with `svg` added as well.
 *
 *    https://github.com/mozdevs/cssremedy/issues/14
 * 
 * 2. Add `vertical-align: middle` to align replaced elements more
 *    sensibly by default when overriding `display` by adding a
 *    utility like `inline`.
 *
 *    This can trigger a poorly considered linting error in some
 *    tools but is included by design.
 * 
 *    https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210
 */
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}
/**
 * Constrain images and videos to the parent width and preserve
 * their intrinsic aspect ratio.
 *
 * https://github.com/mozdevs/cssremedy/issues/14
 */
img,
video {
  max-width: 100%;
  height: auto;
}
/**
 * Ensure the default browser behavior of the `hidden` attribute.
 */
[hidden] {
  display: none;
}
*, ::before, ::after{
	border-color: currentColor;
	--tw-ring-offset-shadow: 0 0 #0000;
	--tw-ring-shadow: 0 0 #0000;
	--tw-shadow: 0 0 #0000;
	--tw-blur: var(--tw-empty,/*!*/ /*!*/);
	--tw-brightness: var(--tw-empty,/*!*/ /*!*/);
	--tw-contrast: var(--tw-empty,/*!*/ /*!*/);
	--tw-grayscale: var(--tw-empty,/*!*/ /*!*/);
	--tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);
	--tw-invert: var(--tw-empty,/*!*/ /*!*/);
	--tw-saturate: var(--tw-empty,/*!*/ /*!*/);
	--tw-sepia: var(--tw-empty,/*!*/ /*!*/);
	--tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);
	--tw-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.aspect-w-1,
.aspect-w-2,
.aspect-w-3,
.aspect-w-4,
.aspect-w-5,
.aspect-w-6,
.aspect-w-7,
.aspect-w-8,
.aspect-w-9,
.aspect-w-10,
.aspect-w-11,
.aspect-w-12,
.aspect-w-13,
.aspect-w-14,
.aspect-w-15,
.aspect-w-16{
	position: relative;
	padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%);
}
.aspect-w-1 > *,
.aspect-w-2 > *,
.aspect-w-3 > *,
.aspect-w-4 > *,
.aspect-w-5 > *,
.aspect-w-6 > *,
.aspect-w-7 > *,
.aspect-w-8 > *,
.aspect-w-9 > *,
.aspect-w-10 > *,
.aspect-w-11 > *,
.aspect-w-12 > *,
.aspect-w-13 > *,
.aspect-w-14 > *,
.aspect-w-15 > *,
.aspect-w-16 > *{
	position: absolute;
	height: 100%;
	width: 100%;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}
.aspect-w-16{
	--tw-aspect-w: 16;
}
.aspect-h-9{
	--tw-aspect-h: 9;
}
.container, .container-fluid{
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	padding-right: var(--bs-gutter-x, calc(30px / 2));
	padding-left: var(--bs-gutter-x, calc(30px / 2));
}
@media (min-width: 400px){
	.container{
		max-width: 400px;
	}
}
@media (min-width: 575px){
	.container{
		max-width: 575px;
	}
}
@media (min-width: 768px){
	.container{
		max-width: 768px;
	}
}
@media (min-width: 992px){
	.container{
		max-width: 992px;
	}
}
@media (min-width: 1200px){
	.container{
		max-width: 1200px;
	}
}
@media (min-width: 1400px){
	.container{
		max-width: 1400px;
	}
}
.row{
	--bs-gutter-x: 30px;
	--bs-gutter-y: 0;
	display: flex;
	flex-wrap: wrap;
	margin-top: calc(var(--bs-gutter-y) * -1);
	margin-right: calc(var(--bs-gutter-x) / -2);
	margin-left: calc(var(--bs-gutter-x) / -2);
}
.row > *{
	box-sizing: border-box;
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-right: calc(var(--bs-gutter-x) / 2);
	padding-left: calc(var(--bs-gutter-x) / 2);
	margin-top: var(--bs-gutter-y);
}
.col{
	flex: 1 0 0%;
}
.col-12{
	flex: 0 0 auto;
	width: 100%;
}
:root {
  --black: #000000;
  --white: #fff;
  --grey: #565656;
  --light-grey: #ececec;
  --primary-colour: #BF181A;
}

.flex-grid-row{
	display: flex;
	flex-wrap: wrap;
	overflow: visible;
  margin-left: -15px;
  margin-right: -15px;
}

.flex-grid-col {
  flex: 1 0;
  max-width: 100%;
  flex-grow: 1;
  flex-direction: column;
  flex-wrap: wrap;
  overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-3{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 25%;
  max-width: 25%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-3.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-3.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-3.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-3.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-3.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-4{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-4.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-4.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-4.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-4.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-4.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-5{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 41.6665%;
  max-width: 41.6665%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-5.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-5.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-5.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-5.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-5.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-6{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 50%;
  max-width: 50%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-6.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-6.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-6.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-6.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-6.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-7{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 58.3333%;
  max-width: 58.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-7.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-7.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-7.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-7.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-7.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-8{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 66.6667%;
  max-width: 66.6667%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-8.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-8.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-8.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-8.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-8.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-10{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 83.3333%;
  max-width: 83.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-10.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-10.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-10.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-10.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-10.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-fifth{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 20%;
  max-width: 20%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-fifth.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-fifth.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-fifth.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-fifth.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-fifth.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-offset-1 {
  margin-left: 8.3333%;
}
@media screen and (max-width: 991px) {
  .flex-grid-col-offset-1 {
    margin-left: 0;
  }
}
.flex-grid-col-offset-2 {
  margin-left: 16.6666%;
}
@media screen and (max-width: 991px) {
  .flex-grid-col-offset-2 {
    margin-left: 0;
  }
}

body {
  font-size: 16px;
  line-height: 2em;
}

h1,
.h1 {
  font-size: 3rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
  font-weight: bold;
  line-height: 60px;
}

h3,
.h3,
h2,
.h2 {
  font-size: 2.5em;
  margin-bottom: 0.75em;
  line-height: 1.1em;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  h3,
  .h3,
  h2,
  .h2 {
    font-size: 1.875em;
    line-height: 1.075em;
    margin-bottom: 1.5em;
  }
}
h3--sm,
.h3--sm,
h2--sm,
.h2--sm {
  font-size: 1.875em;
  line-height: 1.075em;
  margin-bottom: 1.5em;
}

h4,
.h4 {
  font-size: 1em;
  line-height: 2em;
  font-weight: 700;
  margin-bottom: 1em;
}

ul{
	margin-bottom: 1.5rem;
  list-style-type: disc;
  padding-left: 18px;
}
ul:last-of-type{
	margin-bottom: 0px;
}
ul:last-of-type + *{
	margin-top: 1.5rem;
}

ol{
	margin-bottom: 1.5rem;
  list-style-type: lower-alpha;
  padding-left: 18px;
}
ol:last-of-type{
	margin-bottom: 0px;
}
ol:last-of-type + *{
	margin-top: 1.5rem;
}

.display-1 {
  font-size: 3.75em;
  line-height: 1em;
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .display-1 {
    font-size: 2.25em;
  }
}

p{
	margin-bottom: 1.5rem;
}
p:last-of-type{
	margin-bottom: 0px;
}
p:last-of-type + ul, p:last-of-type + ol{
	margin-top: 1.5rem;
}

.py-20px {
  padding-top: 20px;
  padding-bottom: 20px;
}

.mt-30px {
  margin-top: 30px;
}
.mt-60px {
  margin-top: 60px;
}

.mb-60px {
  margin-bottom: 60px;
}
.mb-30px {
  margin-bottom: 30px;
}

section {
  margin-bottom: 60px;
}
section.about {
  margin-bottom: 0;
  padding: 60px 0;
}
@media screen and (max-width: 991px) {
  section.about {
    padding: 60px 0 0 0;
  }
}
section + .bg-fixed {
  margin-top: 60px;
  margin-bottom: 60px;
}
section.about-pt-0 {
  padding-top: 0;
}
section.faq:has(+ footer), section.faq :has(+ section) {
  margin-bottom: 60px;
}
section.section-grey {
  background-color: rgba(0, 0, 0, 0.1);
  padding: 60px 0;
}
section.section-grey:has(+ .bg-black) {
  margin-bottom: 0px;
}
section.section-grey p:last-of-type {
  margin-bottom: 0;
}
@media screen and (max-width: 991px) {
  section.section-grey {
    padding: 60px 0 60px 0;
  }
}
section.section-grey h4 {
  margin-bottom: 10px;
}
section:last-of-type {
  margin-bottom: 0;
}
section:last-of-type.services {
  padding-bottom: 60px;
}
@media screen and (max-width: 991px) {
  section:last-of-type.services {
    padding-bottom: 0;
  }
}
section.contact-page {
  margin-top: 60px;
}
@media screen and (max-width: 991px) {
  section.contact-page {
    margin-top: 60px;
  }
  section.contact {
    margin-bottom: 60px;
  }
}

.contact__title {
  line-height: 32px;
}
@media screen and (max-width: 767px) {
  .contact .contact-info {
    padding: 5px 15px;
  }
}

.container-lg {
  max-width: 1500px;
  width: 100%;
  padding-left: 15px;
  padding-right: 15px;
}

.container-sm {
  width: 100%;
  padding-left: 15px;
  padding-right: 15px;
}
@media (min-width: 575px) {
  .container-sm {
    max-width: 575px;
  }
}
@media screen and (min-width: 768px) {
  .container-sm {
    max-width: 768px;
  }
}
@media (min-width: 990px) {
  .container-sm {
    max-width: 990px;
  }
}

.el-shadow {
  overflow: visible;
  position: relative;
}
.el-shadow:after {
  content: "";
  background-color: rgba(0, 0, 0, 0.1);
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.el-shadow--bl:after {
  bottom: -60px;
  left: -60px;
}
@media screen and (max-width: 991px) {
  .el-shadow--bl-about > img {
    width: 100%;
  }
}
.el-shadow--bl-about:after {
  height: calc(100% - 60px);
  bottom: 0;
  left: -60px;
}

.icon-wrapper {
  background-color: var(--grey);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100px;
  width: 100%;
}
@media screen and (max-width: 991px) {
  .icon-wrapper {
    width: 100%;
    margin-left: 0;
  }
}

#map {
  background-color: aliceblue;
  height: 300px;
  margin-bottom: 60px;
}

.contact-page #map {
  margin-top: 60px;
}

.client-slider .slick-slide > div {
  min-height: 84px;
}

.brand-slider .slick-slide > div {
  min-height: 84px;
}

.testimonial-slider {
  padding: 0 60px;
}
.testimonial-slider .slick-arrow {
  position: absolute;
  top: 15px;
  font-size: 0;
  color: transparent;
  width: 45px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}
.testimonial-slider .slick-arrow:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: var(--primary-colour);
  font-size: 32px;
  line-height: 32px;
  font-family: "Font Awesome 6 Pro";
}
.testimonial-slider p{
	margin-bottom: 0.25rem;
}
.testimonial-slider .slick-next {
  right: 0;
}
.testimonial-slider .slick-next:after {
  content: "\f356";
}
.testimonial-slider .slick-prev {
  left: 0;
}
.testimonial-slider .slick-prev:after {
  content: "\f355";
}
.testimonial-slider button:focus {
  outline: none;
}

.text-slider {
  padding: 0 60px;
}
.text-slider .slick-arrow {
  position: absolute;
  top: calc(50% - 15px);
  font-size: 0;
  color: transparent;
  width: 45px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}
.text-slider .slick-arrow:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: var(--primary-colour);
  font-size: 32px;
  line-height: 32px;
  font-family: "Font Awesome 6 Pro";
}
.text-slider .slick-next {
  right: 0;
}
.text-slider .slick-next:after {
  content: "\f356";
}
.text-slider .slick-prev {
  left: 0;
}
.text-slider .slick-prev:after {
  content: "\f355";
}
.text-slider button:focus {
  outline: none;
}

/* purgecss start ignore */
/* purgecss end ignore */
.social ul {
  display: inline;
  padding-left: 0;
}
.social ul > li {
  display: inline;
}
.social ul > li + li {
  margin-left: 10px;
}
.social ul a {
  padding: 6px;
}
@media screen and (max-width: 767px) {
  .social {
    display: block;
    margin-top: 10px;
  }
  .social ul {
    padding-left: 0;
  }
}

#header ul {
  list-style-type: none;
  margin-bottom: 0;
  padding-left: 0;
}
#header ul a:hover{
	color: var(--primary-colour);
}

@media (min-width: 992px) {
  #mainNav .submenu {
    display: none;
  }
  #mainNav li:hover .submenu {
    display: block;
  }
}
.submenu a{
	display: inline-block;
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
	padding-left: 1rem;
	padding-right: 1rem;
	line-height: 1.25;
	color: var(--black);
	text-decoration: none;
}

.testimonial-block{
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
  background-image: url(/build/images/testimonial-bg.160a7fc3.jpg);
}

.rating1 .rating__star2, .rating1 .rating__star3, .rating1 .rating__star4, .rating1 .rating__star5{
	display: none;
}

.rating2 .rating__star1, .rating2 .rating__star3, .rating2 .rating__star4, .rating2 .rating__star5{
	display: none;
}

.rating3 .rating__star1, .rating3 .rating__star2, .rating3 .rating__star4, .rating3 .rating__star5{
	display: none;
}

.rating4 .rating__star1, .rating4 .rating__star2, .rating4 .rating__star3, .rating4 .rating__star5{
	display: none;
}

.rating5 .rating__star1, .rating5 .rating__star2, .rating5 .rating__star3, .rating5 .rating__star4{
	display: none;
}

.testimonial__text p{
	margin-bottom: 0.5rem;
}
.testimonial__text p:last-of-type{
	margin-bottom: 0px;
}

.study-grad:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 10;
  height: 100%;
  width: 100%;
  mix-blend-mode: multiply;
  background: #000000;
  background: linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(255, 255, 255, 0) 100%);
}
.study-grad:before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 0;
  height: 100%;
  width: 100%;
  background-color: var(--primary-colour);
  mix-blend-mode: multiply;
  mix-blend-mode: multiply;
}
.study-grad .container{
	position: relative;
	z-index: 20;
}

.study-text h2, .study-text h3, .study-text h4, .study-text h5, .study-text h6, .study-text .h2, .study-text .h3, .study-text .h4, .study-text .h5, .study-text .h6{
	color: var(--primary-colour);
}
.study-text h3{
	font-size: 1.875rem;
	line-height: 2.25rem;
}
.study-text table{
	margin-bottom: 1.5rem;
	width: 100%;
	border-width: 1px;
	border-color: var(--black);
}
.study-text table td{
	border-right-width: 1px;
	border-color: var(--black);
	padding: 0.75rem;
}
.study-text table td::last-of-type{
	border-style: none;
}
.study-text table thead{
	background-color: var(--primary-colour);
	color: var(--white);
}
.study-text table thead td{
	border-bottom-width: 1px;
	border-color: var(--black);
}

.landing-text h2, .landing-text h3, .landing-text h4, .landing-text h5, .landing-text h6, .landing-text .h2, .landing-text .h3, .landing-text .h4, .landing-text .h5, .landing-text .h6{
	color: var(--primary-colour);
}

.service-link:hover {
  filter: brightness(0) saturate(100%) invert(12%) sepia(45%) saturate(6460%) hue-rotate(349deg) brightness(110%) contrast(98%);
}

.text-cols p:nth-child(2), .text-cols p:nth-child(3){
	display: inline-block;
  width: calc(50% - 30px);
}
.text-cols p:nth-child(2) {
  margin-right: 15px;
}
.text-cols p:nth-child(3) {
  margin-left: 15px;
}

.text-and-image:has(+ .text-and-image) {
  margin-bottom: 0 !important;
}

details > summary {
  list-style-type: none;
}
details > summary:hover{
	cursor: pointer;
}

details > summary::-webkit-details-marker {
  display: none;
}

details > summary::after{
	position: absolute;
	right: 1.5rem;
	font-family: "Font Awesome 6 Pro";
  content: "\f078";
}

details[open] > summary::after {
  content: "\f077";
}

.textslider--content ul, .textslider--content ol {
  list-style: none;
}

.menu-wrapper{
	max-height: 80vh;
	overflow-y: auto;
}
@media (min-width: 992px) {
  .menu-wrapper {
    max-height: auto;
  }
  .menu-wrapper{
		overflow-y: visible;
	}
}

section.section-service-news:has(+ .section-grey, + .bg-black){
	padding-bottom: 0px;
}

body.error {
  background-color: var(--primary-colour);
}

#header .social {
  padding-left: 0;
  padding-right: 15px;
  margin-top: 10px;
}
@media screen and (max-width: 991px) {
  #header .social {
    padding-left: 0;
    display: block;
  }
}
@media (min-width: 768px) {
  #header .social{
		margin-top: 0px;
	}
}

#mainNav:not(.areas-footer-menu ul) .active {
  color: var(--primary-colour);
}

.site-header:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 10;
  height: 100%;
  width: 100%;
  background-color: var(--white);
  opacity: 0.65;
  transition: all 1s;
}
.site-header .container{
	position: relative;
	z-index: 20;
}

.site-header--border,
.site-header--border-const {
  border-bottom: 1px solid var(--primary-colour);
}

.site-header--opacity:after {
  opacity: 1;
  transition: all 1s;
}

button#nav-toggle:focus{
	outline: 2px solid transparent;
	outline-offset: 2px;
}
button#nav-toggle svg {
  fill: var(--primary-colour);
}

.brand-logo {
  max-width: 100%;
}

.strapline {
  max-width: 100%;
}

@media screen and (max-width: 1500px) {
  .brand-logo {
    max-width: 175px;
  }
  .strapline {
    max-width: 250px;
  }
}
@media screen and (max-width: 768px) {
  .strapline {
    max-width: 250px;
  }
}
/* Magnific Popup CSS */
/* purgecss start ignore */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace;
}

.mfp-close:hover,
.mfp-close:focus {
  opacity: 1;
}

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

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

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

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

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent;
}

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

.mfp-arrow:hover,
.mfp-arrow:focus {
  opacity: 1;
}

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

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

.mfp-arrow:before {
  border-top-width: 21px;
  border-bottom-width: 21px;
  opacity: 0.7;
}

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

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

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

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

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

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

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

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

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

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

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

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto;
}

/* The shadow behind the image */
.mfp-figure {
  line-height: 0;
}

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

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

.mfp-figure figure {
  margin: 0;
}

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

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

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

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

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
   * Remove all paddings around the image on small screen
   */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0;
  }
  .mfp-img-mobile img.mfp-img {
    padding: 0;
  }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0;
  }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px;
  }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box;
  }
  .mfp-img-mobile .mfp-bottom-bar:empty {
    padding: 0;
  }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px;
  }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0;
  }
}
@media all and (max-width: 900px) {
  .mfp-arrow {
    transform: scale(0.75);
  }
  .mfp-arrow-left {
    transform-origin: 0;
  }
  .mfp-arrow-right {
    transform-origin: 100%;
  }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px;
  }
}
/* purgecss end ignore */
.slide {
  background-size: cover;
  background-position: center;
  min-height: 600px;
}
.slide__logos {
  padding-top: 30px;
  background-color: rgba(var(--white), 0.8);
}
.slide__logos-image {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

.hero{
	position: relative;
  margin-bottom: 0;
}
.hero .slide > div:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 10;
  height: 100%;
  width: 100%;
  mix-blend-mode: multiply;
  background: #000000;
  background: linear-gradient(360deg, rgb(0, 0, 0) 0%, rgba(255, 255, 255, 0) 100%);
}
.hero .slide__label{
	position: relative;
	z-index: 20;
}
@media screen and (max-width: 1199px) {
  .hero {
    margin-bottom: 0;
  }
}

section.video{
	position: relative;
	height: 750px;
	width: 100vw;
	background-color: var(--black);
}
@media screen and (max-width: 990px) {
  section.video{
		height: 100vh;
	}
}
section.video #myVideo{
	position: absolute;
	top: 0px;
	left: 0px;
	z-index: 0;
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	   object-fit: cover;
}
section.video:before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 20;
  height: 100%;
  width: 100%;
  background-color: var(--black);
  opacity: 0.7;
}

.btn{
	display: inline-flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	background-color: var(--primary-colour);
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	padding-left: 1rem;
	padding-right: 1rem;
	text-align: center;
  margin-top: 30px;
  border: 1px solid var(--primary-colour);
  color: var(--white);
  max-width: 200px;
  min-height: 64px;
}
.btn:hover {
  background-color: var(--white);
  color: var(--primary-colour);
}
.btn--fluid {
  max-width: none;
}
.btn--white {
  border: 1px solid var(--white);
  color: var(--white);
}

.btn-wide {
  max-width: 375px;
}

.btn-sm {
  max-width: 150px;
}

.btn-video{
	font-size: 0.75rem;
	line-height: 1rem;
  background-color: rgba(0, 0, 0, 0.45);
  min-height: 50px;
  max-height: 50px;
  border: 2px solid var(--primary-colour);
}
.btn-video:hover {
  background-color: var(--primary-colour);
  color: var(--white);
}

.services-single__link{
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background-size: cover;
  border-bottom: 10px solid var(--grey);
  margin-bottom: 30px;
  min-height: 550px;
  padding: 30px 20px;
  background-position: center;
  background-color: var(--primary-colour);
  transition: all 0.5s;
}
.services-single__link:before {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 100%;
  background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9));
  height: 50%;
}
.services-single__link:hover {
  background-blend-mode: multiply;
  border-bottom: 10px solid var(--black);
}
.services-single__link:hover:before {
  display: none;
}
.services-single__link:hover .services-single__icon {
  transform: scale(120%);
}
@media screen and (max-width: 767px) {
  .services-single__link {
    min-height: 250px;
  }
}
.services-single__icon {
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
  transition: all 0.5s;
}
.services-single__title {
  margin-bottom: 0;
  position: relative;
  z-index: 1;
}
.services-single:nth-last-child(-n+3) .services-single__link {
  margin-bottom: 0;
}
@media screen and (max-width: 1199px) {
  .services-single:nth-last-child(-n+3) .services-single__link {
    margin-bottom: 30px;
  }
}
.services-single:nth-last-child(-n+2) .services-single__link {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .services-single:nth-last-child(-n+2) .services-single__link {
    margin-bottom: 30px;
  }
}
.services-single:nth-last-child(-n+1) .services-single__link {
  margin-bottom: 0;
}

.work-single__title {
  margin-bottom: 0;
  padding: 30px 0;
}

.gallery-single {
  margin-bottom: 30px;
}
.gallery-single__link {
  padding-bottom: 54%;
  display: block;
  background-position: center;
  background-size: cover;
}

section.services.gallery {
  padding-bottom: 30px;
}

footer .legal .separator {
  margin: 0 10px;
}
footer a:hover{
	color: var(--black);
}

.footer__logos {
  margin-bottom: 30px;
}
.footer__logos-image {
  display: block;
  margin: 0 auto;
  width: 100px;
  max-width: 100%;
  height: auto;
}

.title-red h2, .title-red h3, .title-red h4{
	color: var(--primary-colour);
}

.areas-footer-menu ul{
	margin: 0px;
	display: block;
	list-style-type: none;
	padding: 0px;
}

ul.pagination{
	margin-bottom: 3rem;
	display: flex;
	list-style-type: none;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	text-align: center;
}
ul.pagination li{
	display: flex;
	height: 3rem;
	width: 3rem;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	background-color: var(--primary-colour);
	line-height: 1;
	color: var(--white);
}
ul.pagination li a{
	display: flex;
	height: 100%;
	width: 100%;
	align-items: center;
	justify-content: center;
	padding: 0.75rem;
	line-height: 1;
}
ul.pagination li.active{
	background-color: var(--black);
}
ul.pagination li.disabled{
	cursor: not-allowed;
	opacity: 0.5;
}
ul.pagination li:has(a):hover{
	background-color: var(--black);
}

#cookies-bar{
	position: fixed;
	bottom: 0px;
	left: 0px;
	z-index: 50;
	width: 100%;
	border-top-width: 1px;
	border-color: var(--primary-colour);
	background-color: var(--white);
	padding: 2rem;
	text-align: left;
	color: var(--black);
}

#cookies-bar-tab{
	display: flex;
	height: 4rem;
	width: 4rem;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	border-width: 1px;
	border-color: var(--black);
	background-color: var(--white);
	text-align: center;
	font-size: 2.25rem;
	line-height: 2.5rem;
	color: var(--black);
  position: fixed;
  bottom: 15px;
  left: 10px;
  z-index: 10000;
}

.sr-only{
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

.invisible{
	visibility: hidden;
}

.static{
	position: static;
}

.fixed{
	position: fixed;
}

.absolute{
	position: absolute;
}

.relative{
	position: relative;
}

.sticky{
	position: sticky;
}

.top-0{
	top: 0px;
}

.left-0{
	left: 0px;
}

.right-2{
	right: 0.5rem;
}

.z-30{
	z-index: 30;
}

.z-20{
	z-index: 20;
}

.mx-auto{
	margin-left: auto;
	margin-right: auto;
}

.my-12{
	margin-top: 3rem;
	margin-bottom: 3rem;
}

.my-4{
	margin-top: 1rem;
	margin-bottom: 1rem;
}

.mx-8{
	margin-left: 2rem;
	margin-right: 2rem;
}

.mb-6{
	margin-bottom: 1.5rem;
}

.mr-6{
	margin-right: 1.5rem;
}

.mb-2{
	margin-bottom: 0.5rem;
}

.\!mt-6{
	margin-top: 1.5rem !important;
}

.mt-6{
	margin-top: 1.5rem;
}

.mt-4{
	margin-top: 1rem;
}

.mr-4{
	margin-right: 1rem;
}

.mb-3{
	margin-bottom: 0.75rem;
}

.\!mb-6{
	margin-bottom: 1.5rem !important;
}

.mb-10{
	margin-bottom: 2.5rem;
}

.mb-0{
	margin-bottom: 0px;
}

.mt-10{
	margin-top: 2.5rem;
}

.mr-auto{
	margin-right: auto;
}

.ml-auto{
	margin-left: auto;
}

.\!mt-8{
	margin-top: 2rem !important;
}

.\!mb-4{
	margin-bottom: 1rem !important;
}

.mt-auto{
	margin-top: auto;
}

.\!mb-12{
	margin-bottom: 3rem !important;
}

.mt-12{
	margin-top: 3rem;
}

.mb-12{
	margin-bottom: 3rem;
}

.mb-4{
	margin-bottom: 1rem;
}

.mt-2{
	margin-top: 0.5rem;
}

.mt-0{
	margin-top: 0px;
}

.mb-1{
	margin-bottom: 0.25rem;
}

.mr-10{
	margin-right: 2.5rem;
}

.ml-4{
	margin-left: 1rem;
}

.ml-6{
	margin-left: 1.5rem;
}

.mr-2{
	margin-right: 0.5rem;
}

.mt-5{
	margin-top: 1.25rem;
}

.mb-8{
	margin-bottom: 2rem;
}

.mt-8{
	margin-top: 2rem;
}

.mt-24{
	margin-top: 6rem;
}

.\!mb-0{
	margin-bottom: 0px !important;
}

.mt-16{
	margin-top: 4rem;
}

.block{
	display: block;
}

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

.flex{
	display: flex;
}

.table{
	display: table;
}

.hidden{
	display: none;
}

.h-auto{
	height: auto;
}

.h-\[600px\]{
	height: 600px;
}

.h-full{
	height: 100%;
}

.h-6{
	height: 1.5rem;
}

.min-h-\[600px\]{
	min-height: 600px;
}

.w-full{
	width: 100%;
}

.w-6{
	width: 1.5rem;
}

.w-1\/2{
	width: 50%;
}

.min-w-\[650px\]{
	min-width: 650px;
}

.max-w-full{
	max-width: 100%;
}

.max-w-\[75\%\]{
	max-width: 75%;
}

.flex-1{
	flex: 1 1 0%;
}

.flex-grow{
	flex-grow: 1;
}

.flex-col{
	flex-direction: column;
}

.flex-col-reverse{
	flex-direction: column-reverse;
}

.flex-wrap{
	flex-wrap: wrap;
}

.items-center{
	align-items: center;
}

.justify-start{
	justify-content: flex-start;
}

.justify-end{
	justify-content: flex-end;
}

.justify-center{
	justify-content: center;
}

.justify-between{
	justify-content: space-between;
}

.justify-around{
	justify-content: space-around;
}

.gap-4{
	gap: 1rem;
}

.self-center{
	align-self: center;
}

.rounded-xl{
	border-radius: 0.75rem;
}

.rounded-lg{
	border-radius: 0.5rem;
}

.rounded{
	border-radius: 0.25rem;
}

.border{
	border-width: 1px;
}

.border-primary{
	border-color: var(--primary-colour);
}

.bg-primary{
	background-color: var(--primary-colour);
}

.bg-black{
	background-color: var(--black);
}

.bg-white{
	background-color: var(--white);
}

.bg-lightgrey{
	background-color: var(--light-grey);
}

.bg-cover{
	background-size: cover;
}

.bg-center{
	background-position: center;
}

.bg-no-repeat{
	background-repeat: no-repeat;
}

.p-1{
	padding: 0.25rem;
}

.p-4{
	padding: 1rem;
}

.p-12{
	padding: 3rem;
}

.p-6{
	padding: 1.5rem;
}

.p-0{
	padding: 0px;
}

.p-8{
	padding: 2rem;
}

.py-10{
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

.px-4{
	padding-left: 1rem;
	padding-right: 1rem;
}

.py-2{
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.px-12{
	padding-left: 3rem;
	padding-right: 3rem;
}

.py-16{
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.py-8{
	padding-top: 2rem;
	padding-bottom: 2rem;
}

.px-6{
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.py-4{
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.py-3{
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.py-6{
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.py-24{
	padding-top: 6rem;
	padding-bottom: 6rem;
}

.px-0{
	padding-left: 0px;
	padding-right: 0px;
}

.px-2{
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

.px-8{
	padding-left: 2rem;
	padding-right: 2rem;
}

.py-20{
	padding-top: 5rem;
	padding-bottom: 5rem;
}

.py-12{
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.px-10{
	padding-left: 2.5rem;
	padding-right: 2.5rem;
}

.pb-12{
	padding-bottom: 3rem;
}

.pt-6{
	padding-top: 1.5rem;
}

.pl-6{
	padding-left: 1.5rem;
}

.pr-16{
	padding-right: 4rem;
}

.pr-4{
	padding-right: 1rem;
}

.pb-16{
	padding-bottom: 4rem;
}

.pr-8{
	padding-right: 2rem;
}

.\!pt-0{
	padding-top: 0px !important;
}

.\!pb-0{
	padding-bottom: 0px !important;
}

.text-left{
	text-align: left;
}

.text-center{
	text-align: center;
}

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

.text-6xl{
	font-size: 3.75rem;
	line-height: 1;
}

.text-sm{
	font-size: 0.875rem;
	line-height: 1.25rem;
}

.text-4xl{
	font-size: 2.25rem;
	line-height: 2.5rem;
}

.text-3xl{
	font-size: 1.875rem;
	line-height: 2.25rem;
}

.text-xl{
	font-size: 1.25rem;
	line-height: 1.75rem;
}

.text-lg{
	font-size: 1.125rem;
	line-height: 1.75rem;
}

.text-2xl{
	font-size: 1.5rem;
	line-height: 2rem;
}

.font-bold{
	font-weight: 700;
}

.font-light{
	font-weight: 300;
}

.font-normal{
	font-weight: 400;
}

.uppercase{
	text-transform: uppercase;
}

.capitalize{
	text-transform: capitalize;
}

.leading-loose{
	line-height: 2;
}

.leading-normal{
	line-height: 1.5;
}

.leading-relaxed{
	line-height: 1.625;
}

.leading-tight{
	line-height: 1.25;
}

.tracking-normal{
	letter-spacing: 0em;
}

.text-white{
	color: var(--white);
}

.text-primary{
	color: var(--primary-colour);
}

.text-black{
	color: var(--black);
}

.no-underline{
	text-decoration: none;
}

.shadow{
	--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
	box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.brightness-0{
	--tw-brightness: brightness(0);
	filter: var(--tw-filter);
}

.invert{
	--tw-invert: invert(100%);
	filter: var(--tw-filter);
}
::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
}

dialog{
	border-radius: 0.5rem;
	background-color: var(--white);
	--tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.video-testimonial-carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 30px;
}

.video-testimonial-viewport {
  width: 100%;
  overflow: hidden;
}

.video-testimonial-track {
  display: flex;
  gap: 20px;
  padding-bottom: 4px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.video-testimonial-track::-webkit-scrollbar {
  display: none;
}

.video-testimonial-arrow {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 30px;
  min-width: 45px;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0;
  cursor: pointer;
}

.video-testimonial-arrow::after {
  font-size: 32px;
  line-height: 32px;
  font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", sans-serif;
  font-weight: 900;
  color: #bf181a;
}

.video-testimonial-arrow--next::after {
  content: "\f356";
}

.video-testimonial-arrow--prev::after {
  content: "\f355";
}

.video-testimonial-arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.video-testimonial-arrow:focus {
  outline: none;
}

.testimonial-video-card {
  flex: 0 0 calc((100% - 40px) / 3);
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  scroll-snap-align: start;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  background: #fff;
}

.testimonial-video-card:hover,
.testimonial-video-card:focus-visible {
  text-decoration: none;
}

.testimonial-video-card img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.2s ease;
}

.testimonial-video-card:hover img,
.testimonial-video-card:focus-visible img {
  transform: scale(1.06);
}

.testimonial-video-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1200;
  align-items: center;
  justify-content: center;
}

.testimonial-video-modal.is-open {
  display: flex;
}

.testimonial-video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}

.testimonial-video-modal__content {
  position: relative;
  z-index: 1;
  width: min(960px, 100% - 30px);
}

.testimonial-video-modal__close {
  position: absolute;
  top: -42px;
  right: 0;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 32px;
  line-height: 1;
  cursor: pointer;
}

.testimonial-video-modal__frame {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: #000;
}

.testimonial-video-modal__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

body.modal-open {
  overflow: hidden;
}

@media screen and (max-width: 991px) {
  .video-testimonial-carousel {
    gap: 8px;
  }
  .testimonial-video-card {
    flex: 0 0 calc((100% - 20px) / 2);
  }
}
@media screen and (max-width: 767px) {
  .video-testimonial-arrow {
    width: 35px;
    min-width: 35px;
  }
  .testimonial-video-card {
    flex: 0 0 100%;
  }
}
.testimonial-video-card__media {
  position: relative;
  display: block;
  width: 100%;
}

.testimonial-video-card__media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
  transition: background 0.2s ease;
}

.testimonial-video-card:hover .testimonial-video-card__media::before,
.testimonial-video-card:focus-visible .testimonial-video-card__media::before {
  background: rgba(0, 0, 0, 0.35);
}

.testimonial-video-card__play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(191, 24, 26, 0.92);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition: transform 0.2s ease, background 0.2s ease;
}

.testimonial-video-card__play::after {
  content: "\f04b";
  margin-left: 3px;
  font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", sans-serif;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  color: #fff;
}

.testimonial-video-card:hover .testimonial-video-card__play,
.testimonial-video-card:focus-visible .testimonial-video-card__play {
  transform: translate(-50%, -50%) scale(1.06);
  background: #bf181a;
}

@media screen and (max-width: 767px) {
  .testimonial-video-card__play {
    width: 48px;
    height: 48px;
  }
  .testimonial-video-card__play::after {
    font-size: 17px;
  }
}

.hover\:no-underline:hover{
	text-decoration: none;
}

.hover\:outline-none:hover{
	outline: 2px solid transparent;
	outline-offset: 2px;
}

@media (min-width: 575px){
	.sm\:col-3{
		flex: 0 0 auto;
		width: 25%;
	}
	.sm\:col-4{
		flex: 0 0 auto;
		width: 33.333333333333336%;
	}
	.sm\:col-5{
		flex: 0 0 auto;
		width: 41.66666666666667%;
	}
	.sm\:col-6{
		flex: 0 0 auto;
		width: 50%;
	}
	.sm\:col-7{
		flex: 0 0 auto;
		width: 58.333333333333336%;
	}
	.sm\:col-9{
		flex: 0 0 auto;
		width: 75%;
	}
	.sm\:col-12{
		flex: 0 0 auto;
		width: 100%;
	}
	.sm\:mt-0{
		margin-top: 0px;
	}
	.sm\:mt-16{
		margin-top: 4rem;
	}
	.sm\:ml-6{
		margin-left: 1.5rem;
	}
	.sm\:hidden{
		display: none;
	}
	.sm\:bg-fixed{
		background-attachment: fixed;
	}
	.sm\:text-right{
		text-align: right;
	}
	.sm\:text-3xl{
		font-size: 1.875rem;
		line-height: 2.25rem;
	}
}

@media (min-width: 768px){
	.md\:col-2{
		flex: 0 0 auto;
		width: 16.666666666666668%;
	}
	.md\:col-4{
		flex: 0 0 auto;
		width: 33.333333333333336%;
	}
	.md\:col-6{
		flex: 0 0 auto;
		width: 50%;
	}
	.md\:col-8{
		flex: 0 0 auto;
		width: 66.66666666666667%;
	}
	.md\:col-10{
		flex: 0 0 auto;
		width: 83.33333333333334%;
	}
	.md\:mb-0{
		margin-bottom: 0px;
	}
	.md\:mt-8{
		margin-top: 2rem;
	}
	.md\:mb-4{
		margin-bottom: 1rem;
	}
	.md\:mt-0{
		margin-top: 0px;
	}
	.md\:p-6{
		padding: 1.5rem;
	}
	.md\:py-48{
		padding-top: 12rem;
		padding-bottom: 12rem;
	}
	.md\:px-6{
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
	.md\:text-4xl{
		font-size: 2.25rem;
		line-height: 2.5rem;
	}
}

@media (min-width: 992px){
	.lg\:col-4{
		flex: 0 0 auto;
		width: 33.333333333333336%;
	}
	.lg\:col-6{
		flex: 0 0 auto;
		width: 50%;
	}
	.lg\:absolute{
		position: absolute;
	}
	.lg\:relative{
		position: relative;
	}
	.lg\:my-0{
		margin-top: 0px;
		margin-bottom: 0px;
	}
	.lg\:mb-0{
		margin-bottom: 0px;
	}
	.lg\:mb-12{
		margin-bottom: 3rem;
	}
	.lg\:ml-0{
		margin-left: 0px;
	}
	.lg\:mt-0{
		margin-top: 0px;
	}
	.lg\:flex{
		display: flex;
	}
	.lg\:hidden{
		display: none;
	}
	.lg\:w-auto{
		width: auto;
	}
	.lg\:w-2\/3{
		width: 66.666667%;
	}
	.lg\:w-1\/3{
		width: 33.333333%;
	}
	.lg\:w-1\/2{
		width: 50%;
	}
	.lg\:flex-row{
		flex-direction: row;
	}
	.lg\:flex-row-reverse{
		flex-direction: row-reverse;
	}
	.lg\:flex-col{
		flex-direction: column;
	}
	.lg\:flex-col-reverse{
		flex-direction: column-reverse;
	}
	.lg\:items-center{
		align-items: center;
	}
	.lg\:bg-white{
		background-color: var(--white);
	}
	.lg\:bg-transparent{
		background-color: transparent;
	}
	.lg\:p-0{
		padding: 0px;
	}
	.lg\:p-12{
		padding: 3rem;
	}
	.lg\:py-12{
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
	.lg\:px-8{
		padding-left: 2rem;
		padding-right: 2rem;
	}
	.lg\:text-4xl{
		font-size: 2.25rem;
		line-height: 2.5rem;
	}
	.lg\:text-5xl{
		font-size: 3rem;
		line-height: 1;
	}
}

@media (min-width: 1200px){
	.xl\:mt-10{
		margin-top: 2.5rem;
	}
	.xl\:ml-12{
		margin-left: 3rem;
	}
	.xl\:mb-0{
		margin-bottom: 0px;
	}
	.xl\:flex{
		display: flex;
	}
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUorR0o7O0FJNUdBOztFQUVJO0FKK0dKOztBSTVHQTtFQUNJO0FKK0dKOztBSTVHQTtFQUNJO0FKK0dKOztBSTVHQTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKK0dKOztBSTVHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKK0dKOztBSTVHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSitHSjs7QUk1R0E7RUFDSTtBSitHSjs7QUk1R0E7O0VBRUk7QUorR0o7O0FJNUdBOztFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKK0dKOztBSTVHQTtFQUNJO0VBQ0E7RUFDQTtBSitHSjs7QUk1R0E7RUFDSTtFQUNBO0VBQ0E7QUorR0o7O0FJNUdBO0VBQ0k7QUorR0o7O0FJNUdBO0VBQ0k7RUFDQTtBSitHSjs7QUk1R0E7RUFDSTtFQUNBO0FKK0dKOztBSTVHQTtFQUNJO0FKK0dKOztBSTVHQTtFQUNJO0VBQ0E7QUorR0o7O0FJNUdBO0VBQ0k7QUorR0o7O0FJNUdBO0VBQ0k7RUFDQTtBSitHSjs7QUk1R0E7RUFDSTtFQUNBO0VBQ0E7QUorR0o7O0FJNUdBO0VBQ0k7QUorR0o7O0FJNUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUorR0o7O0FJNUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSitHSjs7QUk1R0E7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUorR0o7O0FJNUdBO0FBQ0E7RUFDSTtBSitHSjs7QUk1R0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUorR0o7O0FJNUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUorR0o7O0FJNUdBO0VBQ0k7QUorR0o7O0FJNUdB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O0NBQUE7O0FBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0FBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtBQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtBQUFBO0NBQUE7Q0FBQTtBQUFBO0NBQUE7Q0FBQTtDQUFBO0FBQUE7Q0FBQTtDQUFBOztBQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBOztBQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtFRVFRO0VBQ0E7RUFDQTtFQUNBO0NGWFI7O0FIT0E7Q0dQQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7QUFFQTtFQUNJO0FBZ25ESjs7QUcxbkRBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTs7QUhpQkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ25ESjs7QUE3bURBO0VBQ0k7RUFDQTtBQWduREo7O0FBN21EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ25ESjs7QUE3bURBO0VBQ0k7QUFnbkRKOztBQTdtREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFnbkRKOztBQTdtREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ25ESjs7QUE3bURBO0VBQ0k7QUFnbkRKOztBQTdtREE7RUFDSTtBQWduREo7O0FBN21EQTtFQUNJO0VBQ0E7QUFnbkRKOztBQTdtREE7RUFDSTtBQWduREo7O0FBN21EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ25ESjs7QUE3bURBOztFQUVJO0FBZ25ESjs7QUE3bURBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7S0FBQTtFQUNBO0FBZ25ESjs7QUE3bURBOztFQUVJO0FBZ25ESjs7QUE3bURBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ25ESjs7QUE3bURBO0VBQ0k7QUFnbkRKOztBQTdtREE7RUFDSTtFQUNBO0VBQ0E7QUFnbkRKOztBQTdtREE7RUFDSTtFQUNBO0VBQ0E7QUFnbkRKOztBQTdtREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFnbkRKOztBQTdtREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWduREo7O0FBN21EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBZ25ESjs7QUE3bURBO0VBQ0k7QUFnbkRKOztBQTdtREE7RUFDSTtJQUNJO0VBZ25ETjtFQTdtREU7SUFDSTtFQSttRE47QUFDRjtBQTVtREE7RUFDSTtJQUNJO0lBQ0E7RUE4bUROO0VBM21ERTtJQUNJO0VBNm1ETjtBQUNGO0FBMW1EQTtFQUNJO0VBQ0E7RUFDQTtBQTRtREo7O0FBem1EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNG1ESjs7QUF6bURBOztFQUVJO0FBNG1ESjs7QUF6bURBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHFEQUNJO0FBMm1EUjs7QUF2bURBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUEwbURKOztBQXZtREE7O0VBRUk7RUFDQTtBQTBtREo7O0FBeG1EQTtFQUNJO0lBQ0k7SUFDQTtFQTJtRE47RUF6bURFO0lBQ0k7RUEybUROO0FBQ0Y7O0FJdDJEUTtDREhSO0FIeTJEQTs7QUl0MkRRO0NESFI7Q0FBQTtBSHkyREE7O0FJdDJEUTtDREhSO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7QUh5MkRBOztBSXQyRFE7Q0RIUjtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0FIeTJEQTs7QUl0MkRRO0NESFI7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7QUh5MkRBOztBSXQyRFE7Q0RIUjtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7QUh5MkRBLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbGlnaHRjbXMvLi9hcHAuc2NzcyIsIndlYnBhY2s6Ly9mbGlnaHRjbXMvLi9hc3NldHMvc2Nzcy8lM0NpbnB1dCUyMGNzcyUyME51ektaWiUzRSIsIndlYnBhY2s6Ly9mbGlnaHRjbXMvLi9hc3NldHMvc2Nzcy8lM0NpbnB1dCUyMGNzcyUyMDA4UFhtZyUzRSIsIndlYnBhY2s6Ly9mbGlnaHRjbXMvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vZmxpZ2h0Y21zLy4vX2N0ZS5zY3NzIiwid2VicGFjazovL2ZsaWdodGNtcy8uL29iamVjdHMvX2NvbnNlbnQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdGFpbHdpbmQgYmFzZTtcblxuQHRhaWx3aW5kIGNvbXBvbmVudHM7XG5cbkBpbXBvcnQgXCJjdGVcIjtcbkBpbXBvcnQgXCIuL29iamVjdHMvY29uc2VudFwiO1xuXG5AdGFpbHdpbmQgdXRpbGl0aWVzO1xuXG46OmJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbmRpYWxvZyB7XG4gICAgQGFwcGx5IGJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LWxnO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtY2Fyb3VzZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNXB4O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi52aWRlby10ZXN0aW1vbmlhbC12aWV3cG9ydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZpZGVvLXRlc3RpbW9uaWFsLXRyYWNrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cblxuLnZpZGVvLXRlc3RpbW9uaWFsLXRyYWNrOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZpZGVvLXRlc3RpbW9uaWFsLWFycm93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA0NXB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBtaW4td2lkdGg6IDQ1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnZpZGVvLXRlc3RpbW9uaWFsLWFycm93OjphZnRlciB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiLCBcIkZvbnQgQXdlc29tZSA2IEZyZWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGNvbG9yOiAjYmYxODFhO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtYXJyb3ctLW5leHQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcZjM1NlwiO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtYXJyb3ctLXByZXY6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcZjM1NVwiO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtYXJyb3c6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtYXJyb3c6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkIHtcbiAgICBmbGV4OiAwIDAgY2FsYygoMTAwJSAtIDQwcHgpIC8gMyk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQ6aG92ZXIsXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZDpmb2N1cy12aXNpYmxlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQ6aG92ZXIgaW1nLFxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQ6Zm9jdXMtdmlzaWJsZSBpbWcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1tb2RhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMTIwMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tbW9kYWwuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLW1vZGFsX19iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLW1vZGFsX19jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogbWluKDk2MHB4LCBjYWxjKDEwMCUgLSAzMHB4KSk7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1tb2RhbF9fY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC00MnB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tbW9kYWxfX2ZyYW1lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDU2LjI1JTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tbW9kYWxfX2ZyYW1lIGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuYm9keS5tb2RhbC1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC52aWRlby10ZXN0aW1vbmlhbC1jYXJvdXNlbCB7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC50ZXN0aW1vbmlhbC12aWRlby1jYXJkIHtcbiAgICAgICAgZmxleDogMCAwIGNhbGMoKDEwMCUgLSAyMHB4KSAvIDIpO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudmlkZW8tdGVzdGltb25pYWwtYXJyb3cge1xuICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgbWluLXdpZHRoOiAzNXB4O1xuICAgIH1cblxuICAgIC50ZXN0aW1vbmlhbC12aWRlby1jYXJkIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxufVxuXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZF9fbWVkaWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmRfX21lZGlhOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZDpob3ZlciAudGVzdGltb25pYWwtdmlkZW8tY2FyZF9fbWVkaWE6OmJlZm9yZSxcbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkOmZvY3VzLXZpc2libGUgLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmRfX21lZGlhOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkX19wbGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxOTEsIDI0LCAyNiwgMC45Mik7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIHRyYW5zZm9ybSAwLjJzIGVhc2UsXG4gICAgICAgIGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZF9fcGxheTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDRiXCI7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIiwgXCJGb250IEF3ZXNvbWUgNiBGcmVlXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkOmhvdmVyIC50ZXN0aW1vbmlhbC12aWRlby1jYXJkX19wbGF5LFxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQ6Zm9jdXMtdmlzaWJsZSAudGVzdGltb25pYWwtdmlkZW8tY2FyZF9fcGxheSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4wNik7XG4gICAgYmFja2dyb3VuZDogI2JmMTgxYTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmRfX3BsYXkge1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cbiAgICAudGVzdGltb25pYWwtdmlkZW8tY2FyZF9fcGxheTo6YWZ0ZXIge1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgfVxufVxuIiwiLyohIG1vZGVybi1ub3JtYWxpemUgdjEuMS4wIHwgTUlUIExpY2Vuc2UgfCBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUgKi9cblxuLypcbkRvY3VtZW50XG49PT09PT09PVxuKi9cblxuLyoqXG5Vc2UgYSBiZXR0ZXIgYm94IG1vZGVsIChvcGluaW9uYXRlZCkuXG4qL1xuXG4qLFxuOjpiZWZvcmUsXG46OmFmdGVyIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyoqXG5Vc2UgYSBtb3JlIHJlYWRhYmxlIHRhYiBzaXplIChvcGluaW9uYXRlZCkuXG4qL1xuXG5odG1sIHtcblx0LW1vei10YWItc2l6ZTogNDtcblx0dGFiLXNpemU6IDQ7XG59XG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4qL1xuXG5odG1sIHtcblx0bGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qXG5TZWN0aW9uc1xuPT09PT09PT1cbiovXG5cbi8qKlxuUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuYm9keSB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyoqXG5JbXByb3ZlIGNvbnNpc3RlbmN5IG9mIGRlZmF1bHQgZm9udHMgaW4gYWxsIGJyb3dzZXJzLiAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2lzc3Vlcy8zKVxuKi9cblxuYm9keSB7XG5cdGZvbnQtZmFtaWx5OlxuXHRcdHN5c3RlbS11aSxcblx0XHQtYXBwbGUtc3lzdGVtLCAvKiBGaXJlZm94IHN1cHBvcnRzIHRoaXMgYnV0IG5vdCB5ZXQgYHN5c3RlbS11aWAgKi9cblx0XHQnU2Vnb2UgVUknLFxuXHRcdFJvYm90byxcblx0XHRIZWx2ZXRpY2EsXG5cdFx0QXJpYWwsXG5cdFx0c2Fucy1zZXJpZixcblx0XHQnQXBwbGUgQ29sb3IgRW1vamknLFxuXHRcdCdTZWdvZSBVSSBFbW9qaSc7XG59XG5cbi8qXG5Hcm91cGluZyBjb250ZW50XG49PT09PT09PT09PT09PT09XG4qL1xuXG4vKipcbjEuIEFkZCB0aGUgY29ycmVjdCBoZWlnaHQgaW4gRmlyZWZveC5cbjIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LiAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjU1KVxuKi9cblxuaHIge1xuXHRoZWlnaHQ6IDA7IC8qIDEgKi9cblx0Y29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcblRleHQtbGV2ZWwgc2VtYW50aWNzXG49PT09PT09PT09PT09PT09PT09PVxuKi9cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiovXG5cbmFiYnJbdGl0bGVdIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG4vKipcbkFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBFZGdlIGFuZCBTYWZhcmkuXG4qL1xuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4xLiBJbXByb3ZlIGNvbnNpc3RlbmN5IG9mIGRlZmF1bHQgZm9udHMgaW4gYWxsIGJyb3dzZXJzLiAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2lzc3Vlcy8zKVxuMi4gQ29ycmVjdCB0aGUgb2RkICdlbScgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuY29kZSxcbmtiZCxcbnNhbXAsXG5wcmUge1xuXHRmb250LWZhbWlseTpcblx0XHR1aS1tb25vc3BhY2UsXG5cdFx0U0ZNb25vLVJlZ3VsYXIsXG5cdFx0Q29uc29sYXMsXG5cdFx0J0xpYmVyYXRpb24gTW9ubycsXG5cdFx0TWVubG8sXG5cdFx0bW9ub3NwYWNlOyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcblByZXZlbnQgJ3N1YicgYW5kICdzdXAnIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDc1JTtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuXHRib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG5cdHRvcDogLTAuNWVtO1xufVxuXG4vKlxuVGFidWxhciBkYXRhXG49PT09PT09PT09PT1cbiovXG5cbi8qKlxuMS4gUmVtb3ZlIHRleHQgaW5kZW50YXRpb24gZnJvbSB0YWJsZSBjb250ZW50cyBpbiBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTk5OTA4OCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTI5NylcbjIuIENvcnJlY3QgdGFibGUgYm9yZGVyIGNvbG9yIGluaGVyaXRhbmNlIGluIGFsbCBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTkzNTcyOSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTAxNilcbiovXG5cbnRhYmxlIHtcblx0dGV4dC1pbmRlbnQ6IDA7IC8qIDEgKi9cblx0Ym9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qXG5Gb3Jtc1xuPT09PT1cbiovXG5cbi8qKlxuMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4yLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4qL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXHRmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuXHRmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cblx0bGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cblx0bWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlIGFuZCBGaXJlZm94LlxuMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuKi9cblxuYnV0dG9uLFxuW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG5SZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuKi9cblxuOjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcblJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiovXG5cbjotbW96LWZvY3VzcmluZyB7XG5cdG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG5SZW1vdmUgdGhlIGFkZGl0aW9uYWwgJzppbnZhbGlkJyBzdHlsZXMgaW4gRmlyZWZveC5cblNlZTogaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja28tZGV2L2Jsb2IvMmY5ZWFjZDlkM2Q5OTVjOTM3YjQyNTFhNTU1N2Q5NWQ0OTRjOWJlMS9sYXlvdXQvc3R5bGUvcmVzL2Zvcm1zLmNzcyNMNzI4LUw3MzdcbiovXG5cbjotbW96LXVpLWludmFsaWQge1xuXHRib3gtc2hhZG93OiBub25lO1xufVxuXG4vKipcblJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXQgJ2ZpZWxkc2V0JyBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5sZWdlbmQge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbkFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lIGFuZCBGaXJlZm94LlxuKi9cblxucHJvZ3Jlc3Mge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gU2FmYXJpLlxuKi9cblxuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbjEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4qL1xuXG5bdHlwZT0nc2VhcmNoJ10ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiovXG5cbjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byAnaW5oZXJpdCcgaW4gU2FmYXJpLlxuKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG5cdGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcbkludGVyYWN0aXZlXG49PT09PT09PT09PVxuKi9cblxuLypcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxuKi9cblxuc3VtbWFyeSB7XG5cdGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cbiIsIi8qKlxuICogTWFudWFsbHkgZm9ya2VkIGZyb20gU1VJVCBDU1MgQmFzZTogaHR0cHM6Ly9naXRodWIuY29tL3N1aXRjc3MvYmFzZVxuICogQSB0aGluIGxheWVyIG9uIHRvcCBvZiBub3JtYWxpemUuY3NzIHRoYXQgcHJvdmlkZXMgYSBzdGFydGluZyBwb2ludCBtb3JlXG4gKiBzdWl0YWJsZSBmb3Igd2ViIGFwcGxpY2F0aW9ucy5cbiAqL1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGRlZmF1bHQgc3BhY2luZyBhbmQgYm9yZGVyIGZvciBhcHByb3ByaWF0ZSBlbGVtZW50cy5cbiAqL1xuXG5ibG9ja3F1b3RlLFxuZGwsXG5kZCxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbmhyLFxuZmlndXJlLFxucCxcbnByZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5vbCxcbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFRhaWx3aW5kIGN1c3RvbSByZXNldCBzdHlsZXNcbiAqL1xuXG4vKipcbiAqIDEuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtZmFtaWx5ICh3aXRoIFRhaWx3aW5kJ3MgZGVmYXVsdFxuICogICAgc2Fucy1zZXJpZiBmb250IHN0YWNrIGFzIGEgZmFsbGJhY2spIGFzIGEgc2FuZSBkZWZhdWx0LlxuICogMi4gVXNlIFRhaWx3aW5kJ3MgZGVmYXVsdCBcIm5vcm1hbFwiIGxpbmUtaGVpZ2h0IHNvIHRoZSB1c2VyIGlzbid0IGZvcmNlZFxuICogICAgdG8gb3ZlcnJpZGUgaXQgdG8gZW5zdXJlIGNvbnNpc3RlbmN5IGV2ZW4gd2hlbiB1c2luZyB0aGUgZGVmYXVsdCB0aGVtZS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHRoZW1lKCdmb250RmFtaWx5LnNhbnMnLCB1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIFwiTm90byBTYW5zXCIsIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIik7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuNTsgLyogMiAqL1xufVxuXG5cbi8qKlxuICogSW5oZXJpdCBmb250LWZhbWlseSBhbmQgbGluZS1oZWlnaHQgZnJvbSBgaHRtbGAgc28gdXNlcnMgY2FuIHNldCB0aGVtIGFzXG4gKiBhIGNsYXNzIGRpcmVjdGx5IG9uIHRoZSBgaHRtbGAgZWxlbWVudC5cbiAqL1xuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgcGFkZGluZyBhbmQgYm9yZGVyIGZyb20gYWZmZWN0aW5nIGVsZW1lbnQgd2lkdGguXG4gKlxuICogICAgV2UgdXNlZCB0byBzZXQgdGhpcyBpbiB0aGUgaHRtbCBlbGVtZW50IGFuZCBpbmhlcml0IGZyb21cbiAqICAgIHRoZSBwYXJlbnQgZWxlbWVudCBmb3IgZXZlcnl0aGluZyBlbHNlLiBUaGlzIGNhdXNlZCBpc3N1ZXNcbiAqICAgIGluIHNoYWRvdy1kb20tZW5oYW5jZWQgZWxlbWVudHMgbGlrZSA8ZGV0YWlscz4gd2hlcmUgdGhlIGNvbnRlbnRcbiAqICAgIGlzIHdyYXBwZWQgYnkgYSBkaXYgd2l0aCBib3gtc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgLlxuICpcbiAqICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvNFxuICpcbiAqXG4gKiAyLiBBbGxvdyBhZGRpbmcgYSBib3JkZXIgdG8gYW4gZWxlbWVudCBieSBqdXN0IGFkZGluZyBhIGJvcmRlci13aWR0aC5cbiAqXG4gKiAgICBCeSBkZWZhdWx0LCB0aGUgd2F5IHRoZSBicm93c2VyIHNwZWNpZmllcyB0aGF0IGFuIGVsZW1lbnQgc2hvdWxkIGhhdmUgbm9cbiAqICAgIGJvcmRlciBpcyBieSBzZXR0aW5nIGl0J3MgYm9yZGVyLXN0eWxlIHRvIGBub25lYCBpbiB0aGUgdXNlci1hZ2VudFxuICogICAgc3R5bGVzaGVldC5cbiAqXG4gKiAgICBJbiBvcmRlciB0byBlYXNpbHkgYWRkIGJvcmRlcnMgdG8gZWxlbWVudHMgYnkganVzdCBzZXR0aW5nIHRoZSBgYm9yZGVyLXdpZHRoYFxuICogICAgcHJvcGVydHksIHdlIGNoYW5nZSB0aGUgZGVmYXVsdCBib3JkZXItc3R5bGUgZm9yIGFsbCBlbGVtZW50cyB0byBgc29saWRgLCBhbmRcbiAqICAgIHVzZSBib3JkZXItd2lkdGggdG8gaGlkZSB0aGVtIGluc3RlYWQuIFRoaXMgd2F5IG91ciBgYm9yZGVyYCB1dGlsaXRpZXMgb25seVxuICogICAgbmVlZCB0byBzZXQgdGhlIGBib3JkZXItd2lkdGhgIHByb3BlcnR5IGluc3RlYWQgb2YgdGhlIGVudGlyZSBgYm9yZGVyYFxuICogICAgc2hvcnRoYW5kLCBtYWtpbmcgb3VyIGJvcmRlciB1dGlsaXRpZXMgbXVjaCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB0byBjb21wb3NlLlxuICpcbiAqICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGNzcy90YWlsd2luZGNzcy9wdWxsLzExNlxuICovXG5cbiosXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGJvcmRlci13aWR0aDogMDsgLyogMiAqL1xuICBib3JkZXItc3R5bGU6IHNvbGlkOyAvKiAyICovXG4gIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yOyAvKiAyICovXG59XG5cbi8qXG4gKiBFbnN1cmUgaG9yaXpvbnRhbCBydWxlcyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0XG4gKi9cblxuaHIge1xuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG5cbi8qKlxuICogVW5kbyB0aGUgYGJvcmRlci1zdHlsZTogbm9uZWAgcmVzZXQgdGhhdCBOb3JtYWxpemUgYXBwbGllcyB0byBpbWFnZXMgc28gdGhhdFxuICogb3VyIGBib3JkZXIte3dpZHRofWAgdXRpbGl0aWVzIGhhdmUgdGhlIGV4cGVjdGVkIGVmZmVjdC5cbiAqXG4gKiBUaGUgTm9ybWFsaXplIHJlc2V0IGlzIHVubmVjZXNzYXJ5IGZvciB1cyBzaW5jZSB3ZSBkZWZhdWx0IHRoZSBib3JkZXItd2lkdGhcbiAqIHRvIDAgb24gYWxsIGVsZW1lbnRzLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGNzcy90YWlsd2luZGNzcy9pc3N1ZXMvMzYyXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogdGhlbWUoJ2NvbG9ycy5ncmF5LjQwMCcsICNhMWExYWEpO1xufVxuXG5idXR0b24sXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyoqXG4gKiBPdmVycmlkZSBsZWdhY3kgZm9jdXMgcmVzZXQgZnJvbSBOb3JtYWxpemUgd2l0aCBtb2Rlcm4gRmlyZWZveCBmb2N1cyBzdHlsZXMuXG4gKlxuICogVGhpcyBpcyBhY3R1YWxseSBhbiBpbXByb3ZlbWVudCBvdmVyIHRoZSBuZXcgZGVmYXVsdHMgaW4gRmlyZWZveCBpbiBvdXIgdGVzdGluZyxcbiAqIGFzIGl0IHRyaWdnZXJzIHRoZSBiZXR0ZXIgZm9jdXMgc3R5bGVzIGV2ZW4gZm9yIGxpbmtzLCB3aGljaCBzdGlsbCB1c2UgYSBkb3R0ZWRcbiAqIG91dGxpbmUgaW4gRmlyZWZveCBieSBkZWZhdWx0LlxuICovXG4gXG46LW1vei1mb2N1c3Jpbmcge1xuXHRvdXRsaW5lOiBhdXRvO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogUmVzZXQgbGlua3MgdG8gb3B0aW1pemUgZm9yIG9wdC1pbiBzdHlsaW5nIGluc3RlYWQgb2ZcbiAqIG9wdC1vdXQuXG4gKi9cblxuYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi8qKlxuICogUmVzZXQgZm9ybSBlbGVtZW50IHByb3BlcnRpZXMgdGhhdCBhcmUgZWFzeSB0byBmb3JnZXQgdG9cbiAqIHN0eWxlIGV4cGxpY2l0bHkgc28geW91IGRvbid0IGluYWR2ZXJ0ZW50bHkgaW50cm9kdWNlXG4gKiBzdHlsZXMgdGhhdCBkZXZpYXRlIGZyb20geW91ciBkZXNpZ24gc3lzdGVtLiBUaGVzZSBzdHlsZXNcbiAqIHN1cHBsZW1lbnQgYSBwYXJ0aWFsIHJlc2V0IHRoYXQgaXMgYWxyZWFkeSBhcHBsaWVkIGJ5XG4gKiBub3JtYWxpemUuY3NzLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBVc2UgdGhlIGNvbmZpZ3VyZWQgJ21vbm8nIGZvbnQgZmFtaWx5IGZvciBlbGVtZW50cyB0aGF0XG4gKiBhcmUgZXhwZWN0ZWQgdG8gYmUgcmVuZGVyZWQgd2l0aCBhIG1vbm9zcGFjZSBmb250LCBmYWxsaW5nXG4gKiBiYWNrIHRvIHRoZSBzeXN0ZW0gbW9ub3NwYWNlIHN0YWNrIGlmIHRoZXJlIGlzIG5vIGNvbmZpZ3VyZWRcbiAqICdtb25vJyBmb250IGZhbWlseS5cbiAqL1xuXG5wcmUsXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiB0aGVtZSgnZm9udEZhbWlseS5tb25vJywgdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlKTtcbn1cblxuLyoqXG4gKiAxLiBNYWtlIHJlcGxhY2VkIGVsZW1lbnRzIGBkaXNwbGF5OiBibG9ja2AgYnkgZGVmYXVsdCBhcyB0aGF0J3NcbiAqICAgIHRoZSBiZWhhdmlvciB5b3Ugd2FudCBhbG1vc3QgYWxsIG9mIHRoZSB0aW1lLiBJbnNwaXJlZCBieVxuICogICAgQ1NTIFJlbWVkeSwgd2l0aCBgc3ZnYCBhZGRlZCBhcyB3ZWxsLlxuICpcbiAqICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTRcbiAqIFxuICogMi4gQWRkIGB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlYCB0byBhbGlnbiByZXBsYWNlZCBlbGVtZW50cyBtb3JlXG4gKiAgICBzZW5zaWJseSBieSBkZWZhdWx0IHdoZW4gb3ZlcnJpZGluZyBgZGlzcGxheWAgYnkgYWRkaW5nIGFcbiAqICAgIHV0aWxpdHkgbGlrZSBgaW5saW5lYC5cbiAqXG4gKiAgICBUaGlzIGNhbiB0cmlnZ2VyIGEgcG9vcmx5IGNvbnNpZGVyZWQgbGludGluZyBlcnJvciBpbiBzb21lXG4gKiAgICB0b29scyBidXQgaXMgaW5jbHVkZWQgYnkgZGVzaWduLlxuICogXG4gKiAgICBodHRwczovL2dpdGh1Yi5jb20vamVuc2ltbW9ucy9jc3NyZW1lZHkvaXNzdWVzLzE0I2lzc3VlY29tbWVudC02MzQ5MzQyMTBcbiAqL1xuXG5pbWcsXG5zdmcsXG52aWRlbyxcbmNhbnZhcyxcbmF1ZGlvLFxuaWZyYW1lLFxuZW1iZWQsXG5vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29uc3RyYWluIGltYWdlcyBhbmQgdmlkZW9zIHRvIHRoZSBwYXJlbnQgd2lkdGggYW5kIHByZXNlcnZlXG4gKiB0aGVpciBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTRcbiAqL1xuXG5pbWcsXG52aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIEVuc3VyZSB0aGUgZGVmYXVsdCBicm93c2VyIGJlaGF2aW9yIG9mIHRoZSBgaGlkZGVuYCBhdHRyaWJ1dGUuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIixudWxsLCIvLyBDT05GSUdcbi8vIEZPTlRTXG5cbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9T3BlbitTYW5zOjMwMCw3MDAmZGlzcGxheT1zd2FwJyk7XG5cbiRvcGVuOiAnT3BlbiBTYW5zJztcblxuLy9CUkVBS1BPSU5UU1xuXG4kZGVza3RvcDogMTM2NnB4O1xuJHRhYmxldDogOTkxcHg7XG4kbW9iaWxlOiA3NjdweDtcbiR0aW55OiA1NzVweDtcblxuOnJvb3Qge1xuICAgIC0tYmxhY2s6ICMwMDAwMDA7XG4gICAgLS13aGl0ZTogI2ZmZjtcbiAgICAtLWdyZXk6ICM1NjU2NTY7XG4gICAgLS1saWdodC1ncmV5OiAjZWNlY2VjO1xuICAgIC0tcHJpbWFyeS1jb2xvdXI6ICNCRjE4MUE7XG59XG5cbi8vQ09MT1VSU1xuJGJsYWNrOiB2YXIoLS1ibGFjayk7XG4kd2hpdGU6IHZhcigtLXdoaXRlKTtcbiRncmV5OiB2YXIoLS1ncmV5KTtcbiRwcmltYXJ5LWNvbG91cjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuLy8gRU5EIENPTkZJR1xuXG4vLyBHUklEXG5AbWl4aW4gY29sKCkge1xuICAgIEBhcHBseSBmbGV4LWdyb3cgZmxleC13cmFwIGZsZXgtY29sIG92ZXJmbG93LXZpc2libGU7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgbWluLXdpZHRoOiA4LjMzMzMlO1xuXG4gICAgJi5sZy1oYWxmIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1kLWZ1bGwge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtLXRoaXJkIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc20taGFsZiB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtLWZ1bGwge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mbGV4LWdyaWQtcm93IHtcbiAgICBAYXBwbHkgZmxleCBmbGV4LXdyYXAgb3ZlcmZsb3ctdmlzaWJsZTtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbn1cblxuLmZsZXgtZ3JpZC1jb2wge1xuICAgIGZsZXg6IDEgMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgY29sKCk7XG5cbiAgICAmLTMge1xuICAgICAgICBAaW5jbHVkZSBjb2woKTtcbiAgICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgJi00IHtcbiAgICAgICAgQGluY2x1ZGUgY29sKCk7XG4gICAgICAgIGZsZXg6IDAgMCAzMy4zMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzJTtcbiAgICB9XG5cbiAgICAmLTUge1xuICAgICAgICBAaW5jbHVkZSBjb2woKTtcbiAgICAgICAgZmxleDogMCAwIDQxLjY2NjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDQxLjY2NjUlO1xuICAgIH1cblxuICAgICYtNiB7XG4gICAgICAgIEBpbmNsdWRlIGNvbCgpO1xuICAgICAgICAvLyBBUkUgVEhFU0UgV1JPTkc/XG4gICAgICAgIC8vIGZsZXg6IDAgMCAxNi42NjY2JTtcbiAgICAgICAgLy8gbWF4LXdpZHRoOiAxNi42NjY2JTtcbiAgICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgJi03IHtcbiAgICAgICAgQGluY2x1ZGUgY29sKCk7XG4gICAgICAgIC8vIEFSRSBUSEVTRSBXUk9ORz9cbiAgICAgICAgLy8gZmxleDogMCAwIDE0LjI4NTclO1xuICAgICAgICAvLyBtYXgtd2lkdGg6IDE0LjI4NTclO1xuICAgICAgICBmbGV4OiAwIDAgNTguMzMzMyU7XG4gICAgICAgIG1heC13aWR0aDogNTguMzMzMyU7XG4gICAgfVxuXG4gICAgJi04IHtcbiAgICAgICAgQGluY2x1ZGUgY29sKCk7XG4gICAgICAgIGZsZXg6IDAgMCA2Ni42NjY3JTtcbiAgICAgICAgbWF4LXdpZHRoOiA2Ni42NjY3JTtcbiAgICB9XG5cbiAgICAmLTEwIHtcbiAgICAgICAgQGluY2x1ZGUgY29sKCk7XG4gICAgICAgIGZsZXg6IDAgMCA4My4zMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA4My4zMzMzJTtcbiAgICB9XG5cbiAgICAmLWZpZnRoIHtcbiAgICAgICAgQGluY2x1ZGUgY29sKCk7XG4gICAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICAgIG1heC13aWR0aDogMjAlO1xuICAgIH1cblxuICAgICYtb2Zmc2V0IHtcbiAgICAgICAgJi0xIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2JTtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRU5EIEdSSURcblxuLy8gQkFTRVxuYm9keSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyZW07XG59XG5cbmgxLFxuLmgxIHtcbiAgICBmb250LXNpemU6IDNyZW07XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xufVxuXG5oMyxcbi5oMyxcbmgyLFxuLmgyIHtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBmb250LXNpemU6IDEuODc1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA3NWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICB9XG4gICAgJi0tc20ge1xuICAgICAgICBmb250LXNpemU6IDEuODc1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA3NWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICB9XG59XG5cbmg0LFxuLmg0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG51bCB7XG4gICAgQGFwcGx5IG1iLTY7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIEBhcHBseSBtYi0wO1xuICAgICAgICAmICsgKiB7XG4gICAgICAgICAgICBAYXBwbHkgbXQtNjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxub2wge1xuICAgIEBhcHBseSBtYi02O1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGE7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgQGFwcGx5IG1iLTA7XG4gICAgICAgICYgKyAqIHtcbiAgICAgICAgICAgIEBhcHBseSBtdC02O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGlzcGxheS0xIHtcbiAgICBmb250LXNpemU6IDMuNzVlbTtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBmb250LXNpemU6IDIuMjVlbTtcbiAgICB9XG59XG5cbnAge1xuICAgIEBhcHBseSBtYi02O1xuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgQGFwcGx5IG1iLTA7XG4gICAgICAgICYgKyB1bCwgJiArIG9sIHtcbiAgICAgICAgICAgICBAYXBwbHkgbXQtNjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnB5LTIwcHgge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuXG4ubXQge1xuICAgICYtMzBweCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuXG4gICAgJi02MHB4IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICB9XG59XG5cbi5tYiB7XG4gICAgJi02MHB4IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICB9XG5cbiAgICAmLTMwcHgge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cbn1cblxuc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcblxuICAgICYuYWJvdXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nOiA2MHB4IDA7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDYwcHggMCAwIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmKy5iZy1maXhlZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxuXG4gICAgJi5hYm91dC1wdC0wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJi5mYXEge1xuICAgICAgICAmOmhhcygrZm9vdGVyKSwgOmhhcygrc2VjdGlvbikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc2VjdGlvbi1ncmV5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAwLjEpO1xuICAgICAgICBwYWRkaW5nOiA2MHB4IDA7XG5cbiAgICAgICAgJjpoYXMoKy5iZy1ibGFjaykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgICAvLyAqIHtcbiAgICAgICAgLy8gICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIC8vIH1cblxuXG4gICAgICAgIHA6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgcGFkZGluZzogNjBweCAwIDYwcHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAmLnRleHQge1xuICAgIC8vICAgICBwIHtcbiAgICAvLyAgICAgICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmLnNlcnZpY2VzIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jb250YWN0LXBhZ2Uge1xuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jb250YWN0IHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250YWN0IHtcbiAgICAmX190aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgIH1cblxuICAgIC5jb250YWN0LWluZm8ge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2N3B4KSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbnRhaW5lci1sZyB7XG4gICAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cbi5jb250YWluZXItc20ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiA1NzVweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDU3NXB4O1xuICAgIH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc2OHB4KSB7XG4gICAgICAgIG1heC13aWR0aDogNzY4cHg7XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTBweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDk5MHB4O1xuICAgIH1cbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cblxuLmVsLXNoYWRvdyB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCMwMDAsIDAuMSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgJi0tYmwge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJvdHRvbTogLTYwcHg7XG4gICAgICAgICAgICBsZWZ0OiAtNjBweFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYmwtYWJvdXQge1xuICAgICAgICA+aW1nIHtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNjBweCk7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAtNjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmljb24td3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbn1cblxuI21hcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYWxpY2VibHVlO1xuICAgIGhlaWdodDogMzAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbn1cblxuLmNvbnRhY3QtcGFnZSAjbWFwIHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xufVxuXG4uY2xpZW50LXNsaWRlciB7XG4gICAgLnNsaWNrLXNsaWRlPmRpdiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDg0cHg7XG4gICAgfVxufVxuXG4uYnJhbmQtc2xpZGVyIHtcbiAgICAuc2xpY2stc2xpZGU+ZGl2IHtcbiAgICAgICAgbWluLWhlaWdodDogODRweDtcbiAgICB9XG59XG5cbi50ZXN0aW1vbmlhbC1zbGlkZXIge1xuICAgIHBhZGRpbmc6IDAgNjBweDtcblxuICAgIC5zbGljay1hcnJvdyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxNXB4O1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDQ1cHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3VyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgICBAYXBwbHkgbWItMTtcbiAgICB9XG5cbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjM1Nic7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stcHJldiB7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMzU1JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4udGV4dC1zbGlkZXIge1xuICAgIHBhZGRpbmc6IDAgNjBweDtcblxuICAgIC5zbGljay1hcnJvdyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpO1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDQ1cHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3VyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMzU2JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYzNTUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbi8qIHB1cmdlY3NzIHN0YXJ0IGlnbm9yZSAqL1xuXG4vLyAjbWFya2V0aW5nLWNvbnNlbnQsXG4vLyAjZW5xdWlyeV9hZ3JlZUNvbnRhY3Qge1xuLy8gICAgIGRpc3BsYXk6IG5vbmU7XG5cbi8vICAgICArbGFiZWwge1xuLy8gICAgICAgICAmOmJlZm9yZSB7XG4vLyAgICAgICAgICAgICBjb250ZW50OiAnXFxmMGM4Jztcbi8vICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgUHJvJztcbi8vICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4vLyAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgICAmOmNoZWNrZWQrbGFiZWw6YmVmb3JlIHtcbi8vICAgICAgICAgY29udGVudDogJ1xcZjE0YSc7XG4vLyAgICAgfVxuLy8gfVxuXG4vKiBwdXJnZWNzcyBlbmQgaWdub3JlICovXG5cbi5zb2NpYWwge1xuICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgPmxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgICAgICAgK2xpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNoZWFkZXIgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBhOmhvdmVyIHtcbiAgICAgICAgQGFwcGx5IHRleHQtcHJpbWFyeTtcbiAgICB9XG59XG5cbi8vIFRBSUxXSU5EIE9OTFlcblxuQHNjcmVlbiBsZyB7XG4gICAgI21haW5OYXYgLnN1Ym1lbnUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICNtYWluTmF2IGxpOmhvdmVyIC5zdWJtZW51IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uc3VibWVudSBhIHtcbiAgICBAYXBwbHkgaW5saW5lLWJsb2NrIHRleHQtYmxhY2sgbm8tdW5kZXJsaW5lIHB5LTEgcHgtNCBsZWFkaW5nLXRpZ2h0O1xufVxuXG4udGVzdGltb25pYWwtYmxvY2sge1xuICAgIEBhcHBseSBiZy1jb3ZlciBiZy1uby1yZXBlYXQgYmctY2VudGVyO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3Rlc3RpbW9uaWFsLWJnLmpwZycpO1xufVxuXG4ucmF0aW5nMSB7XG4gICAgLnJhdGluZ19fc3RhcjIsIC5yYXRpbmdfX3N0YXIzLCAucmF0aW5nX19zdGFyNCwgLnJhdGluZ19fc3RhcjUge1xuICAgICAgICBAYXBwbHkgaGlkZGVuO1xuICAgIH1cbn1cblxuLnJhdGluZzIge1xuICAgIC5yYXRpbmdfX3N0YXIxLCAucmF0aW5nX19zdGFyMywgLnJhdGluZ19fc3RhcjQsIC5yYXRpbmdfX3N0YXI1IHtcbiAgICAgICAgQGFwcGx5IGhpZGRlbjtcbiAgICB9XG59XG5cbi5yYXRpbmczIHtcbiAgICAucmF0aW5nX19zdGFyMSwgLnJhdGluZ19fc3RhcjIsIC5yYXRpbmdfX3N0YXI0LCAucmF0aW5nX19zdGFyNSB7XG4gICAgICAgIEBhcHBseSBoaWRkZW47XG4gICAgfVxufVxuXG4ucmF0aW5nNCB7XG4gICAgLnJhdGluZ19fc3RhcjEsIC5yYXRpbmdfX3N0YXIyLCAucmF0aW5nX19zdGFyMywgLnJhdGluZ19fc3RhcjUge1xuICAgICAgICBAYXBwbHkgaGlkZGVuO1xuICAgIH1cbn1cblxuLnJhdGluZzUge1xuICAgIC5yYXRpbmdfX3N0YXIxLCAucmF0aW5nX19zdGFyMiwgLnJhdGluZ19fc3RhcjMsIC5yYXRpbmdfX3N0YXI0IHtcbiAgICAgICAgQGFwcGx5IGhpZGRlbjtcbiAgICB9XG59XG5cbi50ZXN0aW1vbmlhbF9fdGV4dCB7XG4gICAgcCB7XG4gICAgICAgIEBhcHBseSBtYi0yO1xuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBAYXBwbHkgbWItMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN0dWR5LWdyYWQge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGFwcGx5IGFic29sdXRlIHRvcC0wIGxlZnQtMCB3LWZ1bGwgaC1mdWxsIG1peC1ibGVuZC1tdWx0aXBseSB6LTEwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2JhKDAsIDAsIDAsIDEpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBAYXBwbHkgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHctZnVsbCBoLWZ1bGwgbWl4LWJsZW5kLW11bHRpcGx5IHotMCBiZy1wcmltYXJ5IG1peC1ibGVuZC1tdWx0aXBseTtcbiAgICB9XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIEBhcHBseSByZWxhdGl2ZSB6LTIwO1xuICAgIH1cbn1cblxuLnN0dWR5LXRleHQge1xuICAgIGgyLCBoMywgaDQsIGg1LCBoNiwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICAgICAgICBAYXBwbHkgdGV4dC1wcmltYXJ5O1xuICAgIH1cbiAgICBoMyB7XG4gICAgICAgIEBhcHBseSB0ZXh0LTN4bDtcbiAgICB9XG4gICAgdGFibGUge1xuICAgICAgICBAYXBwbHkgdy1mdWxsIG1iLTYgYm9yZGVyIGJvcmRlci1ibGFjaztcbiAgICAgICAgIHRkIHtcbiAgICAgICAgICAgIEBhcHBseSBwLTMgYm9yZGVyLXIgYm9yZGVyLWJsYWNrO1xuICAgICAgICAgICAgJjo6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBAYXBwbHkgYm9yZGVyLW5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIEBhcHBseSBiZy1wcmltYXJ5IHRleHQtd2hpdGU7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgQGFwcGx5IGJvcmRlci1ibGFjayBib3JkZXItYjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxhbmRpbmctdGV4dCB7XG4gICAgaDIsIGgzLCBoNCwgaDUsIGg2LCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XG4gICAgICAgIEBhcHBseSB0ZXh0LXByaW1hcnk7XG4gICAgfVxufVxuXG4uc2VydmljZS1saW5rIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIHNhdHVyYXRlKDEwMCUpIGludmVydCgxMiUpIHNlcGlhKDQ1JSkgc2F0dXJhdGUoNjQ2MCUpIGh1ZS1yb3RhdGUoMzQ5ZGVnKSBicmlnaHRuZXNzKDExMCUpIGNvbnRyYXN0KDk4JSk7XG4gICAgfVxufVxuXG4udGV4dC1jb2xzIHtcbiAgICBwOm50aC1jaGlsZCgyKSwgcDpudGgtY2hpbGQoMykge1xuICAgICAgICBAYXBwbHkgaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgICB9XG4gICAgcDpudGgtY2hpbGQoMikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgfVxuICAgIHA6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgfVxufVxuXG4udGV4dC1hbmQtaW1hZ2U6aGFzKCsgLnRleHQtYW5kLWltYWdlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCFpbXBvcnRhbnQ7XG59XG5cbmRldGFpbHMgPiBzdW1tYXJ5IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBhcHBseSBjdXJzb3ItcG9pbnRlcjtcbiAgICB9XG59XG5cbmRldGFpbHMgPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5kZXRhaWxzID4gc3VtbWFyeTo6YWZ0ZXIge1xuICAgIEBhcHBseSBmb250LWljb25zIGFic29sdXRlIHJpZ2h0LTY7XG4gICAgY29udGVudDogJ1xcZjA3OCc7XG59XG5cbmRldGFpbHNbb3Blbl0gPiBzdW1tYXJ5OjphZnRlciB7XG4gICAgY29udGVudDogJ1xcZjA3Nyc7XG59XG5cbi50ZXh0c2xpZGVyLS1jb250ZW50IHtcbiAgICB1bCwgb2wge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbn1cblxuLm1lbnUtd3JhcHBlciB7XG4gICAgQGFwcGx5IG1heC1oLVs4MHZoXSBvdmVyZmxvdy15LWF1dG87XG4gICAgQHNjcmVlbiBsZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6YXV0bztcbiAgICAgICAgQGFwcGx5IG92ZXJmbG93LXktdmlzaWJsZTtcbiAgICB9XG59XG5cbnNlY3Rpb24uc2VjdGlvbi1zZXJ2aWNlLW5ld3M6aGFzKCsuc2VjdGlvbi1ncmV5LCArLmJnLWJsYWNrKSB7XG4gICAgQGFwcGx5IHBiLTA7XG59XG5cbi8vIEVORCBCQVNFXG5cbi8vIEVSUk9SXG5ib2R5LmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvdXI7XG59XG5cbi8vIEVORCBFUlJPUlxuXG4vLyBOQVZcbiNoZWFkZXIge1xuICAgIC5zb2NpYWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQHNjcmVlbiBtZCB7XG4gICAgICAgICAgICBAYXBwbHkgbXQtMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI21haW5OYXY6bm90KC5hcmVhcy1mb290ZXItbWVudSB1bCkgLmFjdGl2ZSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbn1cblxuLnNpdGUtaGVhZGVyIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIEBhcHBseSBhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSB6LTEwO1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXM7XG4gICAgfVxuXG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIEBhcHBseSByZWxhdGl2ZSB6LTIwO1xuICAgIH1cbn1cblxuLnNpdGUtaGVhZGVyLS1ib3JkZXIsXG4uc2l0ZS1oZWFkZXItLWJvcmRlci1jb25zdCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwcmltYXJ5LWNvbG91cjtcbn1cblxuLnNpdGUtaGVhZGVyLS1vcGFjaXR5IHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICAgIH1cbn1cblxuYnV0dG9uI25hdi10b2dnbGUge1xuICAgICY6Zm9jdXMge1xuICAgICAgICBAYXBwbHkgb3V0bGluZS1ub25lO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbG91cjtcbiAgICB9XG59XG5cbi5icmFuZC1sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5zdHJhcGxpbmUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTUwMHB4KSB7XG4gICAgLmJyYW5kLWxvZ28ge1xuICAgICAgICBtYXgtd2lkdGg6IDE3NXB4O1xuICAgIH1cbiAgICAuc3RyYXBsaW5lIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cbiAgICAuc3RyYXBsaW5lIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICB9XG59XG5cbi8vIEVORCBOQVZcblxuLy8gUE9QVVBcbi8qIE1hZ25pZmljIFBvcHVwIENTUyAqL1xuLyogcHVyZ2Vjc3Mgc3RhcnQgaWdub3JlICovXG4ubWZwLWJnIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTA0MjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBiYWNrZ3JvdW5kOiAjMGIwYjBiO1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLm1mcC13cmFwIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTA0MztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ubWZwLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1mcC1jb250YWluZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tZnAtYWxpZ24tdG9wIC5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1mcC1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB6LWluZGV4OiAxMDQ1O1xufVxuXG4ubWZwLWlubGluZS1ob2xkZXIgLm1mcC1jb250ZW50LFxuLm1mcC1hamF4LWhvbGRlciAubWZwLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLm1mcC1hamF4LWN1ciB7XG4gICAgY3Vyc29yOiBwcm9ncmVzcztcbn1cblxuLm1mcC16b29tLW91dC1jdXIsXG4ubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gICAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xuICAgIGN1cnNvcjogem9vbS1vdXQ7XG59XG5cbi5tZnAtem9vbSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICAgIGN1cnNvcjogLW1vei16b29tLWluO1xuICAgIGN1cnNvcjogem9vbS1pbjtcbn1cblxuLm1mcC1hdXRvLWN1cnNvciAubWZwLWNvbnRlbnQge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLm1mcC1jbG9zZSxcbi5tZnAtYXJyb3csXG4ubWZwLXByZWxvYWRlcixcbi5tZnAtY291bnRlciB7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1mcC1oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tZnAtcHJlbG9hZGVyIHtcbiAgICBjb2xvcjogI0NDQztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IC0wLjhlbTtcbiAgICBsZWZ0OiA4cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB6LWluZGV4OiAxMDQ0O1xufVxuXG4ubWZwLXByZWxvYWRlciBhIHtcbiAgICBjb2xvcjogI0NDQztcbn1cblxuLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XG4gICAgY29sb3I6ICNGRkY7XG59XG5cbi5tZnAtcy1yZWFkeSAubWZwLXByZWxvYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1mcC1zLWVycm9yIC5tZnAtY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuYnV0dG9uLm1mcC1jbG9zZSxcbmJ1dHRvbi5tZnAtYXJyb3cge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAxMDQ2O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG59XG5cbi5tZnAtY2xvc2Uge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBsaW5lLWhlaWdodDogNDRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlO1xufVxuXG4ubWZwLWNsb3NlOmhvdmVyLFxuLm1mcC1jbG9zZTpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLm1mcC1jbG9zZTphY3RpdmUge1xuICAgIHRvcDogMXB4O1xufVxuXG4ubWZwLWNsb3NlLWJ0bi1pbiAubWZwLWNsb3NlIHtcbiAgICBjb2xvcjogIzMzMztcbn1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jbG9zZSxcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICByaWdodDogLTZweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5tZnAtY291bnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBjb2xvcjogI0NDQztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1mcC1hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC01NXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgaGVpZ2h0OiAxMTBweDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWZwLWFycm93OmFjdGl2ZSB7XG4gICAgbWFyZ2luLXRvcDogLTU0cHg7XG59XG5cbi5tZnAtYXJyb3c6aG92ZXIsXG4ubWZwLWFycm93OmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubWZwLWFycm93OmJlZm9yZSxcbi5tZnAtYXJyb3c6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgICBib3JkZXI6IG1lZGl1bSBpbnNldCB0cmFuc3BhcmVudDtcbn1cblxuLm1mcC1hcnJvdzphZnRlciB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxM3B4O1xuICAgIHRvcDogOHB4O1xufVxuXG4ubWZwLWFycm93OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLm1mcC1hcnJvdy1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xufVxuXG4ubWZwLWFycm93LWxlZnQ6YWZ0ZXIge1xuICAgIGJvcmRlci1yaWdodDogMTdweCBzb2xpZCAjRkZGO1xuICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xufVxuXG4ubWZwLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgIzNGM0YzRjtcbn1cblxuLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIge1xuICAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICNGRkY7XG4gICAgbWFyZ2luLWxlZnQ6IDM5cHg7XG59XG5cbi5tZnAtYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgICBib3JkZXItbGVmdDogMjdweCBzb2xpZCAjM0YzRjNGO1xufVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDkwMHB4O1xufVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gICAgdG9wOiAtNDBweDtcbn1cblxuLm1mcC1pZnJhbWUtc2NhbGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xufVxuXG4ubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi8qIE1haW4gaW1hZ2UgaW4gcG9wdXAgKi9cbmltZy5tZnAtaW1nIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogNDBweCAwIDQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xuLm1mcC1maWd1cmUge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4ubWZwLWZpZ3VyZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA0MHB4O1xuICAgIGJvdHRvbTogNDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogLTE7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2dyb3VuZDogIzQ0NDtcbn1cblxuLm1mcC1maWd1cmUgc21hbGwge1xuICAgIGNvbG9yOiAjQkRCREJEO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbn1cblxuLm1mcC1maWd1cmUgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5tZnAtYm90dG9tLWJhciB7XG4gICAgbWFyZ2luLXRvcDogLTM2cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLm1mcC10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogI0YzRjNGMztcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgcGFkZGluZy1yaWdodDogMzZweDtcbn1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5tZnAtZ2FsbGVyeSAubWZwLWltYWdlLWhvbGRlciAubWZwLWZpZ3VyZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSxcbnNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KSB7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXG4gICAgICovXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtaW1hZ2UtaG9sZGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlOmFmdGVyIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cblxuICAgIC5tZnAtaW1nLW1vYmlsZSAubWZwLWJvdHRvbS1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyOmVtcHR5IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgdG9wOiAzcHg7XG4gICAgfVxuXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtY2xvc2Uge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLm1mcC1hcnJvdyB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICB9XG5cbiAgICAubWZwLWFycm93LWxlZnQge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDA7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDA7XG4gICAgfVxuXG4gICAgLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICB9XG5cbiAgICAubWZwLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gICAgfVxufVxuLyogcHVyZ2Vjc3MgZW5kIGlnbm9yZSAqL1xuLy8gRU5EIFBPUFVQXG5cbi8vIENPTVBPTkVOVFMgSEVST1xuLnNsaWRlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcblxuICAgICZfX2xvZ29zIHtcbiAgICAgICAgcGFkZGluZy10b3A6MzBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuOCk7XG4gICAgfVxuXG4gICAgJl9fbG9nb3MtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLmhlcm8ge1xuICAgIEBhcHBseSByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC5zbGlkZSA+IGRpdjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBAYXBwbHkgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHctZnVsbCBoLWZ1bGwgei0xMCBtaXgtYmxlbmQtbXVsdGlwbHk7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgzNjBkZWcsIHJnYmEoMCwgMCwgMCwgMSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gICAgfVxuICAgIC5zbGlkZV9fbGFiZWwge1xuICAgICAgICBAYXBwbHkgcmVsYXRpdmUgei0yMDtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG5zZWN0aW9uLnZpZGVvIHtcbiAgICBAYXBwbHkgcmVsYXRpdmUgdy1zY3JlZW4gaC1bNzUwcHhdIGJnLWJsYWNrO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MHB4KSB7XG4gICAgICAgIEBhcHBseSBoLXNjcmVlbjtcbiAgICB9XG4gICAgI215VmlkZW8ge1xuICAgICAgICBAYXBwbHkgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHotMCBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlcjtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGFwcGx5IGFic29sdXRlIHRvcC0wIGxlZnQtMCB3LWZ1bGwgaC1mdWxsIGJnLWJsYWNrIG9wYWNpdHktNzAgei0yMDtcbiAgICB9XG59XG5cbi8vIEVORCBDT01QT05FTlRTIEhFUk9cblxuLy8gQ09NUE9ORU5UUyBCVVRUT05TXG4uYnRuIHtcbiAgICBAYXBwbHkgYmctcHJpbWFyeSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMiBweC00IHctZnVsbCByb3VuZGVkLWZ1bGwgdGV4dC1jZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvdXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDY0cHg7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICB9XG4gICAgJi0tZmx1aWQge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICAgICYtLXdoaXRlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cblxuLmJ0bi13aWRlIHtcbiAgICBtYXgtd2lkdGg6IDM3NXB4O1xufVxuXG4uYnRuLXNtIHtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuXG4uYnRuLXZpZGVve1xuICAgIEBhcHBseSB0ZXh0LXhzO1xuICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgJHByaW1hcnktY29sb3VyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG4vLyBFTkQgQ09NUE9ORU5UUyBCVVRUT05TXG5cbi8vIENPTVBPTkVOVFMgU0VSVklDRVNcbi5zZXJ2aWNlcyB7XG4gICAgJi1zaW5nbGUge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIEBhcHBseSBmbGV4IGZsZXgtY29sIGp1c3RpZnktZW5kIGJnLWNvdmVyIHJlbGF0aXZlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCAkZ3JleTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA1NTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIEBhcHBseSBhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgdy1mdWxsO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKCMwMDAsIDApLCByZ2JhKCMwMDAsIDAuOSkpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkICRibGFjaztcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zZXJ2aWNlcy1zaW5nbGVfX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEyMCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgICAgICB9XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4rMykge1xuICAgICAgICAgICAgLnNlcnZpY2VzLXNpbmdsZV9fbGluayB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtbGFzdC1jaGlsZCgtbisyKSB7XG4gICAgICAgICAgICAuc2VydmljZXMtc2luZ2xlX19saW5rIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4rMSkge1xuICAgICAgICAgICAgLnNlcnZpY2VzLXNpbmdsZV9fbGluayB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndvcmsge1xuICAgICYtc2luZ2xlIHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIEVORCBDT01QT05FTlRTIFNFUlZJQ0VTXG5cbi8vIENPTVBPTkVOVFMgR0FMTEVSWVxuLmdhbGxlcnktc2luZ2xlIHtcblxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDU0JTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG59XG5cbnNlY3Rpb24uc2VydmljZXMuZ2FsbGVyeSB7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG59XG4vLyBFTkQgQ09NUE9ORU5UUyBHQUxMRVJZXG5cbi8vIENPTVBPTkVOVFMgRk9PVEVSXG5mb290ZXIge1xuICAgIC5sZWdhbCB7XG4gICAgICAgIC5zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYTpob3ZlciB7XG4gICAgICAgIEBhcHBseSB0ZXh0LWJsYWNrO1xuICAgIH1cbn1cblxuLmZvb3RlciB7XG4gICAgJl9fbG9nb3Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cblxuICAgICZfX2xvZ29zLWltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxufVxuLy8gRU5EIENPTVBPTkVOVFMgRk9PVEVSXG5cbi50aXRsZS1yZWQge1xuICAgIGgyLCBoMywgaDQge1xuICAgICAgICBAYXBwbHkgdGV4dC1wcmltYXJ5O1xuICAgIH1cbn1cblxuXG4uYXJlYXMtZm9vdGVyLW1lbnUgdWwge1xuICAgIEBhcHBseSBibG9jayBsaXN0LW5vbmUgcC0wIG0tMDtcbn1cblxudWwucGFnaW5hdGlvbiB7XG4gICAgQGFwcGx5IGxpc3Qtbm9uZSB0ZXh0LWNlbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtNCBtYi0xMjtcbiAgICBsaSB7XG4gICAgICAgIEBhcHBseSBiZy1wcmltYXJ5IHRleHQtd2hpdGUgcm91bmRlZC1mdWxsIGxlYWRpbmctbm9uZSB3LTEyIGgtMTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXI7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGFwcGx5IHctZnVsbCBoLWZ1bGwgcC0zIGxlYWRpbmctbm9uZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBAYXBwbHkgYmctYmxhY2s7XG4gICAgICAgIH1cbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgICBAYXBwbHkgY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTA7XG4gICAgICAgIH1cbiAgICAgICAgJjpoYXMoYSk6aG92ZXIge1xuICAgICAgICAgICAgQGFwcGx5IGJnLWJsYWNrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiI2Nvb2tpZXMtYmFyIHtcbiAgICBAYXBwbHkgZml4ZWQgYm90dG9tLTAgbGVmdC0wIHctZnVsbCBwLTggYm9yZGVyLXQgYm9yZGVyLXByaW1hcnkgYmctd2hpdGUgei01MCB0ZXh0LWJsYWNrIHRleHQtbGVmdDtcblxuXG59XG5cbiNjb29raWVzLWJhci10YWIge1xuICAgIEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBjdXJzb3ItcG9pbnRlciB0ZXh0LWNlbnRlciBiZy13aGl0ZSB0ZXh0LTR4bCB0ZXh0LWJsYWNrIGJvcmRlciBib3JkZXItYmxhY2sgaC0xNiB3LTE2IHJvdW5kZWQtZnVsbDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBib3R0b206IDE1cHg7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDAwO1xuICAgICAgICAvLyBmb250LXNpemU6IDQwcHg7XG4gICAgICAgIC8vIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAvLyBib3JkZXI6IGJsYWNrIDJweCBzb2xpZDtcbiAgICAgICAgLy8gYm9yZGVyLXJhZGl1czogNTAlO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/