@charset "UTF-8";
/***
 * Color variables:
 */
/**
 * Main color:
 * `@action-color`
 * The main action color.
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#376491')
 */
/**
 * Info color:
 * `@info-color`
 * The color for infomations
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#FE6321')
 */
/**
 * Bright color:
 * `@bright-color`
 * A bright color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#EFEFE7')
 */
/**
 * Dark color:
 * `@dark-color`
 * A dark color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#3B4344')
 */
/**
 * Error color:
 * `@error-color`
 * A error like color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#ED3F40')
 */
/**
 * Correct color:
 * `@correct-color`
 * A success/correct color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#1CA52D')
 */
/***
 * Less variables:
 */
/**
 * Responsive breakpoint:
 * `@breakpoint` - The responsive break point when the content should be listed vertically.
 */
/**
 * Border radius:
 * `@border-radius` - The commonly used border radius
 * 
 * 	@example
 * 	div(style='width:50px;height:50px;border-radius:3px;background-color:#666')
 */
/***
 * Less functions:
 */
/**
 * Cleafix:
 * `.clearfix()` - Adds a clearfix to an element
 */
/**
 * Columns:
 * `.columns` - Setups a style for floating columns
 */
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:700,400,300);
@font-face {
  font-family: "dateneditor";
  src: url("fonts/dateneditor.eot");
  src: url("fonts/dateneditor.eot?#iefix") format("embedded-opentype"), url("fonts/dateneditor.woff") format("woff"), url("fonts/dateneditor.ttf") format("truetype"), url("fonts/dateneditor.svg#dateneditor") format("svg");
  font-weight: normal;
  font-style: normal;
}
[data-icon]:before {
  font-family: "dateneditor" !important;
  content: attr(data-icon);
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
[class^="icon-"]:before,
[class*=" icon-"]:before {
  font-family: "dateneditor" !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-plus:before {
  content: "\63";
}
.icon-close:before {
  content: "\61";
}
.icon-erase:before {
  content: "\62";
}
.icon-italic:before {
  content: "\65";
}
.icon-underline:before {
  content: "\66";
}
.icon-group:before {
  content: "\6b";
}
.icon-bold:before {
  content: "\64";
}
.icon-page-copy:before {
  content: "\6c";
}
.icon-pencil:before {
  content: "\6d";
}
.icon-external-link:before {
  content: "\6e";
}
.icon-success:before {
  content: "\68";
}
.icon-error:before {
  content: "\69";
}
.icon-import:before {
  content: "\67";
}
.icon-list-number:before {
  content: "\6a";
}
.icon-list-bullet:before {
  content: "\6f";
}
.icon-file-symlink-file:before {
  content: "\70";
}
.icon-strikethrough:before {
  content: "\71";
}
.icon-superscript:before {
  content: "\72";
}
.icon-subscript:before {
  content: "\73";
}
.icon-link:before {
  content: "\74";
}
.icon-quote:before {
  content: "\76";
}
.icon-align-center:before {
  content: "\77";
}
.icon-align-justify:before {
  content: "\78";
}
.icon-align-left:before {
  content: "\79";
}
.icon-align-right:before {
  content: "\7a";
}
.icon-code:before {
  content: "\41";
}
/***
 * Buttons:
 */
/**
 * Regular Button:
 * `.btn` - A regular button
 * 
 * 	@example
 * 	button.btn Button
 */
.btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font: inherit;
  background-color: #369BFF;
  padding: 7px 12px;
  line-height: 1.3em;
  color: #fff;
  border: none;
  font-size: 1em;
  font-weight: 200;
  cursor: pointer;
  border-radius: 4px;
  outline: none;
  -webkit-transition: background-color 0.3s;
          transition: background-color 0.3s;
  /**
	 * Disabled button:
	 * `.disabled` - A style for a disabled button
	 * 
	 * 	@example
	 * 	button.btn.disabled Disabled
	 */
  /**
	 * Back Button:
	 * `.back` - Turns the button into a back button with an arrow on the left side
	 * 
	 * 	@example
	 * 	button.btn.back Back
	 */
  /**
	 * Secondary Button:
	 * `.second` - Turns the button into a secondary button
	 * 
	 * 	@example
	 * 	button.btn.second Secondary button
	 */
}
.btn:hover {
  background-color: #9cceff;
}
.btn.disabled {
  background-color: #e2e7ec;
  cursor: default;
  color: #869baf;
}
.btn.back {
  position: relative;
}
.btn.back:hover:before {
  background-color: #9cceff;
}
.btn.back:before {
  content: '';
  position: absolute;
  height: 24px;
  width: 24px;
  background-color: #369BFF;
  left: -11px;
  top: 5px;
  border-radius: 4px;
  -webkit-transition: background-color 0.3s;
          transition: background-color 0.3s;
  -webkit-transform: scaleX(0.7) rotate(45deg);
  transform: scaleX(0.7) rotate(45deg);
}
.btn.second {
  padding: 7px 12px;
  line-height: 1.1em;
  font-size: 0.8em;
  background-color: #5e9bd7;
}
.btn.second:hover {
  background-color: #369BFF;
}
.btn.icon {
  background: none;
  padding: 0;
  line-height: 1em;
  border: 1px solid #369BFF;
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
}
.btn.icon:hover {
  border: 1px solid #9cceff;
}
.btn.icon:hover > .icon {
  background-color: #9cceff;
}
.btn.icon > .icon {
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
  line-height: 1em;
  font-size: 18px;
  padding: 3px 5px;
  background-color: #369BFF;
  vertical-align: middle;
}
.btn.icon > .icon-button--text {
  color: #3B4344;
  font-size: 0.7em;
  line-height: 1em;
  padding: 4px 10px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
/***
 * Text styles:
 */
/**
 * H1:
 * `h1` - The h1 style
 * 
 * 	@example
 * 	h1 A demo h1 header
 */
h1 {
  font-weight: normal;
  font-size: 2.2em;
  margin-top: 41px;
  padding-bottom: 8px;
  border-bottom: 1px solid #EFEFE7;
  color: #3B4344;
}
/**
 * H2:
 * `h2` - The h2 style
 * 
 * 	@example
 * 	h2 A demo h2 header
 */
h2 {
  font-weight: bold;
  font-size: 1.6em;
  margin-top: 20px;
  margin-bottom: 5px;
  color: #3B4344;
}
/**
 * Body:
 * `body` - A body style for font.
 * 
 * 	@example
 * 	div My Test Font
 */
body {
  font-family: 'Source Sans Pro', sans-serif;
}
/**
 * Label:
 * `.label` - A styling for a label
 * 
 * 	@example
 * 	div.label My label
 */
.label {
  font-size: 0.7em;
  font-weight: normal;
  text-transform: uppercase;
  color: #369BFF;
  margin-bottom: 4px;
}
/**
 * Icon:
 * `.icon` - Default icon size 
 * 
 * 	@example
 * 	div.icon
 * 		div.icon(data-icon="b")
 */
.icon {
  font-size: 22px;
  display: inline-block;
  padding: 6px 0 0 0;
  /**
	 * Button icon:
	 * `.icon.icon--btn` - A styling for a icon button
	 * 
	 * 	@example
	 * 	div.icon.icon--btn(data-icon="b")
	 */
}
.icon.icon--btn {
  color: #369BFF;
  cursor: pointer;
  -webkit-transition: color 0.3s;
          transition: color 0.3s;
  /**
		 * Inverted button icon:
		 * `.icon.icon--btn.icon--inv` - A styling for an inverted icon button
		 * 
		 * 	@example
		 * 	div.icon.icon--btn.icon--inv(data-icon="b")
		 */
}
.icon.icon--btn:hover {
  color: #9cceff;
}
.icon.icon--btn.icon--inv {
  color: #FFF;
}
.icon.icon--btn.icon--inv:hover {
  color: #cccccc;
}
/**
 * info:
 * `.info-text` - A small info text
 * 
 * 	@example
 * 	div.info-text Info message
 */
.info-text {
  color: #9faaac;
  padding: 5px 0;
  font-style: italic;
}
/***
 * Reponsive:
 */
/**
 * Container:
 * `.container` - A main website container that centers the container and has the corresponing responsive jumps
 * 
 * 	@example
 * 	div.container(style='background-color:#AAA;height:50px;') 
 */
.container {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}
/**
 * Columns:
 * `.col` - A base styling for any number of columns
 * 
 * 	@example
 * 	div.col
 */
@media (min-width: 768px) {
  .col {
    margin-left: -15px;
    margin-right: -15px;
  }
  .col:before,
  .col:after {
    content: " ";
    display: table;
  }
  .col:after {
    clear: both;
  }
  .col > * {
    box-sizing: border-box;
    padding-left: 15px;
    padding-right: 15px;
    position: relative;
    float: left;
  }
}
/**
 * Half column width modifier:
 * `.half` - A style that defines the width to 50%.
 * 
 * 	@example
 * 	div.col
 * 		div.half(style="background-color:#ccc") One side
 * 		div.half(style="background-color:#aaa") Other side
 */
@media (min-width: 768px) {
  .half {
    width: 50%;
  }
}
/**
 * Third column width modifier:
 * `.third` - A style that defines the width to 100/3 %.
 * 
 * 	@example
 * 	div.col
 * 		div.third(style="background-color:#ccc") One side
 * 		div.third(style="background-color:#aaa") Other side
 * 		div.third(style="background-color:#bbb") Third side
 */
@media (min-width: 768px) {
  .third {
    width: 33.33333333%;
  }
}
/**
 * Full column width modifier:
 * `.full` - A style that defines the width to 100%.
 * 
 * 	@example
 * 	div.col
 * 		div.full(style="background-color:#ccc") Full content
 */
.full {
  width: 100%;
}
/**
 * 80% / 20% column width modifier:
 * `.col-80, .col-20` - Two styles that defines the width to 80% or 20%.
 * 
 * 	@example
 * 	div.col
 * 		div.col-80(style="background-color:#ccc") One side
 * 		div.col-20(style="background-color:#aaa") Other side
 */
@media (min-width: 768px) {
  .col-20 {
    width: 20%;
  }
}
@media (min-width: 768px) {
  .col-80 {
    width: 80%;
  }
}
/**
 * Responsive image container:
 * `.responsive-img` - A style that makes the image scaling to its max width.
 * 
 * 	@example
 * 	img.responsive-img(src='http://www.byui.edu/images/agriculture-life-sciences/flower.jpg')
 */
.responsive-img {
  max-width: 100%;
  height: auto;
}
/**
 * Responsive 4:3/16:9 media container:
 * `.responsive-media .media-4-3, .responsive-media .media-16-9` - This makes a div a container for any media element (iframe, video, ... ) that responsive scales with a fix ratio.
 * The media element needs the class `.media`. The `.responsive-media` container can have one of the following classes: `.media-4-3`, `.media-16-9` to define the fix ratio.
 * 
 * 	@example
 * 	div.responsive-media.media-4-3
 * 		iframe.media(src='//www.youtube.com/embed/HhZaHf8RP6g',frameborder='0')
 */
.responsive-media {
  width: 100%;
  position: relative;
  padding-bottom: 50%;
}
.responsive-media > .media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.responsive-media.media-4-3 {
  padding-bottom: 75%;
}
.responsive-media.media-16-9 {
  padding-bottom: 56.26%;
}
/***
 * Form definitions:
 */
/**
 * form:
 * `.form` - A style for all types of forms. 
 * 
 * 	@example
 * 	input.form(value="Text")
 */
.form {
  font: inherit;
  display: block;
  width: 100%;
  padding: 6px 12px;
  line-height: 1.3em;
  min-height: 34px;
  font-size: 1em;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
          transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
  box-sizing: border-box;
  position: relative;
  /**
	 * Form with icon:
	 * `.form > .icon` - A form with an overlying icon on the right side
	 * 
	 * 	@example
	 * 	div.form Text
	 * 		div.icon(data-icon="b")
	 */
}
.form > .icon {
  position: absolute;
  top: 0;
  right: 6px;
}
.form:focus {
  border-color: #369BFF;
  outline: none;
  box-shadow: inset 0 1px 1px #cfe7ff;
}
select.form {
  height: 34px;
}
/***
 * Tabs:
 */
/**
 * tabs:
 * `.tabs` - A basic styling for all tabs forms
 * 
 * 	@example
 * 	ol.tabs
 * 		li Tab1
 * 		li Tab2 with very long text.
 * 		li Tab3
 */
.tabs {
  list-style: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  /**
	 * Top tabs:
	 * `.tabs.top` - Styles the tabs for horizontal aligment on the top
	 * 
	 * 	@example
	 * 	ol.tabs.top
	 * 		li Tab1
	 * 		li.active Tab2
	 * 		li Tab3
	 */
  /**
	 * Left tabs:
	 * `.tabs.left` - Styles the tabs for vertical alignment on the left side
	 * 
	 * 	@example
	 * 	ol.tabs.left
	 * 		li Tab1
	 * 		li.active Tab2
	 * 		li Tab3
	 */
  /**
	 * Right tabs:
	 * `.tabs.right` - Styles the tabs for vertical alignment on the right side
	 * 
	 * 	@example
	 * 	ol.tabs.right
	 * 		li Tab1
	 * 		li.active Tab2
	 * 		li Tab3
	 */
}
.tabs > li {
  cursor: pointer;
  padding: 6px 10px;
  border: 1px solid #369BFF;
  border-radius: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
  min-height: 34px;
  vertical-align: bottom;
}
.tabs > li:hover {
  background-color: #369BFF;
  border-color: #369BFF;
  color: #FFF;
}
.tabs > li.selected {
  border-color: #369BFF;
  background-color: #369BFF;
  color: #FFF;
  font-weight: lighter;
}
.tabs.top {
  border-bottom: 2px solid #369BFF;
  padding: 0 2px;
}
.tabs.top > li {
  border-bottom: 1px solid #369BFF;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  margin-bottom: -1px;
  margin-right: 2px;
  display: inline-block;
  max-width: 10%;
}
.tabs.left {
  border-right: 2px solid #369BFF;
  padding: 2px 0;
}
.tabs.left > li {
  border-right: 1px solid #369BFF;
  margin-bottom: 2px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  margin-right: -2px;
}
.tabs.left > li:hover {
  border-right-color: #369BFF;
  border-right: 2px solid #369BFF;
}
.tabs.right {
  border-left: 2px solid #369BFF;
  padding: 2px 0;
}
.tabs.right > li {
  border-left: 1px solid #369BFF;
  margin-bottom: 2px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  margin-left: -1px;
}
/***
 * Table:
 */
/**
 * Table:
 * `.table` - The main table with header and rows inside
 * 
 * 	@example
 * 	div.table.col-2
 * 		div.row.header
 * 			div.cell Column1
 * 			div.cell Column2
 * 		div.row.even
 * 			div.cell Data11
 * 			div.cell Data12
 * 		div.row.odd
 * 			div.cell Data11
 * 			div.cell Data12
 * 		div.row.even
 * 			div.cell Data11
 * 			div.cell Data12
 * 		div.row.odd.active
 * 			div.cell Data11
 * 			div.cell Data12
 */
.table {
  width: 100%;
}
.table.col-10 > .row > .cell {
  width: 10%;
}
.table.col-9 > .row > .cell {
  width: 11.11111111%;
}
.table.col-8 > .row > .cell {
  width: 12.5%;
}
.table.col-7 > .row > .cell {
  width: 14.28571429%;
}
.table.col-6 > .row > .cell {
  width: 16.66666667%;
}
.table.col-5 > .row > .cell {
  width: 20%;
}
.table.col-4 > .row > .cell {
  width: 25%;
}
.table.col-3 > .row > .cell {
  width: 33.33333333%;
}
.table.col-2 > .row > .cell {
  width: 50%;
}
.table.col-1 > .row > .cell {
  width: 100%;
}
.table > .row {
  display: table;
  table-layout: fixed;
  width: 100%;
  border-left: 1px solid #dbdbc8;
  border-right: 1px solid #dbdbc8;
  border-bottom: 1px solid #EFEFE7;
}
.table > .row:last-child {
  border-bottom-color: #dbdbc8;
}
.table > .row.odd {
  background-color: #f7f7f7;
}
.table > .row > .cell {
  display: table-cell;
  padding: 5px 8px;
  font-weight: lighter;
  vertical-align: middle;
  word-wrap: break-word;
}
.table > .row.selected {
  background-color: #369BFF;
  color: #FFF;
  border-left-color: #369BFF;
  border-right-color: #369BFF;
}
.table > .row.header {
  color: #3B4344;
  font-size: 1em;
  text-align: left;
  border: 1px solid #dbdbc8;
  background-color: #EFEFE7;
}
.table > .row.header > .cell {
  font-weight: normal;
}
/***
 * Messages:
 */
/**
 * Popup message:
 * `.popup-msg` - A styling for a popup message
 * 
 * 	@example
 * 	div.popup-msg The popup message
 */
.popup-msg {
  border: 1px solid #EFEFE7;
  border-radius: 8px;
  padding: 10px 15px;
  box-shadow: 2px 2px 5px 0px rgba(50, 50, 50, 0.1);
  background-color: #FFF;
  /**
	  * Error pop message:
	  * `.error` - Error styling for the popup message
	  * 
	  * 	@example
	  * 	div.popup-msg.error The error popup message
	  */
}
.popup-msg.error {
  border-color: #ED3F40;
}
.popup-msg .close-but {
  float: right;
  cursor: pointer;
}
.popup-msg p {
  margin: 0;
}
.popup-msg .btn {
  margin: 0 10px;
}
/**
 * Float:
 * `.float` - A float style that makes the popup message float over the content
 */
.float {
  position: fixed;
  top: 5px;
  width: 100%;
  left: 0;
  z-index: 10000;
}
/***
 * Helpers:
 */
/**
 * Remove:
 * `.remove` - Removes a div.
 * 
 * 	@example
 * 	div.remove Test
 */
.remove {
  display: none;
}
/***
 * Layout:
 */
/**
 * One side fixed layout:
 * `.layout-anchor` - Base for a layout where one side is fixed
 * 
 * 	@example
 * 	div.layout-anchor
 */
.layout-anchor {
  display: table;
  /**
	 * Left anchored:
	 * `.layout-anchor.left` - Left anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.left
	 * 		div(style="background-color:#ccc") Left
	 * 		div(style="background-color:#aaa") Right
	 */
  /**
	 * Right anchored:
	 * `.layout-anchor.right` - Right anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.right
	 * 		div(style="background-color:#ccc") Left
	 * 		div(style="background-color:#aaa") Right
	 */
  /**
	 * Bottom anchored:
	 * `.layout-anchor.bottom` - Bottom anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.bottom(style="height:120px")
	 * 		div(style="background-color:#ccc") Top
	 * 		div(style="background-color:#aaa") Bottom
	 */
  /**
	 * Top anchored:
	 * `.layout-anchor.top` - Top anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.top(style="height:120px")
	 * 		div(style="background-color:#ccc") Top
	 * 		div(style="background-color:#aaa") Bottom
	 */
}
.layout-anchor.left {
  border-spacing: 15px 0;
  margin: 0 -15px;
}
.layout-anchor.left > * {
  display: table-cell;
}
.layout-anchor.left > :first-child {
  width: auto;
}
.layout-anchor.left > :last-child {
  width: 100%;
}
.layout-anchor.right {
  border-spacing: 15px 0;
  margin: 0 -15px;
}
.layout-anchor.right > * {
  display: table-cell;
}
.layout-anchor.right > :first-child {
  width: 100%;
}
.layout-anchor.right > :last-child {
  width: auto;
}
.layout-anchor.bottom {
  border-spacing: 0 15px;
  margin: -15px 0;
}
.layout-anchor.bottom > * {
  display: table-row;
}
.layout-anchor.bottom > :first-child {
  height: 100%;
}
.layout-anchor.bottom > :last-child {
  height: auto;
}
.layout-anchor.top {
  border-spacing: 0 15px;
  margin: -15px 0;
}
.layout-anchor.top > * {
  display: table-row;
}
.layout-anchor.top > :first-child {
  height: auto;
}
.layout-anchor.top > :last-child {
  height: 100%;
}
/**
 * Old panel should be replaced with a responsive one.
 */
.overlay-content {
  padding: 10px;
  background-color: #FFF;
  position: relative;
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
}
.overlay-content .close {
  position: absolute;
  top: 10px;
  right: 10px;
}
.overlay-mask {
  background-color: rgba(0, 0, 0, 0.5);
}
/**
 * Dropdown:
 * `.dropdown` - Styling for a html dropdown
 * 
 * 	@example
 * 	div.dropdown
 * 		div.dropdown--button Add
 * 		div.dropdown--menu
 */
.dropdown {
  position: relative;
}
.dropdown > .dropdown--menu {
  position: absolute;
  top: 33px;
  left: 0;
  background-color: #FFF;
  color: #3B4344;
  list-style: none;
  margin: 0;
  padding: 0;
  z-index: 1000;
  box-shadow: 0px 2px 3px 3px rgba(50, 50, 50, 0.1);
  border-radius: 4px;
  border-top-left-radius: 0;
}
.dropdown > .dropdown--menu > li {
  padding: 4px 12px;
  -webkit-transition: background-color 0.3s, color 0.4s;
          transition: background-color 0.3s, color 0.4s;
  cursor: pointer;
}
.dropdown > .dropdown--menu > li:hover {
  background-color: #369BFF;
  color: #FFF;
}
/***
 * Inputs:
 */
/**
 * Input:
 * `.input` - The base styling for an dateneditor input
 * 
 * 	@example
 * 	div.input
 * 		div.label The label
 *		div.value The value
 */
.input {
  margin-top: 12px;
  font-size: 1em;
}
.input > .hint {
  cursor: help;
}
.input.attribute .validation-error {
  display: none;
}
.input.attribute.error .validation-error {
  display: block;
}
.input.attribute.error .status-icon.icon-error {
  display: block;
  color: #ED3F40;
}
.input.attribute.success .status-icon.icon-success {
  display: block;
  color: #1CA52D;
}
.input.attribute .status-icon {
  position: absolute;
  top: 15px;
  right: 17px;
  z-index: 10;
  font-size: 14px;
  display: none;
}
.input.error .form {
  border-color: #ED3F40;
}
.input.success .form {
  border-color: #1CA52D;
}
.validation-error {
  font-size: 0.9em;
  font-weight: bold;
  padding: 2px;
  color: #b51112;
}
/**
 * Infoinput:
 * `.input.info` - The style for a info input
 * 
 * 	@example
 * 	div.input.info
 * 		div.label My Attribute
 * 		div.value My Value
 */
.info.input .value {
  background-color: #EFEFE7;
  border-radius: 4px;
  padding: 6px 12px;
  box-sizing: border-box;
}
/**
 * Array input:
 * `.input.array` - The style for an array input
 *
 * 	@example
 * 	div.input.array
 * 		div.label My Attribute
 * 		div.tags
 * 			div.tag
 * 				div.tag-name First Tag
 * 				span.remove x
 * 			div.tag
 * 				div.tag-name Second Tag
 * 				span.remove x
 */
/**
 * Code input:
 * `.input.code` - The style for the code input
 */
.input.code .ace {
  border-radius: 4px;
}
/**
 * Group input:
 * `.input.group` - The style for grouped inputs
 * 
 * 	@example
 * 	div.input.group.open
 * 		div.label My Group
 * 		div.group-content My Value
 */
.input.group {
  width: 100%;
}
.input.group > .label {
  color: #3B4344;
  font-weight: bold;
  cursor: pointer;
}
.input.group > .label .icon {
  font-size: 12px;
  padding: 0;
  margin-right: 3px;
  vertical-align: middle;
  -webkit-transition: all 0.2s;
          transition: all 0.2s;
}
.input.group > .group-content {
  display: none;
  padding: 0 10px 10px 10px;
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
}
.input.group.open > .label {
  border-bottom: 1px solid #EFEFE7;
}
.input.group.open > .label .icon {
  -webkit-transform: rotate(90deg) translateX(-1px);
          transform: rotate(90deg) translateX(-1px);
  margin-right: 5px;
}
.input.group.open > .group-content {
  margin-top: 0;
  display: block;
}
/**
 * Boolean input:
 * `.input.boolean` - The boolean switch
 * 
 * 	@example
 * 	div.input.boolean
 * 		div.label My Boolean
 * 		div.switch.form
 * 			div.state On
 * 			div.state Off
 * 			div.handle
 */
.input.boolean .switch {
  position: relative;
  display: table;
  background-color: #585858;
  color: #FFF;
  border-radius: 4px;
  padding: 0;
  cursor: pointer;
}
.input.boolean .switch .state {
  width: 50%;
  display: table-cell;
  text-align: center;
  padding: 6px 12px;
}
.input.boolean .switch .handle {
  position: absolute;
  width: 50%;
  height: 100%;
  background-color: #FFF;
  border-radius: 3px;
  box-shadow: inset 0px 2px 3px #fff;
  background-color: #f7f7f7;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), to(#e7e7e7));
  background-image: -webkit-linear-gradient(top, #f7f7f7, #e7e7e7);
  background-image: -o-linear-gradient(top, #f7f7f7, #e7e7e7);
  top: 0;
  left: 0;
  -webkit-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;
}
.input.boolean .switch.on .handle {
  left: 50%;
}
/**
 * Image input:
 * `.input.image` - The style for the image input
 */
.input.image .form {
  text-align: center;
}
.medium-editor-toolbar {
  left: 0;
  top: 0;
  position: absolute;
  visibility: hidden;
  box-shadow: rgba(0, 0, 0, 0.3) 1px 1px 2px;
  border-radius: 4px;
  border: 1px solid #585858;
  background-color: #585858;
}
.medium-editor-toolbar li {
  display: inline-block;
}
.medium-editor-toolbar.medium-editor-toolbar-active {
  visibility: visible;
}
.medium-editor-toolbar-form {
  display: none;
  background-color: #585858;
  color: #FFF;
  padding: 0 5px;
}
.medium-editor-toolbar-form.medium-editor-toolbar-form-active {
  display: block;
}
.medium-editor-toolbar-form input {
  border: none;
  background: none;
  font-size: 14px;
  margin: 0;
  padding: 6px;
  width: 316px;
  display: inline-block;
  outline: none;
  color: #FFF;
}
.medium-editor-toolbar-form a {
  color: #FFF;
  text-decoration: none;
  padding: 0 5px;
}
.medium-editor-toolbar-actions {
  margin: 0;
  padding: 0;
}
.medium-editor-toolbar-actions button {
  background: none;
  border: none;
  cursor: pointer;
  display: inline-block;
  outline: none;
  color: #FFF;
}
.medium-editor-toolbar-actions button:hover {
  background-color: #656565;
}
.medium-editor-toolbar-actions button .icon {
  font-size: 20px;
}
.medium-toolbar-arrow-under:after {
  content: '';
  position: absolute;
  height: 11px;
  width: 11px;
  background-color: #585858;
  left: 50%;
  bottom: 0;
  -webkit-transform: translate(-50%, 50%) rotate(45deg);
          transform: translate(-50%, 50%) rotate(45deg);
}
.medium-editor-anchor-preview {
  left: 0;
  line-height: 1.4;
  max-width: 280px;
  position: absolute;
  text-align: center;
  top: 0;
  word-break: break-all;
  word-wrap: break-word;
  visibility: hidden;
  z-index: 2000;
  background-color: rgba(0, 0, 0, 0.5);
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 13px;
}
.medium-editor-anchor-preview a {
  text-decoration: none;
  color: #FFF;
}
.medium-editor-anchor-preview-active {
  visibility: visible;
}
.richtext .editor p {
  margin: 0;
}
.richtext .editor p + p {
  margin-top: 7px;
}
.model-editor {
  position: relative;
}
.model-editor > .mod-container {
  position: absolute;
  top: 10px;
  right: 10px;
}
/***
 * Tabeditor:
 */
.tab-editor {
  /**
	 * Left oriented tab-editor:
	 * `.tab-editor.left` - Styles the tab editor to show the tabs on the left side
	 * 
	 * 	@example
	 * 	div.tab-editor.left
	 * 		ol.tabs.left
	 * 			li Tab1
	 * 			li Tab2
	 * 			li.active Tab3
	 * 		div.model-editor The content of the tab editor.
	 */
  /**
	 * Right oriented tab-editor:
	 * `.tab-editor.right` - Styles the tab editor to show the tabs on the right side
	 * 
	 * 	@example
	 * 	div.tab-editor.right
	 * 		ol.tabs.right
	 * 			li Tab1
	 * 			li Tab2
	 * 			li.active Tab3
	 * 		div.model-editor The content of the tab editor.
	 */
}
.tab-editor.left {
  margin-left: -15px;
  margin-right: -15px;
}
.tab-editor.left:before,
.tab-editor.left:after {
  content: " ";
  display: table;
}
.tab-editor.left:after {
  clear: both;
}
.tab-editor.left > * {
  box-sizing: border-box;
  padding-left: 15px;
  padding-right: 15px;
  position: relative;
  float: left;
}
.tab-editor.left > .tabs {
  padding-right: 0;
  width: 20%;
}
.tab-editor.left > .model-editor {
  width: 80%;
  border-left: 2px solid #369BFF;
  margin-left: -2px;
}
.tab-editor.right {
  margin-left: -15px;
  margin-right: -15px;
}
.tab-editor.right:before,
.tab-editor.right:after {
  content: " ";
  display: table;
}
.tab-editor.right:after {
  clear: both;
}
.tab-editor.right > * {
  box-sizing: border-box;
  padding-left: 15px;
  padding-right: 15px;
  position: relative;
  float: left;
}
.tab-editor.right > .tabs {
  padding-left: 0;
  padding-right: 13px;
  width: 20%;
  left: 80%;
  margin-left: -2px;
}
.tab-editor.right > .model-editor {
  width: 80%;
  border-right: 2px solid #369BFF;
  right: 20%;
  margin-left: 2px;
}
.tab-editor.right > .model-editor h2 {
  margin-top: 0;
}
.tab-editor > .tabs > li {
  position: relative;
  -webkit-transition: padding 0.3s;
          transition: padding 0.3s;
}
.tab-editor > .tabs > li .mod-container {
  display: none;
  right: 3px;
  top: 0px;
}
.tab-editor > .tabs > li:hover {
  padding-right: 30px;
}
.tab-editor > .tabs > li:hover .mod-container {
  display: inline-block;
}
/***
 * Table Editor:
 */
.table-editor {
  /**
	 * Table editor:
	 * `.table-editor` - Styles a table editor with a model editor inside
	 *
	 * 	@example
	 * 	div.table-editor
	 * 		div.table.col-2
	 * 			div.row.header
	 * 				div.cell Column1
	 * 				div.cell Column2
	 * 			div.row.odd
	 * 				div.cell Data11
	 * 				div.cell Data12
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 * 			div.row.active.even
	 * 				div.cell Data21
	 * 				div.cell Data22
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 * 			div.model-editor
	 * 				h2 Model
	 * 				div.inputs.col.col-1-1
	 * 					div.string.input
	 * 						div.label Input
	 * 						div.value.form
	 * 			div.row.odd
	 * 				div.cell Data31
	 * 				div.cell Data32
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 * 			div.row.even
	 * 				div.cell Data41
	 * 				div.cell Data42
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 */
}
.table-editor > .table.content > .row {
  cursor: pointer;
  position: relative;
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
}
.table-editor > .table.content > .row > .mod-container {
  display: none;
  right: 3px;
  top: -2px;
}
.table-editor > .table.content > .row:hover {
  background-color: #369BFF;
  color: #FFF;
}
.table-editor > .table.content > .row:hover > .mod-container {
  display: inline-block;
}
.table-editor > .table.content > .model-editor {
  padding: 10px;
  border: 1px solid #69b4ff;
  border-top: none;
}
.table-editor > .table.content > .model-editor > h2 {
  margin-top: 0;
  font-size: 1.2em;
}
/* Overwrite the 100% width of the general .table class */
.table.half {
  width: 50%;
}
/***
 * Preview Editor:
 */
.preview-editor {
  /**
	 * Preview editor:
	 * `.preview-editor` - Styles a preview editor with a model editor inside
	 * 
	 * 	@example
	 * 	div.preview-editor
	 * 		div.previews
	 * 			div.proxy Template1
	 * 			div.proxy.active Template2
	 * 			div.model-editor
	 * 				h2 Model
	 * 				div.inputs.col.col-1-1
	 * 					div.string.input
	 * 						div.label Input
	 * 						div.value.form
	 */
}
.preview-editor > .previews > .proxy {
  cursor: pointer;
  border-left: 0px solid #369BFF;
  padding: 5px 10px;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  position: relative;
}
.preview-editor > .previews > .proxy.selected {
  border-left: 8px solid #369BFF;
  margin-top: 20px;
}
.preview-editor > .previews > .proxy:hover {
  background-color: #e8f4ff;
}
.preview-editor > .previews > .proxy:hover > .mod-container {
  opacity: 1;
}
.preview-editor > .previews > .proxy > .mod-container {
  opacity: 0;
  -webkit-transition: all 0.5s;
          transition: all 0.5s;
}
.preview-editor > .previews > .proxy > .mod-container .icon--btn {
  color: #369BFF;
}
.preview-editor > .previews > .edit > .model-editor {
  padding: 10px;
  margin-bottom: 20px;
}
.preview-editor > .previews > .edit > .model-editor > h2 {
  margin-top: 0;
  font-size: 1.2em;
}
.preview-editor > .previews > .edit > .model-editor.active {
  -webkit-animation: border-fade 0.5s;
  animation: border-fade 0.5s;
  border-left: 8px solid #369BFF;
}
/**
 * Fix for animate the border of the newly placed model editor
 */
@-webkit-keyframes border-fade {
  from {
    border-left: 0px solid #369BFF;
  }
  to {
    border-left: 8px solid #369BFF;
  }
}
@keyframes border-fade {
  from {
    border-left: 0px solid #369BFF;
  }
  to {
    border-left: 8px solid #369BFF;
  }
}
.imagemap-editor .imagemap {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.imagemap-editor .maps {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.imagemap-editor .map {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.4);
  border: 1px dashed #FFF;
  cursor: pointer;
}
.imagemap-editor .map .icon {
  position: absolute;
  top: 0px;
  right: 5px;
  cursor: pointer;
}
.imagemap-editor .map.active {
  background-color: rgba(255, 255, 255, 0.5);
  border: 1px solid #369BFF;
}
.imagemap-editor .image {
  max-width: 100%;
}
.file-selector .controls {
  text-align: right;
  border-top: 1px solid #ccc;
  padding-top: 20px;
}
.file-selector .progress {
  width: 0;
  background-color: #FFF;
  height: 2px;
}
.file-selector h2 {
  margin-bottom: 14px;
}
.file-list .header {
  margin-top: 10px;
}
.file-list .row {
  cursor: pointer;
}
.file-list .upload {
  width: auto !important;
  height: auto !important;
}
.file-list .cell.thumb {
  width: 20%;
}
.file-list .cell.thumb img {
  max-width: 40px;
  max-height: 40px;
}
.file-list .cell.name {
  width: 40%;
}
.file-list .cell.tags {
  width: 40%;
}
.file-details .del-but,
.file-details .dl-but {
  text-align: center;
  display: block;
  text-decoration: none;
}
.file-details .inputs {
  margin-bottom: 20px;
}
.file-details .buttons {
  margin-bottom: 12px;
}
.model-selector .controls {
  padding: 15px;
}
.mod {
  margin: 5px 0;
}
.mod.inline {
  display: inline-block;
  padding-right: 10px;
}
.mod-container.floating .mod {
  margin: 0px;
}
.mod-container {
  position: absolute;
  right: 10px;
  top: 10px;
}
.mod-container .mod {
  display: inline-block;
}
/***
 * Mods:
 */
/**
 * Tab add mod:
 * `.tab-editor .mod.add` - Styles the add mod in a tab list.
 * 
 * 	@example
 * 	div.tab-editor
 * 		ol.list.tabs.top
 * 			li.proxy Entry 1
 * 			li.mod.add
 * 				div.dropdown
 * 					button.btn.add-but.add-button Add
 */
.tab-editor > .tabs > .mod.add {
  padding: 0;
  overflow: visible;
}
.tab-editor > .tabs > .mod.add .icon-button--text {
  display: none;
}
.tab-editor > .tabs > .mod.add .btn.icon {
  border: none;
}
.tab-editor > .tabs > .mod.add .btn.icon > .icon {
  padding: 6px 8px 5px 8px;
}
.tabs.left > .mod.add > .dropdown > .dropdown--button,
.tabs.right > .mod.add > .dropdown > .dropdown--button {
  display: block;
}
.tabs.left > .mod.add > .dropdown > .dropdown--button .icon,
.tabs.right > .mod.add > .dropdown > .dropdown--button .icon {
  display: block;
}
.tabs.left > li > .mod.delete,
.tabs.right > li > .mod.delete {
  position: absolute;
  right: 9px;
}
.mod.filter .reset-but {
  margin: 10px 0;
}
.mod.filter .filter-selector {
  width: 33.33333333%;
}
.mod.link a {
  color: #369BFF;
}
/***
 * Mods:
 */
/**
 * Tab import mod:
 * `.tab-editor .mod.import` - Styles the import mod in a tab list.
 * 
 * 	@example
 * 	div.tab-editor
 * 		ol.list.tabs.top
 * 			li.proxy Entry 1
 * 			li.mod.import
 * 				button.btn.add-but.add-button Add
 */
.tab-editor > .tabs > .mod.import {
  padding: 0;
  overflow: visible;
}
.tab-editor > .tabs > .mod.import .icon-button--text {
  display: none;
}
.tab-editor > .tabs > .mod.import .btn.icon {
  border: none;
}
.tab-editor > .tabs > .mod.import .btn.icon > .icon {
  padding: 6px 8px 5px 8px;
}
.viewport-resize {
  overflow: hidden;
  -ms-overflow-y: auto;
  /* IE8 */
  overflow-y: auto;
}
.login-form {
  padding: 30px 0;
}
.login-form input[type="submit"] {
  margin: 20px 0;
  text-align: right;
}
.login-form .error {
  margin-bottom: 23px;
}
.inplace-editor {
  border: 0px;
  background-color: #FFF;
  font: inherit;
  width: 100%;
}
.inplace-editor:focus {
  outline: 0;
}
/**
 * Tags:
 * `.tags` - The style for a tag area
 * `.tag` - The style for a tag
 *
 * 	@example
 *	div.tags
 *		div.tag
 *			div.tag-name First Tag
 *			span.remove
 *		div.tag
 *			div.tag-name Second Tag
 *			span.remove
 */
.tags {
  display: inline-block;
}
.tags .tag {
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-right: 6px;
  margin-bottom: 6px;
}
.tags .tag > span.input {
  padding: 6px 2px 6px 12px ;
  margin: 0px;
  display: inline-block;
}
.tags .remove {
  display: inline-block;
  font-weight: bold;
  padding: 6px;
  margin-top: -1px;
  font-size: 16px;
}
.textlist-editor > div.items .item {
  display: table;
  width: 100%;
  margin-bottom: 6px;
}
.textlist-editor > div.items .item .textarea-col {
  width: 100%;
  display: table-cell;
}
.textlist-editor > div.items .item .remove-col {
  width: auto;
  display: table-cell;
  opacity: 0.2;
  -webkit-transition: opacity 300ms linear;
          transition: opacity 300ms linear;
  vertical-align: top;
  cursor: default;
}
.textlist-editor > div.items .item .handler-col {
  display: table-cell;
  min-width: 20px;
  background-color: #ccc;
  border-radius: 4px 0px 0px 4px;
  opacity: 0.2;
  -webkit-transition: opacity 300ms linear;
          transition: opacity 300ms linear;
}
.textlist-editor > div.items .item .input {
  margin: 0px;
}
.textlist-editor > div.items .item textarea {
  border-radius: 0px 4px 4px 0px;
  resize: none;
  min-height: 60px;
  overflow: hidden;
}
.textlist-editor > div.items .item.draggable .handler-col {
  cursor: move;
  opacity: 1;
}
.textlist-editor > div.items .item.draggable .remove-col {
  cursor: pointer;
  opacity: 1;
}
.textlist-editor > div.items .remove {
  display: inline-block;
  font-weight: bold;
  padding: 6px;
  margin-top: -1px;
}
body,
html {
  margin: 0;
}
* {
  box-sizing: border-box;
}
#editor {
  padding-bottom: 30px;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvbnRzLmxlc3MiLCJtYWluLmNzcyIsImdsb2JhbC9idXR0b24ubGVzcyIsImdsb2JhbC90ZXh0Lmxlc3MiLCJnbG9iYWwvcmVzcG9uc2l2ZS5sZXNzIiwiZnVuY3Rpb25zLmxlc3MiLCJnbG9iYWwvZm9ybXMubGVzcyIsImdsb2JhbC90YWJzLmxlc3MiLCJnbG9iYWwvdGFibGUubGVzcyIsImdsb2JhbC9tZXNzYWdlLmxlc3MiLCJnbG9iYWwvdXRpbC5sZXNzIiwiZ2xvYmFsL2xheW91dC5sZXNzIiwiZ2xvYmFsL3BhbmVsLmxlc3MiLCJnbG9iYWwvZHJvcGRvd24ubGVzcyIsImlucHV0cy9iYXNlLmxlc3MiLCJpbnB1dHMvaW5mby5sZXNzIiwiaW5wdXRzL2NvZGUubGVzcyIsImlucHV0cy9ncm91cC5sZXNzIiwiaW5wdXRzL2Jvb2xlYW4ubGVzcyIsImlucHV0cy9pbWFnZS5sZXNzIiwiaW5wdXRzL3JpY2h0ZXh0Lmxlc3MiLCJlZGl0b3JzL21vZGVsLmxlc3MiLCJlZGl0b3JzL3RhYi5sZXNzIiwiZWRpdG9ycy90YWJsZS5sZXNzIiwiZWRpdG9ycy9wcmV2aWV3Lmxlc3MiLCJlZGl0b3JzL2ltYWdlbWFwLmxlc3MiLCJwYW5lbC9maWxlLXNlbGVjdG9yLmxlc3MiLCJwYW5lbC9tb2RlbC1zZWxlY3Rvci5sZXNzIiwibW9kcy9nZW5lcmFsLmxlc3MiLCJtb2RzL2NvbnRhaW5lci5sZXNzIiwibW9kcy9hZGQubGVzcyIsIm1vZHMvZmlsdGVyLmxlc3MiLCJtb2RzL2xpbmsubGVzcyIsIm1vZHMvaW1wb3J0Lmxlc3MiLCJtb2RzL3Jlc2l6ZS5sZXNzIiwibG9naW4vbG9naW4ubGVzcyIsImhlbHBlcnMvaW5wbGFjZS5sZXNzIiwiaGVscGVycy90YWcubGVzcyIsImhlbHBlcnMvdGV4dGxpc3QubGVzcyIsIm1haW4ubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBUztBQ0NUOztHQUVHO0FBQ0g7Ozs7Ozs7R0FPRztBQUNIOzs7Ozs7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O0NyQ2l5REg7QXFDcHlEQztFQU1FLGdCQUFBO0VBQ0EsV0FBQTtDckNpeURIO0FxQ2oxREQ7RUF1REUsc0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtDckM2eEREO0FzQ3p5REQ7O0VBQ0MsVUFBQTtDdEM0eURBO0FzQ3p5REQ7RUFDQyx1QkFBQTtDdEMyeURBO0FzQ3p5REQ7RUFDQyxxQkFBQTtDdEMyeURBIiwiZmlsZSI6ImRhdGVuZWRpdG9yLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImRhdGVuZWRpdG9yXCI7XG4gIHNyYzp1cmwoXCJmb250cy9kYXRlbmVkaXRvci5lb3RcIik7XG4gIHNyYzp1cmwoXCJmb250cy9kYXRlbmVkaXRvci5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHVybChcImZvbnRzL2RhdGVuZWRpdG9yLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICB1cmwoXCJmb250cy9kYXRlbmVkaXRvci50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgdXJsKFwiZm9udHMvZGF0ZW5lZGl0b3Iuc3ZnI2RhdGVuZWRpdG9yXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG59XG5cbltkYXRhLWljb25dOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImRhdGVuZWRpdG9yXCIgIWltcG9ydGFudDtcbiAgY29udGVudDogYXR0cihkYXRhLWljb24pO1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLFxuW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJkYXRlbmVkaXRvclwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDYzXCI7XG59XG4uaWNvbi1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjFcIjtcbn1cbi5pY29uLWVyYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2MlwiO1xufVxuLmljb24taXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2NVwiO1xufVxuLmljb24tdW5kZXJsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2NlwiO1xufVxuLmljb24tZ3JvdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZiXCI7XG59XG4uaWNvbi1ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2NFwiO1xufVxuLmljb24tcGFnZS1jb3B5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2Y1wiO1xufVxuLmljb24tcGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2ZFwiO1xufVxuLmljb24tZXh0ZXJuYWwtbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmVcIjtcbn1cbi5pY29uLXN1Y2Nlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY4XCI7XG59XG4uaWNvbi1lcnJvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjlcIjtcbn1cbi5pY29uLWltcG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjdcIjtcbn1cbi5pY29uLWxpc3QtbnVtYmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2YVwiO1xufVxuLmljb24tbGlzdC1idWxsZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZmXCI7XG59XG4uaWNvbi1maWxlLXN5bWxpbmstZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzBcIjtcbn1cbi5pY29uLXN0cmlrZXRocm91Z2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDcxXCI7XG59XG4uaWNvbi1zdXBlcnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzJcIjtcbn1cbi5pY29uLXN1YnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzNcIjtcbn1cbi5pY29uLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDc0XCI7XG59XG4uaWNvbi1xdW90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzZcIjtcbn1cbi5pY29uLWFsaWduLWNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzdcIjtcbn1cbi5pY29uLWFsaWduLWp1c3RpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDc4XCI7XG59XG4uaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3OVwiO1xufVxuLmljb24tYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDdhXCI7XG59XG4uaWNvbi1jb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw0MVwiO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqKlxuICogQ29sb3IgdmFyaWFibGVzOlxuICovXG4vKipcbiAqIE1haW4gY29sb3I6XG4gKiBgQGFjdGlvbi1jb2xvcmBcbiAqIFRoZSBtYWluIGFjdGlvbiBjb2xvci5cbiAqXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdihzdHlsZT0nd2lkdGg6NTBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5kLWNvbG9yOiMzNzY0OTEnKVxuICovXG4vKipcbiAqIEluZm8gY29sb3I6XG4gKiBgQGluZm8tY29sb3JgXG4gKiBUaGUgY29sb3IgZm9yIGluZm9tYXRpb25zXG4gKlxuICogXHRAZXhhbXBsZVxuICogXHRkaXYoc3R5bGU9J3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7YmFja2dyb3VuZC1jb2xvcjojRkU2MzIxJylcbiAqL1xuLyoqXG4gKiBCcmlnaHQgY29sb3I6XG4gKiBgQGJyaWdodC1jb2xvcmBcbiAqIEEgYnJpZ2h0IGNvbG9yIFxuICpcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2KHN0eWxlPSd3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6I0VGRUZFNycpXG4gKi9cbi8qKlxuICogRGFyayBjb2xvcjpcbiAqIGBAZGFyay1jb2xvcmBcbiAqIEEgZGFyayBjb2xvciBcbiAqXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdihzdHlsZT0nd2lkdGg6NTBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5kLWNvbG9yOiMzQjQzNDQnKVxuICovXG4vKipcbiAqIEVycm9yIGNvbG9yOlxuICogYEBlcnJvci1jb2xvcmBcbiAqIEEgZXJyb3IgbGlrZSBjb2xvciBcbiAqXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdihzdHlsZT0nd2lkdGg6NTBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5kLWNvbG9yOiNFRDNGNDAnKVxuICovXG4vKipcbiAqIENvcnJlY3QgY29sb3I6XG4gKiBgQGNvcnJlY3QtY29sb3JgXG4gKiBBIHN1Y2Nlc3MvY29ycmVjdCBjb2xvciBcbiAqXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdihzdHlsZT0nd2lkdGg6NTBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5kLWNvbG9yOiMxQ0E1MkQnKVxuICovXG4vKioqXG4gKiBMZXNzIHZhcmlhYmxlczpcbiAqL1xuLyoqXG4gKiBSZXNwb25zaXZlIGJyZWFrcG9pbnQ6XG4gKiBgQGJyZWFrcG9pbnRgIC0gVGhlIHJlc3BvbnNpdmUgYnJlYWsgcG9pbnQgd2hlbiB0aGUgY29udGVudCBzaG91bGQgYmUgbGlzdGVkIHZlcnRpY2FsbHkuXG4gKi9cbi8qKlxuICogQm9yZGVyIHJhZGl1czpcbiAqIGBAYm9yZGVyLXJhZGl1c2AgLSBUaGUgY29tbW9ubHkgdXNlZCBib3JkZXIgcmFkaXVzXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2KHN0eWxlPSd3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQtY29sb3I6IzY2NicpXG4gKi9cbi8qKipcbiAqIExlc3MgZnVuY3Rpb25zOlxuICovXG4vKipcbiAqIENsZWFmaXg6XG4gKiBgLmNsZWFyZml4KClgIC0gQWRkcyBhIGNsZWFyZml4IHRvIGFuIGVsZW1lbnRcbiAqL1xuLyoqXG4gKiBDb2x1bW5zOlxuICogYC5jb2x1bW5zYCAtIFNldHVwcyBhIHN0eWxlIGZvciBmbG9hdGluZyBjb2x1bW5zXG4gKi9cbkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Tb3VyY2UrU2FucytQcm86NzAwLDQwMCwzMDApO1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImRhdGVuZWRpdG9yXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvZGF0ZW5lZGl0b3IuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL2RhdGVuZWRpdG9yLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL2RhdGVuZWRpdG9yLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvZGF0ZW5lZGl0b3IudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9kYXRlbmVkaXRvci5zdmcjZGF0ZW5lZGl0b3JcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5bZGF0YS1pY29uXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJkYXRlbmVkaXRvclwiICFpbXBvcnRhbnQ7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1pY29uKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbltjbGFzc149XCJpY29uLVwiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImRhdGVuZWRpdG9yXCIgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5pY29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDYzXCI7XG59XG4uaWNvbi1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjFcIjtcbn1cbi5pY29uLWVyYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2MlwiO1xufVxuLmljb24taXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2NVwiO1xufVxuLmljb24tdW5kZXJsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2NlwiO1xufVxuLmljb24tZ3JvdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZiXCI7XG59XG4uaWNvbi1ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2NFwiO1xufVxuLmljb24tcGFnZS1jb3B5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2Y1wiO1xufVxuLmljb24tcGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2ZFwiO1xufVxuLmljb24tZXh0ZXJuYWwtbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmVcIjtcbn1cbi5pY29uLXN1Y2Nlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY4XCI7XG59XG4uaWNvbi1lcnJvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjlcIjtcbn1cbi5pY29uLWltcG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjdcIjtcbn1cbi5pY29uLWxpc3QtbnVtYmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2YVwiO1xufVxuLmljb24tbGlzdC1idWxsZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZmXCI7XG59XG4uaWNvbi1maWxlLXN5bWxpbmstZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzBcIjtcbn1cbi5pY29uLXN0cmlrZXRocm91Z2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDcxXCI7XG59XG4uaWNvbi1zdXBlcnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzJcIjtcbn1cbi5pY29uLXN1YnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzNcIjtcbn1cbi5pY29uLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDc0XCI7XG59XG4uaWNvbi1xdW90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzZcIjtcbn1cbi5pY29uLWFsaWduLWNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzdcIjtcbn1cbi5pY29uLWFsaWduLWp1c3RpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDc4XCI7XG59XG4uaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3OVwiO1xufVxuLmljb24tYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDdhXCI7XG59XG4uaWNvbi1jb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw0MVwiO1xufVxuLyoqKlxuICogQnV0dG9uczpcbiAqL1xuLyoqXG4gKiBSZWd1bGFyIEJ1dHRvbjpcbiAqIGAuYnRuYCAtIEEgcmVndWxhciBidXR0b25cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRidXR0b24uYnRuIEJ1dHRvblxuICovXG4uYnRuIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjlCRkY7XG4gIHBhZGRpbmc6IDdweCAxMnB4O1xuICBsaW5lLWhlaWdodDogMS4zZW07XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogMjAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzO1xuICAvKipcblx0ICogRGlzYWJsZWQgYnV0dG9uOlxuXHQgKiBgLmRpc2FibGVkYCAtIEEgc3R5bGUgZm9yIGEgZGlzYWJsZWQgYnV0dG9uXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0YnV0dG9uLmJ0bi5kaXNhYmxlZCBEaXNhYmxlZFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhY2sgQnV0dG9uOlxuXHQgKiBgLmJhY2tgIC0gVHVybnMgdGhlIGJ1dHRvbiBpbnRvIGEgYmFjayBidXR0b24gd2l0aCBhbiBhcnJvdyBvbiB0aGUgbGVmdCBzaWRlXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0YnV0dG9uLmJ0bi5iYWNrIEJhY2tcblx0ICovXG4gIC8qKlxuXHQgKiBTZWNvbmRhcnkgQnV0dG9uOlxuXHQgKiBgLnNlY29uZGAgLSBUdXJucyB0aGUgYnV0dG9uIGludG8gYSBzZWNvbmRhcnkgYnV0dG9uXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0YnV0dG9uLmJ0bi5zZWNvbmQgU2Vjb25kYXJ5IGJ1dHRvblxuXHQgKi9cbn1cbi5idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNjZWZmO1xufVxuLmJ0bi5kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmU3ZWM7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICM4NjliYWY7XG59XG4uYnRuLmJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYnRuLmJhY2s6aG92ZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljY2VmZjtcbn1cbi5idG4uYmFjazpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDI0cHg7XG4gIHdpZHRoOiAyNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xuICBsZWZ0OiAtMTFweDtcbiAgdG9wOiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNykgcm90YXRlKDQ1ZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlWCgwLjcpIHJvdGF0ZSg0NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogc2NhbGVYKDAuNykgcm90YXRlKDQ1ZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGVYKDAuNykgcm90YXRlKDQ1ZGVnKTtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMC43KSByb3RhdGUoNDVkZWcpO1xufVxuLmJ0bi5zZWNvbmQge1xuICBwYWRkaW5nOiA3cHggMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuMWVtO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU5YmQ3O1xufVxuLmJ0bi5zZWNvbmQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xufVxuLmJ0bi5pY29uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM2OUJGRjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG4uYnRuLmljb246aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjOWNjZWZmO1xufVxuLmJ0bi5pY29uOmhvdmVyID4gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNjZWZmO1xufVxuLmJ0bi5pY29uID4gLmljb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwYWRkaW5nOiAzcHggNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJ0bi5pY29uID4gLmljb24tYnV0dG9uLS10ZXh0IHtcbiAgY29sb3I6ICMzQjQzNDQ7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4vKioqXG4gKiBUZXh0IHN0eWxlczpcbiAqL1xuLyoqXG4gKiBIMTpcbiAqIGBoMWAgLSBUaGUgaDEgc3R5bGVcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRoMSBBIGRlbW8gaDEgaGVhZGVyXG4gKi9cbmgxIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyLjJlbTtcbiAgbWFyZ2luLXRvcDogNDFweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRkVGRTc7XG4gIGNvbG9yOiAjM0I0MzQ0O1xufVxuLyoqXG4gKiBIMjpcbiAqIGBoMmAgLSBUaGUgaDIgc3R5bGVcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRoMiBBIGRlbW8gaDIgaGVhZGVyXG4gKi9cbmgyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgY29sb3I6ICMzQjQzNDQ7XG59XG4vKipcbiAqIEJvZHk6XG4gKiBgYm9keWAgLSBBIGJvZHkgc3R5bGUgZm9yIGZvbnQuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2IE15IFRlc3QgRm9udFxuICovXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO1xufVxuLyoqXG4gKiBMYWJlbDpcbiAqIGAubGFiZWxgIC0gQSBzdHlsaW5nIGZvciBhIGxhYmVsXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmxhYmVsIE15IGxhYmVsXG4gKi9cbi5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjMzY5QkZGO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG4vKipcbiAqIEljb246XG4gKiBgLmljb25gIC0gRGVmYXVsdCBpY29uIHNpemUgXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2Lmljb25cbiAqIFx0XHRkaXYuaWNvbihkYXRhLWljb249XCJiXCIpXG4gKi9cbi5pY29uIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDZweCAwIDAgMDtcbiAgLyoqXG5cdCAqIEJ1dHRvbiBpY29uOlxuXHQgKiBgLmljb24uaWNvbi0tYnRuYCAtIEEgc3R5bGluZyBmb3IgYSBpY29uIGJ1dHRvblxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5pY29uLmljb24tLWJ0bihkYXRhLWljb249XCJiXCIpXG5cdCAqL1xufVxuLmljb24uaWNvbi0tYnRuIHtcbiAgY29sb3I6ICMzNjlCRkY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcbiAgLyoqXG5cdFx0ICogSW52ZXJ0ZWQgYnV0dG9uIGljb246XG5cdFx0ICogYC5pY29uLmljb24tLWJ0bi5pY29uLS1pbnZgIC0gQSBzdHlsaW5nIGZvciBhbiBpbnZlcnRlZCBpY29uIGJ1dHRvblxuXHRcdCAqIFxuXHRcdCAqIFx0QGV4YW1wbGVcblx0XHQgKiBcdGRpdi5pY29uLmljb24tLWJ0bi5pY29uLS1pbnYoZGF0YS1pY29uPVwiYlwiKVxuXHRcdCAqL1xufVxuLmljb24uaWNvbi0tYnRuOmhvdmVyIHtcbiAgY29sb3I6ICM5Y2NlZmY7XG59XG4uaWNvbi5pY29uLS1idG4uaWNvbi0taW52IHtcbiAgY29sb3I6ICNGRkY7XG59XG4uaWNvbi5pY29uLS1idG4uaWNvbi0taW52OmhvdmVyIHtcbiAgY29sb3I6ICNjY2NjY2M7XG59XG4vKipcbiAqIGluZm86XG4gKiBgLmluZm8tdGV4dGAgLSBBIHNtYWxsIGluZm8gdGV4dFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbmZvLXRleHQgSW5mbyBtZXNzYWdlXG4gKi9cbi5pbmZvLXRleHQge1xuICBjb2xvcjogIzlmYWFhYztcbiAgcGFkZGluZzogNXB4IDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi8qKipcbiAqIFJlcG9uc2l2ZTpcbiAqL1xuLyoqXG4gKiBDb250YWluZXI6XG4gKiBgLmNvbnRhaW5lcmAgLSBBIG1haW4gd2Vic2l0ZSBjb250YWluZXIgdGhhdCBjZW50ZXJzIHRoZSBjb250YWluZXIgYW5kIGhhcyB0aGUgY29ycmVzcG9uaW5nIHJlc3BvbnNpdmUganVtcHNcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29udGFpbmVyKHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiNBQUE7aGVpZ2h0OjUwcHg7JykgXG4gKi9cbi5jb250YWluZXIge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDc1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk3MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMTcwcHg7XG4gIH1cbn1cbi8qKlxuICogQ29sdW1uczpcbiAqIGAuY29sYCAtIEEgYmFzZSBzdHlsaW5nIGZvciBhbnkgbnVtYmVyIG9mIGNvbHVtbnNcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxuICAuY29sOmJlZm9yZSxcbiAgLmNvbDphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbiAgLmNvbDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLmNvbCA+ICoge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG4vKipcbiAqIEhhbGYgY29sdW1uIHdpZHRoIG1vZGlmaWVyOlxuICogYC5oYWxmYCAtIEEgc3R5bGUgdGhhdCBkZWZpbmVzIHRoZSB3aWR0aCB0byA1MCUuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbFxuICogXHRcdGRpdi5oYWxmKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIE9uZSBzaWRlXG4gKiBcdFx0ZGl2LmhhbGYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgT3RoZXIgc2lkZVxuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhhbGYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cbi8qKlxuICogVGhpcmQgY29sdW1uIHdpZHRoIG1vZGlmaWVyOlxuICogYC50aGlyZGAgLSBBIHN0eWxlIHRoYXQgZGVmaW5lcyB0aGUgd2lkdGggdG8gMTAwLzMgJS5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKiBcdFx0ZGl2LnRoaXJkKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIE9uZSBzaWRlXG4gKiBcdFx0ZGl2LnRoaXJkKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYWFhXCIpIE90aGVyIHNpZGVcbiAqIFx0XHRkaXYudGhpcmQoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNiYmJcIikgVGhpcmQgc2lkZVxuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRoaXJkIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG59XG4vKipcbiAqIEZ1bGwgY29sdW1uIHdpZHRoIG1vZGlmaWVyOlxuICogYC5mdWxsYCAtIEEgc3R5bGUgdGhhdCBkZWZpbmVzIHRoZSB3aWR0aCB0byAxMDAlLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5jb2xcbiAqIFx0XHRkaXYuZnVsbChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBGdWxsIGNvbnRlbnRcbiAqL1xuLmZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qKlxuICogODAlIC8gMjAlIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAuY29sLTgwLCAuY29sLTIwYCAtIFR3byBzdHlsZXMgdGhhdCBkZWZpbmVzIHRoZSB3aWR0aCB0byA4MCUgb3IgMjAlLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5jb2xcbiAqIFx0XHRkaXYuY29sLTgwKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIE9uZSBzaWRlXG4gKiBcdFx0ZGl2LmNvbC0yMChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBPdGhlciBzaWRlXG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sLTIwIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC04MCB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxufVxuLyoqXG4gKiBSZXNwb25zaXZlIGltYWdlIGNvbnRhaW5lcjpcbiAqIGAucmVzcG9uc2l2ZS1pbWdgIC0gQSBzdHlsZSB0aGF0IG1ha2VzIHRoZSBpbWFnZSBzY2FsaW5nIHRvIGl0cyBtYXggd2lkdGguXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0aW1nLnJlc3BvbnNpdmUtaW1nKHNyYz0naHR0cDovL3d3dy5ieXVpLmVkdS9pbWFnZXMvYWdyaWN1bHR1cmUtbGlmZS1zY2llbmNlcy9mbG93ZXIuanBnJylcbiAqL1xuLnJlc3BvbnNpdmUtaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKipcbiAqIFJlc3BvbnNpdmUgNDozLzE2OjkgbWVkaWEgY29udGFpbmVyOlxuICogYC5yZXNwb25zaXZlLW1lZGlhIC5tZWRpYS00LTMsIC5yZXNwb25zaXZlLW1lZGlhIC5tZWRpYS0xNi05YCAtIFRoaXMgbWFrZXMgYSBkaXYgYSBjb250YWluZXIgZm9yIGFueSBtZWRpYSBlbGVtZW50IChpZnJhbWUsIHZpZGVvLCAuLi4gKSB0aGF0IHJlc3BvbnNpdmUgc2NhbGVzIHdpdGggYSBmaXggcmF0aW8uXG4gKiBUaGUgbWVkaWEgZWxlbWVudCBuZWVkcyB0aGUgY2xhc3MgYC5tZWRpYWAuIFRoZSBgLnJlc3BvbnNpdmUtbWVkaWFgIGNvbnRhaW5lciBjYW4gaGF2ZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBjbGFzc2VzOiBgLm1lZGlhLTQtM2AsIGAubWVkaWEtMTYtOWAgdG8gZGVmaW5lIHRoZSBmaXggcmF0aW8uXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnJlc3BvbnNpdmUtbWVkaWEubWVkaWEtNC0zXG4gKiBcdFx0aWZyYW1lLm1lZGlhKHNyYz0nLy93d3cueW91dHViZS5jb20vZW1iZWQvSGhaYUhmOFJQNmcnLGZyYW1lYm9yZGVyPScwJylcbiAqL1xuLnJlc3BvbnNpdmUtbWVkaWEge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTAlO1xufVxuLnJlc3BvbnNpdmUtbWVkaWEgPiAubWVkaWEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5yZXNwb25zaXZlLW1lZGlhLm1lZGlhLTQtMyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4ucmVzcG9uc2l2ZS1tZWRpYS5tZWRpYS0xNi05IHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI2JTtcbn1cbi8qKipcbiAqIEZvcm0gZGVmaW5pdGlvbnM6XG4gKi9cbi8qKlxuICogZm9ybTpcbiAqIGAuZm9ybWAgLSBBIHN0eWxlIGZvciBhbGwgdHlwZXMgb2YgZm9ybXMuIFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGlucHV0LmZvcm0odmFsdWU9XCJUZXh0XCIpXG4gKi9cbi5mb3JtIHtcbiAgZm9udDogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICBtaW4taGVpZ2h0OiAzNHB4O1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IDAuMTVzO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyoqXG5cdCAqIEZvcm0gd2l0aCBpY29uOlxuXHQgKiBgLmZvcm0gPiAuaWNvbmAgLSBBIGZvcm0gd2l0aCBhbiBvdmVybHlpbmcgaWNvbiBvbiB0aGUgcmlnaHQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5mb3JtIFRleHRcblx0ICogXHRcdGRpdi5pY29uKGRhdGEtaWNvbj1cImJcIilcblx0ICovXG59XG4uZm9ybSA+IC5pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiA2cHg7XG59XG4uZm9ybTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzM2OUJGRjtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggI2NmZTdmZjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4ICNjZmU3ZmY7XG59XG5zZWxlY3QuZm9ybSB7XG4gIGhlaWdodDogMzRweDtcbn1cbi8qKipcbiAqIFRhYnM6XG4gKi9cbi8qKlxuICogdGFiczpcbiAqIGAudGFic2AgLSBBIGJhc2ljIHN0eWxpbmcgZm9yIGFsbCB0YWJzIGZvcm1zXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0b2wudGFic1xuICogXHRcdGxpIFRhYjFcbiAqIFx0XHRsaSBUYWIyIHdpdGggdmVyeSBsb25nIHRleHQuXG4gKiBcdFx0bGkgVGFiM1xuICovXG4udGFicyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyoqXG5cdCAqIFRvcCB0YWJzOlxuXHQgKiBgLnRhYnMudG9wYCAtIFN0eWxlcyB0aGUgdGFicyBmb3IgaG9yaXpvbnRhbCBhbGlnbWVudCBvbiB0aGUgdG9wXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0b2wudGFicy50b3Bcblx0ICogXHRcdGxpIFRhYjFcblx0ICogXHRcdGxpLmFjdGl2ZSBUYWIyXG5cdCAqIFx0XHRsaSBUYWIzXG5cdCAqL1xuICAvKipcblx0ICogTGVmdCB0YWJzOlxuXHQgKiBgLnRhYnMubGVmdGAgLSBTdHlsZXMgdGhlIHRhYnMgZm9yIHZlcnRpY2FsIGFsaWdubWVudCBvbiB0aGUgbGVmdCBzaWRlXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0b2wudGFicy5sZWZ0XG5cdCAqIFx0XHRsaSBUYWIxXG5cdCAqIFx0XHRsaS5hY3RpdmUgVGFiMlxuXHQgKiBcdFx0bGkgVGFiM1xuXHQgKi9cbiAgLyoqXG5cdCAqIFJpZ2h0IHRhYnM6XG5cdCAqIGAudGFicy5yaWdodGAgLSBTdHlsZXMgdGhlIHRhYnMgZm9yIHZlcnRpY2FsIGFsaWdubWVudCBvbiB0aGUgcmlnaHQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdG9sLnRhYnMucmlnaHRcblx0ICogXHRcdGxpIFRhYjFcblx0ICogXHRcdGxpLmFjdGl2ZSBUYWIyXG5cdCAqIFx0XHRsaSBUYWIzXG5cdCAqL1xufVxuLnRhYnMgPiBsaSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzNjlCRkY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4udGFicyA+IGxpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2OUJGRjtcbiAgYm9yZGVyLWNvbG9yOiAjMzY5QkZGO1xuICBjb2xvcjogI0ZGRjtcbn1cbi50YWJzID4gbGkuc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6ICMzNjlCRkY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjlCRkY7XG4gIGNvbG9yOiAjRkZGO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cbi50YWJzLnRvcCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzY5QkZGO1xuICBwYWRkaW5nOiAwIDJweDtcbn1cbi50YWJzLnRvcCA+IGxpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzNjlCRkY7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwJTtcbn1cbi50YWJzLmxlZnQge1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMzY5QkZGO1xuICBwYWRkaW5nOiAycHggMDtcbn1cbi50YWJzLmxlZnQgPiBsaSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMzNjlCRkY7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBtYXJnaW4tcmlnaHQ6IC0ycHg7XG59XG4udGFicy5sZWZ0ID4gbGk6aG92ZXIge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMzNjlCRkY7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMzNjlCRkY7XG59XG4udGFicy5yaWdodCB7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzM2OUJGRjtcbiAgcGFkZGluZzogMnB4IDA7XG59XG4udGFicy5yaWdodCA+IGxpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMzY5QkZGO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyoqKlxuICogVGFibGU6XG4gKi9cbi8qKlxuICogVGFibGU6XG4gKiBgLnRhYmxlYCAtIFRoZSBtYWluIHRhYmxlIHdpdGggaGVhZGVyIGFuZCByb3dzIGluc2lkZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi50YWJsZS5jb2wtMlxuICogXHRcdGRpdi5yb3cuaGVhZGVyXG4gKiBcdFx0XHRkaXYuY2VsbCBDb2x1bW4xXG4gKiBcdFx0XHRkaXYuY2VsbCBDb2x1bW4yXG4gKiBcdFx0ZGl2LnJvdy5ldmVuXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTFcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMlxuICogXHRcdGRpdi5yb3cub2RkXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTFcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMlxuICogXHRcdGRpdi5yb3cuZXZlblxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTExXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTJcbiAqIFx0XHRkaXYucm93Lm9kZC5hY3RpdmVcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMVxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTEyXG4gKi9cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRhYmxlLmNvbC0xMCA+IC5yb3cgPiAuY2VsbCB7XG4gIHdpZHRoOiAxMCU7XG59XG4udGFibGUuY29sLTkgPiAucm93ID4gLmNlbGwge1xuICB3aWR0aDogMTEuMTExMTExMTElO1xufVxuLnRhYmxlLmNvbC04ID4gLnJvdyA+IC5jZWxsIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnRhYmxlLmNvbC03ID4gLnJvdyA+IC5jZWxsIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JTtcbn1cbi50YWJsZS5jb2wtNiA+IC5yb3cgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4udGFibGUuY29sLTUgPiAucm93ID4gLmNlbGwge1xuICB3aWR0aDogMjAlO1xufVxuLnRhYmxlLmNvbC00ID4gLnJvdyA+IC5jZWxsIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi50YWJsZS5jb2wtMyA+IC5yb3cgPiAuY2VsbCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4udGFibGUuY29sLTIgPiAucm93ID4gLmNlbGwge1xuICB3aWR0aDogNTAlO1xufVxuLnRhYmxlLmNvbC0xID4gLnJvdyA+IC5jZWxsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udGFibGUgPiAucm93IHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkYmRiYzg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkYmRiYzg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUZFRkU3O1xufVxuLnRhYmxlID4gLnJvdzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2RiZGJjODtcbn1cbi50YWJsZSA+IC5yb3cub2RkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cbi50YWJsZSA+IC5yb3cgPiAuY2VsbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBhZGRpbmc6IDVweCA4cHg7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4udGFibGUgPiAucm93LnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2OUJGRjtcbiAgY29sb3I6ICNGRkY7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMzY5QkZGO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMzNjlCRkY7XG59XG4udGFibGUgPiAucm93LmhlYWRlciB7XG4gIGNvbG9yOiAjM0I0MzQ0O1xuICBmb250LXNpemU6IDFlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RiZGJjODtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VGRUZFNztcbn1cbi50YWJsZSA+IC5yb3cuaGVhZGVyID4gLmNlbGwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLyoqKlxuICogTWVzc2FnZXM6XG4gKi9cbi8qKlxuICogUG9wdXAgbWVzc2FnZTpcbiAqIGAucG9wdXAtbXNnYCAtIEEgc3R5bGluZyBmb3IgYSBwb3B1cCBtZXNzYWdlXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnBvcHVwLW1zZyBUaGUgcG9wdXAgbWVzc2FnZVxuICovXG4ucG9wdXAtbXNnIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VGRUZFNztcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcbiAgLW1vei1ib3gtc2hhZG93OiAycHggMnB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjEpO1xuICBib3gtc2hhZG93OiAycHggMnB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAvKipcblx0ICAqIEVycm9yIHBvcCBtZXNzYWdlOlxuXHQgICogYC5lcnJvcmAgLSBFcnJvciBzdHlsaW5nIGZvciB0aGUgcG9wdXAgbWVzc2FnZVxuXHQgICogXG5cdCAgKiBcdEBleGFtcGxlXG5cdCAgKiBcdGRpdi5wb3B1cC1tc2cuZXJyb3IgVGhlIGVycm9yIHBvcHVwIG1lc3NhZ2Vcblx0ICAqL1xufVxuLnBvcHVwLW1zZy5lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogI0VEM0Y0MDtcbn1cbi5wb3B1cC1tc2cgLmNsb3NlLWJ1dCB7XG4gIGZsb2F0OiByaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBvcHVwLW1zZyBwIHtcbiAgbWFyZ2luOiAwO1xufVxuLnBvcHVwLW1zZyAuYnRuIHtcbiAgbWFyZ2luOiAwIDEwcHg7XG59XG4vKipcbiAqIEZsb2F0OlxuICogYC5mbG9hdGAgLSBBIGZsb2F0IHN0eWxlIHRoYXQgbWFrZXMgdGhlIHBvcHVwIG1lc3NhZ2UgZmxvYXQgb3ZlciB0aGUgY29udGVudFxuICovXG4uZmxvYXQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwMDA7XG59XG4vKioqXG4gKiBIZWxwZXJzOlxuICovXG4vKipcbiAqIFJlbW92ZTpcbiAqIGAucmVtb3ZlYCAtIFJlbW92ZXMgYSBkaXYuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnJlbW92ZSBUZXN0XG4gKi9cbi5yZW1vdmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKlxuICogTGF5b3V0OlxuICovXG4vKipcbiAqIE9uZSBzaWRlIGZpeGVkIGxheW91dDpcbiAqIGAubGF5b3V0LWFuY2hvcmAgLSBCYXNlIGZvciBhIGxheW91dCB3aGVyZSBvbmUgc2lkZSBpcyBmaXhlZFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5sYXlvdXQtYW5jaG9yXG4gKi9cbi5sYXlvdXQtYW5jaG9yIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIC8qKlxuXHQgKiBMZWZ0IGFuY2hvcmVkOlxuXHQgKiBgLmxheW91dC1hbmNob3IubGVmdGAgLSBMZWZ0IGFuY2hvciBsYXlvdXRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYubGF5b3V0LWFuY2hvci5sZWZ0XG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgTGVmdFxuXHQgKiBcdFx0ZGl2KHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYWFhXCIpIFJpZ2h0XG5cdCAqL1xuICAvKipcblx0ICogUmlnaHQgYW5jaG9yZWQ6XG5cdCAqIGAubGF5b3V0LWFuY2hvci5yaWdodGAgLSBSaWdodCBhbmNob3IgbGF5b3V0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmxheW91dC1hbmNob3IucmlnaHRcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBMZWZ0XG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgUmlnaHRcblx0ICovXG4gIC8qKlxuXHQgKiBCb3R0b20gYW5jaG9yZWQ6XG5cdCAqIGAubGF5b3V0LWFuY2hvci5ib3R0b21gIC0gQm90dG9tIGFuY2hvciBsYXlvdXRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYubGF5b3V0LWFuY2hvci5ib3R0b20oc3R5bGU9XCJoZWlnaHQ6MTIwcHhcIilcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBUb3Bcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBCb3R0b21cblx0ICovXG4gIC8qKlxuXHQgKiBUb3AgYW5jaG9yZWQ6XG5cdCAqIGAubGF5b3V0LWFuY2hvci50b3BgIC0gVG9wIGFuY2hvciBsYXlvdXRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYubGF5b3V0LWFuY2hvci50b3Aoc3R5bGU9XCJoZWlnaHQ6MTIwcHhcIilcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBUb3Bcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBCb3R0b21cblx0ICovXG59XG4ubGF5b3V0LWFuY2hvci5sZWZ0IHtcbiAgYm9yZGVyLXNwYWNpbmc6IDE1cHggMDtcbiAgbWFyZ2luOiAwIC0xNXB4O1xufVxuLmxheW91dC1hbmNob3IubGVmdCA+ICoge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLmxheW91dC1hbmNob3IubGVmdCA+IDpmaXJzdC1jaGlsZCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLmxheW91dC1hbmNob3IubGVmdCA+IDpsYXN0LWNoaWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubGF5b3V0LWFuY2hvci5yaWdodCB7XG4gIGJvcmRlci1zcGFjaW5nOiAxNXB4IDA7XG4gIG1hcmdpbjogMCAtMTVweDtcbn1cbi5sYXlvdXQtYW5jaG9yLnJpZ2h0ID4gKiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4ubGF5b3V0LWFuY2hvci5yaWdodCA+IDpmaXJzdC1jaGlsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmxheW91dC1hbmNob3IucmlnaHQgPiA6bGFzdC1jaGlsZCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLmxheW91dC1hbmNob3IuYm90dG9tIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDAgMTVweDtcbiAgbWFyZ2luOiAtMTVweCAwO1xufVxuLmxheW91dC1hbmNob3IuYm90dG9tID4gKiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cbi5sYXlvdXQtYW5jaG9yLmJvdHRvbSA+IDpmaXJzdC1jaGlsZCB7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5sYXlvdXQtYW5jaG9yLmJvdHRvbSA+IDpsYXN0LWNoaWxkIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmxheW91dC1hbmNob3IudG9wIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDAgMTVweDtcbiAgbWFyZ2luOiAtMTVweCAwO1xufVxuLmxheW91dC1hbmNob3IudG9wID4gKiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cbi5sYXlvdXQtYW5jaG9yLnRvcCA+IDpmaXJzdC1jaGlsZCB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5sYXlvdXQtYW5jaG9yLnRvcCA+IDpsYXN0LWNoaWxkIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLyoqXG4gKiBPbGQgcGFuZWwgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggYSByZXNwb25zaXZlIG9uZS5cbiAqL1xuLm92ZXJsYXktY29udGVudCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3gtc2hhZG93OiAycHggMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLm92ZXJsYXktY29udGVudCAuY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG59XG4ub3ZlcmxheS1tYXNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuLyoqXG4gKiBEcm9wZG93bjpcbiAqIGAuZHJvcGRvd25gIC0gU3R5bGluZyBmb3IgYSBodG1sIGRyb3Bkb3duXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmRyb3Bkb3duXG4gKiBcdFx0ZGl2LmRyb3Bkb3duLS1idXR0b24gQWRkXG4gKiBcdFx0ZGl2LmRyb3Bkb3duLS1tZW51XG4gKi9cbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5kcm9wZG93biA+IC5kcm9wZG93bi0tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzM3B4O1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICBjb2xvcjogIzNCNDM0NDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAycHggM3B4IDNweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG4gIC1tb3otYm94LXNoYWRvdzogMHB4IDJweCAzcHggM3B4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggM3B4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmRyb3Bkb3duID4gLmRyb3Bkb3duLS1tZW51ID4gbGkge1xuICBwYWRkaW5nOiA0cHggMTJweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCBjb2xvciAwLjRzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZHJvcGRvd24gPiAuZHJvcGRvd24tLW1lbnUgPiBsaTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjlCRkY7XG4gIGNvbG9yOiAjRkZGO1xufVxuLyoqKlxuICogSW5wdXRzOlxuICovXG4vKipcbiAqIElucHV0OlxuICogYC5pbnB1dGAgLSBUaGUgYmFzZSBzdHlsaW5nIGZvciBhbiBkYXRlbmVkaXRvciBpbnB1dFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbnB1dFxuICogXHRcdGRpdi5sYWJlbCBUaGUgbGFiZWxcbiAqXHRcdGRpdi52YWx1ZSBUaGUgdmFsdWVcbiAqL1xuLmlucHV0IHtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgZm9udC1zaXplOiAxZW07XG59XG4uaW5wdXQgPiAuaGludCB7XG4gIGN1cnNvcjogaGVscDtcbn1cbi5pbnB1dC5hdHRyaWJ1dGUgLnZhbGlkYXRpb24tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuLmlucHV0LmF0dHJpYnV0ZS5lcnJvciAudmFsaWRhdGlvbi1lcnJvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmlucHV0LmF0dHJpYnV0ZS5lcnJvciAuc3RhdHVzLWljb24uaWNvbi1lcnJvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI0VEM0Y0MDtcbn1cbi5pbnB1dC5hdHRyaWJ1dGUuc3VjY2VzcyAuc3RhdHVzLWljb24uaWNvbi1zdWNjZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjMUNBNTJEO1xufVxuLmlucHV0LmF0dHJpYnV0ZSAuc3RhdHVzLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTVweDtcbiAgcmlnaHQ6IDE3cHg7XG4gIHotaW5kZXg6IDEwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uaW5wdXQuZXJyb3IgLmZvcm0ge1xuICBib3JkZXItY29sb3I6ICNFRDNGNDA7XG59XG4uaW5wdXQuc3VjY2VzcyAuZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogIzFDQTUyRDtcbn1cbi52YWxpZGF0aW9uLWVycm9yIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDJweDtcbiAgY29sb3I6ICNiNTExMTI7XG59XG4vKipcbiAqIEluZm9pbnB1dDpcbiAqIGAuaW5wdXQuaW5mb2AgLSBUaGUgc3R5bGUgZm9yIGEgaW5mbyBpbnB1dFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbnB1dC5pbmZvXG4gKiBcdFx0ZGl2LmxhYmVsIE15IEF0dHJpYnV0ZVxuICogXHRcdGRpdi52YWx1ZSBNeSBWYWx1ZVxuICovXG4uaW5mby5pbnB1dCAudmFsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUZFRkU3O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLyoqXG4gKiBBcnJheSBpbnB1dDpcbiAqIGAuaW5wdXQuYXJyYXlgIC0gVGhlIHN0eWxlIGZvciBhbiBhcnJheSBpbnB1dFxuICpcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmlucHV0LmFycmF5XG4gKiBcdFx0ZGl2LmxhYmVsIE15IEF0dHJpYnV0ZVxuICogXHRcdGRpdi50YWdzXG4gKiBcdFx0XHRkaXYudGFnXG4gKiBcdFx0XHRcdGRpdi50YWctbmFtZSBGaXJzdCBUYWdcbiAqIFx0XHRcdFx0c3Bhbi5yZW1vdmUgeFxuICogXHRcdFx0ZGl2LnRhZ1xuICogXHRcdFx0XHRkaXYudGFnLW5hbWUgU2Vjb25kIFRhZ1xuICogXHRcdFx0XHRzcGFuLnJlbW92ZSB4XG4gKi9cbi8qKlxuICogQ29kZSBpbnB1dDpcbiAqIGAuaW5wdXQuY29kZWAgLSBUaGUgc3R5bGUgZm9yIHRoZSBjb2RlIGlucHV0XG4gKi9cbi5pbnB1dC5jb2RlIC5hY2Uge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4vKipcbiAqIEdyb3VwIGlucHV0OlxuICogYC5pbnB1dC5ncm91cGAgLSBUaGUgc3R5bGUgZm9yIGdyb3VwZWQgaW5wdXRzXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmlucHV0Lmdyb3VwLm9wZW5cbiAqIFx0XHRkaXYubGFiZWwgTXkgR3JvdXBcbiAqIFx0XHRkaXYuZ3JvdXAtY29udGVudCBNeSBWYWx1ZVxuICovXG4uaW5wdXQuZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbn1cbi5pbnB1dC5ncm91cCA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjM0I0MzQ0O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmlucHV0Lmdyb3VwID4gLmxhYmVsIC5pY29uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG4uaW5wdXQuZ3JvdXAgPiAuZ3JvdXAtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMTBweCAxMHB4IDEwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xufVxuLmlucHV0Lmdyb3VwLm9wZW4gPiAubGFiZWwge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VGRUZFNztcbn1cbi5pbnB1dC5ncm91cC5vcGVuID4gLmxhYmVsIC5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVgoLTFweCk7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmlucHV0Lmdyb3VwLm9wZW4gPiAuZ3JvdXAtY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqXG4gKiBCb29sZWFuIGlucHV0OlxuICogYC5pbnB1dC5ib29sZWFuYCAtIFRoZSBib29sZWFuIHN3aXRjaFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbnB1dC5ib29sZWFuXG4gKiBcdFx0ZGl2LmxhYmVsIE15IEJvb2xlYW5cbiAqIFx0XHRkaXYuc3dpdGNoLmZvcm1cbiAqIFx0XHRcdGRpdi5zdGF0ZSBPblxuICogXHRcdFx0ZGl2LnN0YXRlIE9mZlxuICogXHRcdFx0ZGl2LmhhbmRsZVxuICovXG4uaW5wdXQuYm9vbGVhbiAuc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU4NTg1ODtcbiAgY29sb3I6ICNGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmlucHV0LmJvb2xlYW4gLnN3aXRjaCAuc3RhdGUge1xuICB3aWR0aDogNTAlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xufVxuLmlucHV0LmJvb2xlYW4gLnN3aXRjaCAuaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDJweCAzcHggI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSgjZjdmN2Y3KSwgdG8oI2U3ZTdlNykpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmN2Y3ZjcsICNlN2U3ZTcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmN2Y3ZjcsICNlN2U3ZTcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y3ZjdmNywgI2U3ZTdlNyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmN2Y3ZjcsICNlN2U3ZTcpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluLW91dDtcbn1cbi5pbnB1dC5ib29sZWFuIC5zd2l0Y2gub24gLmhhbmRsZSB7XG4gIGxlZnQ6IDUwJTtcbn1cbi8qKlxuICogSW1hZ2UgaW5wdXQ6XG4gKiBgLmlucHV0LmltYWdlYCAtIFRoZSBzdHlsZSBmb3IgdGhlIGltYWdlIGlucHV0XG4gKi9cbi5pbnB1dC5pbWFnZSAuZm9ybSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXIge1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMykgMXB4IDFweCAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzU4NTg1ODtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU4NTg1ODtcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXIgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubWVkaXVtLWVkaXRvci10b29sYmFyLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1hY3RpdmUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1mb3JtIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU4NTg1ODtcbiAgY29sb3I6ICNGRkY7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1mb3JtLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1mb3JtLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1mb3JtIGlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNnB4O1xuICB3aWR0aDogMzE2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6ICNGRkY7XG59XG4ubWVkaXVtLWVkaXRvci10b29sYmFyLWZvcm0gYSB7XG4gIGNvbG9yOiAjRkZGO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1hY3Rpb25zIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1hY3Rpb25zIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiAjRkZGO1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1hY3Rpb25zIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NTY1NjU7XG59XG4ubWVkaXVtLWVkaXRvci10b29sYmFyLWFjdGlvbnMgYnV0dG9uIC5pY29uIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLm1lZGl1bS10b29sYmFyLWFycm93LXVuZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMXB4O1xuICB3aWR0aDogMTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU4NTg1ODtcbiAgbGVmdDogNTAlO1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSkgcm90YXRlKDQ1ZGVnKTtcbn1cbi5tZWRpdW0tZWRpdG9yLWFuY2hvci1wcmV2aWV3IHtcbiAgbGVmdDogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWF4LXdpZHRoOiAyODBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRvcDogMDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMjAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG4ubWVkaXVtLWVkaXRvci1hbmNob3ItcHJldmlldyBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI0ZGRjtcbn1cbi5tZWRpdW0tZWRpdG9yLWFuY2hvci1wcmV2aWV3LWFjdGl2ZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ucmljaHRleHQgLmVkaXRvciBwIHtcbiAgbWFyZ2luOiAwO1xufVxuLnJpY2h0ZXh0IC5lZGl0b3IgcCArIHAge1xuICBtYXJnaW4tdG9wOiA3cHg7XG59XG4ubW9kZWwtZWRpdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1vZGVsLWVkaXRvciA+IC5tb2QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xufVxuLyoqKlxuICogVGFiZWRpdG9yOlxuICovXG4udGFiLWVkaXRvciB7XG4gIC8qKlxuXHQgKiBMZWZ0IG9yaWVudGVkIHRhYi1lZGl0b3I6XG5cdCAqIGAudGFiLWVkaXRvci5sZWZ0YCAtIFN0eWxlcyB0aGUgdGFiIGVkaXRvciB0byBzaG93IHRoZSB0YWJzIG9uIHRoZSBsZWZ0IHNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYudGFiLWVkaXRvci5sZWZ0XG5cdCAqIFx0XHRvbC50YWJzLmxlZnRcblx0ICogXHRcdFx0bGkgVGFiMVxuXHQgKiBcdFx0XHRsaSBUYWIyXG5cdCAqIFx0XHRcdGxpLmFjdGl2ZSBUYWIzXG5cdCAqIFx0XHRkaXYubW9kZWwtZWRpdG9yIFRoZSBjb250ZW50IG9mIHRoZSB0YWIgZWRpdG9yLlxuXHQgKi9cbiAgLyoqXG5cdCAqIFJpZ2h0IG9yaWVudGVkIHRhYi1lZGl0b3I6XG5cdCAqIGAudGFiLWVkaXRvci5yaWdodGAgLSBTdHlsZXMgdGhlIHRhYiBlZGl0b3IgdG8gc2hvdyB0aGUgdGFicyBvbiB0aGUgcmlnaHQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi50YWItZWRpdG9yLnJpZ2h0XG5cdCAqIFx0XHRvbC50YWJzLnJpZ2h0XG5cdCAqIFx0XHRcdGxpIFRhYjFcblx0ICogXHRcdFx0bGkgVGFiMlxuXHQgKiBcdFx0XHRsaS5hY3RpdmUgVGFiM1xuXHQgKiBcdFx0ZGl2Lm1vZGVsLWVkaXRvciBUaGUgY29udGVudCBvZiB0aGUgdGFiIGVkaXRvci5cblx0ICovXG59XG4udGFiLWVkaXRvci5sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuLnRhYi1lZGl0b3IubGVmdDpiZWZvcmUsXG4udGFiLWVkaXRvci5sZWZ0OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLnRhYi1lZGl0b3IubGVmdDphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLnRhYi1lZGl0b3IubGVmdCA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udGFiLWVkaXRvci5sZWZ0ID4gLnRhYnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB3aWR0aDogMjAlO1xufVxuLnRhYi1lZGl0b3IubGVmdCA+IC5tb2RlbC1lZGl0b3Ige1xuICB3aWR0aDogODAlO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICMzNjlCRkY7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuLnRhYi1lZGl0b3IucmlnaHQge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG4udGFiLWVkaXRvci5yaWdodDpiZWZvcmUsXG4udGFiLWVkaXRvci5yaWdodDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi50YWItZWRpdG9yLnJpZ2h0OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4udGFiLWVkaXRvci5yaWdodCA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udGFiLWVkaXRvci5yaWdodCA+IC50YWJzIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAxM3B4O1xuICB3aWR0aDogMjAlO1xuICBsZWZ0OiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuLnRhYi1lZGl0b3IucmlnaHQgPiAubW9kZWwtZWRpdG9yIHtcbiAgd2lkdGg6IDgwJTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzM2OUJGRjtcbiAgcmlnaHQ6IDIwJTtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbi50YWItZWRpdG9yLnJpZ2h0ID4gLm1vZGVsLWVkaXRvciBoMiB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4udGFiLWVkaXRvciA+IC50YWJzID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMC4zcztcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiBsaSAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHJpZ2h0OiAzcHg7XG4gIHRvcDogMHB4O1xufVxuLnRhYi1lZGl0b3IgPiAudGFicyA+IGxpOmhvdmVyIHtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiBsaTpob3ZlciAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKipcbiAqIFRhYmxlIEVkaXRvcjpcbiAqL1xuLnRhYmxlLWVkaXRvciB7XG4gIC8qKlxuXHQgKiBUYWJsZSBlZGl0b3I6XG5cdCAqIGAudGFibGUtZWRpdG9yYCAtIFN0eWxlcyBhIHRhYmxlIGVkaXRvciB3aXRoIGEgbW9kZWwgZWRpdG9yIGluc2lkZVxuXHQgKlxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LnRhYmxlLWVkaXRvclxuXHQgKiBcdFx0ZGl2LnRhYmxlLmNvbC0yXG5cdCAqIFx0XHRcdGRpdi5yb3cuaGVhZGVyXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgQ29sdW1uMVxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIENvbHVtbjJcblx0ICogXHRcdFx0ZGl2LnJvdy5vZGRcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMTFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMTJcblx0ICogXHRcdFx0XHRkaXYubW9kLmRlbGV0ZVxuXHQgKiBcdFx0XHRcdFx0ZGl2Lmljb24uaWNvbi1jbG9zZS5kZWxldGUtYnV0XG5cdCAqIFx0XHRcdGRpdi5yb3cuYWN0aXZlLmV2ZW5cblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMjFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMjJcblx0ICogXHRcdFx0XHRkaXYubW9kLmRlbGV0ZVxuXHQgKiBcdFx0XHRcdFx0ZGl2Lmljb24uaWNvbi1jbG9zZS5kZWxldGUtYnV0XG5cdCAqIFx0XHRcdGRpdi5tb2RlbC1lZGl0b3Jcblx0ICogXHRcdFx0XHRoMiBNb2RlbFxuXHQgKiBcdFx0XHRcdGRpdi5pbnB1dHMuY29sLmNvbC0xLTFcblx0ICogXHRcdFx0XHRcdGRpdi5zdHJpbmcuaW5wdXRcblx0ICogXHRcdFx0XHRcdFx0ZGl2LmxhYmVsIElucHV0XG5cdCAqIFx0XHRcdFx0XHRcdGRpdi52YWx1ZS5mb3JtXG5cdCAqIFx0XHRcdGRpdi5yb3cub2RkXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTMxXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTMyXG5cdCAqIFx0XHRcdFx0ZGl2Lm1vZC5kZWxldGVcblx0ICogXHRcdFx0XHRcdGRpdi5pY29uLmljb24tY2xvc2UuZGVsZXRlLWJ1dFxuXHQgKiBcdFx0XHRkaXYucm93LmV2ZW5cblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhNDFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhNDJcblx0ICogXHRcdFx0XHRkaXYubW9kLmRlbGV0ZVxuXHQgKiBcdFx0XHRcdFx0ZGl2Lmljb24uaWNvbi1jbG9zZS5kZWxldGUtYnV0XG5cdCAqL1xufVxuLnRhYmxlLWVkaXRvciA+IC50YWJsZS5jb250ZW50ID4gLnJvdyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5yb3cgPiAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHJpZ2h0OiAzcHg7XG4gIHRvcDogLTJweDtcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5yb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xuICBjb2xvcjogI0ZGRjtcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5yb3c6aG92ZXIgPiAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5tb2RlbC1lZGl0b3Ige1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNjliNGZmO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnRhYmxlLWVkaXRvciA+IC50YWJsZS5jb250ZW50ID4gLm1vZGVsLWVkaXRvciA+IGgyIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbn1cbi8qIE92ZXJ3cml0ZSB0aGUgMTAwJSB3aWR0aCBvZiB0aGUgZ2VuZXJhbCAudGFibGUgY2xhc3MgKi9cbi50YWJsZS5oYWxmIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi8qKipcbiAqIFByZXZpZXcgRWRpdG9yOlxuICovXG4ucHJldmlldy1lZGl0b3Ige1xuICAvKipcblx0ICogUHJldmlldyBlZGl0b3I6XG5cdCAqIGAucHJldmlldy1lZGl0b3JgIC0gU3R5bGVzIGEgcHJldmlldyBlZGl0b3Igd2l0aCBhIG1vZGVsIGVkaXRvciBpbnNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYucHJldmlldy1lZGl0b3Jcblx0ICogXHRcdGRpdi5wcmV2aWV3c1xuXHQgKiBcdFx0XHRkaXYucHJveHkgVGVtcGxhdGUxXG5cdCAqIFx0XHRcdGRpdi5wcm94eS5hY3RpdmUgVGVtcGxhdGUyXG5cdCAqIFx0XHRcdGRpdi5tb2RlbC1lZGl0b3Jcblx0ICogXHRcdFx0XHRoMiBNb2RlbFxuXHQgKiBcdFx0XHRcdGRpdi5pbnB1dHMuY29sLmNvbC0xLTFcblx0ICogXHRcdFx0XHRcdGRpdi5zdHJpbmcuaW5wdXRcblx0ICogXHRcdFx0XHRcdFx0ZGl2LmxhYmVsIElucHV0XG5cdCAqIFx0XHRcdFx0XHRcdGRpdi52YWx1ZS5mb3JtXG5cdCAqL1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLnByb3h5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItbGVmdDogMHB4IHNvbGlkICMzNjlCRkY7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjVzO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLnByb3h5LnNlbGVjdGVkIHtcbiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCAjMzY5QkZGO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLnByb3h5OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZjRmZjtcbn1cbi5wcmV2aWV3LWVkaXRvciA+IC5wcmV2aWV3cyA+IC5wcm94eTpob3ZlciA+IC5tb2QtY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5wcmV2aWV3LWVkaXRvciA+IC5wcmV2aWV3cyA+IC5wcm94eSA+IC5tb2QtY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG59XG4ucHJldmlldy1lZGl0b3IgPiAucHJldmlld3MgPiAucHJveHkgPiAubW9kLWNvbnRhaW5lciAuaWNvbi0tYnRuIHtcbiAgY29sb3I6ICMzNjlCRkY7XG59XG4ucHJldmlldy1lZGl0b3IgPiAucHJldmlld3MgPiAuZWRpdCA+IC5tb2RlbC1lZGl0b3Ige1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLmVkaXQgPiAubW9kZWwtZWRpdG9yID4gaDIge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLmVkaXQgPiAubW9kZWwtZWRpdG9yLmFjdGl2ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBib3JkZXItZmFkZSAwLjVzO1xuICBhbmltYXRpb246IGJvcmRlci1mYWRlIDAuNXM7XG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgIzM2OUJGRjtcbn1cbi8qKlxuICogRml4IGZvciBhbmltYXRlIHRoZSBib3JkZXIgb2YgdGhlIG5ld2x5IHBsYWNlZCBtb2RlbCBlZGl0b3JcbiAqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvcmRlci1mYWRlIHtcbiAgZnJvbSB7XG4gICAgYm9yZGVyLWxlZnQ6IDBweCBzb2xpZCAjMzY5QkZGO1xuICB9XG4gIHRvIHtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkICMzNjlCRkY7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYm9yZGVyLWZhZGUge1xuICBmcm9tIHtcbiAgICBib3JkZXItbGVmdDogMHB4IHNvbGlkICMzNjlCRkY7XG4gIH1cbiAgdG8ge1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgIzM2OUJGRjtcbiAgfVxufVxuLmltYWdlbWFwLWVkaXRvciAuaW1hZ2VtYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmltYWdlbWFwLWVkaXRvciAubWFwcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmltYWdlbWFwLWVkaXRvciAubWFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCAjRkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uaW1hZ2VtYXAtZWRpdG9yIC5tYXAgLmljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICByaWdodDogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uaW1hZ2VtYXAtZWRpdG9yIC5tYXAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzY5QkZGO1xufVxuLmltYWdlbWFwLWVkaXRvciAuaW1hZ2Uge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uZmlsZS1zZWxlY3RvciAuY29udHJvbHMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuLmZpbGUtc2VsZWN0b3IgLnByb2dyZXNzIHtcbiAgd2lkdGg6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIGhlaWdodDogMnB4O1xufVxuLmZpbGUtc2VsZWN0b3IgaDIge1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuLmZpbGUtbGlzdCAuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5maWxlLWxpc3QgLnJvdyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5maWxlLWxpc3QgLnVwbG9hZCB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmZpbGUtbGlzdCAuY2VsbC50aHVtYiB7XG4gIHdpZHRoOiAyMCU7XG59XG4uZmlsZS1saXN0IC5jZWxsLnRodW1iIGltZyB7XG4gIG1heC13aWR0aDogNDBweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi5maWxlLWxpc3QgLmNlbGwubmFtZSB7XG4gIHdpZHRoOiA0MCU7XG59XG4uZmlsZS1saXN0IC5jZWxsLnRhZ3Mge1xuICB3aWR0aDogNDAlO1xufVxuLmZpbGUtZGV0YWlscyAuZGVsLWJ1dCxcbi5maWxlLWRldGFpbHMgLmRsLWJ1dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5maWxlLWRldGFpbHMgLmlucHV0cyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4uZmlsZS1kZXRhaWxzIC5idXR0b25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cbi5tb2RlbC1zZWxlY3RvciAuY29udHJvbHMge1xuICBwYWRkaW5nOiAxNXB4O1xufVxuLm1vZCB7XG4gIG1hcmdpbjogNXB4IDA7XG59XG4ubW9kLmlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cbi5tb2QtY29udGFpbmVyLmZsb2F0aW5nIC5tb2Qge1xuICBtYXJnaW46IDBweDtcbn1cbi5tb2QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTBweDtcbiAgdG9wOiAxMHB4O1xufVxuLm1vZC1jb250YWluZXIgLm1vZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKipcbiAqIE1vZHM6XG4gKi9cbi8qKlxuICogVGFiIGFkZCBtb2Q6XG4gKiBgLnRhYi1lZGl0b3IgLm1vZC5hZGRgIC0gU3R5bGVzIHRoZSBhZGQgbW9kIGluIGEgdGFiIGxpc3QuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnRhYi1lZGl0b3JcbiAqIFx0XHRvbC5saXN0LnRhYnMudG9wXG4gKiBcdFx0XHRsaS5wcm94eSBFbnRyeSAxXG4gKiBcdFx0XHRsaS5tb2QuYWRkXG4gKiBcdFx0XHRcdGRpdi5kcm9wZG93blxuICogXHRcdFx0XHRcdGJ1dHRvbi5idG4uYWRkLWJ1dC5hZGQtYnV0dG9uIEFkZFxuICovXG4udGFiLWVkaXRvciA+IC50YWJzID4gLm1vZC5hZGQge1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmFkZCAuaWNvbi1idXR0b24tLXRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYi1lZGl0b3IgPiAudGFicyA+IC5tb2QuYWRkIC5idG4uaWNvbiB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmFkZCAuYnRuLmljb24gPiAuaWNvbiB7XG4gIHBhZGRpbmc6IDZweCA4cHggNXB4IDhweDtcbn1cbi50YWJzLmxlZnQgPiAubW9kLmFkZCA+IC5kcm9wZG93biA+IC5kcm9wZG93bi0tYnV0dG9uLFxuLnRhYnMucmlnaHQgPiAubW9kLmFkZCA+IC5kcm9wZG93biA+IC5kcm9wZG93bi0tYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGFicy5sZWZ0ID4gLm1vZC5hZGQgPiAuZHJvcGRvd24gPiAuZHJvcGRvd24tLWJ1dHRvbiAuaWNvbixcbi50YWJzLnJpZ2h0ID4gLm1vZC5hZGQgPiAuZHJvcGRvd24gPiAuZHJvcGRvd24tLWJ1dHRvbiAuaWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRhYnMubGVmdCA+IGxpID4gLm1vZC5kZWxldGUsXG4udGFicy5yaWdodCA+IGxpID4gLm1vZC5kZWxldGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA5cHg7XG59XG4ubW9kLmZpbHRlciAucmVzZXQtYnV0IHtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG4ubW9kLmZpbHRlciAuZmlsdGVyLXNlbGVjdG9yIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi5tb2QubGluayBhIHtcbiAgY29sb3I6ICMzNjlCRkY7XG59XG4vKioqXG4gKiBNb2RzOlxuICovXG4vKipcbiAqIFRhYiBpbXBvcnQgbW9kOlxuICogYC50YWItZWRpdG9yIC5tb2QuaW1wb3J0YCAtIFN0eWxlcyB0aGUgaW1wb3J0IG1vZCBpbiBhIHRhYiBsaXN0LlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi50YWItZWRpdG9yXG4gKiBcdFx0b2wubGlzdC50YWJzLnRvcFxuICogXHRcdFx0bGkucHJveHkgRW50cnkgMVxuICogXHRcdFx0bGkubW9kLmltcG9ydFxuICogXHRcdFx0XHRidXR0b24uYnRuLmFkZC1idXQuYWRkLWJ1dHRvbiBBZGRcbiAqL1xuLnRhYi1lZGl0b3IgPiAudGFicyA+IC5tb2QuaW1wb3J0IHtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4udGFiLWVkaXRvciA+IC50YWJzID4gLm1vZC5pbXBvcnQgLmljb24tYnV0dG9uLS10ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmltcG9ydCAuYnRuLmljb24ge1xuICBib3JkZXI6IG5vbmU7XG59XG4udGFiLWVkaXRvciA+IC50YWJzID4gLm1vZC5pbXBvcnQgLmJ0bi5pY29uID4gLmljb24ge1xuICBwYWRkaW5nOiA2cHggOHB4IDVweCA4cHg7XG59XG4udmlld3BvcnQtcmVzaXplIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLW1zLW92ZXJmbG93LXk6IGF1dG87XG4gIC8qIElFOCAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmxvZ2luLWZvcm0ge1xuICBwYWRkaW5nOiAzMHB4IDA7XG59XG4ubG9naW4tZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmxvZ2luLWZvcm0gLmVycm9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMjNweDtcbn1cbi5pbnBsYWNlLWVkaXRvciB7XG4gIGJvcmRlcjogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICBmb250OiBpbmhlcml0O1xuICB3aWR0aDogMTAwJTtcbn1cbi5pbnBsYWNlLWVkaXRvcjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4vKipcbiAqIFRhZ3M6XG4gKiBgLnRhZ3NgIC0gVGhlIHN0eWxlIGZvciBhIHRhZyBhcmVhXG4gKiBgLnRhZ2AgLSBUaGUgc3R5bGUgZm9yIGEgdGFnXG4gKlxuICogXHRAZXhhbXBsZVxuICpcdGRpdi50YWdzXG4gKlx0XHRkaXYudGFnXG4gKlx0XHRcdGRpdi50YWctbmFtZSBGaXJzdCBUYWdcbiAqXHRcdFx0c3Bhbi5yZW1vdmVcbiAqXHRcdGRpdi50YWdcbiAqXHRcdFx0ZGl2LnRhZy1uYW1lIFNlY29uZCBUYWdcbiAqXHRcdFx0c3Bhbi5yZW1vdmVcbiAqL1xuLnRhZ3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udGFncyAudGFnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG4udGFncyAudGFnID4gc3Bhbi5pbnB1dCB7XG4gIHBhZGRpbmc6IDZweCAycHggNnB4IDEycHggO1xuICBtYXJnaW46IDBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnRhZ3MgLnJlbW92ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDZweDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbSAudGV4dGFyZWEtY29sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4udGV4dGxpc3QtZWRpdG9yID4gZGl2Lml0ZW1zIC5pdGVtIC5yZW1vdmUtY29sIHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIG9wYWNpdHk6IDAuMjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBsaW5lYXI7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi50ZXh0bGlzdC1lZGl0b3IgPiBkaXYuaXRlbXMgLml0ZW0gLmhhbmRsZXItY29sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHggMHB4IDBweCA0cHg7XG4gIG9wYWNpdHk6IDAuMjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBsaW5lYXI7XG59XG4udGV4dGxpc3QtZWRpdG9yID4gZGl2Lml0ZW1zIC5pdGVtIC5pbnB1dCB7XG4gIG1hcmdpbjogMHB4O1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbSB0ZXh0YXJlYSB7XG4gIGJvcmRlci1yYWRpdXM6IDBweCA0cHggNHB4IDBweDtcbiAgcmVzaXplOiBub25lO1xuICBtaW4taGVpZ2h0OiA2MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbS5kcmFnZ2FibGUgLmhhbmRsZXItY29sIHtcbiAgY3Vyc29yOiBtb3ZlO1xuICBvcGFjaXR5OiAxO1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbS5kcmFnZ2FibGUgLnJlbW92ZS1jb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDE7XG59XG4udGV4dGxpc3QtZWRpdG9yID4gZGl2Lml0ZW1zIC5yZW1vdmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiA2cHg7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG59XG5ib2R5LFxuaHRtbCB7XG4gIG1hcmdpbjogMDtcbn1cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuI2VkaXRvciB7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuIiwiLyoqKlxuICogQnV0dG9uczpcbiAqL1xuXG4vKipcbiAqIFJlZ3VsYXIgQnV0dG9uOlxuICogYC5idG5gIC0gQSByZWd1bGFyIGJ1dHRvblxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGJ1dHRvbi5idG4gQnV0dG9uXG4gKi9cbi5idG4ge1xuXG5cdC13ZWJraXQtYXBwZWFyYW5jZTpub25lO1xuXHQtbW96LWFwcGVhcmFuY2U6bm9uZTtcblx0YXBwZWFyYW5jZTpub25lO1xuXG5cdGZvbnQ6IGluaGVyaXQ7XG5cdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdHBhZGRpbmc6IDdweCAxMnB4O1xuXHRsaW5lLWhlaWdodDogMS4zZW07XG5cdGNvbG9yOiNmZmY7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC1zaXplOiAxZW07XG5cdGZvbnQtd2VpZ2h0OiAyMDA7XG5cblx0Y3Vyc29yOnBvaW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6QGJvcmRlci1yYWRpdXM7XG5cdG91dGxpbmU6bm9uZTtcblx0XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAyMCUgKTtcblx0fVxuXHRcblxuXHQvKipcblx0ICogRGlzYWJsZWQgYnV0dG9uOlxuXHQgKiBgLmRpc2FibGVkYCAtIEEgc3R5bGUgZm9yIGEgZGlzYWJsZWQgYnV0dG9uXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0YnV0dG9uLmJ0bi5kaXNhYmxlZCBEaXNhYmxlZFxuXHQgKi9cblx0Ji5kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICksIDMwJSApO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRjb2xvcjogZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBCYWNrIEJ1dHRvbjpcblx0ICogYC5iYWNrYCAtIFR1cm5zIHRoZSBidXR0b24gaW50byBhIGJhY2sgYnV0dG9uIHdpdGggYW4gYXJyb3cgb24gdGhlIGxlZnQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGJ1dHRvbi5idG4uYmFjayBCYWNrXG5cdCAqL1xuXHQmLmJhY2sge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcblx0XHQmOmhvdmVyOmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAyMCUgKTtcblx0XHR9XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0XHR3aWR0aDogMjRweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0XHRsZWZ0OiAtMTFweDtcblx0XHRcdHRvcDogNXB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG5cdFx0XHRcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoIDAuNyApIHJvdGF0ZSggNDVkZWcgKTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOiBzY2FsZVgoIDAuNyApIHJvdGF0ZSggNDVkZWcgKTtcblx0XHRcdC1vLXRyYW5zZm9ybTogc2NhbGVYKCAwLjcgKSByb3RhdGUoIDQ1ZGVnICk7XG5cdFx0XHQtbXMtdHJhbnNmb3JtOiBzY2FsZVgoIDAuNyApIHJvdGF0ZSggNDVkZWcgKTtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKCAwLjcgKSByb3RhdGUoIDQ1ZGVnICk7XG5cdFx0fVxuXHR9XG5cdFxuXHQvKipcblx0ICogU2Vjb25kYXJ5IEJ1dHRvbjpcblx0ICogYC5zZWNvbmRgIC0gVHVybnMgdGhlIGJ1dHRvbiBpbnRvIGEgc2Vjb25kYXJ5IGJ1dHRvblxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGJ1dHRvbi5idG4uc2Vjb25kIFNlY29uZGFyeSBidXR0b25cblx0ICovXG5cdCYuc2Vjb25kIHtcblx0XHRwYWRkaW5nOiA3cHggMTJweDtcblx0XHRsaW5lLWhlaWdodDogMS4xZW07XG5cdFx0Zm9udC1zaXplOiAwLjhlbTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkZXNhdHVyYXRlKCBAYWN0aW9uLWNvbG9yLCA0MCUgKTtcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0Ji5pY29uIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIEBhY3Rpb24tY29sb3I7XG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQ+Lmljb24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAyMCUgKTtcblx0XHRcdH1cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oIEBhY3Rpb24tY29sb3IsIDIwJSApO1xuXHRcdH1cblx0XHRcblx0XHQ+Lmljb24ge1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cdFx0XHRsaW5lLWhlaWdodDoxZW07XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRwYWRkaW5nOiAzcHggNXB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGFjdGlvbi1jb2xvcjtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXHRcdFxuXHRcdD4uaWNvbi1idXR0b24tLXRleHQge1xuXHRcdFx0Y29sb3I6IEBkYXJrLWNvbG9yO1xuXHRcdFx0Zm9udC1zaXplOiAwLjdlbTtcblx0XHRcdGxpbmUtaGVpZ2h0OjFlbTtcblx0XHRcdHBhZGRpbmc6IDRweCAxMHB4O1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKioqXG4gKiBUZXh0IHN0eWxlczpcbiAqL1xuXG4vKipcbiAqIEgxOlxuICogYGgxYCAtIFRoZSBoMSBzdHlsZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGgxIEEgZGVtbyBoMSBoZWFkZXJcbiAqL1xuaDEge1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXNpemU6IDIuMmVtO1xuXHRtYXJnaW4tdG9wOiA0MXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogOHB4O1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgQGJyaWdodC1jb2xvcjtcblx0Y29sb3I6IEBkYXJrLWNvbG9yO1xufVxuXG4vKipcbiAqIEgyOlxuICogYGgyYCAtIFRoZSBoMiBzdHlsZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGgyIEEgZGVtbyBoMiBoZWFkZXJcbiAqL1xuaDIge1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Zm9udC1zaXplOiAxLjZlbTtcblx0bWFyZ2luLXRvcDogMjBweDtcblx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRjb2xvcjogQGRhcmstY29sb3I7XG59XG5cbi8qKlxuICogQm9keTpcbiAqIGBib2R5YCAtIEEgYm9keSBzdHlsZSBmb3IgZm9udC5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYgTXkgVGVzdCBGb250XG4gKi9cbkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Tb3VyY2UrU2FucytQcm86NzAwLDQwMCwzMDApO1xuXG5ib2R5IHtcblx0Zm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO1xufVxuXG4vKipcbiAqIExhYmVsOlxuICogYC5sYWJlbGAgLSBBIHN0eWxpbmcgZm9yIGEgbGFiZWxcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYubGFiZWwgTXkgbGFiZWxcbiAqL1xuLmxhYmVsIHtcblx0Zm9udC1zaXplOiAwLjdlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Y29sb3I6IEBpbmZvLWNvbG9yO1xuXHRtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi8qKlxuICogSWNvbjpcbiAqIGAuaWNvbmAgLSBEZWZhdWx0IGljb24gc2l6ZSBcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaWNvblxuICogXHRcdGRpdi5pY29uKGRhdGEtaWNvbj1cImJcIilcbiAqL1xuLmljb24ge1xuXHRmb250LXNpemU6IDIycHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cGFkZGluZzogNnB4IDAgMCAwO1xuXHRcblx0LyoqXG5cdCAqIEJ1dHRvbiBpY29uOlxuXHQgKiBgLmljb24uaWNvbi0tYnRuYCAtIEEgc3R5bGluZyBmb3IgYSBpY29uIGJ1dHRvblxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5pY29uLmljb24tLWJ0bihkYXRhLWljb249XCJiXCIpXG5cdCAqL1xuXHQmLmljb24tLWJ0biB7XG5cdFx0Y29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogbGlnaHRlbiggQGFjdGlvbi1jb2xvciwgMjAlICk7XG5cdFx0fVxuXHRcdFxuXHRcdC8qKlxuXHRcdCAqIEludmVydGVkIGJ1dHRvbiBpY29uOlxuXHRcdCAqIGAuaWNvbi5pY29uLS1idG4uaWNvbi0taW52YCAtIEEgc3R5bGluZyBmb3IgYW4gaW52ZXJ0ZWQgaWNvbiBidXR0b25cblx0XHQgKiBcblx0XHQgKiBcdEBleGFtcGxlXG5cdFx0ICogXHRkaXYuaWNvbi5pY29uLS1idG4uaWNvbi0taW52KGRhdGEtaWNvbj1cImJcIilcblx0XHQgKi9cblx0XHQmLmljb24tLWludiB7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogZGFya2VuKCAjRkZGLCAyMCUgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG59XG5cbi8qKlxuICogaW5mbzpcbiAqIGAuaW5mby10ZXh0YCAtIEEgc21hbGwgaW5mbyB0ZXh0XG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmluZm8tdGV4dCBJbmZvIG1lc3NhZ2VcbiAqL1xuLmluZm8tdGV4dCB7XG5cdGNvbG9yOiBsaWdodGVuKCBAZGFyay1jb2xvciwgNDAlICk7XG5cdHBhZGRpbmc6IDVweCAwO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59IiwiLyoqKlxuICogUmVwb25zaXZlOlxuICovXG5cbi8qKlxuICogQ29udGFpbmVyOlxuICogYC5jb250YWluZXJgIC0gQSBtYWluIHdlYnNpdGUgY29udGFpbmVyIHRoYXQgY2VudGVycyB0aGUgY29udGFpbmVyIGFuZCBoYXMgdGhlIGNvcnJlc3BvbmluZyByZXNwb25zaXZlIGp1bXBzXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbnRhaW5lcihzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjojQUFBO2hlaWdodDo1MHB4OycpIFxuICovXG4uY29udGFpbmVyIHtcblx0cGFkZGluZy1yaWdodDogMTVweDtcblx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcblx0QG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50ICkge1xuXHRcdHdpZHRoOiA3NTBweDtcblx0fVxuXHRAbWVkaWEgKG1pbi13aWR0aDogOTkycHggKSB7XG5cdFx0d2lkdGg6IDk3MHB4O1xuXHR9XG5cdEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHggKSB7XG5cdFx0d2lkdGg6IDExNzBweDtcblx0fVxufVxuXG4vKipcbiAqIENvbHVtbnM6XG4gKiBgLmNvbGAgLSBBIGJhc2Ugc3R5bGluZyBmb3IgYW55IG51bWJlciBvZiBjb2x1bW5zXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbFxuICovXG4uY29sIHtcblx0XG5cdEBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludCApIHtcblx0XHQuY29sdW1ucygpO1xuXHR9XG59XG5cbi8qKlxuICogSGFsZiBjb2x1bW4gd2lkdGggbW9kaWZpZXI6XG4gKiBgLmhhbGZgIC0gQSBzdHlsZSB0aGF0IGRlZmluZXMgdGhlIHdpZHRoIHRvIDUwJS5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKiBcdFx0ZGl2LmhhbGYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgT25lIHNpZGVcbiAqIFx0XHRkaXYuaGFsZihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBPdGhlciBzaWRlXG4gKi9cbi5oYWxmIHtcblx0XG5cdEBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludCApIHtcblx0XHR3aWR0aDogMTAwJSAvIDI7XG5cdH1cbn1cblxuLyoqXG4gKiBUaGlyZCBjb2x1bW4gd2lkdGggbW9kaWZpZXI6XG4gKiBgLnRoaXJkYCAtIEEgc3R5bGUgdGhhdCBkZWZpbmVzIHRoZSB3aWR0aCB0byAxMDAvMyAlLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5jb2xcbiAqIFx0XHRkaXYudGhpcmQoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgT25lIHNpZGVcbiAqIFx0XHRkaXYudGhpcmQoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgT3RoZXIgc2lkZVxuICogXHRcdGRpdi50aGlyZChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2JiYlwiKSBUaGlyZCBzaWRlXG4gKi9cbi50aGlyZCB7XG5cdFxuXHRAbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQgKSB7XG5cdFx0d2lkdGg6IDEwMCUgLyAzO1xuXHR9XG59XG5cbi8qKlxuICogRnVsbCBjb2x1bW4gd2lkdGggbW9kaWZpZXI6XG4gKiBgLmZ1bGxgIC0gQSBzdHlsZSB0aGF0IGRlZmluZXMgdGhlIHdpZHRoIHRvIDEwMCUuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbFxuICogXHRcdGRpdi5mdWxsKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIEZ1bGwgY29udGVudFxuICovXG4uZnVsbCB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vKipcbiAqIDgwJSAvIDIwJSBjb2x1bW4gd2lkdGggbW9kaWZpZXI6XG4gKiBgLmNvbC04MCwgLmNvbC0yMGAgLSBUd28gc3R5bGVzIHRoYXQgZGVmaW5lcyB0aGUgd2lkdGggdG8gODAlIG9yIDIwJS5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKiBcdFx0ZGl2LmNvbC04MChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBPbmUgc2lkZVxuICogXHRcdGRpdi5jb2wtMjAoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgT3RoZXIgc2lkZVxuICovXG4uY29sLTIwIHtcblx0XG5cdEBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludCApIHtcblx0XHR3aWR0aDogMjAlO1xuXHR9XG59XG4uY29sLTgwIHtcblx0XG5cdEBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludCApIHtcblx0XHR3aWR0aDogODAlO1xuXHR9XG59XG5cbi8qKlxuICogUmVzcG9uc2l2ZSBpbWFnZSBjb250YWluZXI6XG4gKiBgLnJlc3BvbnNpdmUtaW1nYCAtIEEgc3R5bGUgdGhhdCBtYWtlcyB0aGUgaW1hZ2Ugc2NhbGluZyB0byBpdHMgbWF4IHdpZHRoLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGltZy5yZXNwb25zaXZlLWltZyhzcmM9J2h0dHA6Ly93d3cuYnl1aS5lZHUvaW1hZ2VzL2FncmljdWx0dXJlLWxpZmUtc2NpZW5jZXMvZmxvd2VyLmpwZycpXG4gKi9cbi5yZXNwb25zaXZlLWltZyB7XG5cdG1heC13aWR0aDogMTAwJTtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIFJlc3BvbnNpdmUgNDozLzE2OjkgbWVkaWEgY29udGFpbmVyOlxuICogYC5yZXNwb25zaXZlLW1lZGlhIC5tZWRpYS00LTMsIC5yZXNwb25zaXZlLW1lZGlhIC5tZWRpYS0xNi05YCAtIFRoaXMgbWFrZXMgYSBkaXYgYSBjb250YWluZXIgZm9yIGFueSBtZWRpYSBlbGVtZW50IChpZnJhbWUsIHZpZGVvLCAuLi4gKSB0aGF0IHJlc3BvbnNpdmUgc2NhbGVzIHdpdGggYSBmaXggcmF0aW8uXG4gKiBUaGUgbWVkaWEgZWxlbWVudCBuZWVkcyB0aGUgY2xhc3MgYC5tZWRpYWAuIFRoZSBgLnJlc3BvbnNpdmUtbWVkaWFgIGNvbnRhaW5lciBjYW4gaGF2ZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBjbGFzc2VzOiBgLm1lZGlhLTQtM2AsIGAubWVkaWEtMTYtOWAgdG8gZGVmaW5lIHRoZSBmaXggcmF0aW8uXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnJlc3BvbnNpdmUtbWVkaWEubWVkaWEtNC0zXG4gKiBcdFx0aWZyYW1lLm1lZGlhKHNyYz0nLy93d3cueW91dHViZS5jb20vZW1iZWQvSGhaYUhmOFJQNmcnLGZyYW1lYm9yZGVyPScwJylcbiAqL1xuLnJlc3BvbnNpdmUtbWVkaWEge1xuXHR3aWR0aDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLWJvdHRvbTogNTAlO1xuXHRcblx0JiA+IC5tZWRpYSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXHRcblx0Ji5tZWRpYS00LTMge1xuXHRcdHBhZGRpbmctYm90dG9tOiA3NSU7XG5cdH1cblx0XG5cdCYubWVkaWEtMTYtOSB7XG5cdFx0cGFkZGluZy1ib3R0b206IDU2LjI2JVxuXHR9XG59XG5cbiIsIi8qKipcbiAqIExlc3MgZnVuY3Rpb25zOlxuICovXG4gXG4vKipcbiAqIENsZWFmaXg6XG4gKiBgLmNsZWFyZml4KClgIC0gQWRkcyBhIGNsZWFyZml4IHRvIGFuIGVsZW1lbnRcbiAqL1xuLmNsZWFyZml4KCkge1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8vIDFcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gMlxuICB9XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8qKlxuICogQ29sdW1uczpcbiAqIGAuY29sdW1uc2AgLSBTZXR1cHMgYSBzdHlsZSBmb3IgZmxvYXRpbmcgY29sdW1uc1xuICovXG4uY29sdW1ucygpIHtcblx0bWFyZ2luLWxlZnQ6IC0xNXB4O1xuXHRtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuXHRcdFxuXHQuY2xlYXJmaXgoKTtcblx0XG5cdCYgPiAqIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxufSIsIi8qKipcbiAqIEZvcm0gZGVmaW5pdGlvbnM6XG4gKi9cblxuLyoqXG4gKiBmb3JtOlxuICogYC5mb3JtYCAtIEEgc3R5bGUgZm9yIGFsbCB0eXBlcyBvZiBmb3Jtcy4gXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0aW5wdXQuZm9ybSh2YWx1ZT1cIlRleHRcIilcbiAqL1xuLmZvcm0ge1xuXHRmb250OiBpbmhlcml0O1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDZweCAxMnB4O1xuXHRsaW5lLWhlaWdodDogMS4zZW07XG5cdG1pbi1oZWlnaHQ6IDM0cHg7XG5cdGZvbnQtc2l6ZTogMWVtO1xuXHRjb2xvcjogIzU1NTtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7XG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpO1xuXHQtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xuXHQtby10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG5cdHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8qKlxuXHQgKiBGb3JtIHdpdGggaWNvbjpcblx0ICogYC5mb3JtID4gLmljb25gIC0gQSBmb3JtIHdpdGggYW4gb3Zlcmx5aW5nIGljb24gb24gdGhlIHJpZ2h0IHNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYuZm9ybSBUZXh0XG5cdCAqIFx0XHRkaXYuaWNvbihkYXRhLWljb249XCJiXCIpXG5cdCAqL1xuXHQ+IC5pY29uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiA2cHg7XG5cdH1cblx0XG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogQGluZm8tY29sb3I7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHQtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCBsaWdodGVuKCBAaW5mby1jb2xvciwgMzAlICk7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IGxpZ2h0ZW4oIEBpbmZvLWNvbG9yLCAzMCUgKTtcblx0fVxufVxuXG5zZWxlY3QuZm9ybSB7XG5cdGhlaWdodDogMzRweDtcbn1cbiIsIi8qKipcbiAqIFRhYnM6XG4gKi9cblxuLyoqXG4gKiB0YWJzOlxuICogYC50YWJzYCAtIEEgYmFzaWMgc3R5bGluZyBmb3IgYWxsIHRhYnMgZm9ybXNcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRvbC50YWJzXG4gKiBcdFx0bGkgVGFiMVxuICogXHRcdGxpIFRhYjIgd2l0aCB2ZXJ5IGxvbmcgdGV4dC5cbiAqIFx0XHRsaSBUYWIzXG4gKi9cbi50YWJzIHtcblx0XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XG5cdD4gbGkge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRwYWRkaW5nOiA2cHggMTBweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRtaW4taGVpZ2h0OiAzNHB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aW9uLWNvbG9yO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBAYWN0aW9uLWNvbG9yO1xuXHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0fVxuXHRcdFxuXHRcdCYuc2VsZWN0ZWQge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBAaW5mby1jb2xvcjtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBpbmZvLWNvbG9yO1xuXHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHRmb250LXdlaWdodDogbGlnaHRlcjtcblx0XHR9XG5cdH1cblx0XG5cblx0LyoqXG5cdCAqIFRvcCB0YWJzOlxuXHQgKiBgLnRhYnMudG9wYCAtIFN0eWxlcyB0aGUgdGFicyBmb3IgaG9yaXpvbnRhbCBhbGlnbWVudCBvbiB0aGUgdG9wXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0b2wudGFicy50b3Bcblx0ICogXHRcdGxpIFRhYjFcblx0ICogXHRcdGxpLmFjdGl2ZSBUYWIyXG5cdCAqIFx0XHRsaSBUYWIzXG5cdCAqL1xuXHQmLnRvcCB7XG5cdFxuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRwYWRkaW5nOiAwIDJweDtcblx0XHRcblx0XHQ+IGxpIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdG1hcmdpbi1ib3R0b206IC0xcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDJweDtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1heC13aWR0aDogMTAwJSAvIDEwO1xuXHRcdFx0XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIExlZnQgdGFiczpcblx0ICogYC50YWJzLmxlZnRgIC0gU3R5bGVzIHRoZSB0YWJzIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQgb24gdGhlIGxlZnQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdG9sLnRhYnMubGVmdFxuXHQgKiBcdFx0bGkgVGFiMVxuXHQgKiBcdFx0bGkuYWN0aXZlIFRhYjJcblx0ICogXHRcdGxpIFRhYjNcblx0ICovXG5cdCYubGVmdCB7XG5cdFx0XG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgQGluZm8tY29sb3I7XG5cdFx0cGFkZGluZzogMnB4IDA7XG5cdFx0XG5cdFx0PiBsaSB7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0ycHg7XG5cdFx0XHRcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRib3JkZXItcmlnaHQtY29sb3I6IEBpbmZvLWNvbG9yO1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdH1cblxuXHQvKipcblx0ICogUmlnaHQgdGFiczpcblx0ICogYC50YWJzLnJpZ2h0YCAtIFN0eWxlcyB0aGUgdGFicyBmb3IgdmVydGljYWwgYWxpZ25tZW50IG9uIHRoZSByaWdodCBzaWRlXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0b2wudGFicy5yaWdodFxuXHQgKiBcdFx0bGkgVGFiMVxuXHQgKiBcdFx0bGkuYWN0aXZlIFRhYjJcblx0ICogXHRcdGxpIFRhYjNcblx0ICovXG5cdCYucmlnaHQge1xuXHRcdFxuXHRcdGJvcmRlci1sZWZ0OiAycHggc29saWQgQGluZm8tY29sb3I7XG5cdFx0cGFkZGluZzogMnB4IDA7XG5cdFx0XG5cdFx0PiBsaSB7XG5cdFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMnB4O1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRtYXJnaW4tbGVmdDogLTFweDtcblx0XHRcdFxuXHRcdH1cblx0fVxufSIsIi8qKipcbiAqIFRhYmxlOlxuICovXG5cbi5nZW5lcmF0ZS1jb2x1bW5zKCBAaSApIHdoZW4gKCBAaSA+IDAgKSB7XG5cblx0Ji5jb2wtQHtpfSB7XG5cdFx0JiA+LnJvdyA+LmNlbGwge1xuXHRcdFx0d2lkdGg6IDEwMCUgLyBAaVxuXHRcdH1cblx0fVxuXHQuZ2VuZXJhdGUtY29sdW1ucyggQGkgLSAxICk7XG59XG4vKipcbiAqIFRhYmxlOlxuICogYC50YWJsZWAgLSBUaGUgbWFpbiB0YWJsZSB3aXRoIGhlYWRlciBhbmQgcm93cyBpbnNpZGVcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYudGFibGUuY29sLTJcbiAqIFx0XHRkaXYucm93LmhlYWRlclxuICogXHRcdFx0ZGl2LmNlbGwgQ29sdW1uMVxuICogXHRcdFx0ZGl2LmNlbGwgQ29sdW1uMlxuICogXHRcdGRpdi5yb3cuZXZlblxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTExXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTJcbiAqIFx0XHRkaXYucm93Lm9kZFxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTExXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTJcbiAqIFx0XHRkaXYucm93LmV2ZW5cbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMVxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTEyXG4gKiBcdFx0ZGl2LnJvdy5vZGQuYWN0aXZlXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTFcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMlxuICovXG4udGFibGUge1xuXHRcblx0d2lkdGg6IDEwMCU7XG5cdFxuXHQuZ2VuZXJhdGUtY29sdW1ucyggMTAgKTtcblx0XG5cdCYgPiAucm93IHtcblx0XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0dGFibGUtbGF5b3V0OiBmaXhlZDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIGRhcmtlbiggQGJyaWdodC1jb2xvciwgMTAlICk7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgZGFya2VuKCBAYnJpZ2h0LWNvbG9yLCAxMCUgKTtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgQGJyaWdodC1jb2xvcjtcblx0XHRcblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogZGFya2VuKCBAYnJpZ2h0LWNvbG9yLCAxMCUgKTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5vZGQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcblx0XHR9XG5cdFx0XG5cdFx0JiA+IC5jZWxsIHtcblx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0XHRwYWRkaW5nOiA1cHggOHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRcdH1cblx0XHRcblx0XHQmLnNlbGVjdGVkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBpbmZvLWNvbG9yO1xuXHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHRib3JkZXItbGVmdC1jb2xvcjogQGluZm8tY29sb3I7XG5cdFx0XHRib3JkZXItcmlnaHQtY29sb3I6IEBpbmZvLWNvbG9yO1xuXHRcdH1cblx0fVxuXHRcblx0JiA+IC5yb3cuaGVhZGVyIHtcblx0XG5cdFx0JiA+IC5jZWxsIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0fVxuXHRcdFxuXHRcdGNvbG9yOiBAZGFyay1jb2xvcjtcblx0XHRmb250LXNpemU6IDFlbTtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbiggQGJyaWdodC1jb2xvciwgMTAlICk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogQGJyaWdodC1jb2xvcjtcblx0fVxufVxuXG5cblxuXG4iLCIvKioqXG4gKiBNZXNzYWdlczpcbiAqL1xuXG4vKipcbiAqIFBvcHVwIG1lc3NhZ2U6XG4gKiBgLnBvcHVwLW1zZ2AgLSBBIHN0eWxpbmcgZm9yIGEgcG9wdXAgbWVzc2FnZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5wb3B1cC1tc2cgVGhlIHBvcHVwIG1lc3NhZ2VcbiAqL1xuLnBvcHVwLW1zZyB7XG5cdFxuXHRib3JkZXI6IDFweCBzb2xpZCBAYnJpZ2h0LWNvbG9yO1xuXHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cyAqIDI7XG5cdHBhZGRpbmc6IDEwcHggMTVweDtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjEpO1xuXHQtbW96LWJveC1zaGFkb3c6ICAgIDJweCAycHggNXB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG5cdGJveC1zaGFkb3c6ICAgICAgICAgMnB4IDJweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcblx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcblx0XG5cdCBcblx0IC8qKlxuXHQgICogRXJyb3IgcG9wIG1lc3NhZ2U6XG5cdCAgKiBgLmVycm9yYCAtIEVycm9yIHN0eWxpbmcgZm9yIHRoZSBwb3B1cCBtZXNzYWdlXG5cdCAgKiBcblx0ICAqIFx0QGV4YW1wbGVcblx0ICAqIFx0ZGl2LnBvcHVwLW1zZy5lcnJvciBUaGUgZXJyb3IgcG9wdXAgbWVzc2FnZVxuXHQgICovXG5cdCYuZXJyb3Ige1xuXHRcdGJvcmRlci1jb2xvcjogQGVycm9yLWNvbG9yO1xuXHR9XG5cdFxuXHQuY2xvc2UtYnV0IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHR9XG5cdFxuXHRwIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cblx0XG5cdC5idG4ge1xuXHRcdG1hcmdpbjogMCAxMHB4O1xuXHR9XG59XG5cbi8qKlxuICogRmxvYXQ6XG4gKiBgLmZsb2F0YCAtIEEgZmxvYXQgc3R5bGUgdGhhdCBtYWtlcyB0aGUgcG9wdXAgbWVzc2FnZSBmbG9hdCBvdmVyIHRoZSBjb250ZW50XG4gKi9cbi5mbG9hdCB7XG5cblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDVweDtcblx0d2lkdGg6MTAwJTtcblx0bGVmdDogMDtcblx0ei1pbmRleDogMTAwMDA7XG59XG5cblxuIiwiLyoqKlxuICogSGVscGVyczpcbiAqL1xuXG4vKipcbiAqIFJlbW92ZTpcbiAqIGAucmVtb3ZlYCAtIFJlbW92ZXMgYSBkaXYuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnJlbW92ZSBUZXN0XG4gKi9cbi5yZW1vdmUge1xuXHRkaXNwbGF5OiBub25lO1xufSIsIi8qKipcbiAqIExheW91dDpcbiAqL1xuXG4vKipcbiAqIE9uZSBzaWRlIGZpeGVkIGxheW91dDpcbiAqIGAubGF5b3V0LWFuY2hvcmAgLSBCYXNlIGZvciBhIGxheW91dCB3aGVyZSBvbmUgc2lkZSBpcyBmaXhlZFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5sYXlvdXQtYW5jaG9yXG4gKi9cbi5sYXlvdXQtYW5jaG9yIHtcblx0ZGlzcGxheTogdGFibGU7XG5cdFxuXHRcblx0LyoqXG5cdCAqIExlZnQgYW5jaG9yZWQ6XG5cdCAqIGAubGF5b3V0LWFuY2hvci5sZWZ0YCAtIExlZnQgYW5jaG9yIGxheW91dFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5sYXlvdXQtYW5jaG9yLmxlZnRcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBMZWZ0XG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgUmlnaHRcblx0ICovXG5cdCYubGVmdCB7XG5cdFx0XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDE1cHggMDtcblx0XHRtYXJnaW46IDAgLTE1cHg7XG5cdFx0XG5cdFx0JiA+ICoge1xuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHR9XG5cdFx0XG5cdFx0JiA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdFx0JiA+IDpsYXN0LWNoaWxkIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXHRcblx0LyoqXG5cdCAqIFJpZ2h0IGFuY2hvcmVkOlxuXHQgKiBgLmxheW91dC1hbmNob3IucmlnaHRgIC0gUmlnaHQgYW5jaG9yIGxheW91dFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5sYXlvdXQtYW5jaG9yLnJpZ2h0XG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgTGVmdFxuXHQgKiBcdFx0ZGl2KHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYWFhXCIpIFJpZ2h0XG5cdCAqL1xuXHQmLnJpZ2h0IHtcblx0XHRcblx0XHRib3JkZXItc3BhY2luZzogMTVweCAwO1xuXHRcdG1hcmdpbjogMCAtMTVweDtcblx0XHRcblx0XHQmID4gKiB7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdH1cblx0XHRcblx0XHQmID4gOmZpcnN0LWNoaWxkIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0XHQmID4gOmxhc3QtY2hpbGQge1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXHR9XG5cdFxuXHQvKipcblx0ICogQm90dG9tIGFuY2hvcmVkOlxuXHQgKiBgLmxheW91dC1hbmNob3IuYm90dG9tYCAtIEJvdHRvbSBhbmNob3IgbGF5b3V0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmxheW91dC1hbmNob3IuYm90dG9tKHN0eWxlPVwiaGVpZ2h0OjEyMHB4XCIpXG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgVG9wXG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgQm90dG9tXG5cdCAqL1xuXHQmLmJvdHRvbSB7XG5cdFx0XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDAgMTVweDtcblx0XHRtYXJnaW46IC0xNXB4IDA7XG5cdFx0XG5cdFx0JiA+ICoge1xuXHRcdFx0ZGlzcGxheTogdGFibGUtcm93O1xuXHRcdH1cblx0XHRcblx0XHQmID4gOmZpcnN0LWNoaWxkIHtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdFx0JiA+IDpsYXN0LWNoaWxkIHtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHR9XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBUb3AgYW5jaG9yZWQ6XG5cdCAqIGAubGF5b3V0LWFuY2hvci50b3BgIC0gVG9wIGFuY2hvciBsYXlvdXRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYubGF5b3V0LWFuY2hvci50b3Aoc3R5bGU9XCJoZWlnaHQ6MTIwcHhcIilcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBUb3Bcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBCb3R0b21cblx0ICovXG5cdCYudG9wIHtcblx0XHRcblx0XHRib3JkZXItc3BhY2luZzogMCAxNXB4O1xuXHRcdG1hcmdpbjogLTE1cHggMDtcblx0XHRcblx0XHQmID4gKiB7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1yb3c7XG5cdFx0fVxuXHRcdFxuXHRcdCYgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblx0XHQmID4gOmxhc3QtY2hpbGQge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0fVxuIFxufSIsIi8qKlxuICogT2xkIHBhbmVsIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIGEgcmVzcG9uc2l2ZSBvbmUuXG4gKi9cbi5vdmVybGF5LWNvbnRlbnQge1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCAxMHB4IHJnYmEoIDAsIDAsIDAsIDAuMiApO1xuXHRib3gtc2hhZG93OiAycHggMnB4IDEwcHggcmdiYSggMCwgMCwgMCwgMC4yICk7XG5cdFxuXHQuY2xvc2Uge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDEwcHg7XG5cdFx0cmlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuLm92ZXJsYXktbWFzayB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIDAsIDAsIDAsIDAuNSApO1xufSIsIi8qKlxuICogRHJvcGRvd246XG4gKiBgLmRyb3Bkb3duYCAtIFN0eWxpbmcgZm9yIGEgaHRtbCBkcm9wZG93blxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5kcm9wZG93blxuICogXHRcdGRpdi5kcm9wZG93bi0tYnV0dG9uIEFkZFxuICogXHRcdGRpdi5kcm9wZG93bi0tbWVudVxuICovXG4uZHJvcGRvd24ge1xuXHRcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcblx0PiAuZHJvcGRvd24tLW1lbnUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDMzcHg7XG5cdFx0bGVmdDogMDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHRcdGNvbG9yOiBAZGFyay1jb2xvcjtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHotaW5kZXg6IDEwMDA7XG5cdFx0LXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMnB4IDNweCAzcHggcmdiYSg1MCwgNTAsIDUwLCAwLjEpO1xuXHRcdC1tb3otYm94LXNoYWRvdzogICAgMHB4IDJweCAzcHggM3B4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcblx0XHRib3gtc2hhZG93OiAgICAgICAgIDBweCAycHggM3B4IDNweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcblx0XHQ+IGxpIHtcblx0XHRcdHBhZGRpbmc6IDRweCAxMnB4O1xuXHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCBjb2xvciAwLjRzO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGFjdGlvbi1jb2xvcjtcblx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiLyoqKlxuICogSW5wdXRzOlxuICovXG5cbi8qKlxuICogSW5wdXQ6XG4gKiBgLmlucHV0YCAtIFRoZSBiYXNlIHN0eWxpbmcgZm9yIGFuIGRhdGVuZWRpdG9yIGlucHV0XG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmlucHV0XG4gKiBcdFx0ZGl2LmxhYmVsIFRoZSBsYWJlbFxuICpcdFx0ZGl2LnZhbHVlIFRoZSB2YWx1ZVxuICovXG4uaW5wdXQge1xuXHRcblx0bWFyZ2luLXRvcDogMTJweDtcblx0Zm9udC1zaXplOiAxZW07XG5cdFxuXHQmID4gLmhpbnQge1xuXHRcdGN1cnNvcjogaGVscDtcblx0fVxuXHRcblx0Ji5hdHRyaWJ1dGUge1xuXHRcdFxuXHRcdC52YWxpZGF0aW9uLWVycm9yIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHRcdFxuXHRcdCYuZXJyb3Ige1xuXHRcdFx0LnZhbGlkYXRpb24tZXJyb3Ige1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnN0YXR1cy1pY29uLmljb24tZXJyb3Ige1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0Y29sb3I6IEBlcnJvci1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ji5zdWNjZXNzIHtcblx0XHRcdC5zdGF0dXMtaWNvbi5pY29uLXN1Y2Nlc3Mge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0Y29sb3I6IEBzdWNjZXNzLWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuc3RhdHVzLWljb24ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxNXB4O1xuXHRcdFx0cmlnaHQ6IDE3cHg7XG5cdFx0XHR6LWluZGV4OiAxMDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmVycm9yIHtcblx0XHQuZm9ybSB7XG5cdFx0XHRib3JkZXItY29sb3I6IEBlcnJvci1jb2xvcjtcblx0XHR9XG5cdH1cblx0XG5cdCYuc3VjY2VzcyB7XG5cdFx0LmZvcm0ge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBAc3VjY2Vzcy1jb2xvcjtcblx0XHR9XG5cdH1cbn1cblxuXG4udmFsaWRhdGlvbi1lcnJvciB7XG5cdGZvbnQtc2l6ZTogMC45ZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRwYWRkaW5nOiAycHg7XG5cdGNvbG9yOiBkYXJrZW4oIEBlcnJvci1jb2xvciwgMjAlICk7XG59IiwiLyoqXG4gKiBJbmZvaW5wdXQ6XG4gKiBgLmlucHV0LmluZm9gIC0gVGhlIHN0eWxlIGZvciBhIGluZm8gaW5wdXRcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5wdXQuaW5mb1xuICogXHRcdGRpdi5sYWJlbCBNeSBBdHRyaWJ1dGVcbiAqIFx0XHRkaXYudmFsdWUgTXkgVmFsdWVcbiAqL1xuLmluZm8uaW5wdXQge1xuXHRcblx0LnZhbHVlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYnJpZ2h0LWNvbG9yO1xuXHRcdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXHRcdHBhZGRpbmc6IDZweCAxMnB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cbn0iLCIvKipcbiAqIENvZGUgaW5wdXQ6XG4gKiBgLmlucHV0LmNvZGVgIC0gVGhlIHN0eWxlIGZvciB0aGUgY29kZSBpbnB1dFxuICovXG4uaW5wdXQuY29kZSB7XG5cdFxuXHQuYWNlIHtcblx0XHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblx0fVxufSIsIi8qKlxuICogR3JvdXAgaW5wdXQ6XG4gKiBgLmlucHV0Lmdyb3VwYCAtIFRoZSBzdHlsZSBmb3IgZ3JvdXBlZCBpbnB1dHNcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5wdXQuZ3JvdXAub3BlblxuICogXHRcdGRpdi5sYWJlbCBNeSBHcm91cFxuICogXHRcdGRpdi5ncm91cC1jb250ZW50IE15IFZhbHVlXG4gKi9cbi5pbnB1dC5ncm91cCB7XG5cdFxuXHR3aWR0aDogMTAwJTtcblx0XG5cdD4gLmxhYmVsIHtcblx0XHRjb2xvcjogQGRhcmstY29sb3I7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFxuXHRcdC5pY29uIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDNweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycztcblx0XHR9XG5cdH1cblx0XG5cdD4gLmdyb3VwLWNvbnRlbnQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0cGFkZGluZzogMCAxMHB4IDEwcHggMTBweDtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcztcblx0fVxuXHRcblx0Ji5vcGVuIHtcblxuXHRcdD4gLmxhYmVsIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAYnJpZ2h0LWNvbG9yO1xuXHRcdFx0XG5cdFx0XHQuaWNvbiB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKC0xcHgpO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0PiAuZ3JvdXAtY29udGVudCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG5cdFxuXHRcbn0iLCIvKipcbiAqIEJvb2xlYW4gaW5wdXQ6XG4gKiBgLmlucHV0LmJvb2xlYW5gIC0gVGhlIGJvb2xlYW4gc3dpdGNoXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmlucHV0LmJvb2xlYW5cbiAqIFx0XHRkaXYubGFiZWwgTXkgQm9vbGVhblxuICogXHRcdGRpdi5zd2l0Y2guZm9ybVxuICogXHRcdFx0ZGl2LnN0YXRlIE9uXG4gKiBcdFx0XHRkaXYuc3RhdGUgT2ZmXG4gKiBcdFx0XHRkaXYuaGFuZGxlXG4gKi9cbi5pbnB1dC5ib29sZWFuIHtcblx0XG5cdC5zd2l0Y2gge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTg1ODU4O1xuXHRcdGNvbG9yOiAjRkZGO1xuXHRcdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFxuXHRcdC5zdGF0ZSB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDZweCAxMnB4O1xuXHRcdH1cblx0XHRcblx0XHQuaGFuZGxlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMgLSAxO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMHB4IDJweCAzcHggI2ZmZjtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCNmN2Y3ZjcpLCB0bygjZTdlN2U3KSk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmN2Y3ZjcsICNlN2U3ZTcpOyBcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y3ZjdmNywgI2U3ZTdlNyk7IFxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNmN2Y3ZjcsICNlN2U3ZTcpOyBcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmN2Y3ZjcsICNlN2U3ZTcpOyBcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xuXHRcdFx0LW1vei10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluLW91dDtcblx0XHRcdC1vLXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG5cdFx0fVxuXHRcdFxuXHRcdCYub24gLmhhbmRsZSB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0fVxuXHR9XG59IiwiLyoqXG4gKiBJbWFnZSBpbnB1dDpcbiAqIGAuaW5wdXQuaW1hZ2VgIC0gVGhlIHN0eWxlIGZvciB0aGUgaW1hZ2UgaW5wdXRcbiAqL1xuLmlucHV0LmltYWdlIHtcblx0XG5cdC5mb3JtIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn0iLCIubWVkaXVtLWVkaXRvci10b29sYmFyIHtcblxuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMykgMXB4IDFweCAycHg7XG5cdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjNTg1ODU4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTg1ODU4O1xuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQmLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1hY3RpdmUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cbn1cblxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1mb3JtIHtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogIzU4NTg1ODtcblx0Y29sb3I6ICNGRkY7XG5cdHBhZGRpbmc6IDAgNXB4O1xuXG5cdCYubWVkaXVtLWVkaXRvci10b29sYmFyLWZvcm0tYWN0aXZlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdGlucHV0IHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDZweDtcblx0XHR3aWR0aDogMzE2cHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Y29sb3I6ICNGRkY7XG5cdH1cblxuXHRhIHtcblx0XHRjb2xvcjogI0ZGRjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0cGFkZGluZzogMCA1cHg7XG5cdH1cbn1cblxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1hY3Rpb25zIHtcblxuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdFxuXG5cdGJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGNvbG9yOiAjRkZGO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCAjNTg1ODU4LCA1JSApO1xuXHRcdH1cblxuXHRcdC5pY29uIHtcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHR9XG5cdH1cbn1cblxuLm1lZGl1bS10b29sYmFyLWFycm93LXVuZGVyOmFmdGVyIHtcblx0Y29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTFweDtcbiAgICB3aWR0aDogMTFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTg1ODU4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKSByb3RhdGUoNDVkZWcpO1xufVxuXG4ubWVkaXVtLWVkaXRvci1hbmNob3ItcHJldmlldyB7XG5cdGxlZnQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdG9wOiAwO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cdHBhZGRpbmc6IDRweCAxMHB4O1xuXHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRcblx0YSB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGNvbG9yOiAjRkZGO1xuXHR9XG59XG5cbi5tZWRpdW0tZWRpdG9yLWFuY2hvci1wcmV2aWV3LWFjdGl2ZSB7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cblxuLnJpY2h0ZXh0IHtcblx0LmVkaXRvciB7XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRwICsgcCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA3cHg7XG5cdFx0fVxuXHR9XG59IiwiLm1vZGVsLWVkaXRvciB7XG5cdFxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFxuXHQ+IC5tb2QtY29udGFpbmVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxMHB4O1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHR9XG59IiwiLyoqKlxuICogVGFiZWRpdG9yOlxuICovXG5cbi50YWItZWRpdG9yIHtcblx0XG5cdC8qKlxuXHQgKiBMZWZ0IG9yaWVudGVkIHRhYi1lZGl0b3I6XG5cdCAqIGAudGFiLWVkaXRvci5sZWZ0YCAtIFN0eWxlcyB0aGUgdGFiIGVkaXRvciB0byBzaG93IHRoZSB0YWJzIG9uIHRoZSBsZWZ0IHNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYudGFiLWVkaXRvci5sZWZ0XG5cdCAqIFx0XHRvbC50YWJzLmxlZnRcblx0ICogXHRcdFx0bGkgVGFiMVxuXHQgKiBcdFx0XHRsaSBUYWIyXG5cdCAqIFx0XHRcdGxpLmFjdGl2ZSBUYWIzXG5cdCAqIFx0XHRkaXYubW9kZWwtZWRpdG9yIFRoZSBjb250ZW50IG9mIHRoZSB0YWIgZWRpdG9yLlxuXHQgKi9cblx0ICYubGVmdCB7XG5cdCBcblx0IFx0LmNvbHVtbnMoKTtcblx0XHRcblx0XHQ+IC50YWJzIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHR3aWR0aDogMjAlO1xuXHRcdH1cblx0XHRcblx0XHQ+IC5tb2RlbC1lZGl0b3Ige1xuXHRcdFx0d2lkdGg6IDgwJTtcblx0XHRcdGJvcmRlci1sZWZ0OiAycHggc29saWQgQGluZm8tY29sb3I7XG5cdFx0XHRtYXJnaW4tbGVmdDogLTJweDtcblx0XHRcdFxuXHRcdH1cblx0fVxuXHRcblx0LyoqXG5cdCAqIFJpZ2h0IG9yaWVudGVkIHRhYi1lZGl0b3I6XG5cdCAqIGAudGFiLWVkaXRvci5yaWdodGAgLSBTdHlsZXMgdGhlIHRhYiBlZGl0b3IgdG8gc2hvdyB0aGUgdGFicyBvbiB0aGUgcmlnaHQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi50YWItZWRpdG9yLnJpZ2h0XG5cdCAqIFx0XHRvbC50YWJzLnJpZ2h0XG5cdCAqIFx0XHRcdGxpIFRhYjFcblx0ICogXHRcdFx0bGkgVGFiMlxuXHQgKiBcdFx0XHRsaS5hY3RpdmUgVGFiM1xuXHQgKiBcdFx0ZGl2Lm1vZGVsLWVkaXRvciBUaGUgY29udGVudCBvZiB0aGUgdGFiIGVkaXRvci5cblx0ICovXG5cdCAmLnJpZ2h0IHtcblx0IFxuXHQgXHQuY29sdW1ucygpO1xuXHRcdFxuXHRcdD4gLnRhYnMge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMTNweDtcblx0XHRcdHdpZHRoOiAyMCU7XG5cdFx0XHRsZWZ0OiA4MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogLTJweDtcblx0XHR9XG5cdFx0XG5cdFx0PiAubW9kZWwtZWRpdG9yIHtcblx0XHRcdHdpZHRoOiA4MCU7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRcdHJpZ2h0OiAyMCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogMnB4O1xuXHRcdFx0aDIge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0XG5cdD4gLnRhYnMgPiBsaSB7XG5cdFx0XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRyYW5zaXRpb246IHBhZGRpbmcgMC4zcztcblx0XHRcblx0XHQubW9kLWNvbnRhaW5lciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0cmlnaHQ6IDNweDtcblx0XHRcdHRvcDogMHB4O1xuXHRcdH1cblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdC5tb2QtY29udGFpbmVyIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXHRcdH1cblx0fVxuXHRcbn0iLCIvKioqXG4gKiBUYWJsZSBFZGl0b3I6XG4gKi9cblxuLnRhYmxlLWVkaXRvciB7XG5cblx0LyoqXG5cdCAqIFRhYmxlIGVkaXRvcjpcblx0ICogYC50YWJsZS1lZGl0b3JgIC0gU3R5bGVzIGEgdGFibGUgZWRpdG9yIHdpdGggYSBtb2RlbCBlZGl0b3IgaW5zaWRlXG5cdCAqXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYudGFibGUtZWRpdG9yXG5cdCAqIFx0XHRkaXYudGFibGUuY29sLTJcblx0ICogXHRcdFx0ZGl2LnJvdy5oZWFkZXJcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBDb2x1bW4xXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgQ29sdW1uMlxuXHQgKiBcdFx0XHRkaXYucm93Lm9kZFxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGExMVxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGExMlxuXHQgKiBcdFx0XHRcdGRpdi5tb2QuZGVsZXRlXG5cdCAqIFx0XHRcdFx0XHRkaXYuaWNvbi5pY29uLWNsb3NlLmRlbGV0ZS1idXRcblx0ICogXHRcdFx0ZGl2LnJvdy5hY3RpdmUuZXZlblxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGEyMVxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGEyMlxuXHQgKiBcdFx0XHRcdGRpdi5tb2QuZGVsZXRlXG5cdCAqIFx0XHRcdFx0XHRkaXYuaWNvbi5pY29uLWNsb3NlLmRlbGV0ZS1idXRcblx0ICogXHRcdFx0ZGl2Lm1vZGVsLWVkaXRvclxuXHQgKiBcdFx0XHRcdGgyIE1vZGVsXG5cdCAqIFx0XHRcdFx0ZGl2LmlucHV0cy5jb2wuY29sLTEtMVxuXHQgKiBcdFx0XHRcdFx0ZGl2LnN0cmluZy5pbnB1dFxuXHQgKiBcdFx0XHRcdFx0XHRkaXYubGFiZWwgSW5wdXRcblx0ICogXHRcdFx0XHRcdFx0ZGl2LnZhbHVlLmZvcm1cblx0ICogXHRcdFx0ZGl2LnJvdy5vZGRcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMzFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMzJcblx0ICogXHRcdFx0XHRkaXYubW9kLmRlbGV0ZVxuXHQgKiBcdFx0XHRcdFx0ZGl2Lmljb24uaWNvbi1jbG9zZS5kZWxldGUtYnV0XG5cdCAqIFx0XHRcdGRpdi5yb3cuZXZlblxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGE0MVxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGE0MlxuXHQgKiBcdFx0XHRcdGRpdi5tb2QuZGVsZXRlXG5cdCAqIFx0XHRcdFx0XHRkaXYuaWNvbi5pY29uLWNsb3NlLmRlbGV0ZS1idXRcblx0ICovXG5cblx0ICYgPiAudGFibGUuY29udGVudCB7XG5cblx0IFx0JiA+LnJvdyB7XG5cdCBcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCBcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cblx0XHRcdD4gLm1vZC1jb250YWluZXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRyaWdodDogM3B4O1xuXHRcdFx0XHR0b3A6IC0ycHg7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQ+IC5tb2QtY29udGFpbmVyIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aW9uLWNvbG9yO1xuXHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdH1cblx0IFx0fVxuXG5cdCBcdCYgPi5tb2RlbC1lZGl0b3Ige1xuXG5cdFx0IFx0cGFkZGluZzogMTBweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oIEBpbmZvLWNvbG9yLCAxMCUgKTtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cblx0XHQgXHQmID4gaDIge1xuXHRcdCBcdFx0bWFyZ2luLXRvcDogMDtcblx0XHQgXHRcdGZvbnQtc2l6ZTogMS4yZW07XG5cdFx0IFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKiBPdmVyd3JpdGUgdGhlIDEwMCUgd2lkdGggb2YgdGhlIGdlbmVyYWwgLnRhYmxlIGNsYXNzICovXG4udGFibGUuaGFsZiB7XG5cdHdpZHRoOiA1MCU7XG59XG4iLCIvKioqXG4gKiBQcmV2aWV3IEVkaXRvcjpcbiAqL1xuXG4ucHJldmlldy1lZGl0b3Ige1xuXHRcblx0LyoqXG5cdCAqIFByZXZpZXcgZWRpdG9yOlxuXHQgKiBgLnByZXZpZXctZWRpdG9yYCAtIFN0eWxlcyBhIHByZXZpZXcgZWRpdG9yIHdpdGggYSBtb2RlbCBlZGl0b3IgaW5zaWRlXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LnByZXZpZXctZWRpdG9yXG5cdCAqIFx0XHRkaXYucHJldmlld3Ncblx0ICogXHRcdFx0ZGl2LnByb3h5IFRlbXBsYXRlMVxuXHQgKiBcdFx0XHRkaXYucHJveHkuYWN0aXZlIFRlbXBsYXRlMlxuXHQgKiBcdFx0XHRkaXYubW9kZWwtZWRpdG9yXG5cdCAqIFx0XHRcdFx0aDIgTW9kZWxcblx0ICogXHRcdFx0XHRkaXYuaW5wdXRzLmNvbC5jb2wtMS0xXG5cdCAqIFx0XHRcdFx0XHRkaXYuc3RyaW5nLmlucHV0XG5cdCAqIFx0XHRcdFx0XHRcdGRpdi5sYWJlbCBJbnB1dFxuXHQgKiBcdFx0XHRcdFx0XHRkaXYudmFsdWUuZm9ybVxuXHQgKi9cblx0IFxuXHQgJiA+IC5wcmV2aWV3cyB7XG5cdCBcblx0IFx0JiA+LnByb3h5IHtcblx0IFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdCBcdFx0Ym9yZGVyLWxlZnQ6IDBweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0IFx0XHRwYWRkaW5nOiA1cHggMTBweDtcblx0IFx0XHQtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjVzO1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuNXM7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcblx0IFx0XHRcblx0IFx0XHQmLnNlbGVjdGVkIHtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDhweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRcdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIEBpbmZvLWNvbG9yLCAzNSUgKTtcblx0XHRcdFx0XG5cdFx0XHRcdCYgPiAubW9kLWNvbnRhaW5lciB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmID4gLm1vZC1jb250YWluZXIge1xuXHRcdFx0XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAwLjVzO1xuXHRcdFx0XHRcblx0XHRcdFx0Lmljb24tLWJ0biB7XG5cdFx0XHRcdFx0Y29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0IFx0fVxuXHQgXG5cdCBcdCYgPi5lZGl0ID4ubW9kZWwtZWRpdG9yIHtcblx0IFxuXHRcdCBcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0XG5cdFx0IFx0PiBoMiB7XG5cdFx0IFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdCBcdFx0Zm9udC1zaXplOiAxLjJlbTtcblx0XHQgXHR9XG5cdFx0IFx0XG5cdFx0IFx0Ji5hY3RpdmUge1xuXHRcdFx0XHQtd2Via2l0LWFuaW1hdGlvbjogYm9yZGVyLWZhZGUgMC41cztcblx0XHRcdFx0YW5pbWF0aW9uOiBib3JkZXItZmFkZSAwLjVzO1xuXHRcdFx0XHRib3JkZXItbGVmdDogOHB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEZpeCBmb3IgYW5pbWF0ZSB0aGUgYm9yZGVyIG9mIHRoZSBuZXdseSBwbGFjZWQgbW9kZWwgZWRpdG9yXG4gKi9cbkAtd2Via2l0LWtleWZyYW1lcyBib3JkZXItZmFkZSB7XG5cdGZyb20ge1xuXHRcdGJvcmRlci1sZWZ0OiAwcHggc29saWQgQGluZm8tY29sb3I7XG5cdH1cblx0dG8ge1xuXHRcdGJvcmRlci1sZWZ0OiA4cHggc29saWQgQGluZm8tY29sb3I7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBib3JkZXItZmFkZSB7XG5cdGZyb20ge1xuXHRcdGJvcmRlci1sZWZ0OiAwcHggc29saWQgQGluZm8tY29sb3I7XG5cdH1cblx0dG8ge1xuXHRcdGJvcmRlci1sZWZ0OiA4cHggc29saWQgQGluZm8tY29sb3I7XG5cdH1cbn0iLCIuaW1hZ2VtYXAtZWRpdG9yIHtcblx0XG5cdC5pbWFnZW1hcCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cblx0XG5cdC5tYXBzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cdFxuXHQubWFwIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSggMCwgMCwgMCwgMC40ICk7XG5cdFx0Ym9yZGVyOiAxcHggZGFzaGVkICNGRkY7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFxuXHRcdC5pY29uIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMHB4O1xuXHRcdFx0cmlnaHQ6IDVweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0XG5cdFx0Ji5hY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSggMjU1LCAyNTUsIDI1NSwgMC41ICk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHR9XG5cdH1cblx0XG5cdC5pbWFnZSB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG5cdFxufSIsIi8vIHN0eWxpbmcgZm9yIHRoZSBmaWxlIHNlbGVjdG9yXG4uZmlsZS1zZWxlY3RvciB7XG5cdFxuXHQuY29udHJvbHMge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHQgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG5cdCAgICBwYWRkaW5nLXRvcDogMjBweDtcblx0fVxuXHRcblx0LnByb2dyZXNzIHtcblx0XHR3aWR0aDogMDtcbiBcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcblx0XHRoZWlnaHQ6IDJweDtcblx0fVxuXHRcblx0aDIge1xuXHRcdG1hcmdpbi1ib3R0b206IDE0cHg7XG5cdH1cbn1cblxuLmZpbGUtbGlzdCB7XG5cdFxuXHQuaGVhZGVyIHtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHR9XG5cdFxuXHQucm93IHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblx0XG5cdC51cGxvYWQge1xuXHRcdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XG5cdH1cblx0XG5cdC5jZWxsIHtcblx0XHQmLnRodW1iIHtcblx0XHRcdHdpZHRoOiAyMCU7XG5cdFx0XHRcblx0XHRcdGltZyB7XG5cdFx0XHRcdG1heC13aWR0aDogNDBweDsgXG5cdFx0XHRcdG1heC1oZWlnaHQ6IDQwcHg7IFxuXHRcdFx0fVxuXHRcdH1cblx0XHQmLm5hbWUge1xuXHRcdFx0d2lkdGg6IDQwJTtcblx0XHR9XG5cdFx0Ji50YWdzIHtcblx0XHRcdHdpZHRoOiA0MCU7XG5cdFx0fVxuXHR9XG59XG5cbi5maWxlLWRldGFpbHMge1xuXHQuZGVsLWJ1dCwgLmRsLWJ1dCB7XG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cdFxuXHQuaW5wdXRzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cdFxuXHQuYnV0dG9ucyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTJweDtcblx0fVxufVxuIiwiLy8gc3R5bGluZyBmb3IgdGhlIGZpbGUgc2VsZWN0b3Jcbi5tb2RlbC1zZWxlY3RvciB7XG5cdFxuXHQuY29udHJvbHMge1xuXHRcdHBhZGRpbmc6IDE1cHg7XG5cdH1cbn1cblxuIiwiLm1vZCB7XG5cdFxuXHRtYXJnaW46IDVweCAwO1xuXHRcblx0Ji5pbmxpbmUge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHR9XG59XG5cbi5tb2QtY29udGFpbmVyLmZsb2F0aW5nIHtcblx0Lm1vZCB7XG5cdFx0bWFyZ2luOiAwcHg7XG5cdH1cbn0iLCIubW9kLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDEwcHg7XG5cdHRvcDogMTBweDtcblx0XG5cdC5tb2Qge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxufSIsIi8qKipcbiAqIE1vZHM6XG4gKi9cblxuLyoqXG4gKiBUYWIgYWRkIG1vZDpcbiAqIGAudGFiLWVkaXRvciAubW9kLmFkZGAgLSBTdHlsZXMgdGhlIGFkZCBtb2QgaW4gYSB0YWIgbGlzdC5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYudGFiLWVkaXRvclxuICogXHRcdG9sLmxpc3QudGFicy50b3BcbiAqIFx0XHRcdGxpLnByb3h5IEVudHJ5IDFcbiAqIFx0XHRcdGxpLm1vZC5hZGRcbiAqIFx0XHRcdFx0ZGl2LmRyb3Bkb3duXG4gKiBcdFx0XHRcdFx0YnV0dG9uLmJ0bi5hZGQtYnV0LmFkZC1idXR0b24gQWRkXG4gKi9cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmFkZCB7XG5cdFxuXHRwYWRkaW5nOiAwO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XG5cdC5pY29uLWJ1dHRvbi0tdGV4dCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXHRcblx0LmJ0bi5pY29uIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XG5cdFx0PiAuaWNvbiB7XG5cdFx0XHRwYWRkaW5nOiA2cHggOHB4IDVweCA4cHg7XG5cdFx0fVxuXHR9XG59XG5cbi8vIGZpeCBmb3IgYWRkIG1vZCBsZWZ0L3JpZ2h0IHRhYiBlZGl0b3Jcbi50YWJzLmxlZnQsIC50YWJzLnJpZ2h0IHtcblx0XG5cdCY+IC5tb2QuYWRkID4gLmRyb3Bkb3duID4gLmRyb3Bkb3duLS1idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFxuXHRcdC5pY29uIHsgZGlzcGxheTogYmxvY2s7IH1cblx0fVxuXHRcblx0Jj4gbGkgPiAubW9kLmRlbGV0ZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiA5cHg7XG5cdH1cbn0iLCIvLyBzdHlsaW5nIGZvciB0aGUgZmlsdGVyIG1vZFxuLm1vZC5maWx0ZXIge1xuXHRcblx0LnJlc2V0LWJ1dCB7XG5cdFx0bWFyZ2luOiAxMHB4IDA7XG5cdH1cblx0XG5cdC5maWx0ZXItc2VsZWN0b3Ige1xuXHRcdHdpZHRoOiAxMDAlIC8gMztcblx0fVxufSIsIi8vIHN0eWxpbmcgZm9yIHRoZSBmaWx0ZXIgbW9kXG4ubW9kLmxpbmsgYSB7XG5cdFxuXHRjb2xvcjogQGFjdGlvbi1jb2xvcjtcbn0iLCIvKioqXG4gKiBNb2RzOlxuICovXG5cbi8qKlxuICogVGFiIGltcG9ydCBtb2Q6XG4gKiBgLnRhYi1lZGl0b3IgLm1vZC5pbXBvcnRgIC0gU3R5bGVzIHRoZSBpbXBvcnQgbW9kIGluIGEgdGFiIGxpc3QuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnRhYi1lZGl0b3JcbiAqIFx0XHRvbC5saXN0LnRhYnMudG9wXG4gKiBcdFx0XHRsaS5wcm94eSBFbnRyeSAxXG4gKiBcdFx0XHRsaS5tb2QuaW1wb3J0XG4gKiBcdFx0XHRcdGJ1dHRvbi5idG4uYWRkLWJ1dC5hZGQtYnV0dG9uIEFkZFxuICovXG4udGFiLWVkaXRvciA+IC50YWJzID4gLm1vZC5pbXBvcnQge1xuXHRcblx0cGFkZGluZzogMDtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFxuXHQuaWNvbi1idXR0b24tLXRleHQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblx0XG5cdC5idG4uaWNvbiB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdFxuXHRcdD4gLmljb24ge1xuXHRcdFx0cGFkZGluZzogNnB4IDhweCA1cHggOHB4O1xuXHRcdH1cblx0fVxufSIsIi52aWV3cG9ydC1yZXNpemUge1xuICAgXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQtbXMtb3ZlcmZsb3cteTogYXV0bzsgLyogSUU4ICovXG4gICBcdG92ZXJmbG93LXk6IGF1dG87XG59IiwiLmxvZ2luLWZvcm0ge1xuXHRwYWRkaW5nOiAzMHB4IDA7XG5cdFxuXHRpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRtYXJnaW46IDIwcHggMDtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXHRcblx0LmVycm9yIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyM3B4O1xuXHR9XG59IiwiLmlucGxhY2UtZWRpdG9yIHtcclxuXHRib3JkZXI6IDBweDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xyXG5cdGZvbnQ6IGluaGVyaXQ7XHJcblxyXG5cdCY6Zm9jdXMge1xyXG5cdFx0b3V0bGluZTogMDtcclxuXHR9XHJcblx0XHJcblx0d2lkdGg6IDEwMCU7XHJcblxyXG59XHJcblxyXG4iLCIvKipcclxuICogVGFnczpcclxuICogYC50YWdzYCAtIFRoZSBzdHlsZSBmb3IgYSB0YWcgYXJlYVxyXG4gKiBgLnRhZ2AgLSBUaGUgc3R5bGUgZm9yIGEgdGFnXHJcbiAqXHJcbiAqIFx0QGV4YW1wbGVcclxuICpcdGRpdi50YWdzXHJcbiAqXHRcdGRpdi50YWdcclxuICpcdFx0XHRkaXYudGFnLW5hbWUgRmlyc3QgVGFnXHJcbiAqXHRcdFx0c3Bhbi5yZW1vdmVcclxuICpcdFx0ZGl2LnRhZ1xyXG4gKlx0XHRcdGRpdi50YWctbmFtZSBTZWNvbmQgVGFnXHJcbiAqXHRcdFx0c3Bhbi5yZW1vdmVcclxuICovXHJcbi50YWdzIHtcclxuXHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuXHQudGFnIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcblx0XHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcclxuXHRcdG1hcmdpbi1yaWdodDogNnB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xyXG5cclxuXHRcdCYgPiBzcGFuLmlucHV0IHtcclxuXHRcdFx0cGFkZGluZzogNnB4IDJweCA2cHggMTJweCA7XHJcblx0XHRcdG1hcmdpbjogMHB4O1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0LnJlbW92ZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdHBhZGRpbmc6IDZweDtcclxuXHRcdG1hcmdpbi10b3A6IC0xcHg7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0fVxyXG59IiwiXHJcbi50ZXh0bGlzdC1lZGl0b3IgPiBkaXYuaXRlbXMge1xyXG5cclxuXHQuaXRlbSB7XHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1x0XHJcblxyXG5cdFx0LnRleHRhcmVhLWNvbCB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5yZW1vdmUtY29sIHtcclxuXHRcdFx0d2lkdGg6IGF1dG87XHJcblx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblx0XHRcdG9wYWNpdHk6IDAuMjtcclxuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBsaW5lYXI7IFxyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XHJcblx0XHR9XHJcblxyXG5cdFx0LmhhbmRsZXItY29sIHtcclxuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHRcdFx0bWluLXdpZHRoOiAyMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOyBcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4IDBweCAwcHggNHB4O1x0XHJcblx0XHRcdG9wYWNpdHk6IDAuMjtcclxuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBsaW5lYXI7IFxyXG5cdFx0fVxyXG5cclxuXHRcdC5pbnB1dCB7XHJcblx0XHRcdG1hcmdpbjogMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdHRleHRhcmVhIHtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMHB4IDRweCA0cHggMHB4O1xyXG5cdFx0XHRyZXNpemU6IG5vbmU7XHJcblx0XHRcdG1pbi1oZWlnaHQ6IDYwcHg7XHJcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5kcmFnZ2FibGUge1xyXG5cdFx0XHQuaGFuZGxlci1jb2wge1xyXG5cdFx0XHRcdGN1cnNvcjogbW92ZTtcclxuXHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHR9XHJcblx0XHRcdC5yZW1vdmUtY29sIHtcclxuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG5cclxuXHQucmVtb3ZlIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0cGFkZGluZzogNnB4O1xyXG5cdFx0bWFyZ2luLXRvcDogLTFweDtcclxuXHR9XHJcbn0iLCJAaW1wb3J0IFwidmFyaWFibGVzLmxlc3NcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMubGVzc1wiO1xuQGltcG9ydCBcImZvbnRzLmxlc3NcIjtcbkBpbXBvcnQgXCJnbG9iYWwvYnV0dG9uLmxlc3NcIjtcbkBpbXBvcnQgXCJnbG9iYWwvdGV4dC5sZXNzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3Jlc3BvbnNpdmUubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC9mb3Jtcy5sZXNzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3RhYnMubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC90YWJsZS5sZXNzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL21lc3NhZ2UubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC91dGlsLmxlc3NcIjtcbkBpbXBvcnQgXCJnbG9iYWwvbGF5b3V0Lmxlc3NcIjtcbkBpbXBvcnQgXCJnbG9iYWwvcGFuZWwubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC9kcm9wZG93bi5sZXNzXCI7XG5cbkBpbXBvcnQgXCJpbnB1dHMvYmFzZS5sZXNzXCI7XG5AaW1wb3J0IFwiaW5wdXRzL2luZm8ubGVzc1wiO1xuQGltcG9ydCBcImlucHV0cy9hcnJheS5sZXNzXCI7XG5AaW1wb3J0IFwiaW5wdXRzL2NvZGUubGVzc1wiO1xuQGltcG9ydCBcImlucHV0cy9ncm91cC5sZXNzXCI7XG5AaW1wb3J0IFwiaW5wdXRzL2Jvb2xlYW4ubGVzc1wiO1xuQGltcG9ydCBcImlucHV0cy9pbWFnZS5sZXNzXCI7XG5AaW1wb3J0IFwiaW5wdXRzL3JpY2h0ZXh0Lmxlc3NcIjtcblxuQGltcG9ydCBcImVkaXRvcnMvbW9kZWwubGVzc1wiO1xuQGltcG9ydCBcImVkaXRvcnMvdGFiLmxlc3NcIjtcbkBpbXBvcnQgXCJlZGl0b3JzL3RhYmxlLmxlc3NcIjtcbkBpbXBvcnQgXCJlZGl0b3JzL3ByZXZpZXcubGVzc1wiO1xuQGltcG9ydCBcImVkaXRvcnMvaW1hZ2VtYXAubGVzc1wiO1xuXG5AaW1wb3J0IFwicGFuZWwvZmlsZS1zZWxlY3Rvci5sZXNzXCI7XG5AaW1wb3J0IFwicGFuZWwvbW9kZWwtc2VsZWN0b3IubGVzc1wiO1xuXG5AaW1wb3J0IFwibW9kcy9nZW5lcmFsLmxlc3NcIjtcbkBpbXBvcnQgXCJtb2RzL2NvbnRhaW5lci5sZXNzXCI7XG5AaW1wb3J0IFwibW9kcy9hZGQubGVzc1wiO1xuQGltcG9ydCBcIm1vZHMvZmlsdGVyLmxlc3NcIjtcbkBpbXBvcnQgXCJtb2RzL2xpbmsubGVzc1wiO1xuQGltcG9ydCBcIm1vZHMvaW1wb3J0Lmxlc3NcIjtcbkBpbXBvcnQgXCJtb2RzL3Jlc2l6ZS5sZXNzXCI7XG5cbkBpbXBvcnQgXCJsb2dpbi9sb2dpbi5sZXNzXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2lucGxhY2UubGVzc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvdGFnLmxlc3NcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3RleHRsaXN0Lmxlc3NcIjtcblxuYm9keSxodG1sIHtcblx0bWFyZ2luOiAwO1xufVxuXG4qIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiNlZGl0b3Ige1xuXHRwYWRkaW5nLWJvdHRvbTogMzBweDtcbn1cblxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
