@font-face {
  font-family: Montserrat;
  font-style: normal;
  font-weight: 400;
  src: local(Montserrat-Regular),url(//fonts.gstatic.com/s/montserrat/v6/zhcz-_WihjSQC0oHJ9TCYFQlYEbsez9cZjKsNMjLOwM.eot?#) format("eot"),url(//fonts.gstatic.com/s/montserrat/v6/zhcz-_WihjSQC0oHJ9TCYPk_vArhqVIZ0nv9q090hN8.woff2) format("woff2"),url(//fonts.gstatic.com/s/montserrat/v6/zhcz-_WihjSQC0oHJ9TCYBsxEYwM7FgeyaSgU71cLG0.woff) format("woff");
}

@font-face {
  font-family: Montserrat;
  font-style: normal;
  font-weight: 700;
  src: local(Montserrat-Bold),url(//fonts.gstatic.com/s/montserrat/v6/IQHow_FEYlDC4Gzy_m8fcmzklk6MJbhg7BmBP42CjCQ.eot?#) format("eot"),url(//fonts.gstatic.com/s/montserrat/v6/IQHow_FEYlDC4Gzy_m8fcoWiMMZ7xLd792ULpGE4W_Y.woff2) format("woff2"),url(//fonts.gstatic.com/s/montserrat/v6/IQHow_FEYlDC4Gzy_m8fcgFhaRv2pGgT5Kf0An0s4MM.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: italic;
  font-weight: 100;
  src: local("Roboto Thin Italic"),local(Roboto-ThinItalic),url(//fonts.gstatic.com/s/roboto/v15/12mE4jfMSBTmg-81EiS-YVQlYEbsez9cZjKsNMjLOwM.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/12mE4jfMSBTmg-81EiS-Yfk_vArhqVIZ0nv9q090hN8.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/12mE4jfMSBTmg-81EiS-YRsxEYwM7FgeyaSgU71cLG0.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: italic;
  font-weight: 300;
  src: local("Roboto Light Italic"),local(Roboto-LightItalic),url(//fonts.gstatic.com/s/roboto/v15/7m8l7TlFO-S3VkhHuR0at2fQcKutQXcIrRfyR5jdjY8.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/7m8l7TlFO-S3VkhHuR0at44P5ICox8Kq3LLUNMylGO4.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/7m8l7TlFO-S3VkhHuR0at4bN6UDyHWBl620a-IRfuBk.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: italic;
  font-weight: 400;
  src: local("Roboto Italic"),local(Roboto-Italic),url(//fonts.gstatic.com/s/roboto/v15/OiNnAEwKzzJkQCr4qZmeq_esZW2xOQ-xsNqO47m55DA.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/vPcynSL0qHq_6dX7lKVByfesZW2xOQ-xsNqO47m55DA.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/1pO9eUAp8pSF8VnRTP3xnvesZW2xOQ-xsNqO47m55DA.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: italic;
  font-weight: 500;
  src: local("Roboto Medium Italic"),local(Roboto-MediumItalic),url(//fonts.gstatic.com/s/roboto/v15/OLffGBTaF0XFOW1gnuHF0WfQcKutQXcIrRfyR5jdjY8.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/OLffGBTaF0XFOW1gnuHF0Y4P5ICox8Kq3LLUNMylGO4.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/OLffGBTaF0XFOW1gnuHF0YbN6UDyHWBl620a-IRfuBk.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: italic;
  font-weight: 700;
  src: local("Roboto Bold Italic"),local(Roboto-BoldItalic),url(//fonts.gstatic.com/s/roboto/v15/t6Nd4cfPRhZP44Q5QAjcC2fQcKutQXcIrRfyR5jdjY8.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/t6Nd4cfPRhZP44Q5QAjcC44P5ICox8Kq3LLUNMylGO4.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/t6Nd4cfPRhZP44Q5QAjcC4bN6UDyHWBl620a-IRfuBk.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: italic;
  font-weight: 900;
  src: local("Roboto Black Italic"),local(Roboto-BlackItalic),url(//fonts.gstatic.com/s/roboto/v15/bmC0pGMXrhphrZJmniIZpWfQcKutQXcIrRfyR5jdjY8.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/bmC0pGMXrhphrZJmniIZpY4P5ICox8Kq3LLUNMylGO4.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/bmC0pGMXrhphrZJmniIZpYbN6UDyHWBl620a-IRfuBk.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 100;
  src: local("Roboto Thin"),local(Roboto-Thin),url(//fonts.gstatic.com/s/roboto/v15/PP2U5prMl9yvKSWVu6DtvPesZW2xOQ-xsNqO47m55DA.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/2tsd397wLxj96qwHyNIkxPesZW2xOQ-xsNqO47m55DA.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/vzIUHo9z-oJ4WgkpPOtg1_esZW2xOQ-xsNqO47m55DA.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 300;
  src: local("Roboto Light"),local(Roboto-Light),url(//fonts.gstatic.com/s/roboto/v15/Hgo13k-tfSpn0qi1SFdUffY6323mHUZFJMgTvxaG2iE.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/Hgo13k-tfSpn0qi1SFdUfVtXRa8TVwTICgirnJhmVJw.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/Hgo13k-tfSpn0qi1SFdUfT8E0i7KZn-EPnyo3HZu7kw.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 400;
  src: local(Roboto),local(Roboto-Regular),url(//fonts.gstatic.com/s/roboto/v15/5YB-ifwqHP20Yn46l_BDhA.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/CWB0XYA8bzo0kSThX0UTuA.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/2UX7WLTfW3W8TclTUvlFyQ.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 500;
  src: local("Roboto Medium"),local(Roboto-Medium),url(//fonts.gstatic.com/s/roboto/v15/RxZJdnzeo3R5zSexge8UUfY6323mHUZFJMgTvxaG2iE.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/RxZJdnzeo3R5zSexge8UUT8E0i7KZn-EPnyo3HZu7kw.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 700;
  src: local("Roboto Bold"),local(Roboto-Bold),url(//fonts.gstatic.com/s/roboto/v15/d-6IYplOFocCacKzxwXSOPY6323mHUZFJMgTvxaG2iE.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/d-6IYplOFocCacKzxwXSOFtXRa8TVwTICgirnJhmVJw.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/d-6IYplOFocCacKzxwXSOD8E0i7KZn-EPnyo3HZu7kw.woff) format("woff");
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 900;
  src: local("Roboto Black"),local(Roboto-Black),url(//fonts.gstatic.com/s/roboto/v15/mnpfi9pxYH-Go5UiibESIvY6323mHUZFJMgTvxaG2iE.eot?#) format("eot"),url(//fonts.gstatic.com/s/roboto/v15/mnpfi9pxYH-Go5UiibESIltXRa8TVwTICgirnJhmVJw.woff2) format("woff2"),url(//fonts.gstatic.com/s/roboto/v15/mnpfi9pxYH-Go5UiibESIj8E0i7KZn-EPnyo3HZu7kw.woff) format("woff");
}

/* ==========================================================================
 * Styles
 * ========================================================================== */

/* Vendor */

/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */

/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in IE and iOS.
 */

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

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary { /* 1 */
  display: block;
}

/**
 * Add the correct display in IE 9-.
 */

audio, canvas, progress, video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

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

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */

template, [hidden] {
  display: none;
}

/* Links
   ========================================================================== */

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */

a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */

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

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */

b, strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b, strong {
  font-weight: bolder;
}

/**
 * Add the correct font style in Android 4.3-.
 */

dfn {
  font-style: italic;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

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

/**
 * Add the correct background and color in IE 9-.
 */

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

/**
 * 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;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10-.
 */

img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */

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

/* Grouping content
   ========================================================================== */

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

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

/**
 * Add the correct margin in IE 8.
 */

figure {
  margin: 1em 40px;
  margin: 1em 2.5rem;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/* Forms
   ========================================================================== */

/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */

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

/**
 * Restore the font weight unset by the previous rule.
 */

optgroup {
  font-weight: bold;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button, input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button, select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */

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

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */

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

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */

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

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button, [type="number"]::-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 and cancel buttons in Chrome and Safari on OS X.
 */

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

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */

::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

/**
 * 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 */
}

/*! sanitize.css v4.1.0 | CC0 License | github.com/jonathantneal/sanitize.css */

/* Display definitions
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary { /* 1 */
	display: block;
}

/**
 * Add the correct display in IE 9-.
 */

audio, canvas, progress, video {
	display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

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

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */

template, [hidden] {
	display: none;
}

/* Elements of HTML (https://www.w3.org/TR/html5/semantics.html)
   ========================================================================== */

/**
 * 1. Remove repeating backgrounds in all browsers (opinionated).
 * 2. Add box sizing inheritence in all browsers (opinionated).
 */

*, ::before, ::after {
	background-repeat: no-repeat; /* 1 */
	box-sizing: inherit; /* 2 */
}

/**
 * 1. Add text decoration inheritance in all browsers (opinionated).
 * 2. Add vertical alignment inheritence in all browsers (opinionated).
 */

::before, ::after {
	text-decoration: inherit; /* 1 */
	vertical-align: inherit; /* 2 */
}

/**
 * 1. Add border box sizing in all browsers (opinionated).
 * 2. Add the default cursor in all browsers (opinionated).
 * 3. Add a flattened line height in all browsers (opinionated).
 * 4. Prevent font size adjustments after orientation changes in IE and iOS.
 */

html {
	box-sizing: border-box; /* 1 */
	cursor: default; /* 2 */
	font-family: sans-serif; /* 3 */
	line-height: 1.5; /* 3 */
	-ms-text-size-adjust: 100%; /* 4 */
	-webkit-text-size-adjust: 100%; /* 5 */
}

/* Sections (https://www.w3.org/TR/html5/sections.html)
   ========================================================================== */

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
	margin: 0;
}

/**
 * Correct the font sizes and margins on `h1` elements within
 * `section` and `article` contexts in Chrome, Firefox, and Safari.
 */

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

/* Grouping content (https://www.w3.org/TR/html5/grouping-content.html)
   ========================================================================== */

/**
 * 1. Correct font sizing inheritance and scaling in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

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

/**
 * 1. Correct the height in Firefox.
 * 2. Add visible overflow in Edge and IE.
 */

hr {
	height: 0; /* 1 */
	overflow: visible; /* 2 */
}

/**
 * Remove the list style on navigation lists in all browsers (opinionated).
 */

nav ol, nav ul {
	list-style: none;
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Add a bordered underline effect in all browsers.
 * 2. Remove text decoration in Firefox 40+.
 */

abbr[title] {
	border-bottom: 1px dotted; /* 1 */
	text-decoration: none; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */

b, strong {
	font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b, strong {
	font-weight: bolder;
}

/**
 * Add the correct font style in Android 4.3-.
 */

dfn {
	font-style: italic;
}

/**
 * Add the correct colors in IE 9-.
 */

mark {
	background-color: #ffff00;
	color: #000000;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
	vertical-align: baseline;
}

/**
 * Correct the font size in all browsers.
 */

small {
	font-size: 83.3333%;
}

/**
 * Change the positioning on superscript and subscript elements
 * in all browsers (opinionated).
 * 1. Correct the font size in all browsers.
 */

sub, sup {
	font-size: 83.3333%; /* 1 */
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -.25em;
}

sup {
	top: -.5em;
}

/*
 * Remove the text shadow on text selections (opinionated).
 * 1. Restore the coloring undone by defining the text shadow (opinionated).
 */

::-moz-selection {
	background-color: #b3d4fc; /* 1 */
	color: #000000; /* 1 */
	text-shadow: none;
}

::selection {
	background-color: #b3d4fc; /* 1 */
	color: #000000; /* 1 */
	text-shadow: none;
}

/* Embedded content (https://www.w3.org/TR/html5/embedded-content-0.html)
   ========================================================================== */

/*
 * Change the alignment on media elements in all browers (opinionated).
 */

audio, canvas, iframe, img, svg, video {
	vertical-align: middle;
}

/**
 * Remove the border on images inside links in IE 10-.
 */

img {
	border-style: none;
}

/**
 * Change the fill color to match the text color in all browsers (opinionated).
 */

svg {
	fill: currentColor;
}

/**
 * Hide the overflow in IE.
 */

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

/* Links (https://www.w3.org/TR/html5/links.html#links)
   ========================================================================== */

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove the gaps in underlines in iOS 8+ and Safari 8+.
 */

a {
	background-color: transparent; /* 1 */
	-webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * Remove the outline when hovering in all browsers (opinionated).
 */

a:hover {
	outline-width: 0;
}

/* Tabular data (https://www.w3.org/TR/html5/tabular-data.html)
   ========================================================================== */

/*
 * Remove border spacing in all browsers (opinionated).
 */

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

/* transform-style:  (https://www.w3.org/TR/html5/forms.html)
   ========================================================================== */

/**
 * 1. Remove the default styling in all browsers (opinionated).
 * 3. Remove the margin in Firefox and Safari.
 */

button, input, select, textarea {
	background-color: transparent; /* 1 */
	border-style: none; /* 1 */
	color: inherit; /* 1 */
	font-size: 1em; /* 1 */
	margin: 0; /* 3 */
}

/**
 * Correct the overflow in IE.
 * 1. Correct the overflow in Edge.
 */

button, input { /* 1 */
	overflow: visible;
}

/**
 * Remove the inheritance in Edge, Firefox, and IE.
 * 1. Remove the inheritance in Firefox.
 */

button, select { /* 1 */
	text-transform: none;
}

/**
 * 1. Prevent the WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */

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

/**
 * Remove the inner border and padding in Firefox.
 */

::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Correct the focus styles unset by the previous rule.
 */

:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the border, margin, and padding in all browsers.
 */

fieldset {
	border: 1px solid #c0c0c0;
	margin: 0 2px;
	padding: .35em .625em .75em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
	display: table; /* 1 */
	max-width: 100%; /* 1 */
	padding: 0; /* 2 */
	white-space: normal; /* 1 */
}

/**
 * 1. Remove the vertical scrollbar in IE.
 * 2. Change the resize direction on textareas in all browsers (opinionated).
 */

textarea {
	overflow: auto; /* 1 */
	resize: vertical; /* 2 */
}

/**
 * Remove the padding in IE 10-.
 */

[type="checkbox"], [type="radio"] {
	padding: 0;
}

/**
 * Correct the cursor style on increment and decrement buttons in Chrome.
 */

::-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 and cancel buttons in Chrome and Safari for OS X.
 */

::-webkit-search-cancel-button, ::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * Correct the text style on placeholders in Chrome, Edge, and Safari.
 */

::-webkit-input-placeholder {
	color: inherit;
	opacity: .54;
}

/**
 * 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 */
}

/* WAI-ARIA (https://www.w3.org/TR/html5/dom.html#wai-aria)
   ========================================================================== */

/**
 * Change the cursor on busy elements (opinionated).
 */

[aria-busy="true"] {
	cursor: progress;
}

/*
 * Change the cursor on control elements (opinionated).
 */

[aria-controls] {
	cursor: pointer;
}

/*
 * Change the cursor on disabled, not-editable, or otherwise
 * inoperable elements (opinionated).
 */

[aria-disabled] {
	cursor: default;
}

/* User interaction (https://www.w3.org/TR/html5/editing.html)
   ========================================================================== */

/*
 * Remove the tapping delay on clickable elements (opinionated).
 * 1. Remove the tapping delay in IE 10.
 */

a, area, button, input, label, select, textarea, [tabindex] {
	-ms-touch-action: manipulation; /* 1 */
	touch-action: manipulation;
}

/*
 * Change the display on visually hidden accessible elements (opinionated).
 */

[hidden][aria-hidden="false"] {
	clip: rect(0, 0, 0, 0);
	display: inherit;
	position: absolute;
}

[hidden][aria-hidden="false"]:focus {
	clip: auto;
}

.mpdf #get_updates_block {
  display: none;
}

.mpdf section.c-article__body ul.c-tags {
  display: none;
}

.mpdf h3.c-article__title {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: bold;
}

.mpdf  .field .field-label {
  font-size: 11px;
  font-size: 0.6875rem;
  margin-bottom: 15px;
  margin-bottom: 0.9375rem;
  font-weight: bold;
}

.mpdf .download-pdf {
    display: none;
}

.mpdf .field-name-field-related {
    display: none;
}

/*
Utilities

Weight: 1

Styleguide Utilities
*/

/* ==========================================================================
 * Variables
 * ========================================================================== */

/*
Colors

<div class="sg-color-blocks">
  <div class="sg-color-block sg-color-block--blue"><code>--blue</code></div>
  <div class="sg-color-block sg-color-block--blue-dark"><code>--blue-dark</code></div>
  <div class="sg-color-block sg-color-block--gray"><code>--gray</code></div>
  <div class="sg-color-block sg-color-block--gray-light"><code>--gray-light</code></div>
  <div class="sg-color-block sg-color-block--gray-dark"><code>--gray-dark</code></div>
  <div class="sg-color-block sg-color-block--red"><code>--red</code></div>
  <div class="sg-color-block sg-color-block--orange"><code>--orange</code></div>
</div>

Styleguide Utilities.Colors
*/

/* These styles are used by the style guide example */

.sg-color-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
}

.sg-color-block::after {
  display: block;
  width: 50%;
  height: 36px;
  height: 2.25rem;
  border-radius: 3px;
  content: "";
}

.sg-color-block--blue::after {
  background: #007ed0;
}

.sg-color-block--blue-dark::after {
  background: #001759;
}

.sg-color-block--gray::after {
  background: #d7d7d7;
}

.sg-color-block--gray-light::after {
  background: #f2f2f2;
}

.sg-color-block--gray-dark::after {
  background: #9b9b9b;
}

.sg-color-block--red::after {
  background: #ef2420;
}

.sg-color-block--orange::after {
  background: #ff8c00;
}

/*
Base

Weight: 2

Styleguide Base
*/

/* ==========================================================================
 * Body
 * ========================================================================== */

html, body {
  height: 100%;
  overflow: hidden;
}

body {
  background-color: #fff;
}

hr {
  border-color: #f2f2f2;
}

/* ==========================================================================
 * Buttons
 * ========================================================================== */

/*
  Buttons

  Markup:
  <button>Button</button>

  Styleguide: Base.Buttons
*/

button, input[type="submit"] {
  color: #000;
  -webkit-font-smoothing: inherit;
  font-family: "Roboto", "Helvetica Neue", "Arial", sans-serif;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: middle;
}

/* ==========================================================================
 * Forms
 * ========================================================================== */

/*
  Forms

  Markup:
  <form>
    <fieldset>
      <legend>Legend</legend>
      <input type="text">
      <input type="text">
      <input type="text">
    </fieldset>
  </form>

  Styleguide: Base.Forms
*/

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  display: block;
}

/* ==========================================================================
 * Images
 * ========================================================================== */

/*
  Images

  Markup:
  <img src="http://placehold.it/600x400">

  Styleguide: Base.Images
*/

img {
  max-width: 100%;
  height: auto;
}

/* ==========================================================================
 * Lists
 * ========================================================================== */

/*
  Lists

  Markup:
  <h3>Ordered List</h3>
  <ol>
    <li>List Item 1</li>
    <li>List Item 2</li>
    <li>List Item 3</li>
  </ol>
  <h3>Unordered List</h3>
  <ul>
    <li>List Item 1</li>
    <li>List Item 2</li>
    <li>List Item 3</li>
  </ul>

  Styleguide: Base.Lists
*/

ol, ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ==========================================================================
 * Tables
 * ========================================================================== */

/*
  Tables

  Markup:
  <table>
    <tbody>
      <tr>
        <th>Table Header 1</th><th>Table Header 2</th><th>Table Header 3</th>
      </tr>
      <tr>
        <td>Division 1</td><td>Division 2</td><td>Division 3</td>
      </tr>
      <tr class="even">
        <td>Division 1</td><td>Division 2</td><td>Division 3</td>
      </tr>
      <tr>
        <td>Division 1</td><td>Division 2</td><td>Division 3</td>
      </tr>
    </tbody>
  </table>

  Styleguide: Base.Tables
*/

table {

}

/* ==========================================================================
 * Typography
 * ========================================================================== */

/*
  Typography

  Styleguide: Base.Typography
*/

html {
  font-size: 14px;
  font-size: 0.875rem;
}

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

  html {
    font-size: 16px;
    font-size: 1rem;
  }
}

body {
  color: #000;
  font-family: "Roboto", "Helvetica Neue", "Arial", sans-serif;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.5;
}

/*
  Headings

  Headings are unstyled by default so that they can be used interchangeably.

  Markup:
  <h1>Heading 1</h1>
  <h2>Heading 2</h1>
  <h3>Heading 3</h1>
  <h4>Heading 4</h1>
  <h5>Heading 5</h1>
  <h6>Heading 6</h1>

  Styleguide: Base.Typography.Headings
*/

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
}

h2 {
  margin: 18px 0;
  margin: 1.125rem 0;
}

h3 {
  margin-top: 24px;
  margin-top: 1.5rem;
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
}

/*
  Paragraphs

  Markup:
  <p>Lorem ipsum dolor sit amet, <a href="#">test link</a> consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  <p>Lorem ipsum dolor sit amet, <a href="#">test link</a> consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

  Styleguide: Base.Typography.Paragraphs
*/

p {
  margin: 0;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

[href] {
  color: #007ed0;
  text-decoration: none;
}

/*
  Small

  Markup:
  <p><small>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</small></p>

  Styleguide: Base.Typography.Small
*/

small {
  font-size: 12px;
  font-size: 0.75rem;
}

/*
  Strong

  Markup:
  <p>Lorem ipsum <strong>dolor sit amet</strong>, consectetur adipisicing elit.</p>

  Styleguide: Base.Typography.Strong
*/

strong {
  font-weight: 600;
}

::-moz-selection {
  background: #007ed0;
  color: #fff;
}

::selection {
  background: #007ed0;
  color: #fff;
}

/*
Components

Weight: 3

Styleguide Components
*/

/* ==========================================================================
 * Alerts
 * ========================================================================== */

/*
  Alerts

  Markup:
  <div class="c-alert {{ modifier_class }}">
    <div class="c-alert__body">
      <p>This is an alert.</p>
    </div>
    <button class="c-alert__close" aria-label="Close">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
        <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
      </svg>
    </button>
  </div>

  .c-alert--info - Info Alert
  .c-alert--danger - Danger Alert
  .c-alert--success - Success Alert
  .c-alert--warning - Warning Alert

  Styleguide: Components.Alerts
*/

.c-alert {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
  padding: 12px;
  padding: 0.75rem;
  background-color: #9b9b9b;
  color: #fff;
}

.c-alert--info {
  background-color: #007ed0;
}

.c-alert--danger {
  background-color: #ef2420;
}

.c-alert--success {
  background-color: #29bd63;
}

.c-alert--warning {
  background-color: #ff8c00;
}

.c-alert__body {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  padding-left: 6px;
  padding-left: 0.375rem;
}

.c-alert__body > *:last-child {
  margin-bottom: 0;
}

.c-alert__close {
  margin-left: 12px;
  margin-left: 0.75rem;
  opacity: 0.5;
  -webkit-transition: opacity 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out;
}

.c-alert__close:hover {
  opacity: 1;
}

.c-alert__close svg {
  width: 14px;
  width: 0.875rem;
  height: 14px;
  height: 0.875rem;
  fill: #fff;
  -webkit-transform: scale(1.5);
          transform: scale(1.5);
}

/* ==========================================================================
 * Articles
 * ========================================================================== */

/*
  Articles

  Markup:
  <article class="c-article">
    <header class="c-article__header">
      <span class="c-label">June 20th</span>
      <div class="c-article__actions">
        <a class="c-link" href="#">Action</a>
        <a class="c-link" href="#">Action</a>
      </div>
    </header>
    <img class="c-article__image" src="../img/sg-example-article-img.jpg" />
    <section class="c-article__body">
      <h3 class="c-article__title">Article Title</h3>
      <ul class="c-tags">
        <li class="c-tag">Tag 1</li>
        <li class="c-tag">Tag 2</li>
        <li class="c-tag">Tag 3</li>
      </ul>
      <div class="c-content">
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua...</p>
      </div>
    </section>
  </article>

  Styleguide: Components.Articles
*/

.c-article {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.c-article__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
}

.c-article__image {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.c-article__body {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.c-article__body > *:last-child {
  margin-bottom: 0;
}

.c-article__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 16px;
  font-size: 1rem;
}

.c-article__title.\:container\(width\>815px\) {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 22px;
  font-size: 1.375rem;
}

.c-article__title > * {
  margin-right: 18px;
  margin-right: 1.125rem;
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.c-article__title > *:last-child {
  margin-right: 0;
}

.c-article__author {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
  text-transform: uppercase;
  margin: 0;
}

.c-article__author:not(:last-child) {
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
}

.c-article .c-tags {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
}

.c-article > *:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
 * Avatar
 * ========================================================================== */

/*
  Avatar

  Markup:
  <div class="c-avatar" style="background-image: url('./../img/avatar-example.jpg')"></div>

  Styleguide: Components.Avatar
*/

.c-avatar {
  width: 220px;
  width: 13.75rem;
  height: 220px;
  height: 13.75rem;
  margin-bottom: 36px;
  margin-bottom: 2.25rem;
  margin-left: auto;
  margin-right: auto;
  background-color: #f2f2f2;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 50%;
}

/* ==========================================================================
 * Buttons
 * ========================================================================== */

/*
  Buttons

  Markup:
  <button class="c-button">Button</button>

  Styleguide: Components.Buttons
*/

.c-button {
  display: inline-block;
  padding: 12px 36px;
  padding: 0.75rem 2.25rem;
  border: 1px solid #007ed0;
  border-radius: 100px;
  border-radius: 6.25rem;
  color: #007ed0;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
}

/*
    Buttons on Dark Backgrounds

    Markup:
    <button class="c-button c-button--on-dark">Button</button>

    Dark: true

    Styleguide: Components.Buttons.Buttons on Dark Backgrounds
  */

.c-button--on-dark {
  border-color: #fff;
  color: #fff;
}

/* ==========================================================================
 * Call To Action
 * ========================================================================== */

/*
  Call to Action

  Markup:
  <div class="c-call-to-action">
    <div class="c-call-to-action__copy">
      Looking for something, but didn't see it here?<br>
      <strong>Let us know!</strong>
    </div>
    <a class="c-button c-button--on-dark" href="#">Get in touch</a>
  </div>

  Dark: true

  Styleguide: Components.Call to Action
*/

.c-call-to-action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #fff;
  font-size: 16px;
  font-size: 1rem;
}

@media screen and (max-width: 767px) {

  .c-call-to-action {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center;
  }
}

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

  .c-call-to-action {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    max-width: 660px;
    max-width: 41.25rem;
    margin: auto;
    padding: 36px 48px;
    padding: 2.25rem 3rem;
  }
}

@media screen and (max-width: 767px) {

  .c-call-to-action__copy {
    margin-bottom: 18px;
    margin-bottom: 1.125rem;
  }
}

/* ==========================================================================
 * Cards
 * ========================================================================== */

/*
  Cards

  Markup:
  <section class="c-card {{ modifier_class }}">
    <div class="c-card__body">
      Custom Card Content
    </div>
  </section>

  .c-card--raised - Raised Card

  Styleguide: Components.Cards
*/

.c-card {
  position: relative;
  height: 100%;
  width: 100%;
  background: #fff;
  border: 1px solid #d7d7d7;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;

  /*
    Card with the Kitchen Sink

    Markup:
    <article class="c-card">
      <div class="c-card__thumbnail-image" style="background-image: url('../img/sg-example-article-img.jpg')"></div>
      <div class="c-card__body">
        <div class="c-date">
          <div class="c-date__month">June</div>
          <div class="c-date__day">29</div>
        </div>
        <div class="c-content">
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
        <div class="c-card__source">
          <img src="../img/sg-example-article-logo-1.png">
        </div>
      </div>
    </article>

    Weight: 6

    Styleguide: Components.Cards.Card with the Kitchen Sink
  */
}

.c-card--raised {
  border: 0;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 0.9375rem rgba(0, 0, 0, 0.2);
}

.c-card__archived-tag {
  display: none;
}

.c-card--expired .c-card__archived-tag {
  content: '';
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  right: 0;
  top: 0;
  width: 14px;
  width: 0.875rem;
  width: 1rem;
  height: 14px;
  height: 0.875rem;
  height: 1rem;
  border-top: 24.5px #9b9b9b solid;
  border-top: 1.53125rem #9b9b9b solid;
  border-top: 1.75rem #9b9b9b solid;
  border-right: 24.5px #9b9b9b solid;
  border-right: 1.53125rem #9b9b9b solid;
  border-right: 1.75rem #9b9b9b solid;
  border-bottom: 24.5px transparent solid;
  border-bottom: 1.53125rem transparent solid;
  border-bottom: 1.75rem transparent solid;
  border-left: 24.5px transparent solid;
  border-left: 1.53125rem transparent solid;
  border-left: 1.75rem transparent solid;
}

.c-card--expired .c-card__archived-text {
  color: white;
  -webkit-transform: rotateZ(45deg);
          transform: rotateZ(45deg);
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
  margin-left: 12px;
  margin-left: 0.75rem;
  font-weight: bold;
  letter-spacing: 1px;
  font-size: 0.5em;
}

.c-card.\:container\(width\>\=660px\) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.c-card__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 18px;
  padding: 1.125rem;
}

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

  .c-card__body {
    padding: 24px;
    padding: 1.5rem;
  }
}

/*
    Card with Featured Image

    Markup:
    <article class="c-card">
      <div class="c-card__featured-image" style="background-image: url('../img/sg-example-article-img.jpg')"></div>
      <div class="c-card__body">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
      </div>
    </article>

    Weight: 2

    Styleguide: Components.Cards.Card with Featured Image
  */

.c-card__featured-image {
  -ms-flex-preferred-size: 65%;
      flex-basis: 65%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  background-position: center;
  background-size: cover;
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.c-card__featured-image.\:container\(width\<660px\) {
  height: 120px;
  height: 7.5rem;
}

/*
    Card with Thumbnail Image

    Markup:
    <article class="c-card">
      <div class="c-card__thumbnail-image" style="background-image: url('../img/sg-example-article-img.jpg')"></div>
      <div class="c-card__body">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
      </div>
    </article>

    Weight: 3

    Styleguide: Components.Cards.Card with Thumbnail Image
  */

.c-card__thumbnail-image {
  -ms-flex-preferred-size: 160px;
  -ms-flex-preferred-size: 10rem;
      flex-basis: 160px;
      flex-basis: 10rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  min-height: 160px;
  min-height: 10rem;
  background-position: center;
  background-size: cover;
}

.c-card__thumbnail-image.\:container\(width\<660px\) {
  min-height: 120px;
  min-height: 7.5rem;
}

.c-card__thumbnail-logo {
  -ms-flex-preferred-size: 120px;
  -ms-flex-preferred-size: 7.5rem;
      flex-basis: 120px;
      flex-basis: 7.5rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-item-align: center;
      align-self: center;
  padding: 18px;
  padding: 1.125rem;
}

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

  .c-card__thumbnail-logo {
    padding: 24px;
    padding: 1.5rem;
  }
}

.c-card__thumbnail-logo.\:container\(width\<659px\) {
  max-width: 120px;
  max-width: 7.5rem;
  padding-bottom: 0;
}

.c-card__thumbnail-logo.\:container\(width\>\=660px\) {
  padding-right: 0;
}

.c-card__thumbnail-logo img {
  display: block;
  max-width: 100%;
  height: auto;
}

/*
    Card with Source Logo

    Markup:
    <section class="c-card">
      <div class="c-card__body">
        <div class="c-content">
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
        <div class="c-card__source">
          <img src="../img/sg-example-article-logo-1.png">
        </div>
      </div>
    </section>

    Weight: 4

    Styleguide: Components.Cards.Card with Source Logo
  */

.c-card__source {
  -ms-flex-preferred-size: 80px;
  -ms-flex-preferred-size: 5rem;
      flex-basis: 80px;
      flex-basis: 5rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-item-align: end;
      align-self: flex-end;
  margin-left: 18px;
  margin-left: 1.125rem;
}

.c-card__source img {
  display: block;
  width: 100%;
  height: auto;
}

/*
    Card with Date

    Markup:
    <article class="c-card">
      <div class="c-card__body">
        <div class="c-date">
          <div class="c-date__month">June</div>
          <div class="c-date__day">29</div>
        </div>
        <div class="c-content">
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
      </div>
    </article>

    Weight: 5

    Styleguide: Components.Cards.Card with Date
  */

.c-card .c-date {
  margin: 6px;
  margin: 0.375rem;
  margin-right: 12px;
  margin-right: 0.75rem;
  padding-right: 12px;
  padding-right: 0.75rem;
  border-right: 1px solid #d7d7d7;
}

.c-card .c-content {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 0;
}

/* ==========================================================================
 * Checkboxes
 * ========================================================================== */

/*
  Checkboxes

  Markup:
  <label class="c-checkbox">
    <input hidden type="checkbox" />
    <div class="c-checkbox__bubble"></div>
    <span class="c-label">Label</span>
  </label>
  <label class="c-checkbox">
    <input hidden type="checkbox" />
    <div class="c-checkbox__bubble"></div>
    <span class="c-label">Label</span>
  </label>
  <label class="c-checkbox">
    <input hidden type="checkbox" />
    <div class="c-checkbox__bubble"></div>
    <span class="c-label">Label</span>
  </label>

  Styleguide: Components.Checkboxes
*/

.form-type-bef-checkbox, .form-type-checkbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 6px 0;
  padding: 0.375rem 0;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.form-type-bef-checkbox input[type="checkbox"], .form-type-checkbox input[type="checkbox"] {
  display: none;
}

.form-type-bef-checkbox input[type="checkbox"]:checked + label::before, .form-type-checkbox input[type="checkbox"]:checked + label::before {
  background-color: #007ed0;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='%23fff'%3E %3Cpath d='M5.7,12.5c-0.4,0-0.7-0.1-1-0.4l-3.2-3C0.9,8.5,0.8,7.6,1.4,6.9C2,6.3,2.9,6.3,3.5,6.9l2,1.8l4.8-6.6 c0.5-0.7,1.4-0.8,2.1-0.3c0.7,0.5,0.8,1.4,0.3,2.1l-5.8,7.9c-0.3,0.3-0.6,0.6-1.1,0.6C5.8,12.5,5.7,12.5,5.7,12.5z'/%3E %3C/svg%3E");
  border-color: #007ed0;
  color: #fff;
}

.form-type-bef-checkbox label::before, .form-type-checkbox label::before {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 18px;
  width: 1.125rem;
  height: 18px;
  height: 1.125rem;
  margin-right: 6px;
  margin-right: 0.375rem;
  padding: 2px;
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 12px;
  background-size: 0.75rem;
  border: 1px solid #d7d7d7;
  border-radius: 3px;
  color: transparent;
  content: '';
}

.form-type-bef-checkbox:hover label, .form-type-checkbox:hover label {
  color: #007ed0;
}

.form-type-bef-checkbox:hover label::before, .form-type-checkbox:hover label::before {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='%23d7d7d7'%3E %3Cpath d='M5.7,12.5c-0.4,0-0.7-0.1-1-0.4l-3.2-3C0.9,8.5,0.8,7.6,1.4,6.9C2,6.3,2.9,6.3,3.5,6.9l2,1.8l4.8-6.6 c0.5-0.7,1.4-0.8,2.1-0.3c0.7,0.5,0.8,1.4,0.3,2.1l-5.8,7.9c-0.3,0.3-0.6,0.6-1.1,0.6C5.8,12.5,5.7,12.5,5.7,12.5z'/%3E %3C/svg%3E");
}

.c-checkbox__bubble {
  width: 18px;
  width: 1.125rem;
  height: 18px;
  height: 1.125rem;
  margin-right: 6px;
  margin-right: 0.375rem;
  padding: 2px;
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 12px;
  background-size: 0.75rem;
  border: 1px solid #d7d7d7;
  border-radius: 3px;
  color: transparent;
}

.c-checkbox > input:checked + .c-checkbox__bubble {
  background-color: #007ed0;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='%23fff'%3E %3Cpath d='M5.7,12.5c-0.4,0-0.7-0.1-1-0.4l-3.2-3C0.9,8.5,0.8,7.6,1.4,6.9C2,6.3,2.9,6.3,3.5,6.9l2,1.8l4.8-6.6 c0.5-0.7,1.4-0.8,2.1-0.3c0.7,0.5,0.8,1.4,0.3,2.1l-5.8,7.9c-0.3,0.3-0.6,0.6-1.1,0.6C5.8,12.5,5.7,12.5,5.7,12.5z'/%3E %3C/svg%3E");
  border-color: #007ed0;
  color: #fff;
}

/* ==========================================================================
 * Content
 * ========================================================================== */

/*
  Content

  Markup:
  <section class="c-content">
    <header class="c-content__title">Section 1</header>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    <ol>
      <li>List Item 1</li>
      <li>List Item 2</li>
      <li>List Item 3</li>
    </ol>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  </section>
  <section class="c-content">
    <header class="c-content__title">Section 2</header>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    <ul>
      <li>List Item 1</li>
      <li>List Item 2</li>
      <li>List Item 3</li>
    </ul>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  </section>

  Styleguide: Components.Content
*/

.c-content, .field {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.c-content__title, .c-content .field-label, .field__title, .field .field-label {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  padding-bottom: 12px;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #d7d7d7;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
}

.c-content ol, .c-content ul, .field ol, .field ul {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
  padding-left: 24px;
  padding-left: 1.5rem;
}

.c-content ol, .field ol {
  list-style-type: decimal;
}

.c-content ul, .field ul {
  list-style-type: disc;
}

.c-content ol ul, .c-content ul ul, .field ol ul, .field ul ul {
  list-style-type: circle;
}

.c-content ol ol, .c-content ol ul, .c-content ul ol, .c-content ul ul, .field ol ol, .field ol ul, .field ul ol, .field ul ul {
  margin-bottom: 0;
}

.c-content ol ol ul, .c-content ol ul ul, .c-content ul ol ul, .c-content ul ul ul, .field ol ol ul, .field ol ul ul, .field ul ol ul, .field ul ul ul {
  list-style-type: square;
}

.c-content > *:last-child, .field > *:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
 * Dropdown
 * ========================================================================== */

/*
  Dropdown

  Markup:
  <div class="c-dropdown js-dropdown">
    <button class="c-dropdown__label js-dropdown__toggle">
      Dropdown
    </button>
    <div class="c-dropdown__menu">
      Dropdown Menu
    </div>
  </div>

  Styleguide: Components.Dropdown
*/

.c-dropdown {
  display: inline-block;
  position: relative;
  margin: 0;
}

.c-dropdown__label > * {
  pointer-events: none;
}

.c-dropdown__menu {
  display: block;
  position: absolute;
  left: 50%;
  min-width: 150px;
  min-width: 9.375rem;
  max-width: 300px;
  max-width: 18.75rem;
  padding: 6px;
  padding: 0.375rem;
  background: #fff;
  border-radius: 3px;
  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur in="SourceAlpha" stdDeviation="3" /><feOffset dx="1" dy="2" result="offsetblur" /><feFlood flood-color="rgba(0,0,0,0.15)" /><feComposite in2="offsetblur" operator="in" /><feMerge><feMergeNode /><feMergeNode in="SourceGraphic" /></feMerge></filter></svg>#filter');
  -webkit-filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.15));
          filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.15));
  opacity: 0;
  pointer-events: none;
  text-align: center;
  -webkit-transform: translate(-50%, 6px);
  -webkit-transform: translate(-50%, 0.375rem);
          transform: translate(-50%, 6px);
          transform: translate(-50%, 0.375rem);
  -webkit-transition: opacity 0.15s ease-in-out,
                -webkit-transform 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out,
                -webkit-transform 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out,
                transform 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out,
                transform 0.15s ease-in-out,
                -webkit-transform 0.15s ease-in-out;
  z-index: 400;
}

.c-dropdown__menu::before {
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  width: 0;
  height: 0;
  border-color: transparent transparent #fff transparent;
  border-style: solid;
  border-width: 0 14px 8px 14px;
  border-width: 0 0.875rem 0.5rem 0.875rem;
  content: "";
  -webkit-transform: translate(-50%, -100%);
          transform: translate(-50%, -100%);
}

.is-open .c-dropdown__menu {
  opacity: 1;
  pointer-events: all;
  -webkit-transform: translate(-50%, 12px);
  -webkit-transform: translate(-50%, 0.75rem);
          transform: translate(-50%, 12px);
          transform: translate(-50%, 0.75rem);
}

/* ==========================================================================
 * Filter List
 * ========================================================================== */

/*
  Filter List

  Markup:
  <nav class="c-filter">
    <a class="c-filter__item c-filter__item--active">Item 1</a>
    <a class="c-filter__item">Item 2</a>
    <a class="c-filter__item">Item 3</a>
    <a class="c-filter__item">Item 4</a>
    <a class="c-filter__item c-filter__item--disabled">Item 5</a>
  </nav>

  Styleguide: Components.FilterList
*/

.region-navigation .view-topics-menu .view-content {
  padding-bottom: 0;
}

.view-topics-menu .view-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  padding: 24px 18px;
  padding: 1.5rem 1.125rem;
  background: #f2f2f2;
  overflow: auto;
}

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

  .view-topics-menu .view-content {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.view-topics-menu .view-content .views-row {
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding: 6px 18px;
  padding: 0.375rem 1.125rem;
  border-radius: 100px;
  border-radius: 6.25rem;
  color: #007ed0;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
}

@media screen and (max-width: 767px) {

  .view-topics-menu .view-content .views-row {
    margin-bottom: 6px;
    margin-bottom: 0.375rem;
  }
}

.view-topics-menu__item {
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding: 6px 18px;
  padding: 0.375rem 1.125rem;
  border-radius: 100px;
  border-radius: 6.25rem;
  color: #007ed0;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
}

@media screen and (max-width: 767px) {

  .view-topics-menu__item {
    margin-bottom: 6px;
    margin-bottom: 0.375rem;
  }
}

.view-topics-menu__item--active {
  background: #007ed0;
  color: #fff;
}

.view-topics-menu__item--disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

/* ==========================================================================
 * Footer
 * ========================================================================== */

/*
  Footer

  This is a footer.

  Markup:
  <div class="c-footer">
    Footer
  </div>

  Styleguide: Components.Footer
*/

.c-footer {
  color: rgba(255, 255, 255, 0.5);
}

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

  .c-footer__grid {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-bottom: 24px;
    margin-bottom: 1.5rem;
  }
}

@media screen and (max-width: 899px) {

  .c-footer__column {
    margin-bottom: 24px;
    margin-bottom: 1.5rem;
  }
}

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

  .c-footer__column:not(:last-child) {
    padding-right: 48px;
    padding-right: 3rem;
  }
}

.c-footer .webform-client-form {
  margin-right: 18px;
  margin-right: 1.125rem;
}

.c-footer .webform-client-form > div {
  -webkit-box-align: end;
      -ms-flex-align: end;
              -ms-grid-row-align: flex-end;
          align-items: flex-end;
}

.c-footer .webform-client-form > div .form-item {
  margin: 0;
}

.c-footer .webform-client-form > div .form-item-search-block-form .form-text {
  min-width: 149px;
  min-width: 9.3125rem;
}

.c-footer .webform-client-form > div input[type="text"], .c-footer .webform-client-form > div input[type="email"], .c-footer .webform-client-form > div select {
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
}

.c-footer .webform-client-form > div input[type="submit"] {
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px;
  background-size: 1.375rem;
  height: 30px;
  height: 1.875rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.c-footer .webform-client-form > div .form-actions {
  margin: 0;
}

/* ==========================================================================
 * Forms
 * ========================================================================== */

/*
  Forms

  This is a form.

  Markup:
  <form class="c-form">
    <fieldset class="c-form__fieldset">
      <legend class="c-form__legend">Legend</legend>
    </fieldset>
  </form>

  Styleguide: Components.Forms
*/

.c-form:not(:last-child) {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.c-form__fieldset {
  margin-bottom: 36px;
  margin-bottom: 2.25rem;
}

.c-form__fieldset > *:last-child {
  margin-bottom: 0;
}

.c-form__legend {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
  text-transform: uppercase;
  width: 100%;
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
  padding-bottom: 6px;
  padding-bottom: 0.375rem;
  border-bottom: 1px solid #d7d7d7;
  color: #9b9b9b;
}

.c-form > *:last-child {
  margin-bottom: 0;
}

/*
  Form Controls

  Markup:
  <div class="c-form-group">
    <select class="c-form-control">
      <option>Select</option>
      <option>Option 1</option>
      <option>Option 2</option>
      <option>Option 3</option>
    </select>
  </div>
  <div class="c-form-group">
    <input class="c-form-control" type="text" placeholder="Placeholder"></input>
  </div>

  Styleguide: Components.Forms.Form Controls
*/

/*
  Form Group Inline

  Markup:
  <div class="c-form-group c-form-group--inline">
    <div class="c-form-group">
      <label class="c-label">Label</label>
      <input class="c-form-control" type="text" placeholder="Placeholder"></input>
    </div>
    <div class="c-form-group">
      <label class="c-label">Label</label>
      <input class="c-form-control" type="text" placeholder="Placeholder"></input>
    </div>
  </div>

  Styleguide: Components.Forms.Form Group Inline
*/

.c-form-group {
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
  line-height: 1;
  line-height: initial;
}

.c-form-group--inline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.c-form-group > .c-label {
  margin-bottom: 6px;
  margin-bottom: 0.375rem;
}

.c-form-group > .c-form-group {
  margin-bottom: 0;
}

.c-form-group > .c-form-group:not(:last-child) {
  margin-right: 12px;
  margin-right: 0.75rem;
}

.form-item > input[type="text"], .form-item > input[type="email"], .form-item > input[type="password"], .form-item > input[type="submit"], .form-item > select, .form-item > .form-textarea-wrapper > textarea, .form-item > button, .form-actions > input[type="text"], .form-actions > input[type="email"], .form-actions > input[type="password"], .form-actions > input[type="submit"], .form-actions > select, .form-actions > .form-textarea-wrapper > textarea, .form-actions > button {
  display: block;
  width: 100%;
  height: 30px;
  height: 1.875rem;
  margin: 0;
  padding-right: 12px;
  padding-right: 0.75rem;
  padding-left: 12px;
  padding-left: 0.75rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #fff;
  border: 1px solid #d7d7d7;
  border-radius: 3px;
  color: #000;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
}

.form-item > input[type="text"]::-webkit-input-placeholder, .form-item > input[type="email"]::-webkit-input-placeholder, .form-item > input[type="password"]::-webkit-input-placeholder, .form-item > input[type="submit"]::-webkit-input-placeholder, .form-item > select::-webkit-input-placeholder, .form-item > .form-textarea-wrapper > textarea::-webkit-input-placeholder, .form-item > button::-webkit-input-placeholder, .form-actions > input[type="text"]::-webkit-input-placeholder, .form-actions > input[type="email"]::-webkit-input-placeholder, .form-actions > input[type="password"]::-webkit-input-placeholder, .form-actions > input[type="submit"]::-webkit-input-placeholder, .form-actions > select::-webkit-input-placeholder, .form-actions > .form-textarea-wrapper > textarea::-webkit-input-placeholder, .form-actions > button::-webkit-input-placeholder {
  overflow: visible;
}

.form-item > input[type="text"]::-moz-placeholder, .form-item > input[type="email"]::-moz-placeholder, .form-item > input[type="password"]::-moz-placeholder, .form-item > input[type="submit"]::-moz-placeholder, .form-item > select::-moz-placeholder, .form-item > .form-textarea-wrapper > textarea::-moz-placeholder, .form-item > button::-moz-placeholder, .form-actions > input[type="text"]::-moz-placeholder, .form-actions > input[type="email"]::-moz-placeholder, .form-actions > input[type="password"]::-moz-placeholder, .form-actions > input[type="submit"]::-moz-placeholder, .form-actions > select::-moz-placeholder, .form-actions > .form-textarea-wrapper > textarea::-moz-placeholder, .form-actions > button::-moz-placeholder {
  overflow: visible;
}

.form-item > input[type="text"]:-ms-input-placeholder, .form-item > input[type="email"]:-ms-input-placeholder, .form-item > input[type="password"]:-ms-input-placeholder, .form-item > input[type="submit"]:-ms-input-placeholder, .form-item > select:-ms-input-placeholder, .form-item > .form-textarea-wrapper > textarea:-ms-input-placeholder, .form-item > button:-ms-input-placeholder, .form-actions > input[type="text"]:-ms-input-placeholder, .form-actions > input[type="email"]:-ms-input-placeholder, .form-actions > input[type="password"]:-ms-input-placeholder, .form-actions > input[type="submit"]:-ms-input-placeholder, .form-actions > select:-ms-input-placeholder, .form-actions > .form-textarea-wrapper > textarea:-ms-input-placeholder, .form-actions > button:-ms-input-placeholder {
  overflow: visible;
}

.form-item > input[type="text"]::placeholder, .form-item > input[type="email"]::placeholder, .form-item > input[type="password"]::placeholder, .form-item > input[type="submit"]::placeholder, .form-item > select::placeholder, .form-item > .form-textarea-wrapper > textarea::placeholder, .form-item > button::placeholder, .form-actions > input[type="text"]::placeholder, .form-actions > input[type="email"]::placeholder, .form-actions > input[type="password"]::placeholder, .form-actions > input[type="submit"]::placeholder, .form-actions > select::placeholder, .form-actions > .form-textarea-wrapper > textarea::placeholder, .form-actions > button::placeholder {
  overflow: visible;
}

.form-item > .form-textarea-wrapper > textarea, .form-actions > .form-textarea-wrapper > textarea {
  height: 90px;
  height: 5.625rem;
}

.form-item--right button, .form-item--right select, .form-item--right input[type="text"], .form-item--right input[type="password"], .form-item--right input[type="email"], .form-item--right input[type="submit"], .form-actions--right button, .form-actions--right select, .form-actions--right input[type="text"], .form-actions--right input[type="password"], .form-actions--right input[type="email"], .form-actions--right input[type="submit"] {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.form-item--left button, .form-item--left select, .form-item--left input[type="text"], .form-item--left input[type="password"], .form-item--left input[type="email"], .form-actions--left button, .form-actions--left select, .form-actions--left input[type="text"], .form-actions--left input[type="password"], .form-actions--left input[type="email"] {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.form-item > button, .form-item > input[type="submit"], .form-actions > button, .form-actions > input[type="submit"] {
  width: auto;
  background-color: #007ed0;
  border-color: #007ed0;
  color: #fff;
  fill: #fff;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  text-transform: uppercase;
  -webkit-transition: background-color 0.2s ease-in-out,
                border-color 0.2s ease-in-out;
  transition: background-color 0.2s ease-in-out,
                border-color 0.2s ease-in-out;
}

.form-item > button:hover, .form-item > input[type="submit"]:hover, .form-actions > button:hover, .form-actions > input[type="submit"]:hover {
  background-color: rgb(51, 146, 209);
  border-color: rgb(51, 146, 209);
}

.form-item > button > svg, .form-item > input[type="submit"] > svg, .form-actions > button > svg, .form-actions > input[type="submit"] > svg {
  display: block;
  width: 22px;
  width: 1.375rem;
  height: 22px;
  height: 1.375rem;
  margin-right: -6px;
  margin-right: -0.375rem;
  margin-left: -6px;
  margin-left: -0.375rem;
}

.form-item > select, .form-actions > select {
  padding-right: 24px;
  padding-right: 1.5rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' fill='%23d7d7d7'%3E %3Cpolygon points='4,7.2 7.9,2.8 0,2.8 '/%3E %3C/svg%3E");
  background-position: right 12px center;
  background-position: right 0.75rem center;
  background-repeat: no-repeat;
  background-size: 1em;
}

.form-item > select::ms-expand, .form-actions > select::ms-expand {
  display: none;
}

/*
  Input Group

  Markup:
  <div class="c-input-group">
    <input class="c-form-control" type="text" placeholder="Placeholder">
    <input class="c-form-control" type="submit" value="Submit">
  </div>

  Styleguide: Components.Forms.Input Group
*/

.c-input-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

/* ==========================================================================
 * Hamburger Menu
 * ========================================================================== */

/*
  Hamburger Menu

  Markup:
  <div>
    <button class="c-hamburger js-toggle-active">
      <div class="c-hamburger__icon">
        <span class="c-hamburger__line"></span>
        <span class="c-hamburger__line"></span>
        <span class="c-hamburger__line"></span>
      </div>
    </button>
  </div>

  Styleguide: Components.Hamburger Menu
*/

:root { /* Don't convert to rem */ /* Don't convert to rem */ /* Don't convert to rem */
}

.c-hamburger {
  display: block;
  margin: -6px;
  margin: -0.375rem;
  padding: 6px;
  padding: 0.375rem;
  cursor: pointer;
}

.c-hamburger__icon {
  position: relative;
  width: 18PX;
  height: 18PX;
  pointer-events: none;
}

.c-hamburger__line {
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 2PX;
  background-color: #007ed0;
  border-radius: 100px;
  border-radius: 6.25rem;
  -webkit-transition: top 0.15s ease-in-out 0.15s,
                bottom 0.15s ease-in-out 0.15s,
                -webkit-transform 0.15s ease-in-out;
  transition: top 0.15s ease-in-out 0.15s,
                bottom 0.15s ease-in-out 0.15s,
                -webkit-transform 0.15s ease-in-out;
  transition: top 0.15s ease-in-out 0.15s,
                bottom 0.15s ease-in-out 0.15s,
                transform 0.15s ease-in-out;
  transition: top 0.15s ease-in-out 0.15s,
                bottom 0.15s ease-in-out 0.15s,
                transform 0.15s ease-in-out,
                -webkit-transform 0.15s ease-in-out;
}

.is-active .c-hamburger__line {
  -webkit-transition: top 0.15s ease-in-out,
                  bottom 0.15s ease-in-out,
                  -webkit-transform 0.15s ease-in-out 0.15s;
  transition: top 0.15s ease-in-out,
                  bottom 0.15s ease-in-out,
                  -webkit-transform 0.15s ease-in-out 0.15s;
  transition: top 0.15s ease-in-out,
                  bottom 0.15s ease-in-out,
                  transform 0.15s ease-in-out 0.15s;
  transition: top 0.15s ease-in-out,
                  bottom 0.15s ease-in-out,
                  transform 0.15s ease-in-out 0.15s,
                  -webkit-transform 0.15s ease-in-out 0.15s;
}

.c-hamburger__line:nth-child(1) {
  top: 1PX;
  -webkit-transform: translateY(-50%) rotate(0deg);
          transform: translateY(-50%) rotate(0deg);
}

.is-active .c-hamburger__line:nth-child(1) {
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}

.c-hamburger__line:nth-child(2) {
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(0deg);
          transform: translateY(-50%) rotate(0deg);
}

.is-active .c-hamburger__line:nth-child(2) {
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}

.c-hamburger__line:nth-child(3) {
  bottom: 1PX;
  -webkit-transform: translateY(50%) rotate(0deg);
          transform: translateY(50%) rotate(0deg);
}

.is-active .c-hamburger__line:nth-child(3) {
  bottom: 50%;
  -webkit-transform: translateY(50%) rotate(-45deg);
          transform: translateY(50%) rotate(-45deg);
}

/* ==========================================================================
 * Header
 * ========================================================================== */

/*
  Header

  Markup:
  <div class="c-header">
    <div class="c-header__group">
      <a class="c-logo" href="#" title="Go to SciPol Home"></a>
      <nav class="c-navigation">
        <ul class="c-navigation__list">
          <li class="c-navigation__item"><a class="c-navigation__link is-active" href="#">Item 1</a></li>
          <li class="c-navigation__item"><a class="c-navigation__link" href="#">Item 2</a></li>
          <li class="c-navigation__item"><a class="c-navigation__link" href="#">Item 3</a></li>
          <li class="c-navigation__item"><a class="c-navigation__link" href="#">Item 4</a></li>
          <li class="c-navigation__item"><a class="c-navigation__link" href="#">Item 5</a></li>
        </ul>
      </nav>
    </div>
    <div class="c-header__group">
    </div>
  </div>

  Styleguide: Components.Header
*/

.c-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.c-header__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

@media screen and (max-width: 599px) {

  .c-header__group:not(:first-child) {
    display: none;
  }
}

.c-header .c-hamburger {
  margin-right: 12px;
  margin-right: 0.75rem;
}

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

  .c-header .c-hamburger {
    display: none;
  }
}

@media screen and (max-width: 979px) {

  .c-header .c-navigation {
    display: none;
  }
}

.c-header #block-views-exp-search-page {
  position: relative;
}

.c-header #block-views-exp-search-page.open .content {
  display: block;
}

.c-header #block-views-exp-search-page > h2 {
  color: #9b9b9b;
  font-size: 12px;
  font-size: 0.75rem;
  margin: 0;
  margin-right: 24px;
  margin-right: 1.5rem;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.c-header #block-views-exp-search-page > h2:hover {
  color: #007ed0;
  cursor: pointer;
}

.c-header #block-views-exp-search-page > h2:hover::before {
  background-color: #007ed0;
}

.c-header #block-views-exp-search-page > h2::before {
  display: inline-block;
  content: '';
  width: 1em;
  height: 1em;
  margin-right: 6px;
  margin-right: 0.375rem;
  background-color: #9b9b9b;
  -webkit-mask: url(/themes/scipol/src/img/icons/search.svg);
          mask: url(/themes/scipol/src/img/icons/search.svg);
  -webkit-mask-size: 1em;
          mask-size: 1em;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}

.c-header #block-views-exp-search-page > h2::after {
  display: inline-block;
  position: relative;
  top: 1px;
  width: 1em;
  height: 1em;
  margin-left: 6px;
  margin-left: 0.375rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' fill='%23d7d7d7'%3E %3Cpolygon points='4,7.2 7.9,2.8 0,2.8 '/%3E %3C/svg%3E");
  content: "";
}

.c-header #block-views-exp-search-page .content {
  display: none;
  position: absolute;
  overflow: auto;
  left: -300px;
  left: -18.75rem;
  right: -100px;
  right: -6.25rem;
  top: 25px;
  top: 1.5625rem;
  max-height: 500px;
  max-height: 31.25rem;
  background-color: white;
  padding: 0 24px;
  padding: 0 1.5rem;
  border-radius: 3px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 0.9375rem rgba(0, 0, 0, 0.2);
}

.c-header #block-views-exp-search-page .content > form .views-exposed-widgets {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.c-header #block-views-exp-search-page .content > form .views-exposed-widgets .views-submit-button input[type="submit"] {
  background: #007ed0;
  color: white;
  border-radius: 3px;
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
  padding: 6px 24px;
  padding: 0.375rem 1.5rem;
}

.c-header #block-views-exp-search-page .content > form .views-exposed-widgets .views-exposed-widget {
  -ms-flex-preferred-size: 33.33333%;
      flex-basis: 33.33333%;
}

.c-header #block-views-exp-search-page .content > form .views-exposed-widgets .views-widget-filter-search_api_views_fulltext {
  -ms-flex-preferred-size: 80%;
      flex-basis: 80%;
}

.c-header #search-block-form {
  margin-right: 18px;
  margin-right: 1.125rem;
}

.c-header #search-block-form .container-inline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.c-header #search-block-form .container-inline .form-item {
  margin: 0;
}

.c-header #search-block-form .container-inline .form-item-search-block-form .form-text {
  min-width: 149px;
  min-width: 9.3125rem;
}

.c-header #search-block-form .container-inline input[type="submit"] {
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px;
  background-size: 1.375rem;
  width: 36px;
  width: 2.25rem;
  height: 30px;
  height: 1.875rem;
}

/* ==========================================================================
 * Headings
 * ========================================================================== */

/*
  Headings

  Heading classes add margin-bottom and have a smaller line-height than the default font style.

  Markup:
  <h1 class="c-heading {{ modifier_class }}">Heading</h1>

  .c-heading--xxl - XXL Heading
  .c-heading--xl - XL Heading
  .c-heading--lg - LG Heading
  .c-heading--med - MED Heading
  .c-heading--sm - SM Heading
  .c-heading--xs - XS Heading

  Styleguide: Components.Headings
*/

.c-heading {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
}

.c-heading--xxl {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 30px;
  font-size: 1.875rem;
}

.c-heading--xl {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 22px;
  font-size: 1.375rem;
}

.c-heading--lg {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 16px;
  font-size: 1rem;
}

.c-heading--med {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 14px;
  font-size: 0.875rem;
}

.c-heading--sm {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 12px;
  font-size: 0.75rem;
}

.c-heading--xs {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
  text-transform: uppercase;
}

/* ==========================================================================
 * Labels
 * ========================================================================== */

/*
  Labels

  Markup:
  <span class="c-label">Label</span>

  Styleguide: Components.Labels
*/

label, .c-label {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
  text-transform: uppercase;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  margin-bottom: 0;
  color: #9b9b9b;
  line-height: 1;
}

/* ==========================================================================
 * Large Dates
 * ========================================================================== */

/*
  Large Dates

  Markup:
  <div class="c-date">
    <div class="c-date__month">June</div>
    <div class="c-date__day">29</div>
  </div>

  Styleguide: Components.Large Dates
*/

.c-date {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-weight: 600;
  line-height: 1;
}

.c-date__month {
  font-size: 10px;
  font-size: 0.625rem;
  text-transform: uppercase;
}

.c-date__day {
  font-size: 22px;
  font-size: 1.375rem;
}

/* ==========================================================================
 * Links
 * ========================================================================== */

/*
  Links

  Markup:
  <button class="c-link">Button</button>
  <a class="c-link" href="#">a href</a>

  Styleguide: Components.Links
*/

.c-link {
  display: inline-block;
  margin-top: -6px;
  margin-top: -0.375rem;
  margin-bottom: -6px;
  margin-bottom: -0.375rem;
  padding: 6px;
  padding: 0.375rem;
  color: #007ed0;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

.c-link:first-child {
  margin-left: -6px;
  margin-left: -0.375rem;
}

.c-link:last-child {
  margin-right: -6px;
  margin-right: -0.375rem;
}

/* ==========================================================================
 * Logo
 * ========================================================================== */

/*
  Logo

  Markup:
  <a class="c-logo" href="#" title="Go to SciPol Home"></a>

  Styleguide: Components.Logo
*/

.c-logo {
  display: block;
  width: 75px;
  height: 20px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='75' height='20' viewBox='0 0 75 20' fill='%23007ed0'%3E %3Cpath d='M73.5 0H75v19.7h-1.5zM66.9 7.7c-1.1-1.3-2.6-1.9-4.4-1.9-1.8 0-3.3.6-4.4 1.9-1.1 1.3-1.7 2.9-1.7 5v.4c0 2 .6 3.7 1.7 5 1.1 1.3 2.6 1.9 4.4 1.9 1.8 0 3.3-.6 4.4-1.9 1.1-1.3 1.7-2.9 1.7-5v-.4c-.1-2-.6-3.7-1.7-5zm.1 5.4c0 1.6-.4 2.9-1.2 4-.8 1.1-1.9 1.6-3.3 1.6s-2.6-.5-3.4-1.6c-.8-1.1-1.2-2.4-1.2-4v-.4c0-1.6.4-2.9 1.2-4s1.9-1.6 3.3-1.6 2.5.5 3.3 1.6c.8 1.1 1.2 2.4 1.2 4v.4zM52.6 2.8c-1.1-1-2.6-1.5-4.5-1.5h-6.3v18.4h1.5v-7.6h4.8c1.9 0 3.4-.5 4.5-1.5s1.6-2.3 1.6-3.9-.5-2.9-1.6-3.9zm-1.1 6.8c-.8.8-1.9 1.2-3.4 1.2h-4.8V2.6h4.8c1.5 0 2.7.4 3.4 1.2.8.8 1.1 1.8 1.1 2.9.1 1.2-.3 2.2-1.1 2.9zM32.1 7.7h3.6v12h-3.6zM35.9 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zM28.7 17l-2.3-2.1c-.9 1.1-1.8 1.7-3.2 1.7-1.7 0-2.8-1.4-2.8-3.6s1.1-3.6 2.8-3.6c1.5 0 2.3.8 3.1 1.9l2.4-2.4c-1.1-1.7-2.8-3-5.4-3-3.8 0-6.5 2.9-6.5 7.1 0 4.2 2.8 7.1 6.4 7.1 2.6-.1 4.1-1.4 5.5-3.1zM14.2 14.2c0-3.9-3.2-4.9-6.1-5.6-2.9-.6-3.6-1-3.6-2.1 0-.8.6-1.6 2.6-1.6 1.7 0 3 .7 4.1 1.9l2.6-2.5c-1.7-1.9-3.8-3-6.6-3-3.6 0-6.5 2-6.5 5.3 0 3.6 2.3 4.6 5.7 5.4 3.4.8 4 1.3 4 2.5 0 1.4-1 2-3.2 2-1.7 0-3.4-.6-4.6-2.1L0 16.7c1.4 2 4 3.3 7.1 3.3 4.9 0 7.1-2.3 7.1-5.8z'/%3E %3C/svg%3E");
  color: transparent;
  font-size: 0;
}

/*
    Logo on Dark

    Markup:
    <a class="c-logo c-logo--white" href="#" title="Go to SciPol Home"></a>

    Dark: true

    Styleguide: Components.Logo.Logo on Dark
  */

.c-logo--white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='75' height='20' viewBox='0 0 75 20' fill='%23fff'%3E %3Cpath d='M73.5 0H75v19.7h-1.5zM66.9 7.7c-1.1-1.3-2.6-1.9-4.4-1.9-1.8 0-3.3.6-4.4 1.9-1.1 1.3-1.7 2.9-1.7 5v.4c0 2 .6 3.7 1.7 5 1.1 1.3 2.6 1.9 4.4 1.9 1.8 0 3.3-.6 4.4-1.9 1.1-1.3 1.7-2.9 1.7-5v-.4c-.1-2-.6-3.7-1.7-5zm.1 5.4c0 1.6-.4 2.9-1.2 4-.8 1.1-1.9 1.6-3.3 1.6s-2.6-.5-3.4-1.6c-.8-1.1-1.2-2.4-1.2-4v-.4c0-1.6.4-2.9 1.2-4s1.9-1.6 3.3-1.6 2.5.5 3.3 1.6c.8 1.1 1.2 2.4 1.2 4v.4zM52.6 2.8c-1.1-1-2.6-1.5-4.5-1.5h-6.3v18.4h1.5v-7.6h4.8c1.9 0 3.4-.5 4.5-1.5s1.6-2.3 1.6-3.9-.5-2.9-1.6-3.9zm-1.1 6.8c-.8.8-1.9 1.2-3.4 1.2h-4.8V2.6h4.8c1.5 0 2.7.4 3.4 1.2.8.8 1.1 1.8 1.1 2.9.1 1.2-.3 2.2-1.1 2.9zM32.1 7.7h3.6v12h-3.6zM35.9 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zM28.7 17l-2.3-2.1c-.9 1.1-1.8 1.7-3.2 1.7-1.7 0-2.8-1.4-2.8-3.6s1.1-3.6 2.8-3.6c1.5 0 2.3.8 3.1 1.9l2.4-2.4c-1.1-1.7-2.8-3-5.4-3-3.8 0-6.5 2.9-6.5 7.1 0 4.2 2.8 7.1 6.4 7.1 2.6-.1 4.1-1.4 5.5-3.1zM14.2 14.2c0-3.9-3.2-4.9-6.1-5.6-2.9-.6-3.6-1-3.6-2.1 0-.8.6-1.6 2.6-1.6 1.7 0 3 .7 4.1 1.9l2.6-2.5c-1.7-1.9-3.8-3-6.6-3-3.6 0-6.5 2-6.5 5.3 0 3.6 2.3 4.6 5.7 5.4 3.4.8 4 1.3 4 2.5 0 1.4-1 2-3.2 2-1.7 0-3.4-.6-4.6-2.1L0 16.7c1.4 2 4 3.3 7.1 3.3 4.9 0 7.1-2.3 7.1-5.8z'/%3E %3C/svg%3E");
}

.c-logo:not(:last-child) {
  margin-right: 18px;
  margin-right: 1.125rem;
}

/* ==========================================================================
 * Logo List
 * ========================================================================== */

/*
  Logo List

  Markup:
  <div class="c-logo-list">
    <img class="c-logo-list__logo" src="./../img/logo-duke-science-and-society-alt.png">
    <img class="c-logo-list__logo" src="./../img/logo-1.png">
    <img class="c-logo-list__logo" src="./../img/logo-2.png">
    <img class="c-logo-list__logo" src="./../img/logo-3.png">
  </div>

  Dark: true

  Styleguide: Components.Logo List
*/

.c-logo-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-line-pack: center;
      align-content: center;
}

.c-logo-list__logo {
  display: block;
  height: 60px;
  height: 3.75rem;
}

.c-logo-list__logo:not(:last-child) {
  margin-right: 48px;
  margin-right: 3rem;
}

/* ==========================================================================
 * Map
 * ========================================================================== */

/*
  Map

  To generate a Google Maps iframe, type in the location you want to display on https://www.google.com/maps/ and click the "Share" link, then copy the iframe url from the "Embed Map" tab.

  Markup:
  <div class="c-map">
    <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d206576.6012969359!2d-79.02533700096933!3d36.001745117091055!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89ace471120f66f1%3A0xe17ada898a46f27e!2sDurham%2C+NC!5e0!3m2!1sen!2sus!4v1470081916599" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
  </div>

  Styleguide: Components.Map
*/

.c-map {
  position: relative;
  height: 40vh;
  overflow: hidden;
}

.c-map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.c-map iframe.is-inactive {
  pointer-events: none;
}

/* ==========================================================================
 * Menus
 * ========================================================================== */

/*
  Menus

  Markup:
  <ul class="c-menu">
    <li><a class="c-menu__link" href>Item</a></li>
    <li><a class="c-menu__link" href>Item</a></li>
    <li><a class="c-menu__link" href>Item</a></li>
  </ul>

  Styleguide: Components.Menus
*/

.c-menu__link {
  display: block;
  padding: 6px;
  padding: 0.375rem;
  background-color: #fff;
  color: #9b9b9b;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
}

.c-menu__link:hover {
  background-color: #007ed0;
  color: #fff;
}

.c-menu__submenu {
  padding-left: 12px;
  padding-left: 0.75rem;
}

.c-menu__submenu > li {
  padding-bottom: 12px;
  padding-bottom: 0.75rem;
}

.c-menu__subtitle {
  font-weight: bold;
  text-transform: uppercase;
  color: black;
}

/* ==========================================================================
 * Navigation
 * ========================================================================== */

/*
  Navigation

  Markup:
  <nav class="c-navigation {{ modifier_class }}">
    <ul class="c-navigation__list">
      <li class="c-navigation__item has-dropdown">
        <a class="c-navigation__link" href="#">Item 1</a>
        <div class="c-navigation__dropdown-wrapper">
          <div class="c-navigation__dropdown">
            <ul class="c-menu">
              <li><a class="c-menu__link" href>Item</a></li>
              <li><a class="c-menu__link" href>Item</a></li>
              <li><a class="c-menu__link" href>Item</a></li>
            </ul>
          </div>
        </div>
      </li>
      <li class="c-navigation__item">
        <a class="c-navigation__link" href="#">Item 2</a>
      </li>
      <li class="c-navigation__item">
        <a class="c-navigation__link" href="#">Item 3</a>
      </li>
      <li class="c-navigation__item">
        <a class="c-navigation__link" href="#">Item 4</a>
      </li>
      <li class="c-navigation__item">
        <a class="c-navigation__link is-active" href="#">Item 5</a>
      </li>
    </ul>
  </nav>

  .c-navigation--vertical - Vertical Navigation

  Styleguide: Components.Navigation
*/

.c-navigation--vertical {
  margin-left: -6px;
  margin-left: -0.375rem;
}

.c-navigation--vertical .c-navigation__list {
  display: block;
}

/*
    Navigation on Dark Backgrounds

    Markup:
    <nav class="c-navigation c-navigation--on-dark {{ modifier_class }}">
      <ul class="c-navigation__list">
        <li class="c-navigation__item">
          <a class="c-navigation__link is-active" href="#">Item 1</a>
        </li>
        <li class="c-navigation__item">
          <a class="c-navigation__link" href="#">Item 2</a>
        </li>
        <li class="c-navigation__item">
          <a class="c-navigation__link" href="#">Item 3</a>
        </li>
        <li class="c-navigation__item">
          <a class="c-navigation__link" href="#">Item 4</a>
        </li>
        <li class="c-navigation__item">
          <a class="c-navigation__link" href="#">Item 5</a>
        </li>
      </ul>
    </nav>

    .c-navigation--vertical - Vertical Navigation

    Dark: true

    Styleguide: Components.Navigation.Navigation on Dark Backgrounds
  */

.c-navigation--on-dark .c-navigation__link {
  color: #fff;
}

.c-navigation--on-dark .c-navigation__link:hover, .c-navigation--on-dark .c-navigation__link.is-active {
  color: #fff;
}

.c-navigation--on-dark .c-navigation__link:hover {
  text-decoration: underline;
}

.c-navigation ul.menu li {
  margin: 0;
  padding: 0;
}

.c-navigation > .menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.c-navigation > .menu li.leaf, .c-navigation > .menu li.expanded {
  list-style-type: none;
  list-style-image: none;
}

.c-navigation > .menu > li a {
  display: block;
  padding: 6px;
  padding: 0.375rem;
  border-radius: 3px;
  color: #9b9b9b;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
  -webkit-transition: background-color 0.15s ease-in-out,
                    color 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out,
                    color 0.15s ease-in-out;
}

.c-navigation > .menu > li a:hover, .c-navigation > .menu > li a.is-active {
  color: #007ed0;
}

.c-navigation > .menu > li > ul.menu {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  -webkit-transform: translate(0, 6px);
  -webkit-transform: translate(0, 0.375rem);
          transform: translate(0, 6px);
          transform: translate(0, 0.375rem);
  -webkit-transition: opacity 0.15s ease-in-out,
                    -webkit-transform 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out,
                    -webkit-transform 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out,
                    transform 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out,
                    transform 0.15s ease-in-out,
                    -webkit-transform 0.15s ease-in-out;
  will-change: opacity, transform;
  z-index: 100;
  padding: 6px;
  padding: 0.375rem;
  min-width: 480px;
  min-width: 30rem;
  background: #fff;
  border-radius: 3px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 0.9375rem rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

.c-navigation > .menu > li > ul.menu > .first {
  width: 60%;
}

.c-navigation > .menu > li > ul.menu > li > a {
  font-size: 14px;
  font-size: 0.875rem;
}

.c-navigation > .menu > li:hover > ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  opacity: 1;
  pointer-events: all;
  -webkit-transform: translate(0, -1px);
          transform: translate(0, -1px);
}

.c-navigation > .menu > li:hover > ul > li > a {
  font-weight: bold;
  text-transform: uppercase;
  color: black;
}

.c-navigation > .menu > li:not(:last-child) {
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-navigation > .menu > li.expanded > a::after {
  display: inline-block;
  position: relative;
  top: 1px;
  width: 1em;
  height: 1em;
  margin-left: 6px;
  margin-left: 0.375rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' fill='%23d7d7d7'%3E %3Cpolygon points='4,7.2 7.9,2.8 0,2.8 '/%3E %3C/svg%3E");
  content: "";
}

/* ==========================================================================
 * Page Header
 * ========================================================================== */

/*
  Page Header

  Markup:
  <div class="c-page-header">
    <h1 class="c-page-header__title">Page Title</h1>
    <p class="c-page-header__description">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
    <div class="c-tags">
      <a class="c-tag">Tag 1</a>
      <a class="c-tag">Tag 2</a>
      <a class="c-tag">Tag 3</a>
      <a class="c-tag">Tag 4</a>
    </div>
  </div>

  Styleguide: Components.Page Header
*/

.c-page-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 24px;
  padding: 1.5rem;
  min-height: 120px;
  min-height: 7.5rem;
  background-color: #f2f2f2;
  background-repeat: no-repeat;
  background-position: center left;
  background-size: 0%;
}

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

  .c-page-header {
    background-size: 200px;
    background-size: 12.5rem;
    padding-left: 174px;
    padding-left: 10.875rem;
  }
}

.c-page-header__title {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-size: 36px;
  font-size: 2.25rem;
  margin-bottom: 6px;
  margin-bottom: 0.375rem;
  color: #007ed0;
}

.c-page-header__description {
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
}

.c-page-header > *:last-child {
  margin-bottom: 0;
}

.c-page-header--no-image {
  padding: 24px 0;
  padding: 1.5rem 0;
}

/* ==========================================================================
 * Icons
 * ========================================================================== */

/*
  Social Icons

  Markup:
  <a class="c-social-icon" href>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.3 20">
      <path d="M6.2 20V10H9l.4-3.4H6.2V4.9c0-.9.1-1.4 1.4-1.4h1.7V0H6.6C3.2 0 2.1 1.7 2.1 4.5v2.1H0V10h2.1v10h4.1z"/>
    </svg>
  </a>
  <a class="c-social-icon" href>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.4 16">
      <path d="M9.4 4.3V5l-.7-.1C6.2 4.5 4 3.4 2.1 1.6L1.2.7l-.3.6c-.5 1.6-.2 3.2.9 4.2.6.6.4.7-.5.3-.4-.1-.7-.1-.7-.1-.1.1.2 1.4.5 1.9.4.7 1.1 1.4 1.9 1.8l.7.3h-.8c-.8 0-.8 0-.7.3.3.9 1.4 1.9 2.6 2.3l.9.3-.8.5c-1.1.6-2.4 1-3.7 1-.6 0-1.1.1-1.1.1 0 .1 1.7.9 2.7 1.2 3 .9 6.5.5 9.2-1 1.9-1.1 3.8-3.3 4.7-5.5.5-1.1 1-3.2 1-4.2 0-.6 0-.7.8-1.5.5-.5.9-.9 1-1.1.1-.3.1-.3-.6 0-1.2.4-1.4.4-.8-.3.4-.5 1-1.3 1-1.5 0 0-.2 0-.4.2-.3.1-.8.4-1.2.5l-.8.2-.7-.5c-.4-.3-.9-.5-1.2-.6-.7-.2-1.8-.2-2.4.1-2 .6-3.1 2.3-3 4.1z"/>
    </svg>
  </a>

  Styleguide: Components.Social Icons
*/

.c-social {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.c-social-icon {
  display: inline-block;
  width: 32px;
  width: 2rem;
  height: 32px;
  height: 2rem;
  padding: 6px;
  padding: 0.375rem;
  vertical-align: middle;
}

.c-social-icon:not(:last-child) {
  margin-right: 12px;
  margin-right: 0.75rem;
}

/*
    Social Icons on White

    Markup:
    <a class="c-social-icon c-social-icon--white" href>
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9.3 20">
        <path d="M6.2 20V10H9l.4-3.4H6.2V4.9c0-.9.1-1.4 1.4-1.4h1.7V0H6.6C3.2 0 2.1 1.7 2.1 4.5v2.1H0V10h2.1v10h4.1z"/>
      </svg>
    </a>
    <a class="c-social-icon c-social-icon--white" href>
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.4 16">
        <path d="M9.4 4.3V5l-.7-.1C6.2 4.5 4 3.4 2.1 1.6L1.2.7l-.3.6c-.5 1.6-.2 3.2.9 4.2.6.6.4.7-.5.3-.4-.1-.7-.1-.7-.1-.1.1.2 1.4.5 1.9.4.7 1.1 1.4 1.9 1.8l.7.3h-.8c-.8 0-.8 0-.7.3.3.9 1.4 1.9 2.6 2.3l.9.3-.8.5c-1.1.6-2.4 1-3.7 1-.6 0-1.1.1-1.1.1 0 .1 1.7.9 2.7 1.2 3 .9 6.5.5 9.2-1 1.9-1.1 3.8-3.3 4.7-5.5.5-1.1 1-3.2 1-4.2 0-.6 0-.7.8-1.5.5-.5.9-.9 1-1.1.1-.3.1-.3-.6 0-1.2.4-1.4.4-.8-.3.4-.5 1-1.3 1-1.5 0 0-.2 0-.4.2-.3.1-.8.4-1.2.5l-.8.2-.7-.5c-.4-.3-.9-.5-1.2-.6-.7-.2-1.8-.2-2.4.1-2 .6-3.1 2.3-3 4.1z"/>
      </svg>
    </a>

    Dark: true

    Styleguide: Components.Social Icons.Social Icons on White
  */

.c-social-icon--white > svg {
  fill: #fff;
}

.c-social-icon > svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ==========================================================================
 * Tags
 * ========================================================================== */

/*
  Tags

  Markup:
  <ul class="c-tags">
    <li class="c-tag {{ modifier_class }}">Tag</li>
  </ul>

  Styleguide: Components.Tags
*/

.c-tags {
  font-size: 0;
}

/*
    Tags as Links

    Markup:
    <ul class="c-tags">
      <li><a class="c-tag" href="#">Tag 1</a></li>
      <li><a class="c-tag" href="#">Tag 2</a></li>
      <li><a class="c-tag" href="#">Tag 3</a></li>
    </ul>

    Styleguide: Components.Tags.Tags as Links
  */

.c-tags > li {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  white-space: nowrap;
}

.c-tags > li:not(:last-child) {
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-tag {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
  font-weight: 500;
  line-height: 1.2;
  font-family: "Montserrat", "Helvetica Neue", "Arial", sans-serif;
  font-size: 10px;
  font-size: 0.625rem;
  text-transform: uppercase;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  padding: 6px 11px;
  padding: 0.375rem 0.6875rem;
  background: #9b9b9b;
  border-radius: 100px;
  border-radius: 6.25rem;
  color: #fff;
  line-height: 1;
  margin-bottom: 6px;
  margin-bottom: 0.375rem;
}

.c-tag--Government, .c-tag--Agency, .c-tag--Elected-Body, .c-tag--Executive, .c-tag--Judicial, .c-tag--Statute {
  background: #001759;
}

.c-tag--Executive::before {
  content: '';
  background-color: white;
  -webkit-mask-image: url('/themes/scipol/src/img/icons/tag-executive.svg');
          mask-image: url('/themes/scipol/src/img/icons/tag-executive.svg');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-tag--Agency::before {
  content: '';
  background-color: white;
  -webkit-mask-image: url('/themes/scipol/src/img/icons/tag-agency.svg');
          mask-image: url('/themes/scipol/src/img/icons/tag-agency.svg');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-tag--Elected-Body::before {
  content: '';
  background-color: white;
  -webkit-mask-image: url('/themes/scipol/src/img/icons/tag-legislation.svg');
          mask-image: url('/themes/scipol/src/img/icons/tag-legislation.svg');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-tag--Judicial::before {
  content: '';
  background-color: white;
  -webkit-mask-image: url('/themes/scipol/src/img/icons/tag-judicial.svg');
          mask-image: url('/themes/scipol/src/img/icons/tag-judicial.svg');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-tag--Statute::before {
  content: '';
  background-color: white;
  -webkit-mask-image: url('/themes/scipol/src/img/icons/tag-regulatory.svg');
          mask-image: url('/themes/scipol/src/img/icons/tag-regulatory.svg');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-tag--Other {
  background: #8b572a;
}

.c-tag--Other::before {
  content: '';
  background-color: white;
  -webkit-mask-image: url('/themes/scipol/src/img/icons/tag-other.svg');
          mask-image: url('/themes/scipol/src/img/icons/tag-other.svg');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-tag--Industry {
  background: #29bd63;
}

.c-tag--Science {
  background: #ff8c00;
}

/*
    Tags with Icons

    Markup:
    <ul class="c-tags">
      <li class="c-tag {{ modifier_class }}"></li>
      <li class="c-tag {{ modifier_class }}">
        <span>Tag</span>
      </li>
    </ul>

    .c-tag--legislation - Legislation Tag
    .c-tag--executive - Executive Action Tag
    .c-tag--judicial - Judicial Action Tag
    .c-tag--regulatory - Regulatory Action Tag

    Styleguide: Components.Tags.Tags with Icons
  */

.c-tag--legislation {
  background-color: #001759;
}

.c-tag--legislation::before {
  display: block;
  position: relative;
  top: -1px;
  width: 1em;
  height: 1em;
  margin-right: 6px;
  margin-right: 0.375rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='%23fff'%3E %3Cpath id='JudicialAction' class='st0' d='M4,2.1C2.3,2.6,1,4.1,1,6v2H0v2h10V8H9V6c0-1.9-1.3-3.4-3-3.9V0H4V2.1z'/%3E %3C/svg%3E");
  content: "";
}

.c-tag--legislation:empty::before {
  margin-right: -12px;
  margin-right: -0.75rem;
  margin-left: -12px;
  margin-left: -0.75rem;
}

.c-tag--executive {
  background-color: #ef2420;
}

.c-tag--executive::before {
  display: block;
  position: relative;
  top: -1px;
  width: 1em;
  height: 1em;
  margin-right: 6px;
  margin-right: 0.375rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='%23fff'%3E %3Cpath id='ExecutiveAction' class='st0' d='M3,4v4H1V4H0V3l4.9-3L10,3v1H9v4H7V4H6v4H4V4H3z M0,8.8h10V10H0V8.8z'/%3E %3C/svg%3E");
  content: "";
}

.c-tag--executive:empty::before {
  margin-right: -12px;
  margin-right: -0.75rem;
  margin-left: -12px;
  margin-left: -0.75rem;
}

.c-tag--judicial {
  background-color: #ff8c00;
}

.c-tag--judicial::before {
  display: block;
  position: relative;
  top: -1px;
  width: 1em;
  height: 1em;
  margin-right: 6px;
  margin-right: 0.375rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='%23fff'%3E %3Cpath id='Legislation' class='st0' d='M4.7,6.5l1,1L5.3,8l1.3,1.3L10,5.9L8.7,4.6L8.2,5.1L4.9,1.8l0.5-0.5L4.1,0L0.7,3.4L2,4.7 l0.5-0.5l1,1L0.3,8.5c-0.4,0.4-0.4,0.9,0,1.3s0.9,0.4,1.3,0L4.7,6.5z'/%3E %3C/svg%3E");
  content: "";
}

.c-tag--judicial:empty::before {
  margin-right: -12px;
  margin-right: -0.75rem;
  margin-left: -12px;
  margin-left: -0.75rem;
}

.c-tag--regulatory {
  background-color: #007ed0;
}

.c-tag--regulatory::before {
  display: block;
  position: relative;
  top: -1px;
  width: 1em;
  height: 1em;
  margin-right: 6px;
  margin-right: 0.375rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='%23fff'%3E %3Cpath class='st0' d='M7.1,0H1v10h8V1.8L7.1,0z M8,8H2V7h6V8z M8,6H2V5h6V6z M8,4H2V3h6V4z'/%3E %3C/svg%3E");
  content: "";
}

.c-tag--regulatory:empty::before {
  margin-right: -12px;
  margin-right: -0.75rem;
  margin-left: -12px;
  margin-left: -0.75rem;
}

.c-tag:not(:last-child) {
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-audit {
  margin-top: 24px;
  margin-top: 1.5rem;
}

.c-audit-item {
  display: inline;
}

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

  .c-audit-item {
    white-space: nowrap;
  }
}

.c-audit-item__label {
  color: #9b9b9b;
}

.c-audit-item__date {
  font-weight: bold;
}

.c-audit-item:first-of-type::before {
  content: '';
}

.c-job-image {
  width: 120px;
  width: 7.5rem;
  height: 120px;
  height: 7.5rem;
  background-size: contain;
  background-position: center;
}

sup {
  top: 0;
}

.c-partners {
  margin: 12px 0;
  margin: 0.75rem 0;
}

.c-partners .c-partner {
  height: 40px;
  height: 2.5rem;
  margin-right: 24px;
  margin-right: 1.5rem;
}

.c-partners .c-partner:last-child {
  margin-right: 0;
}

/*
Layout

Weight: 4

Styleguide Layout
*/

/* ==========================================================================
 * Block
 * ========================================================================== */

/*
  Block

  Use `<div class="l-block"></div>` to wrap items that need a margin-bottom.

  Styleguide: Layout.Block
*/

.l-block {
  margin-bottom: 36px;
  margin-bottom: 2.25rem;
}

/* ==========================================================================
 * Card Group
 * ========================================================================== */

/*
  Card Group

  For displaying three cards in a row from 900px up.

  Markup:
  <div class="l-card-group">
    <div class="l-card-group__card">
      <section class="c-card [modifier class]">
        <div class="c-card__body">
          Card 1
        </div>
      </section>
    </div>
    <div class="l-card-group__card">
      <section class="c-card [modifier class]">
        <div class="c-card__body">
          Card 2
        </div>
      </section>
    </div>
    <div class="l-card-group__card">
      <section class="c-card [modifier class]">
        <div class="c-card__body">
          Card 3
        </div>
      </section>
    </div>
  </div>

  Styleguide: Layout.Card Group
*/

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

  .l-card-group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
}

@media screen and (max-width: 899px) {

  .l-card-group__card {
    margin-bottom: 24px;
    margin-bottom: 1.5rem;
  }
}

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

  .l-card-group__card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }

  .l-card-group__card:not(:last-child) {
    margin-right: 24px;
    margin-right: 1.5rem;
  }
}

.l-card-group__card > *:last-child {
  margin-bottom: 0;
}

.l-card-group > *:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
 * Container
 * ========================================================================== */

/*
  Container

  Use `<div class="l-container"></div>` to center and set a max-width on your content.

  Styleguide: Layout.Container
*/

.l-container {
  position: relative;
  max-width: 1100px;
  max-width: 68.75rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 18px;
  padding-right: 1.125rem;
  padding-left: 18px;
  padding-left: 1.125rem;
}

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

  .l-container {
    padding-right: 24px;
    padding-right: 1.5rem;
    padding-left: 24px;
    padding-left: 1.5rem;
  }
}

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

  .l-container {
    padding-right: 36px;
    padding-right: 2.25rem;
    padding-left: 36px;
    padding-left: 2.25rem;
  }
}

.l-container > *:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
 * Grid
 * ========================================================================== */

/*
   Grid

   Markup:
   <div class="l-grid">
     <section class="c-card">
       <div class="c-card__body">
         Card
       </div>
     </section>
     <section class="c-card">
       <div class="c-card__body">
         Card
       </div>
     </section>
   </div>

   Styleguide: Layout.Grid
 */

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

  .l-grid {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.l-grid > .l-grid__column {
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

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

  .l-grid > .l-grid__column:not(:last-child) {
    margin-right: 36px;
    margin-right: 2.25rem;
  }
}

/* ==========================================================================
 * Main
 * ========================================================================== */

/*
  Main

  Markup:
  <div class="l-main">
    <aside class="l-main__aside">
      Aside
    </aside>
    <main class="l-main__content">
      Main Content Area
    </main>
    <aside class="l-main__aside">
      Aside
    </aside>
  </div>

  Styleguide: Layout.Main
*/

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

  .l-main {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.l-main__content {
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.l-main__content > *:last-child {
  margin-bottom: 0;
}

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

  .l-main__content ~ .l-main__aside {
    width: 33.33%;
  }
}

.l-main__aside {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

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

  .l-main__aside {
    width: 25%;
  }
}

.l-main__aside > *:last-child {
  margin-bottom: 0;
}

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

  .l-main > *:not(:last-child) {
    margin-right: 24px;
    margin-right: 1.5rem;
  }
}

.l-main > *:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
 * Page
 * ========================================================================== */

/*
  Page

  Styleguide: Layout.Page
*/

.l-page {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden;
}

.l-page__header {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  padding-top: 12px;
  padding-top: 0.75rem;
  padding-bottom: 12px;
  padding-bottom: 0.75rem;
  background: #fff;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 0.9375rem rgba(0, 0, 0, 0.2);
  z-index: 200;
}

.l-page__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  position: relative;
  overflow: hidden;
}

.l-page__content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.l-page__columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.l-page__column {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding: 24px;
  padding: 1.5rem;
}

/* ==========================================================================
 * Sections
 * ========================================================================== */

/*
  Sections

  Markup:
  <section class="l-section {{ modifier_class }}">
    <div class="l-container">
      Section Content
    </div>
  </section>

  .l-section--gray - Gray Section
  .l-section--blue - Blue Section
  .l-section--blue-dark - Dark Blue Section

  Styleguide: Layout.Sections
*/

.l-section {
  padding-top: 36px;
  padding-top: 2.25rem;
  padding-bottom: 36px;
  padding-bottom: 2.25rem;
}

/*
    Flat Sections

    Use the `.l-section--flat` modifier class to remove the default top and bottom padding.

    Markup:
    <section class="l-section l-section--flat">
      <div class="l-container">
        Flat Section
      </div>
    </section>

    Styleguide: Layout.Sections.Flat Sections
  */

.l-section--flat {
  padding-top: 0;
  padding-bottom: 0;
}

.l-section--white {
  background-color: #fff;
}

.l-section--white + .l-section--white {
  padding-top: 0;
}

.l-section--gray {
  background-color: #f2f2f2;
}

.l-section--gray + .l-section--gray {
  padding-top: 0;
}

.l-section--blue {
  background-color: #007ed0;
}

.l-section--blue + .l-section--blue {
  padding-top: 0;
}

.l-section--blue-dark {
  background-color: #001759;
}

.l-section--blue-dark + .l-section--blue-dark {
  padding-top: 0;
}

/* ==========================================================================
 * Slideout Menu
 * ========================================================================== */

@media screen and (max-width: 979px) {

  .l-slideout-menu-overlay {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.4);
    content: "";
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    -webkit-transition: opacity 0.3s ease-in-out;
    transition: opacity 0.3s ease-in-out;
    z-index: 99;
  }
}

@media screen and (max-width: 979px) {

  .l-slideout-menu-overlay.is-visible {
    opacity: 1;
    pointer-events: all;
  }
}

.l-slideout-menu {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 200px;
  width: 12.5rem;
  padding: 12px;
  padding: 0.75rem;
  background: #fff;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 100;
}

@media screen and (max-width: 979px) {

  .l-slideout-menu {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    -webkit-transition: box-shadow 0.3s ease-in-out,
                -webkit-transform 0.3s ease-in-out;
    transition: box-shadow 0.3s ease-in-out,
                -webkit-transform 0.3s ease-in-out;
    transition: box-shadow 0.3s ease-in-out,
                transform 0.3s ease-in-out;
    transition: box-shadow 0.3s ease-in-out,
                transform 0.3s ease-in-out,
                -webkit-transform 0.3s ease-in-out;
  }
}

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

  .l-slideout-menu {
    border-right: 1px solid #d7d7d7;
  }
}

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

  .l-slideout-menu--mobile-only {
    display: none;
  }
}

@media screen and (max-width: 979px) {

  .l-slideout-menu.is-visible {
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    box-shadow: 0 0 0.3125rem rgba(0, 0, 0, 0.3);
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

/* ==========================================================================
 * Well
 * ========================================================================== */

/*
  Well

  Markup:
  <aside class="l-well">
    Well
  </aside>

  Styleguide: Layout.Well
*/

.l-well {
  padding: 24px;
  padding: 1.5rem;
  background-color: #f2f2f2;
}

.l-well:not(:last-child) {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.l-well > *:last-child {
  margin-bottom: 0;
}

/*
Helpers

Weight: 5

Styleguide Helpers
*/

/* ==========================================================================
 * Clearfix
 * ========================================================================== */

/*
Clearfix

Use `.h-clearfix` to fix the zero-height container problem for floated elements.

Styleguide Helpers.Clearfix
*/

.h-clearfix {
  display: table;
  clear: both;
  content: "";
}

/* ==========================================================================
 * Disabled
 * ========================================================================== */

/*
Disabled

Use the custom property `--disabled`, the `disabled` attribute or the `.is-disabled` class to disable any element.

Markup:
<button class="c-button">Default Button</button>
<button class="c-button" disabled>Disabled Button</button>
<button class="c-button is-disabled">Disabled Button</button>

Styleguide Helpers.Disabled
*/

[disabled], .is-disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

/* ==========================================================================
 * Floats
 * ========================================================================== */

/*
Floats

Styleguide Helpers.Floats
*/

.h-float-right {
  float: right !important;
}

.h-float-left {
  float: left !important;
}

/* ==========================================================================
 * Reset
 * ========================================================================== */

/*
Reset

Use `.h-reset` to set all styles to their initial state.

Styleguide Helpers.Reset
*/

.h-reset {
  -webkit-animation: none 0s ease 0s 1 normal none running;
          animation: none 0s ease 0s 1 normal none running;
  -webkit-backface-visibility: visible;
          backface-visibility: visible;
  background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
  border: medium none currentColor;
  border-collapse: separate;
  -o-border-image: none;
     border-image: none;
  border-radius: 0;
  border-spacing: 0;
  bottom: auto;
  box-shadow: none;
  box-sizing: content-box;
  caption-side: top;
  clear: none;
  clip: auto;
  color: #000;
  -webkit-columns: auto;
     -moz-columns: auto;
          columns: auto;
  -webkit-column-count: auto;
     -moz-column-count: auto;
          column-count: auto;
  -webkit-column-fill: balance;
     -moz-column-fill: balance;
          column-fill: balance;
  -webkit-column-gap: normal;
     -moz-column-gap: normal;
          column-gap: normal;
  -webkit-column-rule: medium none currentColor;
     -moz-column-rule: medium none currentColor;
          column-rule: medium none currentColor;
  -webkit-column-span: 1;
     -moz-column-span: 1;
          column-span: 1;
  -webkit-column-width: auto;
     -moz-column-width: auto;
          column-width: auto;
  content: normal;
  counter-increment: none;
  counter-reset: none;
  cursor: auto;
  direction: ltr;
  display: inline;
  empty-cells: show;
  float: none;
  font-family: serif;
  font-size: medium;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  font-stretch: normal;
  line-height: normal;
  height: auto;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  left: auto;
  letter-spacing: normal;
  list-style: disc outside none;
  margin: 0;
  max-height: none;
  max-width: none;
  min-height: 0;
  min-width: 0;
  opacity: 1;
  orphans: 2;
  outline: medium none invert;
  overflow: visible;
  overflow-x: visible;
  overflow-y: visible;
  padding: 0;
  page-break-after: auto;
  page-break-before: auto;
  page-break-inside: auto;
  -webkit-perspective: none;
          perspective: none;
  -webkit-perspective-origin: 50% 50%;
          perspective-origin: 50% 50%;
  position: static;
  right: auto;
  -moz-tab-size: 8;
    -o-tab-size: 8;
       tab-size: 8;
  table-layout: auto;
  text-align: left;
  -moz-text-align-last: auto;
       text-align-last: auto;
  text-decoration: none;
  text-indent: 0;
  text-shadow: none;
  text-transform: none;
  top: auto;
  -webkit-transform: none;
          transform: none;
  -webkit-transform-origin: 50% 50% 0;
          transform-origin: 50% 50% 0;
  -webkit-transform-style: flat;
          transform-style: flat;
  -webkit-transition: none 0s ease 0s;
  transition: none 0s ease 0s;
  unicode-bidi: normal;
  vertical-align: baseline;
  visibility: visible;
  white-space: normal;
  widows: 2;
  width: auto;
  word-spacing: normal;
  z-index: auto;
  animation: none 0s ease 0s 1 normal none running;
  backface-visibility: visible;
  background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
  border: medium none currentColor;
  border-collapse: separate;
  border-image: none;
  border-radius: 0;
  border-spacing: 0;
  bottom: auto;
  box-shadow: none;
  box-sizing: content-box;
  caption-side: top;
  clear: none;
  clip: auto;
  color: #000;
  columns: auto;
  column-count: auto;
  column-fill: balance;
  column-gap: normal;
  column-rule: medium none currentColor;
  column-span: 1;
  column-width: auto;
  content: normal;
  counter-increment: none;
  counter-reset: none;
  cursor: auto;
  direction: ltr;
  display: inline;
  empty-cells: show;
  float: none;
  font-family: serif;
  font-size: medium;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  font-stretch: normal;
  line-height: normal;
  height: auto;
  hyphens: none;
  left: auto;
  letter-spacing: normal;
  list-style: disc outside none;
  margin: 0;
  max-height: none;
  max-width: none;
  min-height: 0;
  min-width: 0;
  opacity: 1;
  orphans: 2;
  outline: medium none invert;
  overflow: visible;
  overflow-x: visible;
  overflow-y: visible;
  padding: 0;
  page-break-after: auto;
  page-break-before: auto;
  page-break-inside: auto;
  perspective: none;
  perspective-origin: 50% 50%;
  position: static;
  right: auto;
  tab-size: 8;
  table-layout: auto;
  text-align: left;
  text-align-last: auto;
  text-decoration: none;
  text-indent: 0;
  text-shadow: none;
  text-transform: none;
  top: auto;
  transform: none;
  transform-origin: 50% 50% 0;
  transform-style: flat;
  transition: none 0s ease 0s;
  unicode-bidi: normal;
  vertical-align: baseline;
  visibility: visible;
  white-space: normal;
  widows: 2;
  width: auto;
  word-spacing: normal;
  z-index: auto;
  all: initial;
}

/* ==========================================================================
 * Typography
 * ========================================================================== */

/*
Typography

Styleguide Helpers.Typography
*/

.h-text-center {
  text-align: center !important;
}

/* Overrides */

/* ==========================================================================
 * Overrides
 * ========================================================================== */

.duke-logo-header {
  display: block;
  width: 120px;
  width: 7.5rem;
  color: #9b9b9b;
  text-transform: lowercase;
  text-align: center;
  font-size: 10px;
  font-size: 0.625rem;
}

.views-exposed-widgets {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.views-exposed-widgets .views-exposed-widget > label {
  display: block;
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid #d7d7d7;
  padding-top: 12px;
  padding-top: 0.75rem;
  padding-bottom: 6px;
  padding-bottom: 0.375rem;
}

.views-widget-filter-created .views-widget {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.views-widget-filter-created .views-widget .form-item-created-min {
  -webkit-box-flex: 2;
      -ms-flex: 2;
          flex: 2;
}

.views-widget-filter-created .views-widget .form-item-created-max {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 3;
      -ms-flex: 3;
          flex: 3;
}

.views-widget-filter-created .views-widget .form-item-created-max label {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -ms-flex-preferred-size: 33.33333%;
      flex-basis: 33.33333%;
  text-align: center;
  display: block;
  font-size: 0;
}

.views-widget-filter-created .views-widget .form-item-created-max label::before {
  content: '-';
  display: block;
  font-size: 26px;
  font-size: 1.625rem;
}

.views-widget-filter-created .views-widget .form-item-created-max input {
  -webkit-box-flex: 2;
      -ms-flex: 2;
          flex: 2;
  -ms-flex-preferred-size: 66.66667%;
      flex-basis: 66.66667%;
}

.view-policy-developments-on-front-page .views-row {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.view-calendar .date-nav-wrapper {
  margin: 0;
  border: 1px solid #d7d7d7;
  border-bottom: 0;
  background: #f2f2f2;
  padding: 6px 0;
  padding: 0.375rem 0;
  text-transform: uppercase;
}

.view-calendar .date-nav-wrapper .date-nav {
  margin: 0;
  padding: 0;
}

.view-calendar .date-nav-wrapper .date-nav .date-heading h3 {
  font-size: 16px;
  font-size: 1rem;
}

.view-calendar .date-nav-wrapper .date-nav .date-prev, .view-calendar .date-nav-wrapper .date-nav .date-next {
  margin: 0;
  background-color: transparent;
}

.view-calendar .date-nav-wrapper .date-nav .date-prev > a, .view-calendar .date-nav-wrapper .date-nav .date-next > a {
  font-size: 0;
}

.view-calendar .date-nav-wrapper .date-nav .date-prev > a::before, .view-calendar .date-nav-wrapper .date-nav .date-next > a::before {
  display: inline-block;
  color: #007ed0;
  -webkit-transform: scale(1.5, 4);
          transform: scale(1.5, 4);
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 300;
}

.view-calendar .date-nav-wrapper .date-nav .date-prev {
  left: 0;
  right: auto;
}

.view-calendar .date-nav-wrapper .date-nav .date-prev > a::before {
  content: '<';
}

.view-calendar .date-nav-wrapper .date-nav .date-next > a::before {
  content: '>';
}

.view-calendar .date-nav-wrapper .date-nav .pager {
  margin: 0;
}

.view-calendar .calendar-calendar thead {
  display: none;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day.starts-today {
  border-color: #d7d7d7;
  border-width: 1px;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day.ends-today {
  border-color: #d7d7d7;
  border-width: 1px;
}

.view-calendar .calendar-calendar .month-view .full td.today {
  border-color: #d7d7d7;
  border-width: 1px;
}

.view-calendar .calendar-calendar .month-view .full td.date-box {
  color: #9b9b9b;
  font-size: 10px;
  font-size: 0.625rem;
  border-color: #d7d7d7;
  border-width: 1px;
  border-bottom: 0;
}

.view-calendar .calendar-calendar .month-view .full td.date-box.empty {
  background: transparent;
}

.view-calendar .calendar-calendar .month-view .full td.date-box.empty .day {
  display: none;
}

.view-calendar .calendar-calendar .month-view .full td.date-box .day {
  float: none;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #f2f2f2;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .views-field {
  display: none;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .contents > a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview div.cutoff {
  background-color: #f2f2f2;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview div.continues {
  background-color: #f2f2f2;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .c-dot {
  background: #9b9b9b;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .c-dot--Hearing {
  background: #ef2420;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .c-dot--Comments {
  background: #007ed0;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .c-dot--Meeting-Workshop {
  background: #001759;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .c-dot--Nominations {
  background: #ff8c00;
}

.view-calendar .calendar-calendar .month-view .full td.multi-day div.monthview .c-dot--Other {
  background: #29bd63;
}

.view-calendar .calendar-calendar .month-view .full td.single-day {
  border-color: #d7d7d7;
  min-height: 36px !important;
  min-height: 2.25rem !important;
}

.view-calendar .calendar-calendar .month-view .full td.single-day.today {
  border-width: 1px;
  border-color: #d7d7d7;
}

.view-calendar .calendar-calendar .month-view .full td.single-day .inner {
  min-height: 36px !important;
  min-height: 2.25rem !important;
}

.view-calendar .calendar-calendar .month-view .full td.single-day.empty {
  background: transparent;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview {
  background-color: transparent;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .views-field {
  display: none;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .contents > a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .c-dot {
  background: #9b9b9b;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .c-dot--Hearing {
  background: #ef2420;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .c-dot--Comments {
  background: #007ed0;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .c-dot--Meeting-Workshop {
  background: #001759;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .c-dot--Nominations {
  background: #ff8c00;
}

.view-calendar .calendar-calendar .month-view .full td.single-day div.monthview .c-dot--Other {
  background: #29bd63;
}

.c-dot {
  display: inline-block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 8px;
  width: 0.5rem;
  height: 8px;
  height: 0.5rem;
  border-radius: 4px;
  background: #9b9b9b;
  margin-right: 6px;
  margin-right: 0.375rem;
}

.c-dot--Hearing {
  background: #ef2420;
}

.c-dot--Comments {
  background: #007ed0;
}

.c-dot--Meeting-Workshop {
  background: #001759;
}

.c-dot--Nominations {
  background: #ff8c00;
}

.c-dot--Other {
  background: #29bd63;
}

.view-event-categories .view-header p {
  margin: 6px 0;
  margin: 0.375rem 0;
  font-weight: 400;
}

.view-event-categories .view-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  font-size: 12px;
  font-size: 0.75rem;
}

.view-event-categories .views-row {
  -ms-flex-preferred-size: 50%;
      flex-basis: 50%;
  white-space: nowrap;
}

.view-event-categories .views-field {
  display: inline-block;
  margin-right: 12px;
  margin-right: 0.75rem;
}

.view-news-on-front-page {
  margin-top: 18px;
  margin-top: 1.125rem;
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
}

.view-news-on-front-page .c-card {
  margin-bottom: 24px;
  margin-bottom: 1.5rem;
}

.view-news-on-front-page .view-footer {
  text-align: center;
  font-weight: bold;
  font-size: 12px;
  font-size: 0.75rem;
  text-transform: uppercase;
}

.region-aside .calendar.monthview .c-event-name {
  display: none;
}

.view-promoted-content {
  margin-bottom: 36px;
  margin-bottom: 2.25rem;
}

.view-promoted-content .c-card {
  margin-bottom: 0;
}

.search-form input[type="text"], .search-form input[type="email"] {
  margin: 12px 0;
  margin: 0.75rem 0;
}

.search-form input[type="submit"] {
  background: #007ed0;
  color: white;
  border-radius: 3px;
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
  padding: 6px 24px;
  padding: 0.375rem 1.5rem;
}

.about .l-main__content h1, .resources .l-main__content h1 {
  text-transform: uppercase;
  font-size: 12px;
  font-size: 0.75rem;
  padding: 24px 0;
  padding: 1.5rem 0;
  border-bottom: 2px solid #d7d7d7;
  margin-bottom: 36px;
  margin-bottom: 2.25rem;
}

.about .l-main__content h2, .resources .l-main__content h2 {
  font-size: 22px;
  font-size: 1.375rem;
}

.about .l-main__content p, .resources .l-main__content p {
  color: #9b9b9b;
}

.about .l-main__content .c-people, .resources .l-main__content .c-people {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.about .l-main__content .c-people > div, .resources .l-main__content .c-people > div {
  -ms-flex-preferred-size: 50%;
      flex-basis: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 48px;
  padding: 3rem;
}

.about .l-main__content .c-people > div img, .resources .l-main__content .c-people > div img {
  width: 150px;
  width: 9.375rem;
  height: 150px;
  height: 9.375rem;
  border-radius: 50%;
}

.about .l-main__content .c-people > div .c-headshot-placeholder, .resources .l-main__content .c-people > div .c-headshot-placeholder {
  width: 150px;
  width: 9.375rem;
  height: 150px;
  height: 9.375rem;
  border-radius: 50%;
  background: #f2f2f2;
}

.region-content .webform-client-form {
  background-color: #f2f2f2;
}

.region-content .webform-client-form > div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.region-content .webform-client-form > div .form-item {
  margin: 0;
}

.region-content .webform-client-form > div .form-item-search-block-form .form-text {
  min-width: 149px;
  min-width: 9.3125rem;
}

.region-content .webform-client-form > div input[type="text"], .region-content .webform-client-form > div input[type="email"] {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.region-content .webform-client-form > div input[type="submit"] {
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px;
  background-size: 1.375rem;
  height: 30px;
  height: 1.875rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.region-content .webform-client-form > div .form-actions {
  margin: 0;
}

.view-promoted-content .hero {
  width: 100%;
  margin-bottom: 36px;
  margin-bottom: 2.25rem;
}

.view-promoted-content .hero .c-card {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.view-promoted-content .hero .c-card__thumbnail-image {
  -ms-flex-preferred-size: 60%;
      flex-basis: 60%;
}

.view-promoted-content .featured {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 36px;
  margin-bottom: 2.25rem;
}

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

  .view-promoted-policy-development .view-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
}

@media screen and (max-width: 899px) {

  .view-promoted-policy-development .views-row {
    margin-bottom: 24px;
    margin-bottom: 1.5rem;
  }
}

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

  .view-promoted-policy-development .views-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }

  .view-promoted-policy-development .views-row:not(:last-child) {
    margin-right: 24px;
    margin-right: 1.5rem;
  }
}

.view-promoted-policy-development .views-row > *:last-child {
  margin-bottom: 0;
}

.views-widget-filter-event_calendar_date_value .form-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.views-widget-filter-event_calendar_date_value .description {
  display: none;
}

.views-widget-filter-event_calendar_date_value .form-item > input[type="text"] {
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
}

#views-exposed-form-search-page-mefibs-form-search-criteria-on-page .views-exposed-widgets {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

#views-exposed-form-search-page-mefibs-form-search-criteria-on-page .views-exposed-widgets .views-submit-button input[type="submit"] {
  background: #007ed0;
  color: white;
  border-radius: 3px;
  margin-bottom: 12px;
  margin-bottom: 0.75rem;
  padding: 6px 24px;
  padding: 0.375rem 1.5rem;
}

#views-exposed-form-search-page-mefibs-form-search-criteria-on-page .views-exposed-widgets .views-exposed-widget {
  -ms-flex-preferred-size: 33.33333%;
      flex-basis: 33.33333%;
}

#views-exposed-form-search-page-mefibs-form-search-criteria-on-page .views-exposed-widgets .views-widget-filter-search_api_views_fulltext {
  -ms-flex-preferred-size: 80%;
      flex-basis: 80%;
}

.node-type-policy-development .c-signup-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.node-type-policy-development .c-signup-form .c-form-group__label {
  -ms-flex-preferred-size: 30%;
      flex-basis: 30%;
  font-size: 12px;
  font-size: 0.75rem;
  font-weight: 500;
  margin-right: 18px;
  margin-right: 1.125rem;
  margin-bottom: 0;
}

.page-engage div.monthview .c-dot {
  margin-top: 6px;
  margin-top: 0.375rem;
}

.c-time {
  white-space: pre;
}

.node-type-webform .webform-client-form {
  padding: 24px;
  padding: 1.5rem;
}

.node-type-webform .webform-client-form > div {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
              -ms-grid-row-align: stretch;
          align-items: stretch;
}

.node-type-webform .webform-client-form > div .form-item {
  padding: 6px 0;
  padding: 0.375rem 0;
}

.node-type-webform .webform-client-form > div .form-actions {
  padding: 6px 0;
  padding: 0.375rem 0;
}

.node-type-webform .webform-client-form > div .form-actions input[type="submit"] {
  border-radius: 3px;
}

@media print {
  .content .l-block ~ .l-block {
    display: none;
  }
}

.c-tagline {
  text-align: center;
  color: #9b9b9b;
}

.c-tagline h1 {
  font-size: 22px;
  font-size: 1.375rem;
}

.c-tagline p {
  margin: 0 auto;
  max-width: 600px;
  max-width: 37.5rem;
}

.easy_social_box {
  margin-bottom: 18px;
  margin-bottom: 1.125rem;
}

.front .c-page-header {
  min-height: inherit;
}

.front .c-page-header__description {
  font-style: italic;
}

.bef-tree-depth-1 {
  padding-left: 12px;
  padding-left: 0.75rem;
}

#block-views-funding-partners-block h2 {
  text-align: center;
  font-size: 16px;
  font-size: 1rem;
  margin: 0;
}

#block-views-funding-partners-block .view-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

#block-views-funding-partners-block .view-content .views-row {
  width: 50%;
  padding: 14px;
  padding: 0.875rem;
  padding: 1rem;
}

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

  #block-views-funding-partners-block .view-content .views-row {
    width: 25%;
  }
}

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

  #block-views-funding-partners-block .view-content .views-row {
    width: 20%;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiLi4vc3JjL2Nzcy9zdHlsZXMuY3NzIiwiLi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5jc3Mvbm9ybWFsaXplLmNzcyIsIi4uL25vZGVfbW9kdWxlcy9zYW5pdGl6ZS5jc3Mvc2FuaXRpemUuY3NzIiwiLi4vc3JjL2Nzcy9wZGYuY3NzIiwiLi4vc3JjL2Nzcy8xX3V0aWxpdGllcy92YXJpYWJsZXMuY3NzIiwiLi4vc3JjL2Nzcy8yX2Jhc2UvYm9keS5jc3MiLCIuLi9zcmMvY3NzLzJfYmFzZS9idXR0b25zLmNzcyIsIi4uL3NyYy9jc3MvMl9iYXNlL2Zvcm1zLmNzcyIsIi4uL3NyYy9jc3MvMl9iYXNlL2ltYWdlcy5jc3MiLCIuLi9zcmMvY3NzLzJfYmFzZS9saXN0cy5jc3MiLCIuLi9zcmMvY3NzLzJfYmFzZS90YWJsZXMuY3NzIiwiLi4vc3JjL2Nzcy8yX2Jhc2UvdHlwb2dyYXBoeS5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9hbGVydHMuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvYXJ0aWNsZXMuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvYXZhdGFyLmNzcyIsIi4uL3NyYy9jc3MvM19jb21wb25lbnRzL2J1dHRvbnMuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvY2FsbC10by1hY3Rpb24uY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvY2FyZHMuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvY2hlY2tib3hlcy5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9jb250ZW50LmNzcyIsIi4uL3NyYy9jc3MvM19jb21wb25lbnRzL2Ryb3Bkb3duLmNzcyIsIi4uL3NyYy9jc3MvM19jb21wb25lbnRzL2ZpbHRlci1saXN0LmNzcyIsIi4uL3NyYy9jc3MvM19jb21wb25lbnRzL2Zvb3Rlci5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9mb3Jtcy5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9oYW1idXJnZXIuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvaGVhZGVyLmNzcyIsIi4uL3NyYy9jc3MvM19jb21wb25lbnRzL2hlYWRpbmdzLmNzcyIsIi4uL3NyYy9jc3MvM19jb21wb25lbnRzL2xhYmVscy5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9sYXJnZS1kYXRlcy5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9saW5rcy5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9sb2dvLmNzcyIsIi4uL3NyYy9jc3MvM19jb21wb25lbnRzL2xvZ28tbGlzdC5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9tYXAuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvbWVudXMuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvbmF2aWdhdGlvbi5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9wYWdlLWhlYWRlci5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9zb2NpYWwtaWNvbnMuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvdGFncy5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9hdWRpdC5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9qb2IuY3NzIiwiLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvdGV4dC5jc3MiLCIuLi9zcmMvY3NzLzNfY29tcG9uZW50cy9wYXJ0bmVycy5jc3MiLCIuLi9zcmMvY3NzLzRfbGF5b3V0L2Jsb2NrLmNzcyIsIi4uL3NyYy9jc3MvNF9sYXlvdXQvY2FyZC1ncm91cC5jc3MiLCIuLi9zcmMvY3NzLzRfbGF5b3V0L2NvbnRhaW5lci5jc3MiLCIuLi9zcmMvY3NzLzRfbGF5b3V0L2dyaWQuY3NzIiwiLi4vc3JjL2Nzcy80X2xheW91dC9tYWluLmNzcyIsIi4uL3NyYy9jc3MvNF9sYXlvdXQvcGFnZS5jc3MiLCIuLi9zcmMvY3NzLzRfbGF5b3V0L3NlY3Rpb25zLmNzcyIsIi4uL3NyYy9jc3MvNF9sYXlvdXQvc2xpZGVvdXQtbWVudS5jc3MiLCIuLi9zcmMvY3NzLzRfbGF5b3V0L3dlbGwuY3NzIiwiLi4vc3JjL2Nzcy81X2hlbHBlcnMvY2xlYXJmaXguY3NzIiwiLi4vc3JjL2Nzcy81X2hlbHBlcnMvZGlzYWJsZWQuY3NzIiwiLi4vc3JjL2Nzcy81X2hlbHBlcnMvZmxvYXRzLmNzcyIsIi4uL3NyYy9jc3MvNV9oZWxwZXJzL3Jlc2V0LmNzcyIsIi4uL3NyYy9jc3MvNV9oZWxwZXJzL3R5cG9ncmFwaHkuY3NzIiwiLi4vc3JjL2Nzcy9vdmVycmlkZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQUEsd0JBQUE7RUFBQSxtQkFBQTtFQUFBLGlCQUFBO0VBQUEsNFZBQUE7Q0FBQTs7QUFBQTtFQUFBLHdCQUFBO0VBQUEsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLHlWQUFBO0NBQUE7O0FBQUE7RUFBQSxvQkFBQTtFQUFBLG1CQUFBO0VBQUEsaUJBQUE7RUFBQSw4V0FBQTtDQUFBOztBQUFBO0VBQUEsb0JBQUE7RUFBQSxtQkFBQTtFQUFBLGlCQUFBO0VBQUEsZ1hBQUE7Q0FBQTs7QUFBQTtFQUFBLG9CQUFBO0VBQUEsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLHFXQUFBO0NBQUE7O0FBQUE7RUFBQSxvQkFBQTtFQUFBLG1CQUFBO0VBQUEsaUJBQUE7RUFBQSxrWEFBQTtDQUFBOztBQUFBO0VBQUEsb0JBQUE7RUFBQSxtQkFBQTtFQUFBLGlCQUFBO0VBQUEsOFdBQUE7Q0FBQTs7QUFBQTtFQUFBLG9CQUFBO0VBQUEsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLGdYQUFBO0NBQUE7O0FBQUE7RUFBQSxvQkFBQTtFQUFBLG1CQUFBO0VBQUEsaUJBQUE7RUFBQSxpV0FBQTtDQUFBOztBQUFBO0VBQUEsb0JBQUE7RUFBQSxtQkFBQTtFQUFBLGlCQUFBO0VBQUEsbVdBQUE7Q0FBQTs7QUFBQTtFQUFBLG9CQUFBO0VBQUEsbUJBQUE7RUFBQSxpQkFBQTtFQUFB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LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogVmVuZG9yICovXG5AaW1wb3J0IFwibm9ybWFsaXplLmNzc1wiO1xuQGltcG9ydCBcInNhbml0aXplLmNzc1wiO1xuQGltcG9ydCBcIi4vcGRmLmNzc1wiO1xuXG4vKlxuVXRpbGl0aWVzXG5cbldlaWdodDogMVxuXG5TdHlsZWd1aWRlIFV0aWxpdGllc1xuKi9cbkBpbXBvcnQgXCIxX3V0aWxpdGllcy92YXJpYWJsZXNcIjtcblxuLypcbkJhc2VcblxuV2VpZ2h0OiAyXG5cblN0eWxlZ3VpZGUgQmFzZVxuKi9cbkBpbXBvcnQgXCIyX2Jhc2UvYm9keVwiO1xuQGltcG9ydCBcIjJfYmFzZS9idXR0b25zXCI7XG5AaW1wb3J0IFwiMl9iYXNlL2Zvcm1zXCI7XG5AaW1wb3J0IFwiMl9iYXNlL2ltYWdlc1wiO1xuQGltcG9ydCBcIjJfYmFzZS9saXN0c1wiO1xuQGltcG9ydCBcIjJfYmFzZS90YWJsZXNcIjtcbkBpbXBvcnQgXCIyX2Jhc2UvdHlwb2dyYXBoeVwiO1xuXG4vKlxuQ29tcG9uZW50c1xuXG5XZWlnaHQ6IDNcblxuU3R5bGVndWlkZSBDb21wb25lbnRzXG4qL1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9hbGVydHNcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvYXJ0aWNsZXNcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvYXZhdGFyXCI7XG5AaW1wb3J0IFwiM19jb21wb25lbnRzL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvY2FsbC10by1hY3Rpb25cIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvY2FyZHNcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvY2hlY2tib3hlc1wiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9jb250ZW50XCI7XG5AaW1wb3J0IFwiM19jb21wb25lbnRzL2Ryb3Bkb3duXCI7XG5AaW1wb3J0IFwiM19jb21wb25lbnRzL2ZpbHRlci1saXN0XCI7XG5AaW1wb3J0IFwiM19jb21wb25lbnRzL2Zvb3RlclwiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9mb3Jtc1wiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9oYW1idXJnZXJcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvaGVhZGVyXCI7XG5AaW1wb3J0IFwiM19jb21wb25lbnRzL2hlYWRpbmdzXCI7XG5AaW1wb3J0IFwiM19jb21wb25lbnRzL2xhYmVsc1wiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9sYXJnZS1kYXRlc1wiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9saW5rc1wiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9sb2dvXCI7XG5AaW1wb3J0IFwiM19jb21wb25lbnRzL2xvZ28tbGlzdFwiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9tYXBcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvbWVudXNcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvbmF2aWdhdGlvblwiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9wYWdlLWhlYWRlclwiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9zb2NpYWwtaWNvbnNcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvdGFnc1wiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9hdWRpdFwiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9qb2JcIjtcbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvdGV4dFwiO1xuQGltcG9ydCBcIjNfY29tcG9uZW50cy9wYXJ0bmVyc1wiO1xuXG4vKlxuTGF5b3V0XG5cbldlaWdodDogNFxuXG5TdHlsZWd1aWRlIExheW91dFxuKi9cbkBpbXBvcnQgXCI0X2xheW91dC9ibG9ja1wiO1xuQGltcG9ydCBcIjRfbGF5b3V0L2NhcmQtZ3JvdXBcIjtcbkBpbXBvcnQgXCI0X2xheW91dC9jb250YWluZXJcIjtcbkBpbXBvcnQgXCI0X2xheW91dC9ncmlkXCI7XG5AaW1wb3J0IFwiNF9sYXlvdXQvbWFpblwiO1xuQGltcG9ydCBcIjRfbGF5b3V0L3BhZ2VcIjtcbkBpbXBvcnQgXCI0X2xheW91dC9zZWN0aW9uc1wiO1xuQGltcG9ydCBcIjRfbGF5b3V0L3NsaWRlb3V0LW1lbnVcIjtcbkBpbXBvcnQgXCI0X2xheW91dC93ZWxsXCI7XG5cbi8qXG5IZWxwZXJzXG5cbldlaWdodDogNVxuXG5TdHlsZWd1aWRlIEhlbHBlcnNcbiovXG5AaW1wb3J0IFwiNV9oZWxwZXJzL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiNV9oZWxwZXJzL2Rpc2FibGVkXCI7XG5AaW1wb3J0IFwiNV9oZWxwZXJzL2Zsb2F0c1wiO1xuQGltcG9ydCBcIjVfaGVscGVycy9yZXNldFwiO1xuQGltcG9ydCBcIjVfaGVscGVycy90eXBvZ3JhcGh5XCI7XG5cbi8qIE92ZXJyaWRlcyAqL1xuQGltcG9ydCBcIm92ZXJyaWRlc1wiO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjQuMS4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gSUUgYW5kIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsIC8qIDEgKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5tYWluLCAvKiAyICovXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkgeyAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbnRlbXBsYXRlLCAvKiAxICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9udCB3ZWlnaHQgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvZiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cbiIsIi8qISBzYW5pdGl6ZS5jc3MgdjQuMS4wIHwgQ0MwIExpY2Vuc2UgfCBnaXRodWIuY29tL2pvbmF0aGFudG5lYWwvc2FuaXRpemUuY3NzICovXG5cbi8qIERpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLCAvKiAxICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbiwgLyogMiAqL1xubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHsgLyogMSAqL1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuXHRkaXNwbGF5OiBub25lO1xuXHRoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUsIC8qIDEgKi9cbltoaWRkZW5dIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogRWxlbWVudHMgb2YgSFRNTCAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3NlbWFudGljcy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgcmVwZWF0aW5nIGJhY2tncm91bmRzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQWRkIGJveCBzaXppbmcgaW5oZXJpdGVuY2UgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuKixcbjo6YmVmb3JlLFxuOjphZnRlciB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IC8qIDEgKi9cblx0Ym94LXNpemluZzogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0ZXh0IGRlY29yYXRpb24gaW5oZXJpdGFuY2UgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBBZGQgdmVydGljYWwgYWxpZ25tZW50IGluaGVyaXRlbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjo6YmVmb3JlLFxuOjphZnRlciB7XG5cdHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgLyogMSAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCBib3JkZXIgYm94IHNpemluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEFkZCB0aGUgZGVmYXVsdCBjdXJzb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAzLiBBZGQgYSBmbGF0dGVuZWQgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiA0LiBQcmV2ZW50IGZvbnQgc2l6ZSBhZGp1c3RtZW50cyBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIElFIGFuZCBpT1MuXG4gKi9cblxuaHRtbCB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cblx0Y3Vyc29yOiBkZWZhdWx0OyAvKiAyICovXG5cdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAzICovXG5cdGxpbmUtaGVpZ2h0OiAxLjU7IC8qIDMgKi9cblx0LW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDQgKi9cblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiA1ICovXG59XG5cbi8qIFNlY3Rpb25zIChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvc2VjdGlvbnMuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYm9keSB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemVzIGFuZCBtYXJnaW5zIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluXG4gKiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuXHRmb250LXNpemU6IDJlbTtcblx0bWFyZ2luOiAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50IChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZ3JvdXBpbmctY29udGVudC5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGZvbnQgc2l6aW5nIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuXHRmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGhlaWdodCBpbiBGaXJlZm94LlxuICogMi4gQWRkIHZpc2libGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuXHRoZWlnaHQ6IDA7IC8qIDEgKi9cblx0b3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGxpc3Qgc3R5bGUgb24gbmF2aWdhdGlvbiBsaXN0cyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5uYXYgb2wsXG5uYXYgdWwge1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgYSBib3JkZXJlZCB1bmRlcmxpbmUgZWZmZWN0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0ZXh0IGRlY29yYXRpb24gaW4gRmlyZWZveCA0MCsuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuXHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyAvKiAxICovXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGNvbG9ycyBpbiBJRSA5LS5cbiAqL1xuXG5tYXJrIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZmYwMDtcblx0Y29sb3I6ICMwMDAwMDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcblx0Zm9udC1zaXplOiA4My4zMzMzJTtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIHBvc2l0aW9uaW5nIG9uIHN1cGVyc2NyaXB0IGFuZCBzdWJzY3JpcHQgZWxlbWVudHNcbiAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMS4gQ29ycmVjdCB0aGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDgzLjMzMzMlOyAvKiAxICovXG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcblx0Ym90dG9tOiAtLjI1ZW07XG59XG5cbnN1cCB7XG5cdHRvcDogLS41ZW07XG59XG5cbi8qXG4gKiBSZW1vdmUgdGhlIHRleHQgc2hhZG93IG9uIHRleHQgc2VsZWN0aW9ucyAob3BpbmlvbmF0ZWQpLlxuICogMS4gUmVzdG9yZSB0aGUgY29sb3JpbmcgdW5kb25lIGJ5IGRlZmluaW5nIHRoZSB0ZXh0IHNoYWRvdyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkNGZjOyAvKiAxICovXG5cdGNvbG9yOiAjMDAwMDAwOyAvKiAxICovXG5cdHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNiM2Q0ZmM7IC8qIDEgKi9cblx0Y29sb3I6ICMwMDAwMDA7IC8qIDEgKi9cblx0dGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnQgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lbWJlZGRlZC1jb250ZW50LTAuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGFsaWdubWVudCBvbiBtZWRpYSBlbGVtZW50cyBpbiBhbGwgYnJvd2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG5cdGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGZpbGwgY29sb3IgdG8gbWF0Y2ggdGhlIHRleHQgY29sb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuc3ZnIHtcblx0ZmlsbDogY3VycmVudENvbG9yO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogTGlua3MgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9saW5rcy5odG1sI2xpbmtzKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIGdhcHMgaW4gdW5kZXJsaW5lcyBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuXG5hIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cblx0LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSB3aGVuIGhvdmVyaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmE6aG92ZXIge1xuXHRvdXRsaW5lLXdpZHRoOiAwO1xufVxuXG4vKiBUYWJ1bGFyIGRhdGEgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS90YWJ1bGFyLWRhdGEuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgYm9yZGVyIHNwYWNpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcbn1cblxuLyogdHJhbnNmb3JtLXN0eWxlOiAgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGRlZmF1bHQgc3R5bGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDMuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cblx0Ym9yZGVyLXN0eWxlOiBub25lOyAvKiAxICovXG5cdGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAxICovXG5cdG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gQ29ycmVjdCB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IHRoZSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuOjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG46LW1vei1mb2N1c3Jpbmcge1xuXHRvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5maWVsZHNldCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG5cdG1hcmdpbjogMCAycHg7XG5cdHBhZGRpbmc6IC4zNWVtIC42MjVlbSAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcblx0ZGlzcGxheTogdGFibGU7IC8qIDEgKi9cblx0bWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG5cdHBhZGRpbmc6IDA7IC8qIDIgKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICogMi4gQ2hhbmdlIHRoZSByZXNpemUgZGlyZWN0aW9uIG9uIHRleHRhcmVhcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG50ZXh0YXJlYSB7XG5cdG92ZXJmbG93OiBhdXRvOyAvKiAxICovXG5cdHJlc2l6ZTogdmVydGljYWw7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcblx0cGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb24gaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgZm9yIE9TIFguXG4gKi9cblxuOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHRleHQgc3R5bGUgb24gcGxhY2Vob2xkZXJzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuXHRjb2xvcjogaW5oZXJpdDtcblx0b3BhY2l0eTogLjU0O1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG5cdGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogV0FJLUFSSUEgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kb20uaHRtbCN3YWktYXJpYSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ2hhbmdlIHRoZSBjdXJzb3Igb24gYnVzeSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5cblthcmlhLWJ1c3k9XCJ0cnVlXCJdIHtcblx0Y3Vyc29yOiBwcm9ncmVzcztcbn1cblxuLypcbiAqIENoYW5nZSB0aGUgY3Vyc29yIG9uIGNvbnRyb2wgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5bYXJpYS1jb250cm9sc10ge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBkaXNhYmxlZCwgbm90LWVkaXRhYmxlLCBvciBvdGhlcndpc2VcbiAqIGlub3BlcmFibGUgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5bYXJpYS1kaXNhYmxlZF0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIFVzZXIgaW50ZXJhY3Rpb24gKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIHRoZSB0YXBwaW5nIGRlbGF5IG9uIGNsaWNrYWJsZSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICogMS4gUmVtb3ZlIHRoZSB0YXBwaW5nIGRlbGF5IGluIElFIDEwLlxuICovXG5cbmEsXG5hcmVhLFxuYnV0dG9uLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnRleHRhcmVhLFxuW3RhYmluZGV4XSB7XG5cdC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgLyogMSAqL1xuXHR0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuLypcbiAqIENoYW5nZSB0aGUgZGlzcGxheSBvbiB2aXN1YWxseSBoaWRkZW4gYWNjZXNzaWJsZSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbltoaWRkZW5dW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0ge1xuXHRjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuXHRkaXNwbGF5OiBpbmhlcml0O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbltoaWRkZW5dW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl06Zm9jdXMge1xuXHRjbGlwOiBhdXRvO1xufVxuIiwiLm1wZGYgI2dldF91cGRhdGVzX2Jsb2NrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1wZGYgc2VjdGlvbi5jLWFydGljbGVfX2JvZHkgdWwuYy10YWdzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1wZGYgaDMuYy1hcnRpY2xlX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5tcGRmICAuZmllbGQgLmZpZWxkLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1wZGYgLmRvd25sb2FkLXBkZiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1wZGYgLmZpZWxkLW5hbWUtZmllbGQtcmVsYXRlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBWYXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbjpyb290IHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQ6ICNmZmY7XG4gIC0tYm9yZGVyLWNvbG9yLWRlZmF1bHQ6IHZhcigtLWNvbG9yLWdyYXkpO1xuICAtLWJvcmRlci1kZWZhdWx0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yLWRlZmF1bHQpO1xuICAtLWJvcmRlci1yYWRpdXMtZGVmYXVsdDogM3B4O1xuICAtLWJveC1zaGFkb3ctZGVmYXVsdDogMCAwIDE1cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAtLWNvbG9yLWJsdWU6ICMwMDdlZDA7XG4gIC0tY29sb3ItYmx1ZS1kYXJrOiAjMDAxNzU5O1xuICAtLWNvbG9yLWJyb3duOiAjOGI1NzJhO1xuICAtLWNvbG9yLWdyYXk6ICNkN2Q3ZDc7XG4gIC0tY29sb3ItZ3JheS1saWdodDogI2YyZjJmMjtcbiAgLS1jb2xvci1ncmF5LWRhcms6ICM5YjliOWI7XG4gIC0tY29sb3ItcmVkOiAjZWYyNDIwO1xuICAtLWNvbG9yLW9yYW5nZTogI2ZmOGMwMDtcbiAgLS1jb2xvci1ncmVlbjogIzI5YmQ2MztcbiAgLS1jb2xvci1kZWZhdWx0OiAjMDAwO1xuICAtLWNvbG9yLW11dGVkOiB2YXIoLS1jb2xvci1ncmF5LWRhcmspO1xuICAtLWNvbG9yLWFjY2VudDogdmFyKC0tY29sb3ItYmx1ZSk7XG4gIC0tY29sb3ItZGFuZ2VyOiB2YXIoLS1jb2xvci1yZWQpO1xuICAtLWNvbG9yLXN1Y2Nlc3M6IHZhcigtLWNvbG9yLWdyZWVuKTtcbiAgLS1jb2xvci13YXJuaW5nOiB2YXIoLS1jb2xvci1vcmFuZ2UpO1xuICAtLWZvbnQtZmFtaWx5LWRlZmF1bHQ6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtZmFtaWx5LXNlY29uZGFyeTogXCJNb250c2VycmF0XCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtc2l6ZS1kZWZhdWx0OiB2YXIoLS1mb250LXNpemUtbWVkKTtcbiAgLS1mb250LXNpemUteHh4bDogMzZweDtcbiAgLS1mb250LXNpemUteHhsOiAzMHB4O1xuICAtLWZvbnQtc2l6ZS14bDogMjJweDtcbiAgLS1mb250LXNpemUtbGc6IDE2cHg7XG4gIC0tZm9udC1zaXplLW1lZDogMTRweDtcbiAgLS1mb250LXNpemUtc206IDEycHg7XG4gIC0tZm9udC1zaXplLXhzOiAxMHB4O1xuICAtLWZvbnQtd2VpZ2h0LWRlZmF1bHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWxpZ2h0KTtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA2MDA7XG4gIC0tZm9udC13ZWlnaHQtbm9ybWFsOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDtcbiAgLS1saW5lLWhlaWdodC1kZWZhdWx0OiAxLjU7XG4gIC0tbGluZS1oZWlnaHQtc206IDEuMjtcbiAgLS1zcGFjaW5nLXhsOiA0OHB4O1xuICAtLXNwYWNpbmctbGc6IDM2cHg7XG4gIC0tc3BhY2luZy1tZWQ6IDI0cHg7XG4gIC0tc3BhY2luZy1zbTogMThweDtcbiAgLS1zcGFjaW5nLXhzOiAxMnB4O1xuICAtLXNwYWNpbmcteHhzOiA2cHg7XG4gIC0tdGV4dC1zaGFkb3ctZGVmYXVsdDogMCAwIDVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1kZWZhdWx0OiAwLjJzO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWRlZmF1bHQ6IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVmYXVsdDogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tZGVmYXVsdCkgdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZGVmYXVsdCk7XG5cbiAgLS1jbGVhcmZpeDoge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cblxuICAtLWRpc2FibGVkOiB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICAtLWhlYWRpbmc6IHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICB9XG5cbiAgLS1oZWFkaW5nLXh4eGw6IHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXh4eGwpO1xuICB9XG5cbiAgLS1oZWFkaW5nLXh4bDoge1xuICAgIEBhcHBseSAtLWhlYWRpbmc7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHhsKTtcbiAgfVxuXG4gIC0taGVhZGluZy14bDoge1xuICAgIEBhcHBseSAtLWhlYWRpbmc7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xuICB9XG5cbiAgLS1oZWFkaW5nLWxnOiB7XG4gICAgQGFwcGx5IC0taGVhZGluZztcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XG4gIH1cblxuICAtLWhlYWRpbmctbWVkOiB7XG4gICAgQGFwcGx5IC0taGVhZGluZztcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1tZWQpO1xuICB9XG5cbiAgLS1oZWFkaW5nLXNtOiB7XG4gICAgQGFwcGx5IC0taGVhZGluZztcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gIH1cblxuICAtLWhlYWRpbmcteHM6IHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1zZWNvbmRhcnkpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLS1yZXNldDoge1xuICAgIGFsbDogaW5pdGlhbDtcbiAgfVxufVxuXG4vKlxuQ29sb3JzXG5cbjxkaXYgY2xhc3M9XCJzZy1jb2xvci1ibG9ja3NcIj5cbiAgPGRpdiBjbGFzcz1cInNnLWNvbG9yLWJsb2NrIHNnLWNvbG9yLWJsb2NrLS1ibHVlXCI+PGNvZGU+LS1ibHVlPC9jb2RlPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2ctY29sb3ItYmxvY2sgc2ctY29sb3ItYmxvY2stLWJsdWUtZGFya1wiPjxjb2RlPi0tYmx1ZS1kYXJrPC9jb2RlPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2ctY29sb3ItYmxvY2sgc2ctY29sb3ItYmxvY2stLWdyYXlcIj48Y29kZT4tLWdyYXk8L2NvZGU+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzZy1jb2xvci1ibG9jayBzZy1jb2xvci1ibG9jay0tZ3JheS1saWdodFwiPjxjb2RlPi0tZ3JheS1saWdodDwvY29kZT48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNnLWNvbG9yLWJsb2NrIHNnLWNvbG9yLWJsb2NrLS1ncmF5LWRhcmtcIj48Y29kZT4tLWdyYXktZGFyazwvY29kZT48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNnLWNvbG9yLWJsb2NrIHNnLWNvbG9yLWJsb2NrLS1yZWRcIj48Y29kZT4tLXJlZDwvY29kZT48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNnLWNvbG9yLWJsb2NrIHNnLWNvbG9yLWJsb2NrLS1vcmFuZ2VcIj48Y29kZT4tLW9yYW5nZTwvY29kZT48L2Rpdj5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIFV0aWxpdGllcy5Db2xvcnNcbiovXG5cbi8qIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBieSB0aGUgc3R5bGUgZ3VpZGUgZXhhbXBsZSAqL1xuLnNnLWNvbG9yLWJsb2NrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXNtKTtcblxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IHZhcigtLXNwYWNpbmctbGcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtZGVmYXVsdCk7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxufVxuXG5AZWFjaCAkY29sb3IgaW4gKCBibHVlLCBibHVlLWRhcmssIGdyYXksIGdyYXktbGlnaHQsIGdyYXktZGFyaywgcmVkLCBvcmFuZ2UgKSB7XG4gIC5zZy1jb2xvci1ibG9jay0tJChjb2xvcikge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLSQoY29sb3IpKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCb2R5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdCk7XG59XG5cbmhyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LWxpZ2h0KTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCdXR0b25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBCdXR0b25zXG5cbiAgTWFya3VwOlxuICA8YnV0dG9uPkJ1dHRvbjwvYnV0dG9uPlxuXG4gIFN0eWxlZ3VpZGU6IEJhc2UuQnV0dG9uc1xuKi9cblxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1kZWZhdWx0KTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogaW5oZXJpdDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRlZmF1bHQpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1kZWZhdWx0KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBGb3Jtc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgRm9ybXNcblxuICBNYXJrdXA6XG4gIDxmb3JtPlxuICAgIDxmaWVsZHNldD5cbiAgICAgIDxsZWdlbmQ+TGVnZW5kPC9sZWdlbmQ+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCI+XG4gICAgPC9maWVsZHNldD5cbiAgPC9mb3JtPlxuXG4gIFN0eWxlZ3VpZGU6IEJhc2UuRm9ybXNcbiovXG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEltYWdlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgSW1hZ2VzXG5cbiAgTWFya3VwOlxuICA8aW1nIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvNjAweDQwMFwiPlxuXG4gIFN0eWxlZ3VpZGU6IEJhc2UuSW1hZ2VzXG4qL1xuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBMaXN0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgTGlzdHNcblxuICBNYXJrdXA6XG4gIDxoMz5PcmRlcmVkIExpc3Q8L2gzPlxuICA8b2w+XG4gICAgPGxpPkxpc3QgSXRlbSAxPC9saT5cbiAgICA8bGk+TGlzdCBJdGVtIDI8L2xpPlxuICAgIDxsaT5MaXN0IEl0ZW0gMzwvbGk+XG4gIDwvb2w+XG4gIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+XG4gIDx1bD5cbiAgICA8bGk+TGlzdCBJdGVtIDE8L2xpPlxuICAgIDxsaT5MaXN0IEl0ZW0gMjwvbGk+XG4gICAgPGxpPkxpc3QgSXRlbSAzPC9saT5cbiAgPC91bD5cblxuICBTdHlsZWd1aWRlOiBCYXNlLkxpc3RzXG4qL1xuXG5vbCxcbnVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFRhYmxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgVGFibGVzXG5cbiAgTWFya3VwOlxuICA8dGFibGU+XG4gICAgPHRib2R5PlxuICAgICAgPHRyPlxuICAgICAgICA8dGg+VGFibGUgSGVhZGVyIDE8L3RoPjx0aD5UYWJsZSBIZWFkZXIgMjwvdGg+PHRoPlRhYmxlIEhlYWRlciAzPC90aD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD5EaXZpc2lvbiAxPC90ZD48dGQ+RGl2aXNpb24gMjwvdGQ+PHRkPkRpdmlzaW9uIDM8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cImV2ZW5cIj5cbiAgICAgICAgPHRkPkRpdmlzaW9uIDE8L3RkPjx0ZD5EaXZpc2lvbiAyPC90ZD48dGQ+RGl2aXNpb24gMzwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQ+RGl2aXNpb24gMTwvdGQ+PHRkPkRpdmlzaW9uIDI8L3RkPjx0ZD5EaXZpc2lvbiAzPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cblxuICBTdHlsZWd1aWRlOiBCYXNlLlRhYmxlc1xuKi9cblxudGFibGUge1xuXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVHlwb2dyYXBoeVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgVHlwb2dyYXBoeVxuXG4gIFN0eWxlZ3VpZGU6IEJhc2UuVHlwb2dyYXBoeVxuKi9cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuXG5ib2R5IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWRlZmF1bHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGVmYXVsdCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWRlZmF1bHQpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1kZWZhdWx0KTtcbn1cblxuLypcbiAgSGVhZGluZ3NcblxuICBIZWFkaW5ncyBhcmUgdW5zdHlsZWQgYnkgZGVmYXVsdCBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5LlxuXG4gIE1hcmt1cDpcbiAgPGgxPkhlYWRpbmcgMTwvaDE+XG4gIDxoMj5IZWFkaW5nIDI8L2gxPlxuICA8aDM+SGVhZGluZyAzPC9oMT5cbiAgPGg0PkhlYWRpbmcgNDwvaDE+XG4gIDxoNT5IZWFkaW5nIDU8L2gxPlxuICA8aDY+SGVhZGluZyA2PC9oMT5cblxuICBTdHlsZWd1aWRlOiBCYXNlLlR5cG9ncmFwaHkuSGVhZGluZ3NcbiovXG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWRlZmF1bHQpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWRlZmF1bHQpO1xufVxuXG5oMiB7XG4gIG1hcmdpbjogdmFyKC0tc3BhY2luZy1zbSkgMDtcbn1cblxuaDMge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xufVxuXG4vKlxuICBQYXJhZ3JhcGhzXG5cbiAgTWFya3VwOlxuICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgPGEgaHJlZj1cIiNcIj50ZXN0IGxpbms8L2E+IGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS48L3A+XG4gIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCA8YSBocmVmPVwiI1wiPnRlc3QgbGluazwvYT4gY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD5cblxuICBTdHlsZWd1aWRlOiBCYXNlLlR5cG9ncmFwaHkuUGFyYWdyYXBoc1xuKi9cblxucCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xufVxuXG5baHJlZl0ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKlxuICBTbWFsbFxuXG4gIE1hcmt1cDpcbiAgPHA+PHNtYWxsPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0Ljwvc21hbGw+PC9wPlxuXG4gIFN0eWxlZ3VpZGU6IEJhc2UuVHlwb2dyYXBoeS5TbWFsbFxuKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG59XG5cbi8qXG4gIFN0cm9uZ1xuXG4gIE1hcmt1cDpcbiAgPHA+TG9yZW0gaXBzdW0gPHN0cm9uZz5kb2xvciBzaXQgYW1ldDwvc3Ryb25nPiwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC48L3A+XG5cbiAgU3R5bGVndWlkZTogQmFzZS5UeXBvZ3JhcGh5LlN0cm9uZ1xuKi9cblxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIGNvbG9yOiAjZmZmO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEFsZXJ0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgQWxlcnRzXG5cbiAgTWFya3VwOlxuICA8ZGl2IGNsYXNzPVwiYy1hbGVydCB7eyBtb2RpZmllcl9jbGFzcyB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjLWFsZXJ0X19ib2R5XCI+XG4gICAgICA8cD5UaGlzIGlzIGFuIGFsZXJ0LjwvcD5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYy1hbGVydF9fY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgPHBhdGggZD1cIk0xOSw2LjQxTDE3LjU5LDVMMTIsMTAuNTlMNi40MSw1TDUsNi40MUwxMC41OSwxMkw1LDE3LjU5TDYuNDEsMTlMMTIsMTMuNDFMMTcuNTksMTlMMTksMTcuNTlMMTMuNDEsMTJMMTksNi40MVpcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIC5jLWFsZXJ0LS1pbmZvIC0gSW5mbyBBbGVydFxuICAuYy1hbGVydC0tZGFuZ2VyIC0gRGFuZ2VyIEFsZXJ0XG4gIC5jLWFsZXJ0LS1zdWNjZXNzIC0gU3VjY2VzcyBBbGVydFxuICAuYy1hbGVydC0td2FybmluZyAtIFdhcm5pbmcgQWxlcnRcblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkFsZXJ0c1xuKi9cblxuLmMtYWxlcnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xuICBjb2xvcjogI2ZmZjtcblxuICAmLS1pbmZvIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTsgfVxuICAmLS1kYW5nZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1kYW5nZXIpOyB9XG4gICYtLXN1Y2Nlc3MgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgfVxuICAmLS13YXJuaW5nIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2FybmluZyk7IH1cblxuICAmX19ib2R5IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLXh4cyk7XG5cbiAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2Nsb3NlIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy14cyk7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1mb250LXNpemUtZGVmYXVsdCk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWZvbnQtc2l6ZS1kZWZhdWx0KTtcbiAgICAgIGZpbGw6ICNmZmY7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQXJ0aWNsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIEFydGljbGVzXG5cbiAgTWFya3VwOlxuICA8YXJ0aWNsZSBjbGFzcz1cImMtYXJ0aWNsZVwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJjLWFydGljbGVfX2hlYWRlclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjLWxhYmVsXCI+SnVuZSAyMHRoPC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImMtYXJ0aWNsZV9fYWN0aW9uc1wiPlxuICAgICAgICA8YSBjbGFzcz1cImMtbGlua1wiIGhyZWY9XCIjXCI+QWN0aW9uPC9hPlxuICAgICAgICA8YSBjbGFzcz1cImMtbGlua1wiIGhyZWY9XCIjXCI+QWN0aW9uPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gICAgPGltZyBjbGFzcz1cImMtYXJ0aWNsZV9faW1hZ2VcIiBzcmM9XCIuLi9pbWcvc2ctZXhhbXBsZS1hcnRpY2xlLWltZy5qcGdcIiAvPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYy1hcnRpY2xlX19ib2R5XCI+XG4gICAgICA8aDMgY2xhc3M9XCJjLWFydGljbGVfX3RpdGxlXCI+QXJ0aWNsZSBUaXRsZTwvaDM+XG4gICAgICA8dWwgY2xhc3M9XCJjLXRhZ3NcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiYy10YWdcIj5UYWcgMTwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cImMtdGFnXCI+VGFnIDI8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJjLXRhZ1wiPlRhZyAzPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IGNsYXNzPVwiYy1jb250ZW50XCI+XG4gICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4uLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgPC9hcnRpY2xlPlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuQXJ0aWNsZXNcbiovXG5cbi5jLWFydGljbGUge1xuICBmbGV4LWdyb3c6IDE7XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctc20pO1xuICB9XG5cbiAgJl9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG5cbiAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBAYXBwbHkgLS1oZWFkaW5nLWxnO1xuXG4gICAgJjpjb250YWluZXIod2lkdGggPiA4MTVweCkge1xuICAgICAgQGFwcGx5IC0taGVhZGluZy14bDtcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYXV0aG9yIHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nLXhzO1xuICAgIG1hcmdpbjogMDtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgICB9XG4gIH1cblxuICAuYy10YWdzIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgfVxuXG4gID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQXZhdGFyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBBdmF0YXJcblxuICBNYXJrdXA6XG4gIDxkaXYgY2xhc3M9XCJjLWF2YXRhclwiIHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLy4uL2ltZy9hdmF0YXItZXhhbXBsZS5qcGcnKVwiPjwvZGl2PlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuQXZhdGFyXG4qL1xuXG4uYy1hdmF0YXIge1xuICB3aWR0aDogMjIwcHg7XG4gIGhlaWdodDogMjIwcHg7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbGcpO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LWxpZ2h0KTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQnV0dG9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgQnV0dG9uc1xuXG4gIE1hcmt1cDpcbiAgPGJ1dHRvbiBjbGFzcz1cImMtYnV0dG9uXCI+QnV0dG9uPC9idXR0b24+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5CdXR0b25zXG4qL1xuXG4uYy1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHMpIHZhcigtLXNwYWNpbmctbGcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1zZWNvbmRhcnkpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWRlZmF1bHQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIC8qXG4gICAgQnV0dG9ucyBvbiBEYXJrIEJhY2tncm91bmRzXG5cbiAgICBNYXJrdXA6XG4gICAgPGJ1dHRvbiBjbGFzcz1cImMtYnV0dG9uIGMtYnV0dG9uLS1vbi1kYXJrXCI+QnV0dG9uPC9idXR0b24+XG5cbiAgICBEYXJrOiB0cnVlXG5cbiAgICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkJ1dHRvbnMuQnV0dG9ucyBvbiBEYXJrIEJhY2tncm91bmRzXG4gICovXG5cbiAgJi0tb24tZGFyayB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ2FsbCBUbyBBY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIENhbGwgdG8gQWN0aW9uXG5cbiAgTWFya3VwOlxuICA8ZGl2IGNsYXNzPVwiYy1jYWxsLXRvLWFjdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjLWNhbGwtdG8tYWN0aW9uX19jb3B5XCI+XG4gICAgICBMb29raW5nIGZvciBzb21ldGhpbmcsIGJ1dCBkaWRuJ3Qgc2VlIGl0IGhlcmU/PGJyPlxuICAgICAgPHN0cm9uZz5MZXQgdXMga25vdyE8L3N0cm9uZz5cbiAgICA8L2Rpdj5cbiAgICA8YSBjbGFzcz1cImMtYnV0dG9uIGMtYnV0dG9uLS1vbi1kYXJrXCIgaHJlZj1cIiNcIj5HZXQgaW4gdG91Y2g8L2E+XG4gIDwvZGl2PlxuXG4gIERhcms6IHRydWVcblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkNhbGwgdG8gQWN0aW9uXG4qL1xuXG4uYy1jYWxsLXRvLWFjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1heC13aWR0aDogNjYwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbGcpIHZhcigtLXNwYWNpbmcteGwpO1xuICB9XG5cbiAgJl9fY29weSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctc20pO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIENhcmRzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBDYXJkc1xuXG4gIE1hcmt1cDpcbiAgPHNlY3Rpb24gY2xhc3M9XCJjLWNhcmQge3sgbW9kaWZpZXJfY2xhc3MgfX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYy1jYXJkX19ib2R5XCI+XG4gICAgICBDdXN0b20gQ2FyZCBDb250ZW50XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cblxuICAuYy1jYXJkLS1yYWlzZWQgLSBSYWlzZWQgQ2FyZFxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuQ2FyZHNcbiovXG5cbi5jLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvci1kZWZhdWx0KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuXG4gICYtLXJhaXNlZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctZGVmYXVsdCk7XG4gIH1cblxuICAmX19hcmNoaXZlZC10YWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLS1leHBpcmVkIHtcbiAgICAuYy1jYXJkX19hcmNoaXZlZC10YWcge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMXJlbTtcbiAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgIGJvcmRlci10b3A6IDEuNzVyZW0gdmFyKC0tY29sb3ItZ3JheS1kYXJrKSBzb2xpZDtcbiAgICAgIGJvcmRlci1yaWdodDogMS43NXJlbSB2YXIoLS1jb2xvci1ncmF5LWRhcmspIHNvbGlkO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMS43NXJlbSB0cmFuc3BhcmVudCBzb2xpZDtcbiAgICAgIGJvcmRlci1sZWZ0OiAxLjc1cmVtIHRyYW5zcGFyZW50IHNvbGlkO1xuICAgIH1cblxuICAgIC5jLWNhcmRfX2FyY2hpdmVkLXRleHQge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgZm9udC1zaXplOiAwLjVlbTtcbiAgICB9XG4gIH1cblxuICAmOmNvbnRhaW5lcih3aWR0aCA+PSA2NjBweCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXNtKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBDYXJkIHdpdGggRmVhdHVyZWQgSW1hZ2VcblxuICAgIE1hcmt1cDpcbiAgICA8YXJ0aWNsZSBjbGFzcz1cImMtY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fZmVhdHVyZWQtaW1hZ2VcIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3NnLWV4YW1wbGUtYXJ0aWNsZS1pbWcuanBnJylcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjLWNhcmRfX2JvZHlcIj5cbiAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXJ0aWNsZT5cblxuICAgIFdlaWdodDogMlxuXG4gICAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5DYXJkcy5DYXJkIHdpdGggRmVhdHVyZWQgSW1hZ2VcbiAgKi9cblxuICAmX19mZWF0dXJlZC1pbWFnZSB7XG4gICAgZmxleC1iYXNpczogNjUlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIG9yZGVyOiAyO1xuXG4gICAgJjpjb250YWluZXIod2lkdGggPCA2NjBweCkge1xuICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgIENhcmQgd2l0aCBUaHVtYm5haWwgSW1hZ2VcblxuICAgIE1hcmt1cDpcbiAgICA8YXJ0aWNsZSBjbGFzcz1cImMtY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fdGh1bWJuYWlsLWltYWdlXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zZy1leGFtcGxlLWFydGljbGUtaW1nLmpwZycpXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYy1jYXJkX19ib2R5XCI+XG4gICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uXG4gICAgICA8L2Rpdj5cbiAgICA8L2FydGljbGU+XG5cbiAgICBXZWlnaHQ6IDNcblxuICAgIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuQ2FyZHMuQ2FyZCB3aXRoIFRodW1ibmFpbCBJbWFnZVxuICAqL1xuXG4gICZfX3RodW1ibmFpbC1pbWFnZSB7XG4gICAgZmxleC1iYXNpczogMTYwcHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAmOmNvbnRhaW5lcih3aWR0aCA8IDY2MHB4KSB7XG4gICAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICB9XG4gIH1cblxuICAmX190aHVtYm5haWwtbG9nbyB7XG4gICAgZmxleC1iYXNpczogMTIwcHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctc20pO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbWVkKTtcbiAgICB9XG5cbiAgICAmOmNvbnRhaW5lcih3aWR0aCA8IDY1OXB4KSB7XG4gICAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJjpjb250YWluZXIod2lkdGggPj0gNjYwcHgpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAgQ2FyZCB3aXRoIFNvdXJjZSBMb2dvXG5cbiAgICBNYXJrdXA6XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJjLWNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjLWNhcmRfX2JvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImMtY29udGVudFwiPlxuICAgICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fc291cmNlXCI+XG4gICAgICAgICAgPGltZyBzcmM9XCIuLi9pbWcvc2ctZXhhbXBsZS1hcnRpY2xlLWxvZ28tMS5wbmdcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICBXZWlnaHQ6IDRcblxuICAgIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuQ2FyZHMuQ2FyZCB3aXRoIFNvdXJjZSBMb2dvXG4gICovXG5cbiAgJl9fc291cmNlIHtcbiAgICBmbGV4LWJhc2lzOiA4MHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjaW5nLXNtKTtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAgQ2FyZCB3aXRoIERhdGVcblxuICAgIE1hcmt1cDpcbiAgICA8YXJ0aWNsZSBjbGFzcz1cImMtY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYy1kYXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImMtZGF0ZV9fbW9udGhcIj5KdW5lPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImMtZGF0ZV9fZGF5XCI+Mjk8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjLWNvbnRlbnRcIj5cbiAgICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FydGljbGU+XG5cbiAgICBXZWlnaHQ6IDVcblxuICAgIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuQ2FyZHMuQ2FyZCB3aXRoIERhdGVcbiAgKi9cblxuICAuYy1kYXRlIHtcbiAgICBtYXJnaW46IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgIGJvcmRlci1yaWdodDogdmFyKC0tYm9yZGVyLWRlZmF1bHQpO1xuICB9XG5cbiAgLmMtY29udGVudCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvKlxuICAgIENhcmQgd2l0aCB0aGUgS2l0Y2hlbiBTaW5rXG5cbiAgICBNYXJrdXA6XG4gICAgPGFydGljbGUgY2xhc3M9XCJjLWNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjLWNhcmRfX3RodW1ibmFpbC1pbWFnZVwiIHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvc2ctZXhhbXBsZS1hcnRpY2xlLWltZy5qcGcnKVwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYy1kYXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImMtZGF0ZV9fbW9udGhcIj5KdW5lPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImMtZGF0ZV9fZGF5XCI+Mjk8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjLWNvbnRlbnRcIj5cbiAgICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjLWNhcmRfX3NvdXJjZVwiPlxuICAgICAgICAgIDxpbWcgc3JjPVwiLi4vaW1nL3NnLWV4YW1wbGUtYXJ0aWNsZS1sb2dvLTEucG5nXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9hcnRpY2xlPlxuXG4gICAgV2VpZ2h0OiA2XG5cbiAgICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkNhcmRzLkNhcmQgd2l0aCB0aGUgS2l0Y2hlbiBTaW5rXG4gICovXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ2hlY2tib3hlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgQ2hlY2tib3hlc1xuXG4gIE1hcmt1cDpcbiAgPGxhYmVsIGNsYXNzPVwiYy1jaGVja2JveFwiPlxuICAgIDxpbnB1dCBoaWRkZW4gdHlwZT1cImNoZWNrYm94XCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwiYy1jaGVja2JveF9fYnViYmxlXCI+PC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJjLWxhYmVsXCI+TGFiZWw8L3NwYW4+XG4gIDwvbGFiZWw+XG4gIDxsYWJlbCBjbGFzcz1cImMtY2hlY2tib3hcIj5cbiAgICA8aW5wdXQgaGlkZGVuIHR5cGU9XCJjaGVja2JveFwiIC8+XG4gICAgPGRpdiBjbGFzcz1cImMtY2hlY2tib3hfX2J1YmJsZVwiPjwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiYy1sYWJlbFwiPkxhYmVsPC9zcGFuPlxuICA8L2xhYmVsPlxuICA8bGFiZWwgY2xhc3M9XCJjLWNoZWNrYm94XCI+XG4gICAgPGlucHV0IGhpZGRlbiB0eXBlPVwiY2hlY2tib3hcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJjLWNoZWNrYm94X19idWJibGVcIj48L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImMtbGFiZWxcIj5MYWJlbDwvc3Bhbj5cbiAgPC9sYWJlbD5cblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkNoZWNrYm94ZXNcbiovXG5cbi5mb3JtLXR5cGUtYmVmLWNoZWNrYm94LFxuLmZvcm0tdHlwZS1jaGVja2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKSAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgKyBsYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogc3ZnLWxvYWQoXCIuLi8uLi9pbWcvaWNvbnMvY2hlY2suc3ZnXCIsIGZpbGw6ICNmZmYpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxhYmVsIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogMThweDtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gICAgICBib3JkZXI6IHZhcigtLWJvcmRlci1kZWZhdWx0KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtZGVmYXVsdCk7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBsYWJlbCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogc3ZnLWxvYWQoXCIuLi8uLi9pbWcvaWNvbnMvY2hlY2suc3ZnXCIsIGZpbGw6IHZhcigtLWNvbG9yLWdyYXkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmMtY2hlY2tib3gge1xuXG5cblxuXG4gICZfX2J1YmJsZSB7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTJweDtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1kZWZhdWx0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQpO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gID4gaW5wdXQge1xuICAgICY6Y2hlY2tlZCB7XG4gICAgICArIC5jLWNoZWNrYm94X19idWJibGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBzdmctbG9hZChcIi4uLy4uL2ltZy9pY29ucy9jaGVjay5zdmdcIiwgZmlsbDogI2ZmZik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29udGVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgQ29udGVudFxuXG4gIE1hcmt1cDpcbiAgPHNlY3Rpb24gY2xhc3M9XCJjLWNvbnRlbnRcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiYy1jb250ZW50X190aXRsZVwiPlNlY3Rpb24gMTwvaGVhZGVyPlxuICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uPC9wPlxuICAgIDxvbD5cbiAgICAgIDxsaT5MaXN0IEl0ZW0gMTwvbGk+XG4gICAgICA8bGk+TGlzdCBJdGVtIDI8L2xpPlxuICAgICAgPGxpPkxpc3QgSXRlbSAzPC9saT5cbiAgICA8L29sPlxuICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uPC9wPlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwiYy1jb250ZW50XCI+XG4gICAgPGhlYWRlciBjbGFzcz1cImMtY29udGVudF9fdGl0bGVcIj5TZWN0aW9uIDI8L2hlYWRlcj5cbiAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD5cbiAgICA8dWw+XG4gICAgICA8bGk+TGlzdCBJdGVtIDE8L2xpPlxuICAgICAgPGxpPkxpc3QgSXRlbSAyPC9saT5cbiAgICAgIDxsaT5MaXN0IEl0ZW0gMzwvbGk+XG4gICAgPC91bD5cbiAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD5cbiAgPC9zZWN0aW9uPlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuQ29udGVudFxuKi9cblxuLmMtY29udGVudCwgLmZpZWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuXG4gICZfX3RpdGxlLCAuZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctc20pO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItZGVmYXVsdCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXNlY29uZGFyeSk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHMpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgb2wsXG4gIHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gIH1cblxuICBvbCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICB9XG5cbiAgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgfVxuXG4gIG9sLFxuICB1bCB7XG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG4gICAgfVxuXG4gICAgb2wsXG4gICAgdWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIERyb3Bkb3duXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBEcm9wZG93blxuXG4gIE1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImMtZHJvcGRvd24ganMtZHJvcGRvd25cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYy1kcm9wZG93bl9fbGFiZWwganMtZHJvcGRvd25fX3RvZ2dsZVwiPlxuICAgICAgRHJvcGRvd25cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiYy1kcm9wZG93bl9fbWVudVwiPlxuICAgICAgRHJvcGRvd24gTWVudVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkRyb3Bkb3duXG4qL1xuXG4uYy1kcm9wZG93biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDA7XG5cbiAgJl9fbGFiZWwge1xuICAgID4gKiB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIHZhcigtLXNwYWNpbmcteHhzKSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlLWluLW91dCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgei1pbmRleDogNDAwO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDE0cHggOHB4IDE0cHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTEwMCUpO1xuICAgIH1cblxuICAgIC5pcy1vcGVuICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCB2YXIoLS1zcGFjaW5nLXhzKSk7XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRmlsdGVyIExpc3RcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIEZpbHRlciBMaXN0XG5cbiAgTWFya3VwOlxuICA8bmF2IGNsYXNzPVwiYy1maWx0ZXJcIj5cbiAgICA8YSBjbGFzcz1cImMtZmlsdGVyX19pdGVtIGMtZmlsdGVyX19pdGVtLS1hY3RpdmVcIj5JdGVtIDE8L2E+XG4gICAgPGEgY2xhc3M9XCJjLWZpbHRlcl9faXRlbVwiPkl0ZW0gMjwvYT5cbiAgICA8YSBjbGFzcz1cImMtZmlsdGVyX19pdGVtXCI+SXRlbSAzPC9hPlxuICAgIDxhIGNsYXNzPVwiYy1maWx0ZXJfX2l0ZW1cIj5JdGVtIDQ8L2E+XG4gICAgPGEgY2xhc3M9XCJjLWZpbHRlcl9faXRlbSBjLWZpbHRlcl9faXRlbS0tZGlzYWJsZWRcIj5JdGVtIDU8L2E+XG4gIDwvbmF2PlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuRmlsdGVyTGlzdFxuKi9cblxuLnJlZ2lvbi1uYXZpZ2F0aW9uIC52aWV3LXRvcGljcy1tZW51IC52aWV3LWNvbnRlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLnZpZXctdG9waWNzLW1lbnUge1xuICAudmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbWVkKSB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWxpZ2h0KTtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAudmlld3Mtcm93IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXh4cykgdmFyKC0tc3BhY2luZy1zbSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXNlY29uZGFyeSk7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gICZfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKSB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktc2Vjb25kYXJ5KTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgJi0tZGlzYWJsZWQge1xuICAgICAgQGFwcGx5IC0tZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRm9vdGVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBGb290ZXJcblxuICBUaGlzIGlzIGEgZm9vdGVyLlxuXG4gIE1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImMtZm9vdGVyXCI+XG4gICAgRm9vdGVyXG4gIDwvZGl2PlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuRm9vdGVyXG4qL1xuXG4uYy1mb290ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuXG4gICZfX2dyaWQge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbHVtbiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbWVkKTtcbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2luZy14bCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLndlYmZvcm0tY2xpZW50LWZvcm0ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy1zbSk7XG5cbiAgICA+IGRpdiB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgIC5mb3JtLWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5mb3JtLWl0ZW0tc2VhcmNoLWJsb2NrLWZvcm0ge1xuICAgICAgICAuZm9ybS10ZXh0IHtcbiAgICAgICAgICBtaW4td2lkdGg6IDE0OXB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICAgICAgc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14cyk7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjJweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgfVxuXG4gICAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEZvcm1zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBGb3Jtc1xuXG4gIFRoaXMgaXMgYSBmb3JtLlxuXG4gIE1hcmt1cDpcbiAgPGZvcm0gY2xhc3M9XCJjLWZvcm1cIj5cbiAgICA8ZmllbGRzZXQgY2xhc3M9XCJjLWZvcm1fX2ZpZWxkc2V0XCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiYy1mb3JtX19sZWdlbmRcIj5MZWdlbmQ8L2xlZ2VuZD5cbiAgICA8L2ZpZWxkc2V0PlxuICA8L2Zvcm0+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5Gb3Jtc1xuKi9cblxuLmMtZm9ybSB7XG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICB9XG5cbiAgJl9fZmllbGRzZXQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbGcpO1xuXG4gICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAmX19sZWdlbmQge1xuICAgIEBhcHBseSAtLWhlYWRpbmcteHM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14cyk7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItZGVmYXVsdCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW11dGVkKTtcbiAgfVxuXG4gID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8qXG4gIEZvcm0gQ29udHJvbHNcblxuICBNYXJrdXA6XG4gIDxkaXYgY2xhc3M9XCJjLWZvcm0tZ3JvdXBcIj5cbiAgICA8c2VsZWN0IGNsYXNzPVwiYy1mb3JtLWNvbnRyb2xcIj5cbiAgICAgIDxvcHRpb24+U2VsZWN0PC9vcHRpb24+XG4gICAgICA8b3B0aW9uPk9wdGlvbiAxPC9vcHRpb24+XG4gICAgICA8b3B0aW9uPk9wdGlvbiAyPC9vcHRpb24+XG4gICAgICA8b3B0aW9uPk9wdGlvbiAzPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYy1mb3JtLWdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiYy1mb3JtLWNvbnRyb2xcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiUGxhY2Vob2xkZXJcIj48L2lucHV0PlxuICA8L2Rpdj5cblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkZvcm1zLkZvcm0gQ29udHJvbHNcbiovXG5cbi8qXG4gIEZvcm0gR3JvdXAgSW5saW5lXG5cbiAgTWFya3VwOlxuICA8ZGl2IGNsYXNzPVwiYy1mb3JtLWdyb3VwIGMtZm9ybS1ncm91cC0taW5saW5lXCI+XG4gICAgPGRpdiBjbGFzcz1cImMtZm9ybS1ncm91cFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYy1sYWJlbFwiPkxhYmVsPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBjbGFzcz1cImMtZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlBsYWNlaG9sZGVyXCI+PC9pbnB1dD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYy1mb3JtLWdyb3VwXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjLWxhYmVsXCI+TGFiZWw8L2xhYmVsPlxuICAgICAgPGlucHV0IGNsYXNzPVwiYy1mb3JtLWNvbnRyb2xcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiUGxhY2Vob2xkZXJcIj48L2lucHV0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkZvcm1zLkZvcm0gR3JvdXAgSW5saW5lXG4qL1xuXG4uYy1mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14cyk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcblxuICAmLS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICA+IC5jLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gIH1cblxuICA+IC5jLWZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgICB9XG4gIH1cbn1cblxuLmZvcm0taXRlbSxcbi5mb3JtLWFjdGlvbnMge1xuICA+IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICA+IGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgPiBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gID4gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbiAgPiBzZWxlY3QsXG4gID4gLmZvcm0tdGV4dGFyZWEtd3JhcHBlciA+IHRleHRhcmVhLFxuICA+IGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1kZWZhdWx0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1kZWZhdWx0KTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktc2Vjb25kYXJ5KTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14cyk7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICA+IC5mb3JtLXRleHRhcmVhLXdyYXBwZXIgPiB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICB9XG5cbiAgJi0tcmlnaHQge1xuICAgIGJ1dHRvbixcbiAgICBzZWxlY3QsXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWxlZnQge1xuICAgIGJ1dHRvbixcbiAgICBzZWxlY3QsXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gID4gYnV0dG9uLFxuICA+IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZpbGw6ICNmZmY7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQsXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHZhcigtLWNvbG9yLWFjY2VudCkgd2hpdGVuZXNzKDIwJSkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvcih2YXIoLS1jb2xvci1hY2NlbnQpIHdoaXRlbmVzcygyMCUpKTtcbiAgICB9XG5cbiAgICAmID4gc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDIycHg7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZy14eHMpICogLTEpO1xuICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tc3BhY2luZy14eHMpICogLTEpO1xuICAgIH1cbiAgfVxuXG4gID4gc2VsZWN0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogc3ZnLWxvYWQoXCIuLi8uLi9pbWcvaWNvbnMvYXJyb3ctZG93bi5zdmdcIiwgZmlsbDogdmFyKC0tY29sb3ItZ3JheSkpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IHZhcigtLXNwYWNpbmcteHMpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtO1xuXG4gICAgJjo6bXMtZXhwYW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qXG4gIElucHV0IEdyb3VwXG5cbiAgTWFya3VwOlxuICA8ZGl2IGNsYXNzPVwiYy1pbnB1dC1ncm91cFwiPlxuICAgIDxpbnB1dCBjbGFzcz1cImMtZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlBsYWNlaG9sZGVyXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiYy1mb3JtLWNvbnRyb2xcIiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJTdWJtaXRcIj5cbiAgPC9kaXY+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5Gb3Jtcy5JbnB1dCBHcm91cFxuKi9cblxuLmMtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEhhbWJ1cmdlciBNZW51XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBIYW1idXJnZXIgTWVudVxuXG4gIE1hcmt1cDpcbiAgPGRpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYy1oYW1idXJnZXIganMtdG9nZ2xlLWFjdGl2ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImMtaGFtYnVyZ2VyX19pY29uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYy1oYW1idXJnZXJfX2xpbmVcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYy1oYW1idXJnZXJfX2xpbmVcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYy1oYW1idXJnZXJfX2xpbmVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5IYW1idXJnZXIgTWVudVxuKi9cblxuOnJvb3Qge1xuICAtLWhhbWJ1cmdlci13aWR0aDogMThQWDsgLyogRG9uJ3QgY29udmVydCB0byByZW0gKi9cbiAgLS1oYW1idXJnZXItaGVpZ2h0OiAxOFBYOyAvKiBEb24ndCBjb252ZXJ0IHRvIHJlbSAqL1xuICAtLWhhbWJ1cmdlci1ib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgLS1oYW1idXJnZXItY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIC0taGFtYnVyZ2VyLWxpbmUtaGVpZ2h0OiAyUFg7IC8qIERvbid0IGNvbnZlcnQgdG8gcmVtICovXG4gIC0taGFtYnVyZ2VyLXRyYW5zaXRpb24tZWFzaW5nOiBlYXNlLWluLW91dDtcbiAgLS1oYW1idXJnZXItdHJhbnNpdGlvbi10aW1pbmc6IDAuMTVzO1xufVxuXG4uYy1oYW1idXJnZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiBjYWxjKHZhcigtLXNwYWNpbmcteHhzKSAqIC0xKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy14eHMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJl9faWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiB2YXIoLS1oYW1idXJnZXItd2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0taGFtYnVyZ2VyLWhlaWdodCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmX19saW5lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IHZhcigtLWhhbWJ1cmdlci1saW5lLWhlaWdodCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGFtYnVyZ2VyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1oYW1idXJnZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgdHJhbnNpdGlvbjogdG9wIHZhcigtLWhhbWJ1cmdlci10cmFuc2l0aW9uLXRpbWluZykgdmFyKC0taGFtYnVyZ2VyLXRyYW5zaXRpb24tZWFzaW5nKSB2YXIoLS1oYW1idXJnZXItdHJhbnNpdGlvbi10aW1pbmcpLFxuICAgICAgICAgICAgICAgIGJvdHRvbSB2YXIoLS1oYW1idXJnZXItdHJhbnNpdGlvbi10aW1pbmcpIHZhcigtLWhhbWJ1cmdlci10cmFuc2l0aW9uLWVhc2luZykgdmFyKC0taGFtYnVyZ2VyLXRyYW5zaXRpb24tdGltaW5nKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gdmFyKC0taGFtYnVyZ2VyLXRyYW5zaXRpb24tdGltaW5nKSB2YXIoLS1oYW1idXJnZXItdHJhbnNpdGlvbi1lYXNpbmcpO1xuXG4gICAgLmlzLWFjdGl2ZSAmIHtcbiAgICAgIHRyYW5zaXRpb246IHRvcCB2YXIoLS1oYW1idXJnZXItdHJhbnNpdGlvbi10aW1pbmcpIHZhcigtLWhhbWJ1cmdlci10cmFuc2l0aW9uLWVhc2luZyksXG4gICAgICAgICAgICAgICAgICBib3R0b20gdmFyKC0taGFtYnVyZ2VyLXRyYW5zaXRpb24tdGltaW5nKSB2YXIoLS1oYW1idXJnZXItdHJhbnNpdGlvbi1lYXNpbmcpLFxuICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIHZhcigtLWhhbWJ1cmdlci10cmFuc2l0aW9uLXRpbWluZykgdmFyKC0taGFtYnVyZ2VyLXRyYW5zaXRpb24tZWFzaW5nKSB2YXIoLS1oYW1idXJnZXItdHJhbnNpdGlvbi10aW1pbmcpO1xuXG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWhhbWJ1cmdlci1saW5lLWhlaWdodCkgLyAyKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMGRlZyk7XG5cbiAgICAgIC5pcy1hY3RpdmUgJiB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMGRlZyk7XG5cbiAgICAgIC5pcy1hY3RpdmUgJiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1oYW1idXJnZXItbGluZS1oZWlnaHQpIC8gMik7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKSByb3RhdGUoMGRlZyk7XG5cbiAgICAgIC5pcy1hY3RpdmUgJiB7XG4gICAgICAgIGJvdHRvbTogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBIZWFkZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIEhlYWRlclxuXG4gIE1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImMtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImMtaGVhZGVyX19ncm91cFwiPlxuICAgICAgPGEgY2xhc3M9XCJjLWxvZ29cIiBocmVmPVwiI1wiIHRpdGxlPVwiR28gdG8gU2NpUG9sIEhvbWVcIj48L2E+XG4gICAgICA8bmF2IGNsYXNzPVwiYy1uYXZpZ2F0aW9uXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlzdFwiPlxuICAgICAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbVwiPjxhIGNsYXNzPVwiYy1uYXZpZ2F0aW9uX19saW5rIGlzLWFjdGl2ZVwiIGhyZWY9XCIjXCI+SXRlbSAxPC9hPjwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzPVwiYy1uYXZpZ2F0aW9uX19pdGVtXCI+PGEgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2xpbmtcIiBocmVmPVwiI1wiPkl0ZW0gMjwvYT48L2xpPlxuICAgICAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbVwiPjxhIGNsYXNzPVwiYy1uYXZpZ2F0aW9uX19saW5rXCIgaHJlZj1cIiNcIj5JdGVtIDM8L2E+PC9saT5cbiAgICAgICAgICA8bGkgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2l0ZW1cIj48YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSA0PC9hPjwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzPVwiYy1uYXZpZ2F0aW9uX19pdGVtXCI+PGEgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2xpbmtcIiBocmVmPVwiI1wiPkl0ZW0gNTwvYT48L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9uYXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImMtaGVhZGVyX19ncm91cFwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkhlYWRlclxuKi9cblxuLmMtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICZfX2dyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmMtaGFtYnVyZ2VyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHMpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmMtbmF2aWdhdGlvbiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI2Jsb2NrLXZpZXdzLWV4cC1zZWFyY2gtcGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5vcGVuIHtcbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBoMiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS1kYXJrKTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy1tZWQpO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYmx1ZSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS1kYXJrKTtcbiAgICAgICAgbWFzazogdXJsKC90aGVtZXMvc2NpcG9sL3NyYy9pbWcvaWNvbnMvc2VhcmNoLnN2Zyk7XG4gICAgICAgIG1hc2stc2l6ZTogMWVtO1xuICAgICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogc3ZnLWxvYWQoXCIuLi8uLi9pbWcvaWNvbnMvYXJyb3ctZG93bi5zdmdcIiwgZmlsbDogdmFyKC0tY29sb3ItZ3JheSkpO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIGxlZnQ6IC0zMDBweDtcbiAgICAgIHJpZ2h0OiAtMTAwcHg7XG4gICAgICB0b3A6IDI1cHg7XG4gICAgICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgcGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1kZWZhdWx0KTtcblxuICAgICAgPiBmb3JtIHtcbiAgICAgICAgLnZpZXdzLWV4cG9zZWQtd2lkZ2V0cyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgIC52aWV3cy1zdWJtaXQtYnV0dG9uIHtcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibHVlKTtcbiAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXh4cykgdmFyKC0tc3BhY2luZy1tZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC52aWV3cy1leHBvc2VkLXdpZGdldCB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDEvMyAqIDEwMCUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC52aWV3cy13aWRnZXQtZmlsdGVyLXNlYXJjaF9hcGlfdmlld3NfZnVsbHRleHQge1xuICAgICAgICAgICAgZmxleC1iYXNpczogODAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNzZWFyY2gtYmxvY2stZm9ybSB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXNtKTtcblxuICAgIC5jb250YWluZXItaW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgIC5mb3JtLWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5mb3JtLWl0ZW0tc2VhcmNoLWJsb2NrLWZvcm0ge1xuICAgICAgICAuZm9ybS10ZXh0IHtcbiAgICAgICAgICBtaW4td2lkdGg6IDE0OXB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjJweDtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBIZWFkaW5nc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgSGVhZGluZ3NcblxuICBIZWFkaW5nIGNsYXNzZXMgYWRkIG1hcmdpbi1ib3R0b20gYW5kIGhhdmUgYSBzbWFsbGVyIGxpbmUtaGVpZ2h0IHRoYW4gdGhlIGRlZmF1bHQgZm9udCBzdHlsZS5cblxuICBNYXJrdXA6XG4gIDxoMSBjbGFzcz1cImMtaGVhZGluZyB7eyBtb2RpZmllcl9jbGFzcyB9fVwiPkhlYWRpbmc8L2gxPlxuXG4gIC5jLWhlYWRpbmctLXh4bCAtIFhYTCBIZWFkaW5nXG4gIC5jLWhlYWRpbmctLXhsIC0gWEwgSGVhZGluZ1xuICAuYy1oZWFkaW5nLS1sZyAtIExHIEhlYWRpbmdcbiAgLmMtaGVhZGluZy0tbWVkIC0gTUVEIEhlYWRpbmdcbiAgLmMtaGVhZGluZy0tc20gLSBTTSBIZWFkaW5nXG4gIC5jLWhlYWRpbmctLXhzIC0gWFMgSGVhZGluZ1xuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuSGVhZGluZ3NcbiovXG5cbi5jLWhlYWRpbmcge1xuICBAYXBwbHkgLS1oZWFkaW5nO1xuXG4gICYtLXh4bCB7IEBhcHBseSAtLWhlYWRpbmcteHhsOyB9XG4gICYtLXhsIHsgQGFwcGx5IC0taGVhZGluZy14bDsgfVxuICAmLS1sZyB7IEBhcHBseSAtLWhlYWRpbmctbGc7IH1cbiAgJi0tbWVkIHsgQGFwcGx5IC0taGVhZGluZy1tZWQ7IH1cbiAgJi0tc20geyBAYXBwbHkgLS1oZWFkaW5nLXNtOyB9XG4gICYtLXhzIHsgQGFwcGx5IC0taGVhZGluZy14czsgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIExhYmVsc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgTGFiZWxzXG5cbiAgTWFya3VwOlxuICA8c3BhbiBjbGFzcz1cImMtbGFiZWxcIj5MYWJlbDwvc3Bhbj5cblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkxhYmVsc1xuKi9cblxubGFiZWwsIC5jLWxhYmVsIHtcbiAgQGFwcGx5IC0taGVhZGluZy14cztcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIExhcmdlIERhdGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBMYXJnZSBEYXRlc1xuXG4gIE1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImMtZGF0ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjLWRhdGVfX21vbnRoXCI+SnVuZTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjLWRhdGVfX2RheVwiPjI5PC9kaXY+XG4gIDwvZGl2PlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuTGFyZ2UgRGF0ZXNcbiovXG5cbi5jLWRhdGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1zZWNvbmRhcnkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICZfX21vbnRoIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14cyk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gICZfX2RheSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogTGlua3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIExpbmtzXG5cbiAgTWFya3VwOlxuICA8YnV0dG9uIGNsYXNzPVwiYy1saW5rXCI+QnV0dG9uPC9idXR0b24+XG4gIDxhIGNsYXNzPVwiYy1saW5rXCIgaHJlZj1cIiNcIj5hIGhyZWY8L2E+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5MaW5rc1xuKi9cblxuLmMtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjaW5nLXh4cykgKiAtMSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZy14eHMpICogLTEpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktc2Vjb25kYXJ5KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHMpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tc3BhY2luZy14eHMpICogLTEpO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZy14eHMpICogLTEpO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogTG9nb1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgTG9nb1xuXG4gIE1hcmt1cDpcbiAgPGEgY2xhc3M9XCJjLWxvZ29cIiBocmVmPVwiI1wiIHRpdGxlPVwiR28gdG8gU2NpUG9sIEhvbWVcIj48L2E+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5Mb2dvXG4qL1xuXG4uYy1sb2dvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiB3aWR0aChcIi4uL2ltZy9sb2dvLnN2Z1wiKTtcbiAgaGVpZ2h0OiBoZWlnaHQoXCIuLi9pbWcvbG9nby5zdmdcIik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHN2Zy1sb2FkKFwiLi4vLi4vaW1nL2xvZ28uc3ZnXCIsIGZpbGw6IHZhcigtLWNvbG9yLWFjY2VudCkpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMDtcblxuICAvKlxuICAgIExvZ28gb24gRGFya1xuXG4gICAgTWFya3VwOlxuICAgIDxhIGNsYXNzPVwiYy1sb2dvIGMtbG9nby0td2hpdGVcIiBocmVmPVwiI1wiIHRpdGxlPVwiR28gdG8gU2NpUG9sIEhvbWVcIj48L2E+XG5cbiAgICBEYXJrOiB0cnVlXG5cbiAgICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkxvZ28uTG9nbyBvbiBEYXJrXG4gICovXG5cbiAgJi0td2hpdGUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHN2Zy1sb2FkKFwiLi4vLi4vaW1nL2xvZ28uc3ZnXCIsIGZpbGw6ICNmZmYpO1xuICB9XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmctc20pO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogTG9nbyBMaXN0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBMb2dvIExpc3RcblxuICBNYXJrdXA6XG4gIDxkaXYgY2xhc3M9XCJjLWxvZ28tbGlzdFwiPlxuICAgIDxpbWcgY2xhc3M9XCJjLWxvZ28tbGlzdF9fbG9nb1wiIHNyYz1cIi4vLi4vaW1nL2xvZ28tZHVrZS1zY2llbmNlLWFuZC1zb2NpZXR5LWFsdC5wbmdcIj5cbiAgICA8aW1nIGNsYXNzPVwiYy1sb2dvLWxpc3RfX2xvZ29cIiBzcmM9XCIuLy4uL2ltZy9sb2dvLTEucG5nXCI+XG4gICAgPGltZyBjbGFzcz1cImMtbG9nby1saXN0X19sb2dvXCIgc3JjPVwiLi8uLi9pbWcvbG9nby0yLnBuZ1wiPlxuICAgIDxpbWcgY2xhc3M9XCJjLWxvZ28tbGlzdF9fbG9nb1wiIHNyYz1cIi4vLi4vaW1nL2xvZ28tMy5wbmdcIj5cbiAgPC9kaXY+XG5cbiAgRGFyazogdHJ1ZVxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuTG9nbyBMaXN0XG4qL1xuXG4uYy1sb2dvLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblxuICAmX19sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDYwcHg7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXhsKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBNYXBcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIE1hcFxuXG4gIFRvIGdlbmVyYXRlIGEgR29vZ2xlIE1hcHMgaWZyYW1lLCB0eXBlIGluIHRoZSBsb2NhdGlvbiB5b3Ugd2FudCB0byBkaXNwbGF5IG9uIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy8gYW5kIGNsaWNrIHRoZSBcIlNoYXJlXCIgbGluaywgdGhlbiBjb3B5IHRoZSBpZnJhbWUgdXJsIGZyb20gdGhlIFwiRW1iZWQgTWFwXCIgdGFiLlxuXG4gIE1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImMtbWFwXCI+XG4gICAgPGlmcmFtZSBzcmM9XCJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQ/cGI9ITFtMTghMW0xMiExbTMhMWQyMDY1NzYuNjAxMjk2OTM1OSEyZC03OS4wMjUzMzcwMDA5NjkzMyEzZDM2LjAwMTc0NTExNzA5MTA1NSEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4ODlhY2U0NzExMjBmNjZmMSUzQTB4ZTE3YWRhODk4YTQ2ZjI3ZSEyc0R1cmhhbSUyQytOQyE1ZTAhM20yITFzZW4hMnN1cyE0djE0NzAwODE5MTY1OTlcIiB3aWR0aD1cIjYwMFwiIGhlaWdodD1cIjQ1MFwiIGZyYW1lYm9yZGVyPVwiMFwiIHN0eWxlPVwiYm9yZGVyOjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+XG4gIDwvZGl2PlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuTWFwXG4qL1xuXG4uYy1tYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDB2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmLmlzLWluYWN0aXZlIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIE1lbnVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBNZW51c1xuXG4gIE1hcmt1cDpcbiAgPHVsIGNsYXNzPVwiYy1tZW51XCI+XG4gICAgPGxpPjxhIGNsYXNzPVwiYy1tZW51X19saW5rXCIgaHJlZj5JdGVtPC9hPjwvbGk+XG4gICAgPGxpPjxhIGNsYXNzPVwiYy1tZW51X19saW5rXCIgaHJlZj5JdGVtPC9hPjwvbGk+XG4gICAgPGxpPjxhIGNsYXNzPVwiYy1tZW51X19saW5rXCIgaHJlZj5JdGVtPC9hPjwvbGk+XG4gIDwvdWw+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5NZW51c1xuKi9cblxuLmMtbWVudSB7XG4gICZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXNlY29uZGFyeSk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG5cbiAgJl9fc3VibWVudSB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLXhzKTtcblxuICAgID4gbGkge1xuICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuICAgIH1cbiAgfVxuXG4gICZfX3N1YnRpdGxlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIE5hdmlnYXRpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIE5hdmlnYXRpb25cblxuICBNYXJrdXA6XG4gIDxuYXYgY2xhc3M9XCJjLW5hdmlnYXRpb24ge3sgbW9kaWZpZXJfY2xhc3MgfX1cIj5cbiAgICA8dWwgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2xpc3RcIj5cbiAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbSBoYXMtZHJvcGRvd25cIj5cbiAgICAgICAgPGEgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2xpbmtcIiBocmVmPVwiI1wiPkl0ZW0gMTwvYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImMtbmF2aWdhdGlvbl9fZHJvcGRvd24td3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2Ryb3Bkb3duXCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJjLW1lbnVcIj5cbiAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiYy1tZW51X19saW5rXCIgaHJlZj5JdGVtPC9hPjwvbGk+XG4gICAgICAgICAgICAgIDxsaT48YSBjbGFzcz1cImMtbWVudV9fbGlua1wiIGhyZWY+SXRlbTwvYT48L2xpPlxuICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJjLW1lbnVfX2xpbmtcIiBocmVmPkl0ZW08L2E+PC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSAyPC9hPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSAzPC9hPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSA0PC9hPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbVwiPlxuICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGluayBpcy1hY3RpdmVcIiBocmVmPVwiI1wiPkl0ZW0gNTwvYT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uYXY+XG5cbiAgLmMtbmF2aWdhdGlvbi0tdmVydGljYWwgLSBWZXJ0aWNhbCBOYXZpZ2F0aW9uXG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5OYXZpZ2F0aW9uXG4qL1xuXG4uYy1uYXZpZ2F0aW9uIHtcbiAgJi0tdmVydGljYWwge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmcteHhzKSAqIC0xKTtcblxuICAgIC5jLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBOYXZpZ2F0aW9uIG9uIERhcmsgQmFja2dyb3VuZHNcblxuICAgIE1hcmt1cDpcbiAgICA8bmF2IGNsYXNzPVwiYy1uYXZpZ2F0aW9uIGMtbmF2aWdhdGlvbi0tb24tZGFyayB7eyBtb2RpZmllcl9jbGFzcyB9fVwiPlxuICAgICAgPHVsIGNsYXNzPVwiYy1uYXZpZ2F0aW9uX19saXN0XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImMtbmF2aWdhdGlvbl9faXRlbVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwiYy1uYXZpZ2F0aW9uX19saW5rIGlzLWFjdGl2ZVwiIGhyZWY9XCIjXCI+SXRlbSAxPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2l0ZW1cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSAyPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2l0ZW1cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSAzPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2l0ZW1cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSA0PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJjLW5hdmlnYXRpb25fX2l0ZW1cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cImMtbmF2aWdhdGlvbl9fbGlua1wiIGhyZWY9XCIjXCI+SXRlbSA1PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L25hdj5cblxuICAgIC5jLW5hdmlnYXRpb24tLXZlcnRpY2FsIC0gVmVydGljYWwgTmF2aWdhdGlvblxuXG4gICAgRGFyazogdHJ1ZVxuXG4gICAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5OYXZpZ2F0aW9uLk5hdmlnYXRpb24gb24gRGFyayBCYWNrZ3JvdW5kc1xuICAqL1xuXG4gICYtLW9uLWRhcmsge1xuICAgIC5jLW5hdmlnYXRpb25fX2xpbmsge1xuICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwubWVudSBsaSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICA+IC5tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIGxpLmxlYWYsXG4gICAgbGkuZXhwYW5kZWQge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTtcbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktc2Vjb25kYXJ5KTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LFxuICAgICAgICAgICAgICAgICAgICBjb2xvciAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiB1bC5tZW51IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgdmFyKC0tc3BhY2luZy14eHMpKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlLWluLW91dCxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKTtcblxuICAgICAgICBtaW4td2lkdGg6IDQ4MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LWRlZmF1bHQpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgID4gLmZpcnN0IHtcbiAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW1lZCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgID4gdWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xcHgpO1xuXG4gICAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICAgIH1cblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogc3ZnLWxvYWQoXCIuLi8uLi9pbWcvaWNvbnMvYXJyb3ctZG93bi5zdmdcIiwgZmlsbDogdmFyKC0tY29sb3ItZ3JheSkpO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBQYWdlIEhlYWRlclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgUGFnZSBIZWFkZXJcblxuICBNYXJrdXA6XG4gIDxkaXYgY2xhc3M9XCJjLXBhZ2UtaGVhZGVyXCI+XG4gICAgPGgxIGNsYXNzPVwiYy1wYWdlLWhlYWRlcl9fdGl0bGVcIj5QYWdlIFRpdGxlPC9oMT5cbiAgICA8cCBjbGFzcz1cImMtcGFnZS1oZWFkZXJfX2Rlc2NyaXB0aW9uXCI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLjwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiYy10YWdzXCI+XG4gICAgICA8YSBjbGFzcz1cImMtdGFnXCI+VGFnIDE8L2E+XG4gICAgICA8YSBjbGFzcz1cImMtdGFnXCI+VGFnIDI8L2E+XG4gICAgICA8YSBjbGFzcz1cImMtdGFnXCI+VGFnIDM8L2E+XG4gICAgICA8YSBjbGFzcz1cImMtdGFnXCI+VGFnIDQ8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuUGFnZSBIZWFkZXJcbiovXG5cbi5jLXBhZ2UtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbWVkKTtcbiAgbWluLWhlaWdodDogMTIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktbGlnaHQpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdDtcbiAgYmFja2dyb3VuZC1zaXplOiAwJTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDE1MHB4ICsgdmFyKC0tc3BhY2luZy1tZWQpKTtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nLXh4eGw7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuICB9XG5cbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmLS1uby1pbWFnZSB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy1tZWQpIDA7XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBJY29uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgU29jaWFsIEljb25zXG5cbiAgTWFya3VwOlxuICA8YSBjbGFzcz1cImMtc29jaWFsLWljb25cIiBocmVmPlxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgOS4zIDIwXCI+XG4gICAgICA8cGF0aCBkPVwiTTYuMiAyMFYxMEg5bC40LTMuNEg2LjJWNC45YzAtLjkuMS0xLjQgMS40LTEuNGgxLjdWMEg2LjZDMy4yIDAgMi4xIDEuNyAyLjEgNC41djIuMUgwVjEwaDIuMXYxMGg0LjF6XCIvPlxuICAgIDwvc3ZnPlxuICA8L2E+XG4gIDxhIGNsYXNzPVwiYy1zb2NpYWwtaWNvblwiIGhyZWY+XG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxOS40IDE2XCI+XG4gICAgICA8cGF0aCBkPVwiTTkuNCA0LjNWNWwtLjctLjFDNi4yIDQuNSA0IDMuNCAyLjEgMS42TDEuMi43bC0uMy42Yy0uNSAxLjYtLjIgMy4yLjkgNC4yLjYuNi40LjctLjUuMy0uNC0uMS0uNy0uMS0uNy0uMS0uMS4xLjIgMS40LjUgMS45LjQuNyAxLjEgMS40IDEuOSAxLjhsLjcuM2gtLjhjLS44IDAtLjggMC0uNy4zLjMuOSAxLjQgMS45IDIuNiAyLjNsLjkuMy0uOC41Yy0xLjEuNi0yLjQgMS0zLjcgMS0uNiAwLTEuMS4xLTEuMS4xIDAgLjEgMS43LjkgMi43IDEuMiAzIC45IDYuNS41IDkuMi0xIDEuOS0xLjEgMy44LTMuMyA0LjctNS41LjUtMS4xIDEtMy4yIDEtNC4yIDAtLjYgMC0uNy44LTEuNS41LS41LjktLjkgMS0xLjEuMS0uMy4xLS4zLS42IDAtMS4yLjQtMS40LjQtLjgtLjMuNC0uNSAxLTEuMyAxLTEuNSAwIDAtLjIgMC0uNC4yLS4zLjEtLjguNC0xLjIuNWwtLjguMi0uNy0uNWMtLjQtLjMtLjktLjUtMS4yLS42LS43LS4yLTEuOC0uMi0yLjQuMS0yIC42LTMuMSAyLjMtMyA0LjF6XCIvPlxuICAgIDwvc3ZnPlxuICA8L2E+XG5cbiAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5Tb2NpYWwgSWNvbnNcbiovXG4uYy1zb2NpYWwge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG59XG5cbi5jLXNvY2lhbC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHMpO1xuICB9XG5cbiAgLypcbiAgICBTb2NpYWwgSWNvbnMgb24gV2hpdGVcblxuICAgIE1hcmt1cDpcbiAgICA8YSBjbGFzcz1cImMtc29jaWFsLWljb24gYy1zb2NpYWwtaWNvbi0td2hpdGVcIiBocmVmPlxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA5LjMgMjBcIj5cbiAgICAgICAgPHBhdGggZD1cIk02LjIgMjBWMTBIOWwuNC0zLjRINi4yVjQuOWMwLS45LjEtMS40IDEuNC0xLjRoMS43VjBINi42QzMuMiAwIDIuMSAxLjcgMi4xIDQuNXYyLjFIMFYxMGgyLjF2MTBoNC4xelwiLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYT5cbiAgICA8YSBjbGFzcz1cImMtc29jaWFsLWljb24gYy1zb2NpYWwtaWNvbi0td2hpdGVcIiBocmVmPlxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxOS40IDE2XCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNOS40IDQuM1Y1bC0uNy0uMUM2LjIgNC41IDQgMy40IDIuMSAxLjZMMS4yLjdsLS4zLjZjLS41IDEuNi0uMiAzLjIuOSA0LjIuNi42LjQuNy0uNS4zLS40LS4xLS43LS4xLS43LS4xLS4xLjEuMiAxLjQuNSAxLjkuNC43IDEuMSAxLjQgMS45IDEuOGwuNy4zaC0uOGMtLjggMC0uOCAwLS43LjMuMy45IDEuNCAxLjkgMi42IDIuM2wuOS4zLS44LjVjLTEuMS42LTIuNCAxLTMuNyAxLS42IDAtMS4xLjEtMS4xLjEgMCAuMSAxLjcuOSAyLjcgMS4yIDMgLjkgNi41LjUgOS4yLTEgMS45LTEuMSAzLjgtMy4zIDQuNy01LjUuNS0xLjEgMS0zLjIgMS00LjIgMC0uNiAwLS43LjgtMS41LjUtLjUuOS0uOSAxLTEuMS4xLS4zLjEtLjMtLjYgMC0xLjIuNC0xLjQuNC0uOC0uMy40LS41IDEtMS4zIDEtMS41IDAgMC0uMiAwLS40LjItLjMuMS0uOC40LTEuMi41bC0uOC4yLS43LS41Yy0uNC0uMy0uOS0uNS0xLjItLjYtLjctLjItMS44LS4yLTIuNC4xLTIgLjYtMy4xIDIuMy0zIDQuMXpcIi8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2E+XG5cbiAgICBEYXJrOiB0cnVlXG5cbiAgICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLlNvY2lhbCBJY29ucy5Tb2NpYWwgSWNvbnMgb24gV2hpdGVcbiAgKi9cblxuICAmLS13aGl0ZSB7XG4gICAgPiBzdmcge1xuICAgICAgZmlsbDogI2ZmZjtcbiAgICB9XG4gIH1cblxuICA+IHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGFnc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgVGFnc1xuXG4gIE1hcmt1cDpcbiAgPHVsIGNsYXNzPVwiYy10YWdzXCI+XG4gICAgPGxpIGNsYXNzPVwiYy10YWcge3sgbW9kaWZpZXJfY2xhc3MgfX1cIj5UYWc8L2xpPlxuICA8L3VsPlxuXG4gIFN0eWxlZ3VpZGU6IENvbXBvbmVudHMuVGFnc1xuKi9cblxuLmMtdGFncyB7XG4gIGZvbnQtc2l6ZTogMDtcblxuICAvKlxuICAgIFRhZ3MgYXMgTGlua3NcblxuICAgIE1hcmt1cDpcbiAgICA8dWwgY2xhc3M9XCJjLXRhZ3NcIj5cbiAgICAgIDxsaT48YSBjbGFzcz1cImMtdGFnXCIgaHJlZj1cIiNcIj5UYWcgMTwvYT48L2xpPlxuICAgICAgPGxpPjxhIGNsYXNzPVwiYy10YWdcIiBocmVmPVwiI1wiPlRhZyAyPC9hPjwvbGk+XG4gICAgICA8bGk+PGEgY2xhc3M9XCJjLXRhZ1wiIGhyZWY9XCIjXCI+VGFnIDM8L2E+PC9saT5cbiAgICA8L3VsPlxuXG4gICAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5UYWdzLlRhZ3MgYXMgTGlua3NcbiAgKi9cblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIH1cbiAgfVxufVxuXG4uYy10YWcge1xuICBAYXBwbHkgLS1oZWFkaW5nLXhzO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNnB4IDExcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW11dGVkKTtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14eHMpO1xuXG4gICYtLUdvdmVybm1lbnQsXG4gICYtLUFnZW5jeSxcbiAgJi0tRWxlY3RlZC1Cb2R5LFxuICAmLS1FeGVjdXRpdmUsXG4gICYtLUp1ZGljaWFsLFxuICAmLS1TdGF0dXRlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibHVlLWRhcmspO1xuICB9XG5cbiAgJi0tRXhlY3V0aXZlIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIG1hc2staW1hZ2U6IHVybCgnL3RoZW1lcy9zY2lwb2wvc3JjL2ltZy9pY29ucy90YWctZXhlY3V0aXZlLnN2ZycpO1xuICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgIHdpZHRoOiA4cHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIH1cbiAgfVxuXG4gICYtLUFnZW5jeSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBtYXNrLWltYWdlOiB1cmwoJy90aGVtZXMvc2NpcG9sL3NyYy9pbWcvaWNvbnMvdGFnLWFnZW5jeS5zdmcnKTtcbiAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBtYXNrLXNpemU6IGNvbnRhaW47XG4gICAgICB3aWR0aDogOHB4O1xuICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICB9XG4gIH1cblxuICAmLS1FbGVjdGVkLUJvZHkge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgbWFzay1pbWFnZTogdXJsKCcvdGhlbWVzL3NjaXBvbC9zcmMvaW1nL2ljb25zL3RhZy1sZWdpc2xhdGlvbi5zdmcnKTtcbiAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBtYXNrLXNpemU6IGNvbnRhaW47XG4gICAgICB3aWR0aDogOHB4O1xuICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICB9XG4gIH1cblxuICAmLS1KdWRpY2lhbCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBtYXNrLWltYWdlOiB1cmwoJy90aGVtZXMvc2NpcG9sL3NyYy9pbWcvaWNvbnMvdGFnLWp1ZGljaWFsLnN2ZycpO1xuICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgIHdpZHRoOiA4cHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIH1cbiAgfVxuXG4gICYtLVN0YXR1dGUge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgbWFzay1pbWFnZTogdXJsKCcvdGhlbWVzL3NjaXBvbC9zcmMvaW1nL2ljb25zL3RhZy1yZWd1bGF0b3J5LnN2ZycpO1xuICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgIHdpZHRoOiA4cHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIH1cbiAgfVxuXG4gICYtLU90aGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1icm93bik7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIG1hc2staW1hZ2U6IHVybCgnL3RoZW1lcy9zY2lwb2wvc3JjL2ltZy9pY29ucy90YWctb3RoZXIuc3ZnJyk7XG4gICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gICAgfVxuICB9XG5cbiAgJi0tSW5kdXN0cnkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyZWVuKTtcbiAgfVxuXG4gICYtLVNjaWVuY2Uge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW9yYW5nZSk7XG4gIH1cblxuICAvKlxuICAgIFRhZ3Mgd2l0aCBJY29uc1xuXG4gICAgTWFya3VwOlxuICAgIDx1bCBjbGFzcz1cImMtdGFnc1wiPlxuICAgICAgPGxpIGNsYXNzPVwiYy10YWcge3sgbW9kaWZpZXJfY2xhc3MgfX1cIj48L2xpPlxuICAgICAgPGxpIGNsYXNzPVwiYy10YWcge3sgbW9kaWZpZXJfY2xhc3MgfX1cIj5cbiAgICAgICAgPHNwYW4+VGFnPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgLmMtdGFnLS1sZWdpc2xhdGlvbiAtIExlZ2lzbGF0aW9uIFRhZ1xuICAgIC5jLXRhZy0tZXhlY3V0aXZlIC0gRXhlY3V0aXZlIEFjdGlvbiBUYWdcbiAgICAuYy10YWctLWp1ZGljaWFsIC0gSnVkaWNpYWwgQWN0aW9uIFRhZ1xuICAgIC5jLXRhZy0tcmVndWxhdG9yeSAtIFJlZ3VsYXRvcnkgQWN0aW9uIFRhZ1xuXG4gICAgU3R5bGVndWlkZTogQ29tcG9uZW50cy5UYWdzLlRhZ3Mgd2l0aCBJY29uc1xuICAqL1xuXG4gIEBkZWZpbmUtbWl4aW4gdGFnLWljb24gJGNvbG9yLCAkaWNvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgd2lkdGg6IDFlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBzdmctbG9hZChcIi4uLy4uL2ltZy9pY29ucy8kKGljb24pLnN2Z1wiLCBmaWxsOiAjZmZmKTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjplbXB0eTo6YmVmb3JlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nLXhzKSAqIC0xKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmcteHMpICogLTEpO1xuICAgIH1cbiAgfVxuXG4gICYtLWxlZ2lzbGF0aW9uIHsgQG1peGluIHRhZy1pY29uIHZhcigtLWNvbG9yLWJsdWUtZGFyayksIHRhZy1sZWdpc2xhdGlvbjsgfVxuICAmLS1leGVjdXRpdmUgeyBAbWl4aW4gdGFnLWljb24gdmFyKC0tY29sb3ItcmVkKSwgdGFnLWV4ZWN1dGl2ZTsgfVxuICAmLS1qdWRpY2lhbCB7IEBtaXhpbiB0YWctaWNvbiB2YXIoLS1jb2xvci1vcmFuZ2UpLCB0YWctanVkaWNpYWw7IH1cbiAgJi0tcmVndWxhdG9yeSB7IEBtaXhpbiB0YWctaWNvbiB2YXIoLS1jb2xvci1ibHVlKSwgdGFnLXJlZ3VsYXRvcnk7IH1cblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuICB9XG59XG4iLCIuYy1hdWRpdCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctbWVkKTtcblxuICAmLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LWRhcmspO1xuICAgIH1cblxuICAgICZfX2RhdGUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1vZi10eXBlOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG4iLCIuYy1qb2ItaW1hZ2Uge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuIiwic3VwIHtcbiAgdG9wOiAwO1xufVxuIiwiLmMtcGFydG5lcnMge1xuICBtYXJnaW46IHZhcigtLXNwYWNpbmcteHMpIDA7XG5cbiAgLmMtcGFydG5lciB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy1tZWQpO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCbG9ja1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgQmxvY2tcblxuICBVc2UgYDxkaXYgY2xhc3M9XCJsLWJsb2NrXCI+PC9kaXY+YCB0byB3cmFwIGl0ZW1zIHRoYXQgbmVlZCBhIG1hcmdpbi1ib3R0b20uXG5cbiAgU3R5bGVndWlkZTogTGF5b3V0LkJsb2NrXG4qL1xuXG4ubC1ibG9jayB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbGcpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIENhcmQgR3JvdXBcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIENhcmQgR3JvdXBcblxuICBGb3IgZGlzcGxheWluZyB0aHJlZSBjYXJkcyBpbiBhIHJvdyBmcm9tIDkwMHB4IHVwLlxuXG4gIE1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImwtY2FyZC1ncm91cFwiPlxuICAgIDxkaXYgY2xhc3M9XCJsLWNhcmQtZ3JvdXBfX2NhcmRcIj5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYy1jYXJkIFttb2RpZmllciBjbGFzc11cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fYm9keVwiPlxuICAgICAgICAgIENhcmQgMVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibC1jYXJkLWdyb3VwX19jYXJkXCI+XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImMtY2FyZCBbbW9kaWZpZXIgY2xhc3NdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjLWNhcmRfX2JvZHlcIj5cbiAgICAgICAgICBDYXJkIDJcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImwtY2FyZC1ncm91cF9fY2FyZFwiPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjLWNhcmQgW21vZGlmaWVyIGNsYXNzXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYy1jYXJkX19ib2R5XCI+XG4gICAgICAgICAgQ2FyZCAzXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBTdHlsZWd1aWRlOiBMYXlvdXQuQ2FyZCBHcm91cFxuKi9cblxuXG4ubC1jYXJkLWdyb3VwIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgJl9fY2FyZCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk5cHgpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbWVkKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDE7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy1tZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBDb250YWluZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIENvbnRhaW5lclxuXG4gIFVzZSBgPGRpdiBjbGFzcz1cImwtY29udGFpbmVyXCI+PC9kaXY+YCB0byBjZW50ZXIgYW5kIHNldCBhIG1heC13aWR0aCBvbiB5b3VyIGNvbnRlbnQuXG5cbiAgU3R5bGVndWlkZTogTGF5b3V0LkNvbnRhaW5lclxuKi9cblxuLmwtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDExMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2luZy1zbSk7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2luZy1zbSk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNwYWNpbmctbGcpO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2luZy1sZyk7XG4gIH1cblxuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEdyaWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAvKlxuICAgR3JpZFxuXG4gICBNYXJrdXA6XG4gICA8ZGl2IGNsYXNzPVwibC1ncmlkXCI+XG4gICAgIDxzZWN0aW9uIGNsYXNzPVwiYy1jYXJkXCI+XG4gICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fYm9keVwiPlxuICAgICAgICAgQ2FyZFxuICAgICAgIDwvZGl2PlxuICAgICA8L3NlY3Rpb24+XG4gICAgIDxzZWN0aW9uIGNsYXNzPVwiYy1jYXJkXCI+XG4gICAgICAgPGRpdiBjbGFzcz1cImMtY2FyZF9fYm9keVwiPlxuICAgICAgICAgQ2FyZFxuICAgICAgIDwvZGl2PlxuICAgICA8L3NlY3Rpb24+XG4gICA8L2Rpdj5cblxuICAgU3R5bGVndWlkZTogTGF5b3V0LkdyaWRcbiAqL1xuXG4ubC1ncmlkIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgPiAubC1ncmlkX19jb2x1bW4ge1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbWVkKTtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmctbGcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIE1haW5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIE1haW5cblxuICBNYXJrdXA6XG4gIDxkaXYgY2xhc3M9XCJsLW1haW5cIj5cbiAgICA8YXNpZGUgY2xhc3M9XCJsLW1haW5fX2FzaWRlXCI+XG4gICAgICBBc2lkZVxuICAgIDwvYXNpZGU+XG4gICAgPG1haW4gY2xhc3M9XCJsLW1haW5fX2NvbnRlbnRcIj5cbiAgICAgIE1haW4gQ29udGVudCBBcmVhXG4gICAgPC9tYWluPlxuICAgIDxhc2lkZSBjbGFzcz1cImwtbWFpbl9fYXNpZGVcIj5cbiAgICAgIEFzaWRlXG4gICAgPC9hc2lkZT5cbiAgPC9kaXY+XG5cbiAgU3R5bGVndWlkZTogTGF5b3V0Lk1haW5cbiovXG5cbi5sLW1haW4ge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG5cbiAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIH4gLmwtbWFpbl9fYXNpZGUge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19hc2lkZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuXG4gICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy1tZWQpO1xuICAgIH1cbiAgfVxuXG4gID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogUGFnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgUGFnZVxuXG4gIFN0eWxlZ3VpZGU6IExheW91dC5QYWdlXG4qL1xuXG4ubC1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmX19oZWFkZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2luZy14cyk7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdy1kZWZhdWx0KTtcbiAgICB6LWluZGV4OiAyMDA7XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBmbGV4OiAxO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gICZfX2NvbHVtbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmX19jb2x1bW4ge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy1tZWQpO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogU2VjdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gIFNlY3Rpb25zXG5cbiAgTWFya3VwOlxuICA8c2VjdGlvbiBjbGFzcz1cImwtc2VjdGlvbiB7eyBtb2RpZmllcl9jbGFzcyB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsLWNvbnRhaW5lclwiPlxuICAgICAgU2VjdGlvbiBDb250ZW50XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cblxuICAubC1zZWN0aW9uLS1ncmF5IC0gR3JheSBTZWN0aW9uXG4gIC5sLXNlY3Rpb24tLWJsdWUgLSBCbHVlIFNlY3Rpb25cbiAgLmwtc2VjdGlvbi0tYmx1ZS1kYXJrIC0gRGFyayBCbHVlIFNlY3Rpb25cblxuICBTdHlsZWd1aWRlOiBMYXlvdXQuU2VjdGlvbnNcbiovXG5cbkBkZWZpbmUtbWl4aW4gc2VjdGlvbiAkY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkKGNvbG9yKTtcblxuICAmICsgJiB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cblxuLmwtc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLWxnKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctbGcpO1xuXG4gIC8qXG4gICAgRmxhdCBTZWN0aW9uc1xuXG4gICAgVXNlIHRoZSBgLmwtc2VjdGlvbi0tZmxhdGAgbW9kaWZpZXIgY2xhc3MgdG8gcmVtb3ZlIHRoZSBkZWZhdWx0IHRvcCBhbmQgYm90dG9tIHBhZGRpbmcuXG5cbiAgICBNYXJrdXA6XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJsLXNlY3Rpb24gbC1zZWN0aW9uLS1mbGF0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibC1jb250YWluZXJcIj5cbiAgICAgICAgRmxhdCBTZWN0aW9uXG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICBTdHlsZWd1aWRlOiBMYXlvdXQuU2VjdGlvbnMuRmxhdCBTZWN0aW9uc1xuICAqL1xuXG4gICYtLWZsYXQge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgJi0td2hpdGUgeyBAbWl4aW4gc2VjdGlvbiAjZmZmOyB9XG4gICYtLWdyYXkgeyBAbWl4aW4gc2VjdGlvbiB2YXIoLS1jb2xvci1ncmF5LWxpZ2h0KTsgfVxuICAmLS1ibHVlIHsgQG1peGluIHNlY3Rpb24gdmFyKC0tY29sb3ItYmx1ZSk7IH1cbiAgJi0tYmx1ZS1kYXJrIHsgQG1peGluIHNlY3Rpb24gdmFyKC0tY29sb3ItYmx1ZS1kYXJrKTsgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFNsaWRlb3V0IE1lbnVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5sLXNsaWRlb3V0LW1lbnUtb3ZlcmxheSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgei1pbmRleDogOTk7XG4gIH1cblxuICAmLmlzLXZpc2libGUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB9XG4gIH1cbn1cblxuLmwtc2xpZGVvdXQtbWVudSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWRlZmF1bHQpO1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB6LWluZGV4OiAxMDA7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzIGVhc2UtaW4tb3V0LFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWJvcmRlci1kZWZhdWx0KTtcbiAgfVxuXG4gICYtLW1vYmlsZS1vbmx5IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLmlzLXZpc2libGUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBXZWxsXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBXZWxsXG5cbiAgTWFya3VwOlxuICA8YXNpZGUgY2xhc3M9XCJsLXdlbGxcIj5cbiAgICBXZWxsXG4gIDwvYXNpZGU+XG5cbiAgU3R5bGVndWlkZTogTGF5b3V0LldlbGxcbiovXG5cbi5sLXdlbGwge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktbGlnaHQpO1xuXG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICB9XG5cbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBDbGVhcmZpeFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbkNsZWFyZml4XG5cblVzZSBgLmgtY2xlYXJmaXhgIHRvIGZpeCB0aGUgemVyby1oZWlnaHQgY29udGFpbmVyIHByb2JsZW0gZm9yIGZsb2F0ZWQgZWxlbWVudHMuXG5cblN0eWxlZ3VpZGUgSGVscGVycy5DbGVhcmZpeFxuKi9cblxuLmgtY2xlYXJmaXgge1xuICBAYXBwbHkgLS1jbGVhcmZpeDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBEaXNhYmxlZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbkRpc2FibGVkXG5cblVzZSB0aGUgY3VzdG9tIHByb3BlcnR5IGAtLWRpc2FibGVkYCwgdGhlIGBkaXNhYmxlZGAgYXR0cmlidXRlIG9yIHRoZSBgLmlzLWRpc2FibGVkYCBjbGFzcyB0byBkaXNhYmxlIGFueSBlbGVtZW50LlxuXG5NYXJrdXA6XG48YnV0dG9uIGNsYXNzPVwiYy1idXR0b25cIj5EZWZhdWx0IEJ1dHRvbjwvYnV0dG9uPlxuPGJ1dHRvbiBjbGFzcz1cImMtYnV0dG9uXCIgZGlzYWJsZWQ+RGlzYWJsZWQgQnV0dG9uPC9idXR0b24+XG48YnV0dG9uIGNsYXNzPVwiYy1idXR0b24gaXMtZGlzYWJsZWRcIj5EaXNhYmxlZCBCdXR0b248L2J1dHRvbj5cblxuU3R5bGVndWlkZSBIZWxwZXJzLkRpc2FibGVkXG4qL1xuXG5bZGlzYWJsZWRdLFxuLmlzLWRpc2FibGVkIHtcbiAgQGFwcGx5IC0tZGlzYWJsZWQ7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRmxvYXRzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuRmxvYXRzXG5cblN0eWxlZ3VpZGUgSGVscGVycy5GbG9hdHNcbiovXG5cbi5oLWZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5oLWZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFJlc2V0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuUmVzZXRcblxuVXNlIGAuaC1yZXNldGAgdG8gc2V0IGFsbCBzdHlsZXMgdG8gdGhlaXIgaW5pdGlhbCBzdGF0ZS5cblxuU3R5bGVndWlkZSBIZWxwZXJzLlJlc2V0XG4qL1xuXG4uaC1yZXNldCB7XG4gIEBhcHBseSAtLXJlc2V0O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFR5cG9ncmFwaHlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG5UeXBvZ3JhcGh5XG5cblN0eWxlZ3VpZGUgSGVscGVycy5UeXBvZ3JhcGh5XG4qL1xuXG4uaC10ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIE92ZXJyaWRlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmR1a2UtbG9nby1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEyMHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS1kYXJrKTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14cyk7XG59XG5cbi52aWV3cy1leHBvc2VkLXdpZGdldHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC52aWV3cy1leHBvc2VkLXdpZGdldCB7XG4gICAgPiBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmcteHMpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLWRlZmF1bHQpO1xuICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICB9XG4gIH1cbn1cblxuLnZpZXdzLXdpZGdldC1maWx0ZXItY3JlYXRlZCB7XG4gIC52aWV3cy13aWRnZXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAuZm9ybS1pdGVtLWNyZWF0ZWQtbWluIHtcbiAgICAgIGZsZXg6IDI7XG4gICAgfVxuXG4gICAgLmZvcm0taXRlbS1jcmVhdGVkLW1heCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMztcblxuICAgICAgbGFiZWwge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDEvMyAqIDEwMCUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDA7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnLSc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgZmxleDogMjtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygyLzMgKiAxMDAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnZpZXctcG9saWN5LWRldmVsb3BtZW50cy1vbi1mcm9udC1wYWdlIHtcbiAgLnZpZXdzLXJvdyB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICB9XG59XG5cbi52aWV3LWNhbGVuZGFyIHtcbiAgLmRhdGUtbmF2LXdyYXBwZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktbGlnaHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKSAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAuZGF0ZS1uYXYge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgLmRhdGUtaGVhZGluZyB7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmRhdGUtcHJldixcbiAgICAgIC5kYXRlLW5leHQge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICBmb250LXNpemU6IDA7XG5cbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUsIDQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbWVkKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1saWdodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5kYXRlLXByZXYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogYXV0bztcblxuICAgICAgICA+IGEge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnPCc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5kYXRlLW5leHQge1xuICAgICAgICA+IGEge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnPic7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wYWdlciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2FsZW5kYXItY2FsZW5kYXIge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1vbnRoLXZpZXcge1xuICAgICAgLmZ1bGwge1xuICAgICAgICB0ZC5tdWx0aS1kYXkuc3RhcnRzLXRvZGF5IHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWdyYXkpO1xuICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGQubXVsdGktZGF5LmVuZHMtdG9kYXkge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZ3JheSk7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICB0ZC50b2RheSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLmRhdGUtYm94IHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS1kYXJrKTtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14cyk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuXG4gICAgICAgICAgJi5lbXB0eSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgLmRheSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmRheSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZC5tdWx0aS1kYXkge1xuICAgICAgICAgIGRpdi5tb250aHZpZXcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LWxpZ2h0KTtcblxuICAgICAgICAgICAgLnZpZXdzLWZpZWxkIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRlbnRzIHtcbiAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGl2LmN1dG9mZiB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktbGlnaHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXYuY29udGludWVzIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS1saWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jLWRvdCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktZGFyayk7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2luZy14eHMpO1xuXG4gICAgICAgICAgICAgICYtLUhlYXJpbmcge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXJlZCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLS1Db21tZW50cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmx1ZSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLS1NZWV0aW5nLVdvcmtzaG9wIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibHVlLWRhcmspO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi0tTm9taW5hdGlvbnMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLW9yYW5nZSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmLS1PdGhlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JlZW4pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGQuc2luZ2xlLWRheSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAmLnRvZGF5IHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuZW1wdHkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGl2Lm1vbnRodmlldyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgLnZpZXdzLWZpZWxkIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRlbnRzIHtcbiAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYy1kb3Qge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWRhcmspO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHhzKTtcblxuICAgICAgICAgICAgICAmLS1IZWFyaW5nIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi0tQ29tbWVudHMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsdWUpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi0tTWVldGluZy1Xb3Jrc2hvcCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmx1ZS1kYXJrKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICYtLU5vbWluYXRpb25zIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1vcmFuZ2UpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJi0tT3RoZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyZWVuKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYy1kb3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWRhcmspO1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmcteHhzKTtcblxuICAmLS1IZWFyaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQpO1xuICB9XG5cbiAgJi0tQ29tbWVudHMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsdWUpO1xuICB9XG5cbiAgJi0tTWVldGluZy1Xb3Jrc2hvcCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmx1ZS1kYXJrKTtcbiAgfVxuXG4gICYtLU5vbWluYXRpb25zIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1vcmFuZ2UpO1xuICB9XG5cbiAgJi0tT3RoZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyZWVuKTtcbiAgfVxufVxuXG4udmlldy1ldmVudC1jYXRlZ29yaWVzIHtcbiAgLnZpZXctaGVhZGVyIHtcbiAgICBwIHtcbiAgICAgIG1hcmdpbjogdmFyKC0tc3BhY2luZy14eHMpIDA7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgIH1cbiAgfVxuXG4gIC52aWV3LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgfVxuXG4gIC52aWV3cy1yb3cge1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLnZpZXdzLWZpZWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgfVxufVxuXG4udmlldy1uZXdzLW9uLWZyb250LXBhZ2Uge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1zbSk7XG5cbiAgLmMtY2FyZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICB9XG5cbiAgLnZpZXctZm9vdGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cbn1cblxuLnJlZ2lvbi1hc2lkZSB7XG4gIC5jYWxlbmRhci5tb250aHZpZXcge1xuICAgIC5jLWV2ZW50LW5hbWUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLnZpZXctcHJvbW90ZWQtY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbGcpO1xuICAuYy1jYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5zZWFyY2gtZm9ybSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgIG1hcmdpbjogdmFyKC0tc3BhY2luZy14cykgMDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsdWUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14cyk7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy14eHMpIHZhcigtLXNwYWNpbmctbWVkKTtcbiAgfVxufVxuXG4uYWJvdXQsXG4ucmVzb3VyY2VzIHtcbiAgLmwtbWFpbl9fY29udGVudCB7XG4gICAgaDEge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctbWVkKSAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXkpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1sZyk7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktZGFyayk7XG4gICAgfVxuXG4gICAgLmMtcGVvcGxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXhsKTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDE1MHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jLWhlYWRzaG90LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1saWdodCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnJlZ2lvbi1jb250ZW50IHtcbiAgLndlYmZvcm0tY2xpZW50LWZvcm0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktbGlnaHQpO1xuXG4gICAgPiBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuICAgICAgLmZvcm0taXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmZvcm0taXRlbS1zZWFyY2gtYmxvY2stZm9ybSB7XG4gICAgICAgIC5mb3JtLXRleHQge1xuICAgICAgICAgIG1pbi13aWR0aDogMTQ5cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjJweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgfVxuXG4gICAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udmlldy1wcm9tb3RlZC1jb250ZW50IHtcbiAgLmhlcm8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbGcpO1xuXG4gICAgLmMtY2FyZCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAgICZfX3RodW1ibmFpbC1pbWFnZSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDYwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZmVhdHVyZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1sZyk7XG4gIH1cbn1cblxuLnZpZXctcHJvbW90ZWQtcG9saWN5LWRldmVsb3BtZW50IHtcbiAgLnZpZXctY29udGVudCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG4gIH1cblxuICAudmlld3Mtcm93IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTlweCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLnZpZXdzLXdpZGdldC1maWx0ZXItZXZlbnRfY2FsZW5kYXJfZGF0ZV92YWx1ZSB7XG4gIC5mb3JtLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIC5kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5mb3JtLWl0ZW0ge1xuICAgID4gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14cyk7XG4gICAgfVxuICB9XG59XG5cbiN2aWV3cy1leHBvc2VkLWZvcm0tc2VhcmNoLXBhZ2UtbWVmaWJzLWZvcm0tc2VhcmNoLWNyaXRlcmlhLW9uLXBhZ2Uge1xuICAudmlld3MtZXhwb3NlZC13aWRnZXRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLnZpZXdzLXN1Ym1pdC1idXR0b24ge1xuICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsdWUpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy14cyk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKSB2YXIoLS1zcGFjaW5nLW1lZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnZpZXdzLWV4cG9zZWQtd2lkZ2V0IHtcbiAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMS8zICogMTAwJSk7XG4gICAgfVxuXG4gICAgLnZpZXdzLXdpZGdldC1maWx0ZXItc2VhcmNoX2FwaV92aWV3c19mdWxsdGV4dCB7XG4gICAgICBmbGV4LWJhc2lzOiA4MCU7XG4gICAgfVxuICB9XG59XG5cbi5ub2RlLXR5cGUtcG9saWN5LWRldmVsb3BtZW50IHtcbiAgLmMtc2lnbnVwLWZvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgLmMtZm9ybS1ncm91cF9fbGFiZWwge1xuICAgICAgZmxleC1iYXNpczogMzAlO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNpbmctc20pO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLnBhZ2UtZW5nYWdlIHtcbiAgZGl2Lm1vbnRodmlldyB7XG4gICAgLmMtZG90IHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtdGltZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG5cbi5ub2RlLXR5cGUtd2ViZm9ybSB7XG4gIC53ZWJmb3JtLWNsaWVudC1mb3JtIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG5cbiAgICA+IGRpdiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICAgIC5mb3JtLWl0ZW0ge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXh4cykgMDtcbiAgICAgIH1cblxuICAgICAgLmZvcm0tYWN0aW9ucyB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKSAwO1xuXG4gICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQge1xuICAuY29udGVudCB7XG4gICAgLmwtYmxvY2sgfiAubC1ibG9jayB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uYy10YWdsaW5lIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS1kYXJrKTtcblxuICBoMSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgfVxufVxuXG4uZWFzeV9zb2NpYWxfYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1zbSk7XG59XG5cbi5mcm9udCB7XG4gIC5jLXBhZ2UtaGVhZGVyIHtcbiAgICBtaW4taGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLmMtcGFnZS1oZWFkZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbn1cblxuLmJlZi10cmVlLWRlcHRoLTEge1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmcteHMpO1xufVxuXG4jYmxvY2stdmlld3MtZnVuZGluZy1wYXJ0bmVycy1ibG9jayB7XG4gIGgyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC52aWV3LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLnZpZXdzLXJvdyB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgcGFkZGluZzogMXJlbTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== */