@charset "UTF-8";
/**
 * *********************************************************
 * 
 * ***************************
 *	Project Setup
 * ***************************
 *
 *	Before any output happens, we need to pull in all of
 *	our dependenices. These dependencies include:
 *
 * 1. Configuration Files
 * 2. Mixins and Functions
 *
 * @since 1.0.0
 *
 * ******************************************************** 
 */
/**
	 * Load our Project's configurations.
	 *
	 */
/**
 * Type		:	Config
 * Group	:	Borders
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Type		:	Config
 * Group	:	Breakpoints
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Type     :   Config
 * Group    :   Colors
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
* Home Category Colors
*/
/**
* Issue Category Colors
*/
/**
 * Type		:	Config
 * Group	:	Grid
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Global Grid Settings
 */
/**
 * Type		:	Config
 * Group	:	Shadows
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Type		:	Config
 * Group	:	Spacing
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Type		:	Config
 * Group	:	Transitions
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Type		:	Config
 * Group	:	Typography
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * The core type settings for our project
 * @type {[type]}
 */
/**
 * A configuration map to set up our fonts
 */
/**
 * Type		:	Config
 * Group	:	Max Widths
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Type		:	Config
 * Group	:	Z-index
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
	 * Next, we need to load the required tools ( functions and mixins )
	 * for our project. Our token definitions and various properties
	 * and values throughout our project depend on these tools.
	 *
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Functions
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
	* First we have to import our helper functions
	*/
/**
 * Type   : Function
 * Group  : Helpers
 * Desc   : Useful functions that can be utilized throughout our project to make life easier.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * A helper function for getting configuration values from multi-level nested sass maps.
 * This makes our life much easier when getting config values.
 *
 * @param $map      - The map we want to get our config from
 * @param $keys...  - We can traverse our map by using a comma-separated list.
 * @return          - The final value of the requested key
 *
 * @since 1.0.0
 */
/**
 * A helper function to take any numerical value and
 * strip out the unit associated with it ( ex. em, rem, px etc ).
 * This is useful during calculations and conversions etc.
 *
 * @param $number - A number that we want to remove the unit from
 * @return A unitless number
 *
 * @since 1.0.0
 */
/**
	* Now we can import our remaining functions
	*/
/**
 * Type		:	Function
 * Group	:	Color
 * Desc		:	Functions to help make working with colors a breeze!
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * A helper function that will be uses across the entire project for
 * getting color and color tone values from the main color map.
 *
 * @param $color 	- a color in our color sass map in 1__settings
 * @param $tone  	- a particular color tone we want to get ( defaults to 'base' )
 * @return			- The resultant color
 */
/**
 * Type   : Function
 * Group  : Radius
 * Desc   : Functions for dealing with border radius
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * A function for getting a value from the border radius configuration map.
 * @param  $size	- The key to get our value from 
 * @return			- The returned value form our key
 *
 * @since 1.0.0
 */
/**
 * Type		:	Function
 * Group	:	Spacing
 * Desc		:	Functions that help us work with our spacing scale
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * A function for getting a predetermined value from the spacing configuration map.
 * 
 * @param  $size 	- The get to get our value from
 * @return 			- a final spacing value with a unit attached.
 *
 * @since 1.0.0
 */
/**
 * Type		:	Function
 * Group	:	Typography
 * Desc		:	Functions that make working with our typography scale easier.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
  * A function that gets typeface stack information from our type configuration map.
  * 
  * @param  $type	- The key to retreive our values from.
  * @return			- The final, formatted font stack to return.  
  *
  * @since 1.0.0
  */
/**
 * Type   : Function
 * Group  : Z-Index
 * Desc   : Functions for keeping our z-indexes consistent.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
  * A function that gets a z-index value from the z-index configuration map.
  * 
  * @param  $z-index	- The key to retrieve our value from.
  * @return				- The resultant z-index. 
  *
  * @since 1.0.0
  */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Mixins
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type		:	Mixin
 * Group	:	Arrows
 * Desc		:	Adding arrows to things is repetitive. These mixins are here to help!
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * The action arrow appears on various buttons and cards. We are
 * building it into a mixin to make it easier to use.
 *
 * @param $arrow-start-x-position	- The `X` starting background position for our arrow
 * @param $size						- The size of the arrow
 *  
 * @since 1.0.0
 */
/**
 * Type		:	Mixin
 * Group	:	Borders
 * Desc		:	Borders can vary wildly throughout a project. These mixins help us keep things consistent.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * This mixin allows us to get a predefined border from our border configuration file.
 * When need be, we can even pass in a color that falls outside our primary color config map.
 * 
 * @param  $type                	The border to type to use from our map
 * @param  $side:           		The "side" the border should be applied to
 * @param  $custom_border_color: 	A color we pass in to our border
 * @param  $radius               	The order radius to be used
 * 
 * @since 1.0.0
 */
/**
 * Type   : Mixin
 * Group  : Breakpoints
 * Desc   : Neatly employ breakpoints that work with a predefined sizing system.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * The breakpoint mixin takes only 1 parameter.
 * 
 * @param $size The size to fetch from our breakpoints config file
 */
/**
 * Type   : Mixin
 * Group  : Theme
 * Desc   : Build mixins to auto-generate multiple class "themes" to be applied
 * across our site when we need dynamic coloring for a specific use-case.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Card Theme
 *
 * This theme generates many different card colors based on
 * the values passed into it. It is designed it be used in a loop, generating 
 * a new class on each loop iteration.
 * 
 * To see this in action, head to:
 * `5_molecules/_m-card--standard`
 * and see the bottom of the file!
 */
/**
* Theme for accordions, changes the color of the headings
**/
/**
* Theme for Facts and Figures, changes the color of the headings
**/
/**
* Theme for accordions, changes the color of the headings
**/
/**
* Theme for related-links, changes the color of the headings
**/
/**
* Theme for buttons, changes functionality of the buttons to also become bordered with colored text w/ white background
**/
/**
 * Hero Cover Theme
 *
 * This theme generates many different hero colors based on
 * the values passed into it. It is designed it be used in a loop, generating 
 * a new class on each loop iteration.
 * 
 * To see this in action, head to:
 * `6_organisms/_o-hero/_o-hero--cover.scss`
 */
/**
 * Type		:	Mixin
 * Group	:	Container
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * The Container mixin extends our default container to help with code-bloat
 * since it will get applied throughout the project. It also sets a max-width
 * within the div it is applied to based on the returned value from our grid config.
 */
/**
 * Type		:	Mixin
 * Group	:	Clearfix
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Simple and straightforward. It accepts no params and
 * just performs a standard clearfix where applied.
 */
/**
 * Type		:	Mixin
 * Group	:	Opacity
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * A simple mixin that nicely handles opacity and 
 * provides fallbacks for IE.
 *
 * @param $opacity - takes any decimal number between 1 and 0 ( ad also takes the numbers 1 and 0 )
 */
/**
 * Type		:	Mixin
 * Group	:	Shadows
 * Desc		:	Easily apply box-shadows based on element configs in our config map
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Fetch a shadow configuration from our config map
 * and apply it to any element of our choosing.
 *
 * @param	$type	- The config to fetch from our $shadows_config map.
 */
/**
 * Type		:	Mixin
 * Group	:	Spacing
 * Desc		:	Create a systematic way to implement spacing throughout our site to keep
 * the entire codebase locked into a uniform framework of pre-defined values.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * This is one badass mixin that takes care of setting margin or padding
 * in any direction, with a value fetched from our spacing config.
 *
 * @param	$property	- The property to use for our spacer
 * @param	$direction	- The direction we want to apply our spacer to
 * @param	$size		- The size to fetch from our config
 */
/**
 * Type		:	Mixin
 * Group	:	Transitions
 * Desc		:	Build transitions based on configs from our transition map
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Get an element to fetch from our $transitions_config map and apply the 
 * results to the element where this mixin is called
 * 
 * @param  $element The element config to fetch from our map
 */
/**
 * Type		:	Mixin
 * Group	:	Typography
 * Desc		:	
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Get the base settings for a typeface from
 * our font config map.
 *
 * @param	$type	the typeface to get from our config
 * @param	$weight	the font-weight to fetch from the typeface we chose
 */
/**
 * Process a REM value and provide a pixel fallback
 * 
 * @param	$size The font size to work with
 */
/**
 * THE MOTHER OF ALL MIXINS
 *
 * This handles sizing font across our typography scale.
 * 
 * @param  {[type]} $size [description]
 * @return {[type]}       [description]
 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Extends
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type		:	Extends
 * Group	:	Backgrounds
 * Desc		:	Define silent classes for commonly used background properties.
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
.m-card--my-old-house, .m-island.m-island--has-bg, .o-hero--cover, .o-hero--offset .o-hero__img {
  background-size: cover;
  background-repeat: no-repeat;
}

.m-island.m-island--has-bg, .o-hero--cover, .o-hero--offset .o-hero__img {
  background-position: center center;
}

.m-cta {
  background-position: top left;
}

/**
 * Type		:	Extends
 * Group	:	Container
 * Desc		:	Define a silent class to use with our container grid.
 * This keeps us from having to define it all over the place.
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
.m-cta__container, .m-legal-bar__container, .o-action-bar__container, .o-aptly__container, .o-conversation__container, .o-filter-bar__container, .o-grid-gallery, .o-header__container, .o-hero--cover > .o-hero__container, .o-hero--issue .o-hero__container, .o-hero--simple > .o-hero__container, .o-post__container, .o-utility-bar__container {
  margin-left: auto;
  margin-right: auto;
  width: 85%;
}

/**
 * Type		:	Extends
 * Group	:	Flexbox
 * Desc		:	Define silent classes for flexbox usage.
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
.m-card--my-old-house, .m-inline-group,
.m-inline-group__group, .o-action-bar__actions, .o-hero--cover > .o-hero__container, .o-hero--issue .o-hero__container, .o-mega__cta {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/**
 * Type		:	Extends
 * Group	:	Pseudo
 * Desc		:	Define silent classes for easier Pseudo implementation.
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
blockquote, .m-island.m-island--has-bg, .u-before--cover {
  position: relative;
}

blockquote:before, .m-island.m-island--has-bg:before, .u-before--cover:before {
  content: '';
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

.u-after--cover {
  position: relative;
}

.u-after--cover:after {
  content: '';
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}

/**
 * Type		:	Extends
 * Group	:	Smooth
 * Desc		:	Define silent classes for modifying typography.
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
.a-btn, [class*="a-heading"] {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004);
  text-rendering: optimizeLegibility;
}

/**
 * *********************************************************
 * 
 * ***************************
 *	Project Styles
 * ***************************
 *
 *	Now that our project has been configured and our
 *	dependencies are in place, we can begin loading
 *	files that will contain actual output that will 
 *	end up in our project's /dist folder. These are
 *	loaded in an intentional order bases on selector
 *	scope, function and specificity. 
 *
 * 1. Libs
 * 2. Layout
 * 3. Atoms 
 * 4. Molecules
 * 5. Organisms
 * 6. Pages 
 * 7. Utility
 *
 * ********************************************************
 *
 * Note: We use the core concepts behind the following
 * methodologies in this project:
 *
 * 1. BEM (modified) - http://getbem.com/introduction/
 * 2. ITSCSS (modified) - https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/
 * 3. Atomic Design - http://atomicdesign.bradfrost.com/table-of-contents/
 *
 * ******************************************************** 
 */
/**
	 * Load any 3rd party Libraries we need
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Libraries
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type : Library
 * Name : Reset
 * Desc: We use a modified version of minireset.css - github.com/jgthms/minireset.css
 * @since 1.0.0
 * @author CreativeFuse
 */
/* Document
   ========================================================================== */
/**
 * 1. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 *
 * 2. Set root font size
 *
 * Note that changing the font-size on the html element will affect the
 * entire project since all fonts are being sized in rems based on
 * the initial size of the html element.
 */
html {
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%;
}

/**
 * Set Body to Overflow Hidden
 */
body {
  overflow-x: hidden;
}

html,
body,
p,
ol,
ul,
li,
dl,
dt,
dd,
blockquote,
figure,
fieldset,
legend,
textarea,
pre,
iframe,
hr,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
}

a {
  color: unset;
  text-decoration: none;
}

ul {
  list-style: none;
}

button,
input,
select,
textarea {
  margin: 0;
}

button:focus {
  outline: none;
}

*, *:before, *:after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

img,
embed,
object,
audio,
video {
  height: auto;
  max-width: 100%;
}

iframe,
button {
  border: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
  text-align: left;
}

/* box-sizing */
.fr-window, .fr-window [class^="fr-"],
.fr-overlay, .fr-overlay [class^="fr-"],
.fr-spinner, .fr-spinner [class^="fr-"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.fr-window {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  font-size: 16px/20px;
  /* Chrome hack, this fixes a visual glitch when quickly toggling a video */
  -webkit-transform: translateZ(0px);
          transform: translateZ(0px);
}

/* z-index */
.fr-overlay {
  z-index: 99998;
}

.fr-window {
  z-index: 99999;
}

.fr-spinner {
  z-index: 100000;
}

/* overlay */
.fr-overlay {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.fr-overlay-background {
  float: left;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.8;
  filter: alpha(opacity=80);
}

.fr-overlay-ui-fullclick .fr-overlay-background {
  background: #292929;
  opacity: 0.85;
  filter: alpha(opacity=85);
}

/* mobile touch has position:absolute to allow zooming */
.fr-window.fr-mobile-touch,
.fr-overlay.fr-mobile-touch {
  position: absolute;
  overflow: visible;
}

/* some properties on the window are used to toggle things
 * like margin and the fullclick mode,
 * we reset those properties after measuring them
 */
.fr-measured {
  margin: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
}

.fr-box {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.fr-pages {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.fr-page {
  position: absolute;
  width: 100%;
  height: 100%;
}

.fr-container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 0;
  text-align: center;
}

.fr-hovering-clickable .fr-container {
  cursor: pointer;
}

/*
   padding:
   youtube & vimeo always have buttons on the outside
   side button = 72 = 54 + (2 * 9 margin)
   close button = 48
*/
/* padding ui:inside */
.fr-ui-inside .fr-container {
  padding: 20px 20px;
}

.fr-ui-inside.fr-no-sides .fr-container {
  padding: 20px;
}

/* padding ui:outside */
.fr-ui-outside .fr-container {
  padding: 20px 82px;
}

.fr-ui-outside.fr-no-sides .fr-container {
  padding: 20px 48px;
}

/* reduce padding on smaller screens */

/* padding ui:fullclick */
.fr-ui-fullclick .fr-container {
  padding: 0;
}

.fr-ui-fullclick.fr-no-sides .fr-container {
  padding: 0;
}

/* video fullclick */
.fr-ui-fullclick.fr-type-video .fr-container {
  padding: 0px 62px;
}

.fr-ui-fullclick.fr-no-sides.fr-type-video .fr-container {
  padding: 48px 0px;
}

/* overflow-y should always have 0 padding top and bottom */
.fr-overflow-y .fr-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.fr-content {
  border: 3px solid #ffffff;
  border-radius: 0px !important;
}

.fr-content,
.fr-content-background {
  position: absolute;
  top: 50%;
  left: 50%;
  /* IE11 has a 1px blur bug on the edges of the caption (ui:inside)
     during animation with overflow:hidden */
  overflow: visible;
}

/* img/iframe/error */
.fr-content-element {
  float: left;
  width: 100%;
  height: 100%;
}

.fr-content-background {
  background: #101010;
}

.fr-info {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: inherit;
  font-size: 16px;
  line-height: 20px;
  text-align: left;
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
   -ms-text-size-adjust: none;
       text-size-adjust: none;
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.fr-info-background {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: #000;
  line-height: 1%;
  -webkit-filter: none;
          filter: none;
  opacity: 1;
}

.fr-ui-inside .fr-info-background {
  filter: alpha(opacity=80);
  opacity: .8;
  zoom: 1;
}

/* ui:outside has a slightly lighter info background to break up from black page backgrounds */
.fr-ui-outside .fr-info-background {
  background: #0d0d0d;
}

/* info at the bottom for ui:inside */
.fr-content .fr-info {
  top: auto;
  bottom: 0;
}

.fr-info-padder {
  background-color: #ffffff;
  display: block;
  overflow: hidden;
  padding: 12px;
  position: relative;
  width: auto;
}

.fr-caption {
  width: auto;
  display: inline;
}

.fr-position {
  color: #b3b3b3;
  float: right;
  line-height: 21px;
  opacity: 0.99;
  position: relative;
  text-align: right;
  margin-left: 15px;
  white-space: nowrap;
}

/* positions not within the info bar
   for ui:outside/inside */
.fr-position-outside,
.fr-position-inside {
  position: absolute;
  bottom: 0;
  right: 0;
  margin: 12px;
  width: auto;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 11px;
  line-height: 20px;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
  display: none;
  overflow: hidden;
  white-space: nowrap;
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
   -ms-text-size-adjust: none;
       text-size-adjust: none;
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.fr-position-inside {
  border: 0;
}

.fr-position-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #0d0d0d;
  filter: alpha(opacity=80);
  opacity: .8;
  zoom: 1;
  /* oldIE */
}

.fr-position-text {
  color: #b3b3b3;
}

.fr-position-outside .fr-position-text,
.fr-position-inside .fr-position-text {
  float: left;
  position: relative;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
  opacity: 1;
}

/* display it for the outside ui, hide the caption inside */
.fr-ui-outside .fr-position-outside {
  display: block;
}

.fr-ui-outside .fr-info .fr-position {
  display: none;
}

.fr-ui-inside.fr-no-caption .fr-position-inside {
  display: block;
}

/* links */
.fr-info a,
.fr-info a:hover {
  color: #ccc;
  border: 0;
  background: none;
  text-decoration: underline;
}

.fr-info a:hover {
  color: #eee;
}

/* no-caption */
.fr-ui-outside.fr-no-caption .fr-info {
  display: none;
}

.fr-ui-inside.fr-no-caption .fr-caption {
  display: none;
}

/* --- stroke */
.fr-stroke {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
}

.fr-stroke-vertical {
  width: 1px;
  height: 100%;
}

.fr-stroke-horizontal {
  padding: 0 1px;
}

.fr-stroke-right {
  left: auto;
  right: 0;
}

.fr-stroke-bottom {
  top: auto;
  bottom: 0;
}

.fr-stroke-color {
  float: left;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.08);
}

/* the stroke is brighter inside the info box */
.fr-info .fr-stroke-color {
  background: rgba(80, 80, 80, 0.3);
}

/* remove the stroke when outside ui has a caption */
.fr-ui-outside.fr-has-caption .fr-content .fr-stroke-bottom {
  display: none;
}

/* remove stroke and shadow when ui:fullclick */
.fr-ui-fullclick .fr-stroke {
  display: none;
}

.fr-ui-fullclick .fr-content-background {
  -webkit-box-shadow: none;
          box-shadow: none;
}

/* the info box never bas a top stroke */
.fr-info .fr-stroke-top {
  display: none;
}

/* < > */
.fr-side {
  position: absolute;
  top: 50%;
  width: 54px;
  height: 72px;
  margin: 0 9px;
  margin-top: -36px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none;
  zoom: 1;
}

.fr-side-previous {
  left: 0;
}

.fr-side-next {
  right: 0;
  left: auto;
}

.fr-side-disabled {
  cursor: default;
}

.fr-side-hidden {
  display: none !important;
}

.fr-side-button {
  float: left;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.fr-side-button-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #101010;
}

.fr-side-button-icon {
  float: left;
  position: relative;
  height: 100%;
  width: 100%;
  zoom: 1;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

/* smaller side buttons */

/* X */
.fr-close {
  position: absolute;
  width: 48px;
  height: 48px;
  top: 0;
  right: 0;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none;
}

.fr-close-background,
.fr-close-icon {
  position: absolute;
  top: 12px;
  left: 12px;
  height: 26px;
  width: 26px;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.fr-close-background {
  background-color: #000;
}

/* Thumbnails */
.fr-thumbnails {
  position: absolute;
  overflow: hidden;
}

.fr-thumbnails-disabled .fr-thumbnails {
  display: none !important;
}

.fr-thumbnails-horizontal .fr-thumbnails {
  width: 100%;
  height: 12%;
  min-height: 74px;
  max-height: 160px;
  bottom: 0;
}

.fr-thumbnails-vertical .fr-thumbnails {
  height: 100%;
  width: 10%;
  min-width: 74px;
  max-width: 160px;
  left: 0;
}

.fr-thumbnails,
.fr-thumbnails * {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.fr-thumbnails-wrapper {
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
}

.fr-thumbnails-vertical .fr-thumbnails-wrapper {
  top: 50%;
  left: 0;
}

.fr-thumbnails-slider {
  position: relative;
  width: 100%;
  height: 100%;
  float: left;
  zoom: 1;
}

.fr-thumbnails-slider-slide {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
}

.fr-thumbnails-thumbs {
  float: left;
  height: 100%;
  overflow: hidden;
  position: relative;
  top: 0;
  left: 0;
}

.fr-thumbnails-slide {
  position: absolute;
  top: 0;
  height: 100%;
  width: 100%;
}

.fr-thumbnail-frame {
  position: absolute;
  zoom: 1;
  overflow: hidden;
}

.fr-thumbnail {
  position: absolute;
  width: 30px;
  height: 100%;
  left: 50%;
  top: 50%;
  zoom: 1;
  cursor: pointer;
  margin: 0 10px;
}

.fr-ltIE9 .fr-thumbnail * {
  overflow: hidden;
  /* IE6(7) */
  z-index: 1;
  zoom: 1;
}

.fr-thumbnail-wrapper {
  position: relative;
  background: #161616;
  width: 100%;
  height: 100%;
  float: left;
  overflow: hidden;
  display: inline;
  /* IE6(7) */
  z-index: 0;
  /* IE8 */
}

.fr-thumbnail-overlay {
  cursor: pointer;
}

.fr-thumbnail-active .fr-thumbnail-overlay {
  cursor: default;
}

.fr-thumbnail-overlay,
.fr-thumbnail-overlay-background,
.fr-thumbnail-overlay-border {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-width: 0;
  overflow: hidden;
  border-style: solid;
  border-color: transparent;
}

.fr-ltIE9 .fr-thumbnail-overlay-border {
  border-width: 0 !important;
}

.fr-thumbnail .fr-thumbnail-image {
  position: absolute;
  filter: alpha(opacity=85);
  opacity: .85;
  max-width: none;
}

.fr-thumbnail:hover .fr-thumbnail-image,
.fr-thumbnail-active:hover .fr-thumbnail-image {
  filter: alpha(opacity=99);
  opacity: .99;
}

.fr-thumbnail-active .fr-thumbnail-image,
.fr-thumbnail-active:hover .fr-thumbnail-image {
  filter: alpha(opacity=35);
  opacity: .35;
}

.fr-thumbnail-active {
  cursor: default;
}

/* Thumbnails loading */
.fr-thumbnail-loading,
.fr-thumbnail-loading-background,
.fr-thumbnail-loading-icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.fr-thumbnail-loading-background {
  background-color: #161616;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  opacity: .8;
  position: relative;
  float: left;
}

/* this element is there as an alternative to putting the loading image on the background */
.fr-thumbnail-loading-icon {
  display: none;
}

/* error on thumbnail */
.fr-thumbnail-error .fr-thumbnail-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #202020;
}

/* Thumbnail < > */
.fr-thumbnails-side {
  float: left;
  height: 100%;
  width: 28px;
  margin: 0 5px;
  position: relative;
  overflow: hidden;
}

.fr-thumbnails-side-previous {
  margin-left: 12px;
}

.fr-thumbnails-side-next {
  margin-right: 12px;
}

.fr-thumbnails-vertical .fr-thumbnails-side {
  height: 28px;
  width: 100%;
  margin: 10px 0;
}

.fr-thumbnails-vertical .fr-thumbnails-side-previous {
  margin-top: 20px;
}

.fr-thumbnails-vertical .fr-thumbnails-side-next {
  margin-bottom: 20px;
}

.fr-thumbnails-side-button {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -14px;
  margin-left: -14px;
  width: 28px;
  height: 28px;
  cursor: pointer;
}

.fr-thumbnails-side-button-background {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  filter: alpha(opacity=80);
  opacity: .8;
  -webkit-transition: background-color .2s ease-in;
  transition: background-color .2s ease-in;
  background-color: #333;
  cursor: pointer;
  border-radius: 4px;
}

.fr-thumbnails-side-button:hover .fr-thumbnails-side-button-background {
  background-color: #3b3b3b;
}

.fr-thumbnails-side-button-disabled * {
  cursor: default;
}

.fr-thumbnails-side-button-disabled:hover .fr-thumbnails-side-button-background {
  background-color: #333;
}

.fr-thumbnails-side-button-icon {
  height: 42px;
  width: 42px;
  position: absolute;
  /*top: -7px;
  left: -7px;*/
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* vertical thumbnails */
.fr-thumbnails-vertical .fr-thumbnails-side,
.fr-thumbnails-vertical .fr-thumbnails-thumbs,
.fr-thumbnails-vertical .fr-thumbnail-frame {
  clear: both;
}

/* ui:fullclick has a dark thumbnail background */
.fr-window-ui-fullclick .fr-thumbnails {
  background: #090909;
}

/* put a stroke on the connecting caption*/
.fr-window-ui-fullclick.fr-thumbnails-enabled.fr-thumbnails-horizontal .fr-info .fr-stroke-bottom {
  display: block !important;
}

/*({ box-shadow: inset 0 -1px 0 rgba(255,255,255,.1); } */
.fr-window-ui-fullclick.fr-thumbnails-enabled.fr-thumbnails-vertical .fr-info .fr-stroke-left {
  display: block !important;
}

/* thumbnail spacing  */
.fr-thumbnails-horizontal .fr-thumbnails-thumbs {
  padding: 12px 5px;
}

.fr-thumbnails-vertical .fr-thumbnails-thumbs {
  padding: 5px 12px;
}

.fr-thumbnails-measured .fr-thumbnails-thumbs {
  padding: 0 !important;
}

/* horizontal */

/* vertical */

/* hide thumbnails on smaller screens
   the js always hides them on touch based devices
*/

/* force fullClick: true
   and force overflow: false */

/* switch between ui modes
   we force everything not in the current UI mode to hide
*/
.fr-window-ui-fullclick .fr-side-next-outside,
.fr-window-ui-fullclick .fr-side-previous-outside,
.fr-window-ui-fullclick .fr-close-outside,
.fr-window-ui-fullclick .fr-content .fr-side-next,
.fr-window-ui-fullclick .fr-content .fr-side-previous,
.fr-window-ui-fullclick .fr-content .fr-close,
.fr-window-ui-fullclick .fr-content .fr-info,
.fr-window-ui-outside .fr-side-next-fullclick,
.fr-window-ui-outside .fr-side-previous-fullclick,
.fr-window-ui-outside .fr-close-fullclick,
.fr-window-ui-outside .fr-content .fr-side-next,
.fr-window-ui-outside .fr-content .fr-side-previous,
.fr-window-ui-outside .fr-content .fr-close,
.fr-window-ui-outside .fr-content .fr-info,
.fr-window-ui-inside .fr-page > .fr-info,
.fr-window-ui-inside .fr-side-next-fullclick,
.fr-window-ui-inside .fr-side-previous-fullclick,
.fr-window-ui-inside .fr-close-fullclick,
.fr-window-ui-inside .fr-side-next-outside,
.fr-window-ui-inside .fr-side-previous-outside,
.fr-window-ui-inside .fr-close-outside {
  display: none !important;
}

/* some ui elements can be toggled on mousemove.
   filter:alpha(opacity) is bugged so we use display in oldIE
*/
.fr-toggle-ui {
  opacity: 0;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
}

.fr-visible-fullclick-ui .fr-box > .fr-toggle-ui,
.fr-visible-inside-ui .fr-ui-inside .fr-toggle-ui {
  opacity: 1;
}

.fr-hidden-fullclick-ui .fr-box > .fr-toggle-ui,
.fr-hidden-inside-ui .fr-ui-inside .fr-toggle-ui {
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
}

.fr-ltIE9.fr-hidden-fullclick-ui .fr-box > .fr-toggle-ui,
.fr-ltIE9.fr-hidden-inside-ui .fr-ui-inside .fr-toggle-ui {
  display: none;
}

/* Spinner */
.fr-spinner {
  position: fixed;
  width: 52px;
  height: 52px;
  background: #101010;
  background: rgba(16, 16, 16, 0.85);
  border-radius: 5px;
}

.fr-spinner div {
  position: absolute;
  top: 0;
  left: 0;
  height: 64%;
  width: 64%;
  margin-left: 18%;
  margin-top: 18%;
  opacity: 1;
  -webkit-animation: fresco-12 1.2s infinite ease-in-out;
  animation: fresco-12 1.2s infinite ease-in-out;
}

.fr-spinner div:after {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 2px;
  height: 8px;
  margin-left: -1px;
  background: #fff;
  -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0);
          box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  /* fixes rendering in Firefox */
}

.fr-spinner div.fr-spin-1 {
  -ms-transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  transform: rotate(30deg);
  -webkit-animation-delay: -1.1s;
  animation-delay: -1.1s;
}

.fr-spinner div.fr-spin-2 {
  -ms-transform: rotate(60deg);
  -webkit-transform: rotate(60deg);
  transform: rotate(60deg);
  -webkit-animation-delay: -1.0s;
  animation-delay: -1.0s;
}

.fr-spinner div.fr-spin-3 {
  -ms-transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  -webkit-animation-delay: -0.9s;
  animation-delay: -0.9s;
}

.fr-spinner div.fr-spin-4 {
  -ms-transform: rotate(120deg);
  -webkit-transform: rotate(120deg);
  transform: rotate(120deg);
  -webkit-animation-delay: -0.8s;
  animation-delay: -0.8s;
}

.fr-spinner div.fr-spin-5 {
  -ms-transform: rotate(150deg);
  -webkit-transform: rotate(150deg);
  transform: rotate(150deg);
  -webkit-animation-delay: -0.7s;
  animation-delay: -0.7s;
}

.fr-spinner div.fr-spin-6 {
  -ms-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
  -webkit-animation-delay: -0.6s;
  animation-delay: -0.6s;
}

.fr-spinner div.fr-spin-6 {
  -ms-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
  -webkit-animation-delay: -0.6s;
  animation-delay: -0.6s;
}

.fr-spinner div.fr-spin-7 {
  -ms-transform: rotate(210deg);
  -webkit-transform: rotate(210deg);
  transform: rotate(210deg);
  -webkit-animation-delay: -0.5s;
  animation-delay: -0.5s;
}

.fr-spinner div.fr-spin-8 {
  -ms-transform: rotate(240deg);
  -webkit-transform: rotate(240deg);
  transform: rotate(240deg);
  -webkit-animation-delay: -0.4s;
  animation-delay: -0.4s;
}

.fr-spinner div.fr-spin-9 {
  -ms-transform: rotate(270deg);
  -webkit-transform: rotate(270deg);
  transform: rotate(270deg);
  -webkit-animation-delay: -0.3s;
  animation-delay: -0.3s;
}

.fr-spinner div.fr-spin-10 {
  -ms-transform: rotate(300deg);
  -webkit-transform: rotate(300deg);
  transform: rotate(300deg);
  -webkit-animation-delay: -0.2s;
  animation-delay: -0.2s;
}

.fr-spinner div.fr-spin-11 {
  -ms-transform: rotate(330deg);
  -webkit-transform: rotate(330deg);
  transform: rotate(330deg);
  -webkit-animation-delay: -0.1s;
  animation-delay: -0.1s;
}

.fr-spinner div.fr-spin-12 {
  -ms-transform: rotate(360deg);
  -webkit-transform: rotate(360deg);
  transform: rotate(360deg);
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
}

@-webkit-keyframes fresco-12 {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes fresco-12 {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

/* Thumbnail spinner */
.fr-thumbnail-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
  width: 40px;
  height: 40px;
}

.fr-thumbnail-spinner-spin {
  position: relative;
  float: left;
  margin: 8px 0 0 8px;
  text-indent: -9999em;
  border-top: 2px solid rgba(255, 255, 255, 0.2);
  border-right: 2px solid rgba(255, 255, 255, 0.2);
  border-bottom: 2px solid rgba(255, 255, 255, 0.2);
  border-left: 2px solid #fff;
  -webkit-animation: fr-thumbnail-spin 1.1s infinite linear;
  animation: fr-thumbnail-spin 1.1s infinite linear;
}

.fr-thumbnail-spinner-spin,
.fr-thumbnail-spinner-spin:after {
  border-radius: 50%;
  width: 24px;
  height: 24px;
}

@-webkit-keyframes fr-thumbnail-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes fr-thumbnail-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* Error */
.fr-error {
  float: left;
  position: relative;
  background-color: #ca3434;
  width: 160px;
  height: 160px;
}

.fr-error-icon {
  position: absolute;
  width: 42px;
  height: 42px;
  top: 50%;
  left: 50%;
  margin-left: -21px;
  margin-top: -21px;
}

/* skin: 'fresco' */
/* Sprite */
.fr-window-skin-fresco .fr-side-button-icon,
.fr-window-skin-fresco .fr-close-icon,
.fr-window-skin-fresco .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco .fr-error-icon {
  background-image: url("../images/fresco-sprite.svg");
}

/* fallback png sprite */
.fr-window-skin-fresco.fr-no-svg .fr-side-button-icon,
.fr-window-skin-fresco.fr-no-svg .fr-close-icon,
.fr-window-skin-fresco.fr-no-svg .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco .fr-error-icon {
  background-image: url("../images/fresco-sprite.png");
}

.fr-window-skin-fresco .fr-error-icon {
  background-position: -160px -126px;
}

.fr-window-skin-fresco .fr-content-background {
  background: #101010;
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
          box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
}

.fr-window-skin-fresco.fr-window-ui-fullclick .fr-content-background {
  -webkit-box-shadow: none;
          box-shadow: none;
}

/* thumbnail shadow */
.fr-window-skin-fresco .fr-thumbnail-wrapper {
  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
          box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
}

.fr-window-skin-fresco .fr-thumbnail-active .fr-thumbnail-wrapper {
  -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
}

/* < > */
.fr-window-skin-fresco .fr-side-button-background {
  background-color: transparent;
}

.fr-window-skin-fresco .fr-side-previous .fr-side-button-icon {
  background-position: -13px -14px;
}

.fr-window-skin-fresco .fr-side-next .fr-side-button-icon {
  background-position: -93px -14px;
}

.fr-window-skin-fresco .fr-side-previous:hover .fr-side-button-icon {
  background-position: -13px -114px;
}

.fr-window-skin-fresco .fr-side-next:hover .fr-side-button-icon {
  background-position: -93px -114px;
}

/* transition (png) */
.fr-window-skin-fresco.fr-no-svg .fr-hovering-previous .fr-side-previous .fr-side-button-icon,
.fr-window-skin-fresco.fr-no-svg.fr-mobile-touch .fr-side-previous .fr-side-button-icon {
  background-position: -13px -114px;
}

.fr-window-skin-fresco.fr-no-svg .fr-hovering-next .fr-side-next .fr-side-button-icon,
.fr-window-skin-fresco.fr-no-svg.fr-mobile-touch .fr-side-next .fr-side-button-icon {
  background-position: -93px -114px;
}

/* disabled state (png) */
.fr-window-skin-fresco.fr-no-svg .fr-side-previous.fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-no-svg .fr-hovering-previous .fr-side-previous.fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-no-svg .fr-side-previous.fr-side-disabled:hover .fr-side-button-icon {
  background-position: -13px -214px;
}

.fr-window-skin-fresco.fr-no-svg .fr-side-next.fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-no-svg .fr-hovering-next .fr-side-next.fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-no-svg .fr-side-next.fr-side-disabled:hover .fr-side-button-icon {
  background-position: -93px -214px;
}

/* transition (svg) */
.fr-window-skin-fresco.fr-svg .fr-side-previous .fr-side-button-icon {
  background-position: -13px -114px;
}

.fr-window-skin-fresco.fr-svg .fr-side-next .fr-side-button-icon {
  background-position: -93px -114px;
}

.fr-window-skin-fresco.fr-svg .fr-side-button-icon {
  opacity: .5;
}

.fr-window-skin-fresco.fr-svg .fr-side:hover .fr-side-button-icon,
.fr-window-skin-fresco.fr-svg .fr-hovering-previous .fr-side-previous .fr-side-button-icon,
.fr-window-skin-fresco.fr-svg .fr-hovering-next .fr-side-next .fr-side-button-icon {
  opacity: 1;
}

.fr-window-skin-fresco.fr-svg.fr-mobile-touch .fr-side .fr-side-button-icon {
  opacity: .8;
}

/* touch always active but at lower opacity */
/* disabled (svg) */
.fr-window-skin-fresco.fr-svg .fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-svg .fr-hovering-previous .fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-svg .fr-hovering-next .fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-svg .fr-side-disabled:hover .fr-side-button-icon,
.fr-window-skin-fresco.fr-svg.fr-mobile-touch .fr-side-disabled .fr-side-button-icon {
  opacity: .2;
}

/* TODO: make sure this works */
/* hide for ui:inside/fullclick, only for the image type */
.fr-window-skin-fresco.fr-window-ui-inside .fr-type-image .fr-side-disabled .fr-side-button-icon,
.fr-window-skin-fresco.fr-window-ui-fullclick.fr-showing-type-image .fr-side-disabled .fr-side-button-icon {
  background-image: none;
}

/* < > responsive */

/* X */
/* colors */
.fr-window-skin-fresco.fr-window-ui-outside .fr-close-background {
  background-color: #363636;
}

.fr-window-skin-fresco.fr-window-ui-outside .fr-close:hover .fr-close-background {
  background-color: #434343;
}

.fr-window-skin-fresco.fr-window-ui-inside .fr-close-background,
.fr-window-skin-fresco.fr-window-ui-fullclick .fr-close-background {
  background-color: #131313;
  filter: alpha(opacity=80);
  opacity: .8;
}

.fr-window-skin-fresco.fr-window-ui-inside .fr-close:hover .fr-close-background,
.fr-window-skin-fresco.fr-window-ui-fullclick .fr-close:hover .fr-close-background {
  background-color: #191919;
}

/* - image */
.fr-window-skin-fresco .fr-close .fr-close-icon {
  background-position: -168px -8px;
}

.fr-window-skin-fresco .fr-close:hover .fr-close-icon {
  background-position: -210px -8px;
}

/* - transition */
.fr-window-skin-fresco.fr-svg .fr-close .fr-close-icon {
  background-position: -210px -8px;
  opacity: .8;
}

.fr-window-skin-fresco .fr-close:hover .fr-close-icon {
  opacity: 1;
}

/* iOS 8.4.1 bug: when opacity changes it'll require 2 taps
   force a single opacity to fix this
*/
.fr-window-skin-fresco.fr-svg.fr-mobile-touch .fr-close .fr-close-icon,
.fr-window-skin-fresco.fr-mobile-touch .fr-close:hover .fr-close-icon {
  opacity: 1;
}

/* Thumbnails */
.fr-window-skin-fresco .fr-thumbnail-wrapper {
  border-color: transparent;
  border-style: solid;
  border-width: 0;
}

.fr-window-skin-fresco .fr-thumbnail-wrapper {
  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
          box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
}

.fr-window-skin-fresco .fr-thumbnail-active .fr-thumbnail-wrapper {
  -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
}

.fr-window-skin-fresco .fr-thumbnail-wrapper {
  -webkit-box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.3);
          box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.3);
}

.fr-window-skin-fresco .fr-thumbnail-overlay-border {
  border-width: 1px;
  border-color: rgba(255, 255, 255, 0.08);
  /* should remain rgba */
}

/* no inner border on active thumbnail */
.fr-window-skin-fresco .fr-thumbnail-active .fr-thumbnail-overlay-border,
.fr-window-skin-fresco .fr-thumbnail-active:hover .fr-thumbnail-overlay-border {
  border: 0px;
}

/* Thumbnails < > */
.fr-window-skin-fresco .fr-thumbnails-side-previous .fr-thumbnails-side-button-icon {
  background-position: -167px -49px;
}

.fr-window-skin-fresco .fr-thumbnails-side-previous:hover .fr-thumbnails-side-button-icon {
  background-position: -209px -49px;
}

.fr-window-skin-fresco .fr-thumbnails-side-next .fr-thumbnails-side-button-icon {
  background-position: -167px -91px;
}

.fr-window-skin-fresco .fr-thumbnails-side-next:hover .fr-thumbnails-side-button-icon {
  background-position: -209px -91px;
}

/* vertical ^ (up/down) adjustments */
.fr-window-skin-fresco.fr-thumbnails-vertical .fr-thumbnails-side-previous .fr-thumbnails-side-button-icon {
  background-position: -293px -49px;
}

.fr-window-skin-fresco.fr-thumbnails-vertical .fr-thumbnails-side-previous:hover .fr-thumbnails-side-button-icon {
  background-position: -335px -49px;
}

.fr-window-skin-fresco.fr-thumbnails-vertical .fr-thumbnails-side-next .fr-thumbnails-side-button-icon {
  background-position: -293px -91px;
}

.fr-window-skin-fresco.fr-thumbnails-vertical .fr-thumbnails-side-next:hover .fr-thumbnails-side-button-icon {
  background-position: -335px -91px;
}

/* Thumbnails < > transition */
.fr-window-skin-fresco.fr-svg .fr-thumbnails-side .fr-thumbnails-side-button-icon {
  -webkit-transition: opacity .2s ease-in;
  transition: opacity .2s ease-in;
  opacity: .8;
}

.fr-window-skin-fresco.fr-svg .fr-thumbnails-side-previous .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-svg .fr-thumbnails-side-previous .fr-thumbnails-side-button-disabled {
  background-position: -167px -49px;
}

.fr-window-skin-fresco.fr-svg .fr-thumbnails-side-next .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-svg .fr-thumbnails-side-next .fr-thumbnails-side-button-disabled {
  background-position: -209px -91px;
}

.fr-window-skin-fresco.fr-svg .fr-thumbnails-side:hover .fr-thumbnails-side-button-icon {
  opacity: 1;
}

/* vertical ^ (up/down) adjustments */
.fr-window-skin-fresco.fr-svg.fr-thumbnails-vertical .fr-thumbnails-side-previous .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-svg.fr-thumbnails-vertical .fr-thumbnails-side-previous .fr-thumbnails-side-button-disabled {
  background-position: -293px -49px;
}

.fr-window-skin-fresco.fr-svg.fr-thumbnails-vertical .fr-thumbnails-side-next .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-svg.fr-thumbnails-vertical .fr-thumbnails-side-next .fr-thumbnails-side-button-disabled {
  background-position: -335px -91px;
}

/* lower opacity on disabled states */
.fr-window-skin-fresco.fr-svg .fr-thumbnails-side .fr-thumbnails-side-button-disabled,
.fr-window-skin-fresco.fr-svg .fr-thumbnails-side:hover .fr-thumbnails-side-button-disabled {
  opacity: .5;
}

/* lower opacity IE < 9 using images */
.fr-window-skin-fresco.fr-no-svg .fr-thumbnails-side-previous .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-no-svg .fr-thumbnails-side-previous:hover .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon {
  background-position: -251px -49px;
}

.fr-window-skin-fresco.fr-no-svg .fr-thumbnails-side-next .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-no-svg .fr-thumbnails-side-next:hover .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon {
  background-position: -251px -91px;
}

.fr-window-skin-fresco.fr-no-svg .fr-thumbnails-side .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-background,
.fr-window-skin-fresco.fr-no-svg .fr-thumbnails-side:hover .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-background {
  filter: alpha(opacity=50);
}

/* vertical ^ (up/down) adjustments */
.fr-window-skin-fresco.fr-no-svg.fr-thumbnails-vertical .fr-thumbnails-side-previous .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-no-svg.fr-thumbnails-vertical .fr-thumbnails-side-previous:hover .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon {
  background-position: -377px -49px;
}

.fr-window-skin-fresco.fr-no-svg.fr-thumbnails-vertical .fr-thumbnails-side-next .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon,
.fr-window-skin-fresco.fr-no-svg.fr-thumbnails-vertical .fr-thumbnails-side-next:hover .fr-thumbnails-side-button-disabled .fr-thumbnails-side-button-icon {
  background-position: -377px -91px;
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}

[dir="rtl"] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* Slider */
.slick-loading .slick-list {
  background: #fff url("../images/ajax-loader.gif") center center no-repeat;
}

/* Icons */
@font-face {
  font-family: "slick";
  src: url("../fonts/slick.eot");
  src: url("../fonts/slick.eot?#iefix") format("embedded-opentype"), url("../fonts/slick.woff") format("woff"), url("../fonts/slick.ttf") format("truetype"), url("../fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal;
}

/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 126%;
  -webkit-transform: translate(0, -126%);
  -ms-transform: translate(0, -126%);
  transform: translate(0, -126%);
  padding: 0;
  border: none;
  outline: none;
  z-index: 20;
}

.slick-prev:hover, .slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
  outline: none;
  background: transparent;
  color: transparent;
}

.slick-prev:hover:before, .slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
  opacity: 1;
}

.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: 0.25;
}

.slick-prev:before,
.slick-next:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: #CE1141;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.slick-prev {
  left: -25px;
}

[dir="rtl"] .slick-prev {
  left: auto;
  right: -25px;
}

.slick-prev:before {
  content: "←";
}

[dir="rtl"] .slick-prev:before {
  content: "→";
}

.slick-next {
  right: 25px;
}

[dir="rtl"] .slick-next {
  left: -25px;
  right: auto;
}

.slick-next:before {
  content: "→";
}

[dir="rtl"] .slick-next:before {
  content: "←";
}

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  position: absolute;
  bottom: -51px;
  list-style: none;
  display: block;
  left: -30px;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}

.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}

.slick-dots li button {
  border: 0;
  background: transparent;
  display: block;
  height: 20px;
  width: 20px;
  outline: none;
  line-height: 0px;
  font-size: 0px;
  color: transparent;
  cursor: pointer;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 8px;
}

.slick-dots li button:hover, .slick-dots li button:focus {
  outline: none;
}

.slick-dots li button:hover:before, .slick-dots li button:focus:before {
  opacity: 1;
}

.slick-dots li button:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "•";
  width: 20px;
  height: 20px;
  font-family: "slick";
  font-size: 8px;
  line-height: 20px;
  text-align: center;
  color: #004B8D;
  opacity: 0.25;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.slick-dots li.slick-active button:before {
  color: #004B8D;
  opacity: 0.75;
}

/**
	 * Load layout (grid) related styles
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Layout
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type	: Layout
 * Name	: HTML
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * HTML • Settings
 * *******************************
 */
/**
 * ******************
 * HTML • Class Definitions
 * ******************
 */
html {
  height: 100%;
}

/**
 * Type	: Layout
 * Name	: Body
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * Body • Settings
 * *******************************
 */
/**
 * ******************
 * Body • Class Definitions
 * ******************
 */
/**
	 * For our body we only need to define a few simple things all revolving
	 * around typeface setup for our project.
	 */
body {
  background-color: #ffffff;
  color: #363636;
  height: 100%;
  line-height: 1.5;
  font-family: "Chronicle Text G1 A", "Chronicle Text G1 B", serif;
  font-style: normal;
  font-weight: 400;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  font-size: 16px;
  font-size: 1rem;
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

/**
 * Type	: Layout
 * Name	: Grid
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * Our Grid is a modified version of Bootstrap's grid!
 */
/**
 * ******************
 * Class Definitions
 * ******************
 */
.l-container {
  margin-left: auto;
  margin-right: auto;
}

.l-container:not([class*="l-container--max"]) {
  max-width: 100%;
}

.l-container--max--l {
  max-width: 1200px;
}

.l-container--max--s {
  max-width: 1000px;
}

.l-container--width {
  width: 85%;
}

.l-container-fluid {
  margin-right: auto;
  margin-left: auto;
}

/**
	 * Load our Atoms
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Atoms
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type	: Atom
 * Name	: Blockquote
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
  * *******************************
  * Blockquote • Settings
  * *******************************
  */
/**
  * *******************************
  * Blockquote • Class Definitions
  * *******************************
  */
blockquote {
  cursor: pointer;
  font-family: inherit;
  font-style: italic;
  font-weight: inherit;
  line-height: inherit;
  border-bottom: 5px solid transparent;
  border-radius: 0px !important;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  font-size: 24px;
  font-size: 1.52087rem;
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 16px;
  margin-bottom: 16px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 32px;
  padding-left: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 48px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

blockquote:before {
  background-image: url("data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' fill='#1997F0' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M11,1A10,10,0,1,0,21,11,10,10,0,0,0,11,1Zm5.05,8a6.8,6.8,0,0,1-10.47,6,4.79,4.79,0,0,0,3.54-1,2.39,2.39,0,0,1-2.23-1.66,2.45,2.45,0,0,0,1.08,0A2.39,2.39,0,0,1,6.05,10a2.33,2.33,0,0,0,1.08.3,2.41,2.41,0,0,1-.74-3.2,6.81,6.81,0,0,0,4.94,2.51,2.4,2.4,0,0,1,4.08-2.19,4.52,4.52,0,0,0,1.52-.58,2.42,2.42,0,0,1-1.06,1.33,4.86,4.86,0,0,0,1.38-.38A4.88,4.88,0,0,1,16.05,9Z'/%3E%3C/svg%3E");
  background-position: 98% 93%;
  background-size: 25px 25px;
  background-repeat: no-repeat;
}

blockquote:after {
  color: #808080;
  right: 46px;
  content: "Tweet This";
  display: block;
  position: absolute;
  bottom: 9px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  font-size: 16px;
  font-size: 1rem;
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

/**
 * Type	: Atom
 * Name	: Button
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * Button • Settings
 * *******************************
 */
/**
	 * Variant: primary
	 */
/**
	 * This is one of the only times padding should be
	 * defined outside of the spacing config file. We have custom paddings
	 * here to properly adjust padding for line height and to make
	 * sure our buttons look perfect!
	 */
/**
	 * Variant: secondary
	 */
/**
	 * This is one of the only times padding should be
	 * defined outside of the spacing config file. We have custom paddings
	 * here to properly adjust padding for line height and to make
	 * sure our buttons look perfect!
	 */
/**
 * ***************************
 * Button • Class Definitions
 * ***************************
 */
/**
	 * All Buttons
	 */
.a-btn {
  cursor: pointer;
  display: inline-block;
  overflow-wrap: break-word;
  text-transform: uppercase;
  font-family: "Champion Heavywt A", "Champion Heavywt B", sans-serif;
  font-style: normal;
  font-weight: 400;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

/**
	 * Variant	: primary
	 */
.a-btn--primary {
  color: #ffffff;
  letter-spacing: 5px;
  padding: 18px 32px 16px 72px;
  position: relative;
  /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
  background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='white'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
  background-position: 20px -webkit-calc( 50% + 0px);
  background-position: 20px calc( 50% + 0px);
  background-repeat: no-repeat;
  background-size: 32px 32px;
  border: 2px solid #ffffff;
  border-radius: 0px !important;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  font-size: 16px;
  font-size: 1rem;
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-btn--primary:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.a-btn--primary:active {
  background-color: rgba(255, 255, 255, 0.2);
}

/**
	 * Variant	: secondary
	 */
.a-btn--secondary {
  background: #CE1141;
  color: #ffffff;
  letter-spacing: 2px;
  padding: 10px 18px 7px 18px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 16px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  font-size: 13px;
  font-size: 0.8rem;
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-btn--secondary:hover {
  background: #b60f3a;
}

.a-btn--secondary:active {
  background: #9f0d32;
}

.a-btn--secondary--theme--marianist {
  background-color: #8C5BCD;
  border: 2px solid #8C5BCD;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--marianist:hover, .a-btn--secondary--theme--marianist:active {
  color: #8C5BCD;
  background-color: #fff;
}

.a-btn--secondary--theme--parting {
  background-color: #5C61FF;
  border: 2px solid #5C61FF;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--parting:hover, .a-btn--secondary--theme--parting:active {
  color: #5C61FF;
  background-color: #fff;
}

.a-btn--secondary--theme--presidents {
  background-color: #B4106C;
  border: 2px solid #B4106C;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--presidents:hover, .a-btn--secondary--theme--presidents:active {
  color: #B4106C;
  background-color: #fff;
}

.a-btn--secondary--theme--sports {
  background-color: #832B83;
  border: 2px solid #832B83;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--sports:hover, .a-btn--secondary--theme--sports:active {
  color: #832B83;
  background-color: #fff;
}

.a-btn--secondary--theme--perceptions {
  background-color: #7F2C58;
  border: 2px solid #7F2C58;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--perceptions:hover, .a-btn--secondary--theme--perceptions:active {
  color: #7F2C58;
  background-color: #fff;
}

.a-btn--secondary--theme--alumni {
  background-color: #D82B53;
  border: 2px solid #D82B53;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--alumni:hover, .a-btn--secondary--theme--alumni:active {
  color: #D82B53;
  background-color: #fff;
}

.a-btn--secondary--theme--chapter {
  background-color: #D24812;
  border: 2px solid #D24812;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--chapter:hover, .a-btn--secondary--theme--chapter:active {
  color: #D24812;
  background-color: #fff;
}

.a-btn--secondary--theme--expert {
  background-color: #F97912;
  border: 2px solid #F97912;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--expert:hover, .a-btn--secondary--theme--expert:active {
  color: #F97912;
  background-color: #fff;
}

.a-btn--secondary--theme--hidden {
  background-color: #84BD94;
  border: 2px solid #84BD94;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--hidden:hover, .a-btn--secondary--theme--hidden:active {
  color: #84BD94;
  background-color: #fff;
}

.a-btn--secondary--theme--good-works {
  background-color: #A8CD56;
  border: 2px solid #A8CD56;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--good-works:hover, .a-btn--secondary--theme--good-works:active {
  color: #A8CD56;
  background-color: #fff;
}

.a-btn--secondary--theme--bookshelf {
  background-color: #00D8AE;
  border: 2px solid #00D8AE;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--bookshelf:hover, .a-btn--secondary--theme--bookshelf:active {
  color: #00D8AE;
  background-color: #fff;
}

.a-btn--secondary--theme--no-tag {
  background-color: #6D748D;
  border: 2px solid #6D748D;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-btn--secondary--theme--no-tag:hover, .a-btn--secondary--theme--no-tag:active {
  color: #6D748D;
  background-color: #fff;
}

/**
 * Type	: Atom
 * Name	: Dropdown
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Dropdown • Settings
 * *************************************
 */
/**
	 * We are directly embedding our caret SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * The color is interpolated into the embed from the variables declared above.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
/**
 * ************************************
 * Dropdown • Class Definitions
 * ************************************
 */
/**
	 * Dropdown • Base
	 */
.a-dropdown {
  border-radius: 0px;
  border: none;
  cursor: pointer;
  -moz-appearance: none;
  -webkit-appearance: none;
  text-align: left;
  /**
		 * We don't typically define font outside of the type-specific scss files,
		 * but in this case <select> isn't picking up our default font styles, so
		 * we will define them here.
		 */
  font-family: "Chronicle Text G1 A", "Chronicle Text G1 B", serif;
  font-style: normal;
  font-weight: 400;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  font-size: 16px;
  font-size: 1rem;
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-left: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 8px;
  padding-bottom: 8px;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-dropdown:focus {
  outline: none;
}

.a-dropdown:not(.a-dropdown--fancy) {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 32px;
}

/**
	 * Dropdown Variation • Fancy
	 */
.a-dropdown--fancy {
  background-repeat: no-repeat;
  background-size: 16px 16px;
  background-position: 90% center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 96px;
}

/**
	 * Dropdown Theme • Light
	 */
.m-form.m-form--fields--light .a-dropdown {
  background-color: #ffffff;
  /**
		 * We need to specify our dropdown icon for categories
		 * specifically for the "light" theme.
		 */
}

.m-form.m-form--fields--light .a-dropdown.a-dropdown--fancy {
  background-image: url("data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' fill='%23{$dropdown-arrow--light--color}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Ctitle%3Earrow-s%3C/title%3E%3Cpolygon points='2.83 4.78 1.04 6.44 11.04 17.2 21.04 6.44 19.25 4.78 11.04 13.61 2.83 4.78'/%3E%3C/svg%3E");
}

.m-form.m-form--fields--light .a-dropdown:hover {
  background-color: #E5E5E5;
}

/**
	 * Dropdown Theme • Dark
	 */
.m-form.m-form--fields--dark .a-dropdown {
  background-color: #23296f;
  color: #ffffff;
  /**
		 * We need to specify our dropdown icon for categories
		 * specifically for the "dark" theme.
		 */
}

.m-form.m-form--fields--dark .a-dropdown.a-dropdown--fancy {
  background-image: url("data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' fill='%23{$dropdown-arrow--dark--color}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Ctitle%3Earrow-s%3C/title%3E%3Cpolygon points='2.83 4.78 1.04 6.44 11.04 17.2 21.04 6.44 19.25 4.78 11.04 13.61 2.83 4.78'/%3E%3C/svg%3E");
}

.m-form.m-form--fields--dark .a-dropdown:hover {
  background-color: #1d225b;
}

/**
 * Type	: Atom
 * Name	: Form Control
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Form Control • Settings
 * *************************************
 */
/**
 * ************************************
 * Form Control • Class Definitions
 * ************************************
 */
/**
	 * Form control should be added to all form input fields to
	 * control their styling from one central location.
	 */
.a-form-control {
  border: none;
  font-family: inherit;
  font-size: inherit;
  width: 100%;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.a-form-control:focus {
  outline: none;
}

.a-form-control:not(.a-form-control--large) {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 16px;
  padding-left: 16px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 8px;
  padding-bottom: 8px;
}

.a-form-control--large {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 16px;
}

textarea.a-form-control {
  height: 100%;
  min-height: 150px;
}

/**
 * Type	: Atom
 * Name	: Icon
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * Icon • Settings
 * *******************************
 */
/**
 * *************************
 * Icon • Class Definitions
 * *************************
 */
.a-icon {
  fill: #000000;
  shape-rendering: geometricPrecision;
}

.a-icon--inverted {
  fill: #ffffff;
  shape-rendering: geometricPrecision;
}

.a-icon--l {
  height: 64px;
  width: 64px;
}

.a-icon--m {
  height: 32px;
  width: 32px;
}

.a-icon--s {
  height: 20px;
  width: 20px;
}

.a-icon--xs {
  height: 13px;
  width: 13px;
}

/**
	 * Specifically used for the UD Mag Logo in the header. Should not be used anywhere else.
	 */
.a-icon--header-logo {
  height: 84px;
  width: 293px;
}

/**
 * Type	: Atom
 * Name	: Image
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * **************************
 * Image • Class Definitions
 * **************************
 */
.a-img--has-shadow {
  -webkit-box-shadow: 0px 0px 7px 1px rgba(77, 77, 77, 0.5);
          box-shadow: 0px 0px 7px 1px rgba(77, 77, 77, 0.5);
}

/**
 * Type	: Atom
 * Name	: Label
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * **************************
 * Label • Class Definitions
 * **************************
 */
/**
 * Type	: Atom
 * Name	: Link
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * Link • Settings
 * *******************************
 */
/**
* *************************
* Link • Class Definitions
* *************************
*/
/**
	 * Standard text hyperlinks
	 *
	 * We will need to add a class to use these throughout the site, but on post pages
	 * (Mag Article, My Old House, etc), classless hyperlinks will pick up this 
	 * styling automagically as long as they are not a button!
	 */
.a-link,
.o-post__container a:not(.a-btn), .o-collection--content__item a:not(.a-btn) {
  color: #CE1141;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 2px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
  border-bottom: 2px solid transparent;
  border-radius: 0px !important;
}

.a-link:hover,
.o-post__container a:not(.a-btn):hover, .o-collection--content__item a:not(.a-btn):hover {
  border-color: #b60f3a;
  color: #b60f3a;
}

/**
 * Type	: Atom
 * Name	: Logo
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * Logo • Settings
 * *******************************
 */
/**
 * *************************
 * Logo • Class Definitions
 * *************************
 */
.a-logo {
  max-width: 250px;
}

/**
 * Type : Atom
 * Name : Progress
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * Progress • Settings
 * *******************************
 */
/**
 * *****************************************
 * Progress • Class Definitions
 *
 * Note: The progress bar will always appear
 * inside of `.m-action-bar`, so the the top
 * and bottom positioning will be handled in the
 * `.m-action-bar` partial file
 * *****************************************
 */
.a-progress {
  height: 5px;
  left: 0;
  position: absolute;
  width: 100%;
  z-index: 21;
  /* Reset the appearance */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  /**
     * Fixes for specific browsers
     */
  border: none;
  background-color: transparent;
  color: #CE1141;
}

.a-progress::-webkit-progress-bar {
  background: transparent;
}

.a-progress::-webkit-progress-value {
  background: -webkit-gradient(linear, left top, right top, from(#CE1141), to(#004B8D));
  background: -webkit-linear-gradient(left, #CE1141, #004B8D);
  background: linear-gradient(to right, #CE1141, #004B8D);
}

.a-progress::-moz-progress-bar {
  background: linear-gradient(to right, #CE1141, #004B8D);
}

.a-progress::-ms-fill {
  background: linear-gradient(to right, #CE1141, #004B8D);
}

/**
 * Type	: Atom
 * Name	: Body Copy
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Body Copy • Settings
 * *************************************
 */
/**
 * ************************************
 * Body Copy • Class Definitions
 * ************************************
 */
[class*="a-body"] {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.a-body--large,
.o-post__content p {
  line-height: 1.8;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  font-size: 18px;
  font-size: 1.15rem;
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-body {
  font-size: inherit;
}

.a-body--small {
  letter-spacing: 0.5px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  font-size: 13px;
  font-size: 0.8rem;
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

/**
 * Type	: Atom
 * Name	: Heading
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
	 * All Headings
	 */
/**
	 * ******************************************
	 * Headings • Settings
	 * ******************************************
	 */
/**
	 * ***************************************************
	 * Heading • Champion Heavyweight • Class Definitions
	 * ***************************************************
	 */
[class*="a-heading--heavy"] {
  text-transform: uppercase;
  font-family: "Champion Heavywt A", "Champion Heavywt B", sans-serif;
  font-style: normal;
  font-weight: 400;
}

.a-heading--heavy--xl {
  letter-spacing: 10px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  font-size: 32px;
  font-size: 2.01136rem;
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--heavy--l {
  letter-spacing: 10px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  font-size: 24px;
  font-size: 1.52087rem;
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--heavy--m {
  letter-spacing: 5px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  font-size: 16px;
  font-size: 1rem;
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--heavy--s {
  letter-spacing: 3px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  font-size: 13px;
  font-size: 0.8rem;
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--heavy--xs {
  letter-spacing: 2px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  font-size: 8px;
  font-size: 0.512rem;
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

/**
	 * ***************************************************
	 * Heading • Champion Bantam • Class Definitions
	 * ***************************************************
	 */
[class*="a-heading--bantam"],
.o-post__content h2 {
  text-transform: uppercase;
  font-family: "Champion Bantamwt A", "Champion Bantamwt B", sans-serif;
  font-style: normal;
  font-weight: 400;
}

.a-heading--bantam--xl {
  letter-spacing: 3px;
  line-height: 1.1;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  font-size: 43px;
  font-size: 2.66002rem;
  /**
	 * XXXXL Heading
	 */
}

.a-heading--bantam--l {
  letter-spacing: 3px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  font-size: 37px;
  font-size: 2.31306rem;
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--bantam--m,
.o-post__content h2 {
  letter-spacing: 3px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  font-size: 28px;
  font-size: 1.74901rem;
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

/**
	 * ***************************************************
	 * Heading • Champion Light • Class Definitions
	 * ***************************************************
	 */
[class*="a-heading--light"] {
  font-family: "Champion Lightwt A", "Champion Lightwt B", sans-serif;
  font-style: normal;
  font-weight: 400;
}

.a-heading--light--xxl {
  letter-spacing: 3px;
  line-height: 1.2;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  font-size: 37px;
  font-size: 2.31306rem;
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--light--xl {
  letter-spacing: 3px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  font-size: 28px;
  font-size: 1.74901rem;
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--light--l {
  letter-spacing: 3px;
  text-transform: uppercase;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  font-size: 21px;
  font-size: 1.3225rem;
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--light--m {
  letter-spacing: 1px;
  line-height: 1.2;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  font-size: 18px;
  font-size: 1.15rem;
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

.a-heading--light--s {
  letter-spacing: 1px;
  text-transform: uppercase;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  font-size: 16px;
  font-size: 1rem;
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

/**
	 * Load our Molecules
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Molecules
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type : Molecules
 * Name : Background Video
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *******************************
 * Background Video • Settings
 * *******************************
 */
/**
 * *****************************************
 * Background Video • Class Definitions
 * *****************************************
 */
/*
 * Autoplay does not currently work across the board
 * on mobile devices. Because of this, hide the video 
 * container in these cases.
 * 
 * For non-mobile devices (max-width: 1040px currently 'l'),
 * we should remove the background-image so it doesn't show
 * before the video loads.
 * 
 * IE / Edge Fixes:
 *  - `*-width` instead of `*-device-width` as it misbehaves
 *  - `position: absolute` for positional values to be used
 */
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.m-bg-video__container {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.m-bg-video,
.m-bg-video iframe {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

/**
 * Type	: Molecule
 * Name	: My Old House Card 
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * My Old House Card • Settings
 * *************************************
 */
/**
 * ************************************
 * My Old House Card • Class Definitions
 * ************************************
 */
.m-card--my-old-house {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 64px;
  padding-bottom: 64px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 32px;
  padding-left: 32px;
}

.m-card--my-old-house__bg {
  background-color: rgba(0, 0, 0, 0.5);
  display: block;
  height: 100%;
  position: absolute;
  width: 100%;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.m-card--my-old-house:hover .m-card--my-old-house__bg {
  background-color: rgba(7, 132, 147, 0.7);
}

/**
 * Type	: Molecule
 * Name	: Card
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Card • Settings
 * *************************************
 */
/**
 * ************************************
 * Card • Class Definitions
 * ************************************
 */
.m-card--standard {
  background-color: #EDEDED;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 0 auto;
  max-width: 400px;
  overflow: hidden;
  position: relative;
}

.m-card--standard:before, .m-card--standard:after {
  content: " ";
  display: table;
}

.m-card--standard:after {
  clear: both;
}

.m-card--standard a,
.m-card--standard .m-title-group__pre,
.m-card--standard .m-title-group__title {
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

/**
	 * Card • Wrappers
	 */
.m-card--standard > .m-card__media {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  height: auto;
  width: 100%;
  opacity: 1;
  filter: alpha(opacity=100);
}

.m-card--standard > .m-card__media:hover {
  opacity: 0.8;
  filter: alpha(opacity=80);
}

.m-card--standard > .m-card__content {
  background-color: #EDEDED;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 100%;
          flex: 0 1 100%;
  height: 200px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
  z-index: 10;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 24px;
  padding-bottom: 24px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 24px;
  padding-left: 24px;
}

.m-card--standard > .m-card__link {
  cursor: pointer;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50px;
          flex: 0 0 50px;
  /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
  background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='white'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
  background-position: 50% -webkit-calc( 50% + 0px);
  background-position: 50% calc( 50% + 0px);
  background-repeat: no-repeat;
  background-size: 32px 32px;
}

/**
	 * Card • Inner Content
	 */
.m-card--standard .m-title-group {
  max-width: 400px;
}

.m-card--standard .m-title-group__title {
  color: #171717;
  line-height: 1.5;
}

.m-card--standard .m-title-group__title:hover {
  color: #4D4D4D;
}

.m-card--standard .m-title-group__sub,
.m-card--standard .m-meta__item {
  color: #696969;
}

.m-card--standard .m-meta__icon > svg {
  fill: #4D4D4D;
}

.m-card--standard .m-card__img {
  display: block;
  left: 0%;
  position: relative;
  width: 100%;
  z-index: 1;
}

/**
	 * Card • Themes
	 */
/**
		 * We are using a custom mixin to generate different card theme classes automagically.
		 * These will automate card coloring based on the card category.
		 */
.m-card--theme--feature .m-card__link {
  background-color: #006EA1;
}

.m-card--theme--feature .m-card__link:hover {
  background-color: #005d88;
}

.m-card--theme--feature .m-meta__category,
.m-card--theme--feature .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--feature .m-meta__category:hover,
.m-card--theme--feature .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--snapshot .m-card__link {
  background-color: #4D6A90;
}

.m-card--theme--snapshot .m-card__link:hover {
  background-color: #445e7f;
}

.m-card--theme--snapshot .m-meta__category,
.m-card--theme--snapshot .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--snapshot .m-meta__category:hover,
.m-card--theme--snapshot .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--scribbling .m-card__link {
  background-color: #7FBEDA;
}

.m-card--theme--scribbling .m-card__link:hover {
  background-color: #6bb4d4;
}

.m-card--theme--scribbling .m-meta__category,
.m-card--theme--scribbling .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--scribbling .m-meta__category:hover,
.m-card--theme--scribbling .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--my-old-house .m-card__link {
  background-color: #078493;
}

.m-card--theme--my-old-house .m-card__link:hover {
  background-color: #066e7b;
}

.m-card--theme--my-old-house .m-meta__category,
.m-card--theme--my-old-house .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--my-old-house .m-meta__category:hover,
.m-card--theme--my-old-house .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--marianist .m-card__link {
  background-color: #8C5BCD;
}

.m-card--theme--marianist .m-card__link:hover {
  background-color: #7e47c7;
}

.m-card--theme--marianist .m-meta__category,
.m-card--theme--marianist .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--marianist .m-meta__category:hover,
.m-card--theme--marianist .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--parting .m-card__link {
  background-color: #5C61FF;
}

.m-card--theme--parting .m-card__link:hover {
  background-color: #4348ff;
}

.m-card--theme--parting .m-meta__category,
.m-card--theme--parting .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--parting .m-meta__category:hover,
.m-card--theme--parting .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--presidents .m-card__link {
  background-color: #B4106C;
}

.m-card--theme--presidents .m-card__link:hover {
  background-color: #9d0e5e;
}

.m-card--theme--presidents .m-meta__category,
.m-card--theme--presidents .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--presidents .m-meta__category:hover,
.m-card--theme--presidents .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--sports .m-card__link {
  background-color: #832B83;
}

.m-card--theme--sports .m-card__link:hover {
  background-color: #702570;
}

.m-card--theme--sports .m-meta__category,
.m-card--theme--sports .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--sports .m-meta__category:hover,
.m-card--theme--sports .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--perceptions .m-card__link {
  background-color: #7F2C58;
}

.m-card--theme--perceptions .m-card__link:hover {
  background-color: #6c254b;
}

.m-card--theme--perceptions .m-meta__category,
.m-card--theme--perceptions .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--perceptions .m-meta__category:hover,
.m-card--theme--perceptions .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--alumni .m-card__link {
  background-color: #D82B53;
}

.m-card--theme--alumni .m-card__link:hover {
  background-color: #c52449;
}

.m-card--theme--alumni .m-meta__category,
.m-card--theme--alumni .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--alumni .m-meta__category:hover,
.m-card--theme--alumni .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--chapter .m-card__link {
  background-color: #D24812;
}

.m-card--theme--chapter .m-card__link:hover {
  background-color: #bb4010;
}

.m-card--theme--chapter .m-meta__category,
.m-card--theme--chapter .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--chapter .m-meta__category:hover,
.m-card--theme--chapter .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--expert .m-card__link {
  background-color: #F97912;
}

.m-card--theme--expert .m-card__link:hover {
  background-color: #ec6c06;
}

.m-card--theme--expert .m-meta__category,
.m-card--theme--expert .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--expert .m-meta__category:hover,
.m-card--theme--expert .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--hidden .m-card__link {
  background-color: #84BD94;
}

.m-card--theme--hidden .m-card__link:hover {
  background-color: #73b486;
}

.m-card--theme--hidden .m-meta__category,
.m-card--theme--hidden .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--hidden .m-meta__category:hover,
.m-card--theme--hidden .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--good-works .m-card__link {
  background-color: #A8CD56;
}

.m-card--theme--good-works .m-card__link:hover {
  background-color: #9ec742;
}

.m-card--theme--good-works .m-meta__category,
.m-card--theme--good-works .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--good-works .m-meta__category:hover,
.m-card--theme--good-works .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--bookshelf .m-card__link {
  background-color: #00D8AE;
}

.m-card--theme--bookshelf .m-card__link:hover {
  background-color: #00bf99;
}

.m-card--theme--bookshelf .m-meta__category,
.m-card--theme--bookshelf .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--bookshelf .m-meta__category:hover,
.m-card--theme--bookshelf .m-title-group__pre:hover {
  color: #363636;
}

.m-card--theme--no-tag .m-card__link {
  background-color: #6D748D;
}

.m-card--theme--no-tag .m-card__link:hover {
  background-color: #62687f;
}

.m-card--theme--no-tag .m-meta__category,
.m-card--theme--no-tag .m-title-group__pre {
  color: #4D4D4D;
}

.m-card--theme--no-tag .m-meta__category:hover,
.m-card--theme--no-tag .m-title-group__pre:hover {
  color: #363636;
}

/**
 * Type	: Molecule
 * Name	: CTA
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * CTA • Settings
 * *************************************
 */
/**
 * ************************************
 * CTA • Class Definitions
 * ************************************
 */
.m-cta {
  background-color: #004B8D;
  background-image: url("../images/background-bluediagonals.png");
  background-size: unset;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 64px;
  padding-bottom: 64px;
}

.m-cta.--alt {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 32px;
  padding-bottom: 32px;
}

.m-cta__container {
  display: block;
  max-width: 1200px;
}

.m-cta__column:nth-of-type(1) {
  text-align: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 32px;
}

.m-cta__column:nth-of-type(2) {
  text-align: center;
}

.m-cta__title {
  color: #00FFFF;
  margin-left: auto;
  margin-right: auto;
  max-width: 700px;
}

/**
 * Type	: Molecule
 * Name	: Footer CTA
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Footer CTA • Settings
 * *************************************
 */
/**
 * ************************************
 * Footer CTA • Class Definitions
 * ************************************
 */
.m-cta--footer {
  display: block;
  width: 100%;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 24px;
}

.m-cta--footer__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/**
 * Footer CTA • List Item
 */
.m-cta--footer__item {
  background-color: rgba(0, 0, 0, 0.6);
  -webkit-box-flex: 1;
      -ms-flex: auto;
          flex: auto;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 16px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.m-cta--footer__item:hover {
  opacity: 1;
  filter: alpha(opacity=100);
}

.m-cta--footer__item:not(:first-child) {
  /**
	 * Here we are just setting a different x position for the arrow
	 * on different device sizes
	 */
  /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
  background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='white'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
  background-position: 95% -webkit-calc( 50% + 0px);
  background-position: 95% calc( 50% + 0px);
  background-repeat: no-repeat;
  background-size: 32px 32px;
}

.m-cta--footer__item:first-child {
  /**
 	 * Here we are just setting a different x position for the arrow
 	 * on different device sizes
 	 */
  /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
  background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='white'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
  background-position: 95% -webkit-calc( 50% + 0px);
  background-position: 95% calc( 50% + 0px);
  background-repeat: no-repeat;
  background-size: 32px 32px;
}

/**
  * Footer CTA • Link
  */
.m-cta--footer__link {
  color: #ffffff;
  display: block;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 24px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 24px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-left: 24px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.m-cta--footer__link:hover {
  color: #00FFFF;
}

/**
 * Type	: Molecule
 * Name	: Embed
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Embed • Settings
 * *************************************
 */
/**
 * ************************************
 * Embed • Class Definitions
 * ************************************
 */
.m-embed {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
}

.m-embed iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/**
 * Type	: Molecule
 * Name	: Footnote
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Footnote • Settings
 * *************************************
 */
/**
 * ************************************
 * Footnote • Class Definitions
 * ************************************
 */
.m-footnote {
  background-color: #EDEDED;
  display: block;
  width: 100%;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 64px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 32px;
}

.m-footnote p {
  margin-bottom: 0;
}

/**
 * Type	: Molecule
 * Name	: Form
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Form • Settings
 * *************************************
 */
/**
 * ************************************
 * Form • Class Definitions
 * ************************************
 */
.m-form--fields--light .a-form-control {
  background-color: #ffffff;
  -webkit-appearance: none;
  border-radius: 0;
}

.m-form--fields--light .a-form-control:focus {
  background-color: #f3f3f3;
}

.m-form--fields--dark .a-form-control {
  background-color: #171B48;
  color: #ffffff;
  border: 1px solid #00FFFF;
  -webkit-appearance: none;
  border-radius: 0;
}

.m-form--fields--dark .a-form-control:focus {
  background-color: #171B48;
}

.m-form--label--light label {
  color: #ffffff;
}

.m-form__group {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 32px;
}

.m-form__group .a-checkbox input,
.m-form__group .a-radio input {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 8px;
}

/**
 * Type	: Molecule
 * Name	: Icon Group
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Icon Group • Settings
 * *************************************
 */
/**
 * ************************************
 * Icon Group • Class Definitions
 * ************************************
 */
.m-icon-group .m-icon-group__icon:not(:last-child) {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 4px;
}

.m-icon-group__icon .a-icon {
  border-radius: 100%;
  fill: #00FFFF;
  -webkit-transition: fill 0.15s ease;
  transition: fill 0.15s ease;
}

/**
	 * Color
	 */
.m-icon-group:not(.m-icon-group--action) .a-icon {
  fill: #00FFFF;
}

.m-icon-group:not(.m-icon-group--action) .m-icon-group__icon:hover .a-icon {
  fill: #00cccc;
}

/**
	 * Variation • Action
	 */
.m-icon-group--action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.m-icon-group--action .m-icon-group__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 8px;
  padding-bottom: 8px;
}

.m-icon-group--action .a-icon {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 24px;
}

.m-icon-group--action .m-icon-group__icon .a-icon {
  fill: #CE1141;
}

.m-icon-group--action .m-icon-group__icon:hover .a-icon {
  fill: #b60f3a;
}

/**
	 * Variation • With Text
	 */
.m-icon-group__text {
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.m-icon-group__icon:hover .m-icon-group__text {
  -webkit-transform: translateX(2px);
      -ms-transform: translateX(2px);
          transform: translateX(2px);
}

.m-image-group {
  display: inline-block;
}

a.m-image-group .m-image-group__img,
a.m-image-group .m-image-group__title {
  text-align: center;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

a.m-image-group .m-image-group__img {
  -webkit-box-shadow: 0px 0px 7px 1px rgba(77, 77, 77, 0.5);
          box-shadow: 0px 0px 7px 1px rgba(77, 77, 77, 0.5);
}

a.m-image-group:hover .m-image-group__img,
a.m-image-group:hover .m-image-group__title {
  opacity: 0.85;
  filter: alpha(opacity=85);
}

.m-image-group__img {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 16px;
}

/**
 * Type	: Molecule
 * Name	: Inline Group
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Inline Group • Settings
 * *************************************
 */
/**
 * ************************************
 * Inline Group • Class Definitions
 * ************************************
 */
/**
	 * Inline Group • Base
	 */
.m-inline-group {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  text-align: center;
}

.m-inline-group,
.m-inline-group__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.m-inline-group__group {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 16px;
}

/**
	 * Each sub group item and each child of a sub-group item
	 * needs right margin, EXCEPT for the last item in each of those groups.
	 */
.m-inline-group__group:not(:last-child),
.m-inline-group__group > *:not(:last-child) {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 16px;
}

/**
 * Type	: Molecule
 * Name	: Island
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Island • Settings
 * *************************************
 */
/**
 * ************************************
 * Island • Class Definitions
 * ************************************
 */
.m-island {
  text-align: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 128px;
  padding-bottom: 128px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 32px;
  padding-left: 32px;
}

.m-island:not(.m-island--has-bg) {
  color: #ffffff;
}

.m-island.m-island--has-bg:before {
  background-color: #ffffff;
  opacity: 0.8;
  filter: alpha(opacity=80);
}

.m-island--blue {
  background-color: #004B8D;
}

.m-island--navy {
  background-color: #171B48;
}

/**
 * Type	: Molecule
 * Name	: Legal Bar
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Legal Bar • Settings
 * *************************************
 */
/**
 * ************************************
 * Legal Bar • Class Definitions
 * ************************************
 */
.m-legal-bar {
  background-color: #171B48;
  text-align: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 32px;
  padding-bottom: 32px;
}

.m-legal-bar__container {
  max-width: 1200px;
}

/**
 * Type	: Molecule
 * Name	: Like
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Like • Settings
 * *************************************
 */
/**
 * ************************************
 * Like • Class Definitions
 * ************************************
 */
/**
	 * Like • Base
	 */
.m-like {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 8px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

/**
	 * Like • Unliked
	 */
.m-like:not(.m-like--is-liked) {
  cursor: pointer;
}

.m-like__count {
  color: #B0B0B0;
}

.m-like .a-icon {
  fill: #CCCCCC;
  will-change: transform;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 8px;
}

/**
	 * Like • Liked
	 */
.m-like--is-liked .a-icon {
  fill: #F80228;
}

.m-like--is-liked .m-like__count {
  color: #808080;
}

/**
	 * Like • Animation
	 */
.m-like.--is-animating .a-icon {
  -webkit-animation: heartbeat;
          animation: heartbeat;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
}

@-webkit-keyframes heartbeat {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  20% {
    -webkit-transform: scale(0.75);
            transform: scale(0.75);
  }
  50% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
  }
  100% {
    fill: #F80228;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes heartbeat {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  20% {
    -webkit-transform: scale(0.75);
            transform: scale(0.75);
  }
  50% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
  }
  100% {
    fill: #F80228;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

.m-like.--is-animating .m-like__count {
  color: #808080;
  -webkit-transition: color 0.4s ease;
  transition: color 0.4s ease;
}

/**
 * Type	: Molecule
 * Name	: Link List
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Link List • Settings
 * *************************************
 */
/**
 * ************************************
 * Link List • Class Definitions
 * ************************************
 */
/**
	 * Globally applied
	 */
.m-link-list__item__anchor {
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.m-link-list__item .a-icon {
  position: relative;
  top: 2px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 8px;
}

/**
	 * Variation • Inline
	 */
.m-link-list--inline .m-link-list__item {
  display: block;
}

.m-link-list--inline .m-link-list__item__anchor {
  display: block;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 24px;
  padding-left: 24px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  padding-bottom: 16px;
}

/**
	 * Variation • Stacked
	 */
.m-link-list--stacked .m-link-list__item {
  display: block;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 4px;
}

.m-link-list--stacked .m-link-list__item__anchor {
  display: inline-block;
}

/**
	 * Variation • Side by Side
	 */
.m-link-list--side-by-side {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  max-width: 300px;
}

.m-link-list--side-by-side .m-link-list__item {
  -webkit-box-flex: 1;
          flex: 1 1 50%;
  -ms-flex: 0 0 50%;
  /* needed for IE 11 */
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 8px;
}

/**
	 * Color Theme • Light
	 */
.m-link-list--light .m-link-list__item__anchor {
  color: #00FFFF;
}

.m-link-list--light .m-link-list__item__anchor:hover {
  color: #00cccc;
}

/**
 * Type	: Molecule
 * Name	: Menu
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Menu • Settings
 * *************************************
 */
/**
 * ************************************
 * Menu • Class Definitions
 * ************************************
 */
.m-menu {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

/**
	 * Variation • Primary
	 */
.m-menu--primary .m-menu__item__anchor {
  padding-bottom: 48px;
  position: relative;
  color: #363636;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 16px;
  padding-left: 16px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 32px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.m-menu--primary .m-menu__item__anchor:hover {
  color: #004B8D;
}

/**
	 * Variation • Secondary
	 */
.m-menu--secondary .m-menu__item__anchor {
  color: #ffffff;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 8px;
}

.m-menu--secondary .m-menu__item__anchor:hover {
  color: #00FFFF;
}

.m-menu--secondary .m-menu__item {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 16px;
  margin-left: 16px;
}

/**
 * Type	: Molecule
 * Name	: Meta
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Meta • Settings
 * *************************************
 */
/**
 * ************************************
 * Meta • Class Definitions
 * ************************************
 */
/**
	 * Variation • Inline
	 */
.m-meta--inline .m-meta__item:not(:last-child) {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 4px;
}

.m-meta--inline .m-meta__icon {
  position: relative;
  top: 1px;
}

/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Mobile Nav
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
@font-face {
  font-family: 'linecons';
  src: url("../fonts/linecons.eot");
  src: url("../fonts/linecons.eot?#iefix") format("embedded-opentype"), url("../fonts/linecons.woff") format("woff"), url("../fonts/linecons.ttf") format("truetype"), url("../fonts/linecons.svg#linecons") format("svg");
  font-weight: normal;
  font-style: normal;
}

.icon:before {
  font-family: 'linecons';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  display: inline-block;
  margin-right: 0.6em;
  -webkit-font-smoothing: antialiased;
}

.icon-arrow-left:before {
  content: "\e032";
}

.icon-arrow-left-2:before {
  content: "\e034";
}

.icon-arrow-left-3:before {
  content: "\e036";
}

.icon-arrow-left-4:before {
  content: "\e038";
}

.icon-arrow-right:before {
  content: "\e035";
}

.icon-arrow-right-2:before {
  content: "\e037";
}

.icon-arrow-right-3:before {
  content: "\e039";
}

.icon-arrow-right-4:before {
  content: "\e033";
}

.icon-world:before {
  content: "\e02f";
}

/**
 * Type	: Organism
 * Name	: Mobile Navigation
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Mobile Navigation • Settings
 * *************************************
 */
/**
 * ************************************
 * Mobile Navigation • Class Definitions
 * ************************************
 */
/**
 * Mobile • Base
 */
.m-mobile-nav {
  background-color: #EDEDED;
  position: absolute;
  /* we can't use fixed here :( */
  top: 0;
  right: 0;
  overflow: hidden;
  z-index: 1;
  width: 300px;
  height: 100vh;
  -webkit-transform: translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0);
  -webkit-overflow-scrolling: touch;
}

.m-mobile-nav__bg {
  background-color: #171B48 !important;
}

.m-mobile__level {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: #EDEDED;
  -webkit-transform: translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0);
  z-index: 1;
}

.m-mobile__level::after {
  z-index: -1;
}

.o-site__container,
.m-mobile__level {
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

/**
 * Mobile • Overlay
 */
.m-mobile__level.m-mobile__overlay {
  cursor: pointer;
  overflow-y: hidden !important;
}

.m-mobile__level.m-mobile__overlay.m-mobile__level::before {
  width: 100%;
  height: 100%;
  background: transparent;
  opacity: 1;
}

/**
 * Currently Open Level
 */
.m-mobile__level.m-mobile--open {
  height: 100%;
  overflow-y: scroll;
  overflow-x: hidden;
}

/**
 * Mobile • First Level
 */
.m-mobile-nav > .m-mobile__level,
.m-mobile-nav > .m-mobile__level.m-mobile--open,
.m-mobile-nav.m-mobile-nav__overlap > .m-mobile__level,
.m-mobile-nav.m-mobile-nav__overlap > .m-mobile__level.m-mobile--open {
  -webkit-box-shadow: none;
          box-shadow: none;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

/**
 * Mobile • Menu Cover
 */
.m-mobile__cover .m-mobile__level.m-mobile--open {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

.m-mobile__cover .m-mobile__level.m-mobile--open > .m-mobile__panel > .m-mobile__panel__item > .m-mobile__level:not(.m-mobile--open) {
  -webkit-transform: translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0);
}

/**
 * Mobile • `ul` Panel
 */
.m-mobile-nav .m-mobile__panel {
  margin: 0;
  padding: 0;
  list-style: none;
  background-color: #EDEDED;
}

/**
 * Mobile • Heading
 */
.m-mobile-nav h2 {
  margin: 0;
  padding: 1em;
  color: rgba(0, 0, 0, 0.7);
  background-color: #EDEDED;
}

/**
 * Mobile • `li` Panel Item
 */
.m-mobile-nav .m-mobile__panel .m-mobile__panel__item::before {
  position: absolute;
  right: 10px;
  z-index: 0;
  color: #004B8D;
  line-height: 4;
}

.m-mobile__panel__item.m-mobile__panel__item--blue {
  background-color: #004B8D;
}

.m-mobile__panel__item.m-mobile__panel__item--blue > .m-mobile__panel__item__link {
  color: #00FFFF;
}

/**
 * Mobile • `a` Link Item
 */
.m-mobile-nav .m-mobile__panel .m-mobile__panel__item > .m-mobile__panel__item__link {
  display: block;
  outline: none;
  -webkit-transition: background 0.3s, -webkit-box-shadow 0.3s;
  transition: background 0.3s, -webkit-box-shadow 0.3s;
  transition: background 0.3s, box-shadow 0.3s;
  transition: background 0.3s, box-shadow 0.3s, -webkit-box-shadow 0.3s;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 32px;
  padding-left: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  padding-bottom: 16px;
}

/**
 * Mobile • Back Button
 */
.m-mobile__back {
  background: #CCCCCC;
  outline: none;
  color: #4D4D4D;
  text-transform: uppercase;
  display: block;
  position: relative;
  text-align: right;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  padding-bottom: 16px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 24px;
  padding-left: 24px;
}

.m-mobile__back::after {
  font-family: 'linecons';
  position: absolute;
  content: "\e038";
  left: 10px;
  font-size: 1em;
  color: rgba(0, 0, 0, 0.3);
}

.m-mobile-nav .m-mobile__level.m-mobile__overlay > .m-mobile__back,
.m-mobile-nav .m-mobile__level.m-mobile__overlay > .m-mobile__back::after {
  background: transparent;
  -webkit-box-shadow: none;
          box-shadow: none;
}

/**
 * Mobile Org Info
 */
.m-mobile__info {
  background-color: #171B48;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 32px;
}

.m-mobile__info .m-link-list__item .a-icon {
  position: unset;
}

/**
 * Type	: Molecule
 * Name	: Org Info
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Org Info • Settings
 * *************************************
 */
/**
 * ************************************
 * Org Info • Class Definitions
 * ************************************
 */
.m-org-info__contact .a-icon {
  fill: #00FFFF;
}

/**
 * Type	: Molecule
 * Name	: Pagination
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Pagination • Settings
 * *************************************
 */
/**
  * ************************************
  * Pagination • Class Definitions
  * ************************************
  */
.m-pagination {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 auto;
}

.m-pagination__item,
.m-pagination__item__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50px;
          flex: 0 0 50px;
  height: 50px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/**
      * We will apply these to every item, but we don't want the
      * range to appear clickable, so we will NOT apply the
      * hover styles to the range :)
      */
.m-pagination__item:not(.m-pagination__item--range) {
  cursor: pointer;
}

.m-pagination__item:not(.m-pagination__item--range):hover {
  opacity: 0.5;
  filter: alpha(opacity=50);
}

.m-pagination__item:not(:last-child) {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 8px;
}

.m-pagination__item--arrow {
  color: #CE1141;
  font-weight: bold;
  font-size: 20px;
}

.m-pagination__item--number:not(.m-pagination__item--current),
.m-pagination__item--arrow {
  background-color: #EDEDED;
}

.m-pagination__item--current {
  background-color: #004B8D;
  color: #ffffff;
}

.m-pagination__item--range {
  letter-spacing: 3px;
  padding-bottom: 5px;
}

/**
 * Type	: Molecule
 * Name	: Search Bar
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Search Bar • Settings
 * *************************************
 */
/**
 * ************************************
 * Search Bar • Class Definitions
 * ************************************
 */
/**
	 * Search Bar • Base
	 */
.m-search-bar .m-form__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.m-search-bar__submit {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border: none;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 40px;
          flex: 0 0 40px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
}

.m-search-bar__submit:focus {
  outline: none;
}

/**
	 * Search Bar • Light Theme
	 */
.m-search-bar.m-form--fields--light .m-search-bar__submit {
  background: #CE1141;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.m-search-bar.m-form--fields--light .m-search-bar__submit > .a-icon {
  fill: #ffffff;
}

.m-search-bar.m-form--fields--light .m-search-bar__submit:hover {
  background: #b60f3a;
}

.m-search-bar.m-form--fields--light .m-search-bar__submit:focus {
  background: #9f0d32;
}

/**
	 * Search Bar • Dark Theme
	 */
.m-search-bar.m-form--fields--dark .m-search-bar__submit {
  background: #171B48;
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.m-search-bar.m-form--fields--dark .m-search-bar__submit > .a-icon {
  fill: #ffffff;
}

.m-search-bar.m-form--fields--dark .m-search-bar__submit > .a-icon:hover {
  fill: #00FFFF;
}

/**
	 * Search Bar • Large
	 */
.m-search-bar .a-form-control--large + .m-search-bar__submit {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 60px;
          flex: 0 0 60px;
}

.m-search-bar .a-form-control--large + .m-search-bar__submit .a-icon-s {
  height: 23px;
  width: 23px;
}

/**
 * Type	: Molecule
 * Name	: Summary
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Summary • Settings
 * *************************************
 */
/**
 * ************************************
 * Summary • Class Definitions
 * ************************************
 */
.m-summary {
  background-color: #E5E5E5;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 48px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 48px;
}

/**
 * Type	: Molecule
 * Name	: Title Group
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Title Group • Settings
 * *************************************
 */
/**
 * ************************************
 * Title Group • Class Definitions
 * ************************************
 */
.m-title-group {
  position: relative;
}

.m-title-group__sub {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 4px;
}

.m-title-group .m-meta--inline {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 4px;
}

.m-title-group__action {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 16px;
}

.m-title-group__content {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 8px;
}

/**
 * Type	: Molecule
 * Name	: Title Group Box
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Title Group Box • Settings
 * *************************************
 */
/**
 * ************************************
 * Title Group Box • Class Definitions
 * ************************************
 */
.m-title-group--box {
  display: inline-block;
  position: relative;
  text-align: center;
  z-index: 1;
  border: 3px solid #ffffff;
  border-radius: 0px !important;
}

.m-title-group--box__upper,
.m-title-group--box__lower {
  color: #ffffff;
  display: block;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  padding-bottom: 16px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 32px;
  padding-left: 32px;
}

.m-title-group--box__lower,
.m-title-group--box__cta {
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.m-title-group--box__cta {
  position: relative;
  left: 24px;
}

.m-title-group--box__upper {
  background: rgba(0, 0, 0, 0.6);
}

.m-title-group--box__lower {
  background: rgba(248, 2, 40, 0.7);
  letter-spacing: 3px;
  border-top: 3px solid #ffffff;
  border-radius: 0px !important;
}

.m-title-group--box__lower:hover {
  background: rgba(248, 2, 40, 0.8);
}

.m-title-group--box__cta {
  overflow: visible;
  /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
  background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='white'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
  background-position: 0px -webkit-calc( 50% + 0px);
  background-position: 0px calc( 50% + 0px);
  background-repeat: no-repeat;
  background-size: 32px 32px;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  font-size: 13px;
  font-size: 0.8rem;
  /**
	 * Base body copy
	 */
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  padding-bottom: 16px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 48px;
  padding-left: 48px;
}

/**
	 * Load our Organisms
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Organisms
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type	: Organism
 * Name	: Accordion
 *
 * @since 1.0.0
 * @author Todd Loupe
 */
.o-accordion {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 40px 0;
}

.o-accordion .o-accordion--item {
  background-color: #fff;
  cursor: pointer;
  padding: 18px 0;
  width: 100%;
  text-align: left;
  font-size: 1.5em;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  border-top: 2px solid #eee;
  font-family: "Champion Welterwt A", "Champion Welterwt B", "Champion HTF-Welterweight", sans-serif;
  font-style: normal;
  font-weight: 500;
  text-transform: uppercase;
}

.o-accordion .o-accordion--item:first-of-type {
  border-top: none;
}

.o-accordion .o-accordion--item:hover, .o-accordion .o-accordion--item:active {
  background-color: #eee;
}

.o-accordion .o-accordion--item svg.arrow__icon {
  width: 15px;
  float: right;
  top: 10px;
  position: relative;
}

.o-accordion .o-accordion--item.active svg.arrow__icon {
  -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
          transform: rotate(-90deg);
}

.o-accordion .o-accordion--panel {
  background-color: white;
  display: none;
  overflow: hidden;
  font-family: "Chronicle Text G1 A", "Chronicle Text G1 B", serif;
  font-style: normal;
  font-weight: inherit;
  font-size: 1.15rem;
  line-height: 1.7;
  padding-bottom: 18px;
}

.o-accordion .o-accordion--panel h2 {
  font-family: "Champion Bantamwt A", "Champion Bantamwt B", sans-serif;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.o-accordion--theme--marianist .o-accordion--item {
  color: #8C5BCD;
}

.o-accordion--theme--parting .o-accordion--item {
  color: #5C61FF;
}

.o-accordion--theme--presidents .o-accordion--item {
  color: #B4106C;
}

.o-accordion--theme--sports .o-accordion--item {
  color: #832B83;
}

.o-accordion--theme--perceptions .o-accordion--item {
  color: #7F2C58;
}

.o-accordion--theme--alumni .o-accordion--item {
  color: #D82B53;
}

.o-accordion--theme--chapter .o-accordion--item {
  color: #D24812;
}

.o-accordion--theme--expert .o-accordion--item {
  color: #F97912;
}

.o-accordion--theme--hidden .o-accordion--item {
  color: #84BD94;
}

.o-accordion--theme--good-works .o-accordion--item {
  color: #A8CD56;
}

.o-accordion--theme--bookshelf .o-accordion--item {
  color: #00D8AE;
}

.o-accordion--theme--no-tag .o-accordion--item {
  color: #6D748D;
}

/**
 * Type	: Molecule
 * Name	: Action Bar
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Action Bar • Settings
 * *************************************
 */
/**
 * ************************************
 * Action Bar • Class Definitions
 * ************************************
 */
/**
	 * Action Bar • Base
	 */
.o-action-bar {
  background: #EDEDED;
  /**
		 * Defining padding here instead of in spacer() because of the unique and specific value.
		 * This number should equal the progress bar height at largish size.
		 */
  padding-top: 5px;
  position: fixed;
  top: 0;
  -webkit-transform: translate3d(0px, -80px, 0px);
          transform: translate3d(0px, -80px, 0px);
  width: 100%;
  z-index: 21;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}

.o-action-bar__container {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 1200px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  padding-bottom: 16px;
}

/**
	 * Action Bar • Visible
	 *
	 * Class added via JS
	 */
.o-action-bar--visible {
  -webkit-transform: translate3d(0px, 0px, 0px);
          transform: translate3d(0px, 0px, 0px);
}

/**
	 * Action Bar • Back
	 */
.o-action-bar__back {
  vertical-align: middle;
}

.o-action-bar__back__icon {
  display: inline-block;
  fill: #004B8D;
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transform: translateX(0) rotate(90deg);
      -ms-transform: translateX(0) rotate(90deg);
          transform: translateX(0) rotate(90deg);
  vertical-align: middle;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 16px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.o-action-bar__back__text {
  display: none;
  vertical-align: middle;
}

/**
	 * Action Bar • Title
	 */
.o-action-bar__title {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 0px;
          flex: 0 0 0px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 250px;
  /**
		 * We want to visually hide the title on smallish devices
		 * but we do not want to display none, because we still want
		 * the title to take up space in order to keep spacing correct
		 * for the other items.
		 */
  opacity: 0;
  filter: alpha(opacity=0);
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 16px;
  padding-left: 16px;
}

/**
	 * Action Bar • Actions
	 *
	 * This wrapper contains liking and sharing
	 */
.o-action-bar__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

/**
	 * Action Bar • Likes
	 */
.o-action-bar .m-like {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 8px;
}

/**
	 * Action Bar • Progress
	 */
.o-action-bar .a-progress {
  bottom: unset;
  top: 0;
}

.o-aptly {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 96px;
}

.o-aptly .c_awp_wrapper {
  padding: 0%;
}

.o-aptly__container {
  max-width: 700px;
}

.o-callout-breaker .featured-video {
  position: relative;
  padding: 85px 15px;
  margin-bottom: 30px;
  width: 99vw;
  left: -webkit-calc(-50vw + 50%);
  left: calc(-50vw + 50%);
}

.o-callout-breaker .featured-video:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  background-color: #e5e5e5;
  background-image: url("/0/_2019/images/graphics/background-grayNoise.png");
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  overflow: hidden;
  background-repeat-x: no-repeat;
  background-repeat-y: no-repeat;
}

.o-callout-breaker .featured-video__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: auto;
}

.o-callout-breaker .featured-video__inner .featured-video__left-container {
  z-index: 1;
  width: 100%;
}

.o-callout-breaker .featured-video__inner .featured-video__content {
  z-index: 10;
  position: relative;
  color: #171b48;
  width: 100%;
  padding-top: 30px;
  padding-bottom: 30px;
}

.o-callout-breaker .video-container {
  width: 100%;
  position: relative;
  height: 100%;
  margin: 15px 0;
  min-height: 40vw;
}

.o-callout-breaker .campaign-lockup {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.o-callout-breaker .video-container > iframe {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  min-height: 40vw;
}

.o-callout-breaker .campaign-lockup__kicker {
  font-family: Champion Welterwt A,Champion Welterwt B,Champion HTF-Welterweight,sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: .875rem;
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
}

.o-callout-breaker .featured-video__inner .featured-video__content .campaign-lockup__kicker {
  font-size: rem(14);
  letter-spacing: 2px;
  line-height: 18px;
}

.o-callout-breaker .campaign-lockup__heading {
  text-transform: uppercase;
  word-wrap: break-word;
  font-family: "Noto Serif",Heading A,Heading B,Chronicle Display A,Chronicle Display B,serif;
  font-weight: 900;
  font-style: italic;
}

.o-callout-breaker .campaign-lockup__heading--medium {
  font-family: "Noto Serif",Heading A,Heading B,Chronicle Display A,Chronicle Display B,serif;
  font-weight: 700;
  font-style: italic;
  font-size: 1.75rem;
  line-height: 1.2;
  text-transform: uppercase;
}

.o-callout-breaker .featured-video__inner .featured-video__content .campaign-lockup__heading {
  font-size: rem(25);
  line-height: 32px;
  letter-spacing: .94px;
  margin: 30px 0;
}

.o-callout-breaker .campaign-lockup__body {
  font-family: Work Sans,sans-serif;
  font-weight: 400;
  font-style: normal;
}

.o-callout-breaker .featured-video__inner .featured-video__content .campaign-lockup__body {
  font-size: rem(16);
  line-height: 30px;
  letter-spacing: .6px;
}

.o-callout-breaker .featured-video .a-btn--secondary {
  width: 100%;
  margin: 5px;
  text-align: center;
}

.o-callout-breaker .featured-callout__image {
  width: 100%;
}

.o-callout-breaker .featured-video--marianist .campaign-lockup__kicker {
  color: #8C5BCD;
}

.o-callout-breaker .featured-video--parting .campaign-lockup__kicker {
  color: #5C61FF;
}

.o-callout-breaker .featured-video--presidents .campaign-lockup__kicker {
  color: #B4106C;
}

.o-callout-breaker .featured-video--sports .campaign-lockup__kicker {
  color: #832B83;
}

.o-callout-breaker .featured-video--perceptions .campaign-lockup__kicker {
  color: #7F2C58;
}

.o-callout-breaker .featured-video--alumni .campaign-lockup__kicker {
  color: #D82B53;
}

.o-callout-breaker .featured-video--chapter .campaign-lockup__kicker {
  color: #D24812;
}

.o-callout-breaker .featured-video--expert .campaign-lockup__kicker {
  color: #F97912;
}

.o-callout-breaker .featured-video--hidden .campaign-lockup__kicker {
  color: #84BD94;
}

.o-callout-breaker .featured-video--good-works .campaign-lockup__kicker {
  color: #A8CD56;
}

.o-callout-breaker .featured-video--bookshelf .campaign-lockup__kicker {
  color: #00D8AE;
}

.o-callout-breaker .featured-video--no-tag .campaign-lockup__kicker {
  color: #6D748D;
}

/**
 * Type	: Organism
 * Name	: Collection • Cards
 * Desc : Properly display a collection or "grid" of cards
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Collection • Cards • Settings
 * *************************************
 */
/**
 * ***************************************
 * Collection • Cards • Class Definitions
 * ****************************************
 */
/**
	 * Collection • Cards • Base
	 */

/**
	 * Collection • Cards • Each Card item
	 */
.o-collection--cards__item {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 32px;
}

/**
 * Type	: Organism
 * Name	: Collection • Content
 * Desc : Properly display a collection or "grid" of content
 *
 * @since 1.0.0
 * @author UDAYTON
 */
/**
 * *************************************
 * Collection • Content • Settings
 * *************************************
 */
/**
 * ***************************************
 * Collection • Content • Class Definitions
 * ****************************************
 */
/**
	 * Collection • Content • Base
	 */

/**
	 * Collection • Content • Each Content item
	 */
.o-collection--content__item {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 32px;
}

.o-collection--content__item--fw {
  background-color: #CCCCCC;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 32px;
}

/**
	* Collection Content Each Content Item Content
	*/
.o-collection--content__item--content {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 32px;
}

.o-collection--content__item p {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 32px;
}

.o-collection--images {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.o-collection--images--center {
  text-align: center;
}

.o-collection--images > * {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 32px;
}

.o-collection--images--3 > * {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 100%;
          flex: 1 0 100%;
  max-width: 100%;
}

.o-collection--images--4 {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/**
 * Type	: Organism
 * Name	: Collection • Islands
 * Desc : Group together islands and display them in a unique way
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Collection • Islands • Settings
 * *************************************
 */
/**
 * *****************************************
 * Collection • Islands • Class Definitions
 * *****************************************
 */
/**
	 * Collection • Islands • Base
	 */

/**
	 * Collection • Islands • Each Island Item
	 */
.o-collection--islands .m-island {
  /**
		 * Pull in our article border with a custom color when islands collapse
		 * down to full-width blocks.
		 */
  border-bottom: 16px solid #006EA1;
  border-radius: 0px !important;
  /**
		 * Above a defined screen size, we want to unset top and bottom borders
		 * so the above rule takes effect and is not affected by any other border
		 * definitions.
		 */
}

/**
	 * Collection • Islands • Column
	 */

/**
	 * Left-hand Column
	 * 
	 * There should truly ever be 1 island inside of the left column. This will
	 * allow the island to flex to the height of 1 or 2 islands in the right-hand 
	 * column.
	 */

/**
	 * Right-hand Column
	 * 
	 * The right can column can hold either 1 or 2 Islands within it,
	 * but should never hold any more than 2.
	 */

/**
 * Type : Organism
 * Name : Collection • My Old House
 * Desc : Properly display a collection or "grid" of cards
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Collection • My Old House • Settings
 * *************************************
 */
/**
 * ***************************************
 * Collection • My Old House • Class Definitions
 * ****************************************
 */
/**
   * Collection • My Old House • Base
   */
.o-collection--my-old-house {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.o-collection--my-old-house .m-card--my-old-house {
  min-width: 350px;
}

/**
   * Collection • My Old House • Each Card item
   */
.o-collection--my-old-house__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33%;
          flex: 0 0 33.33%;
  padding: 20px;
}

/**
 * Type	: Organism
 * Name	: Conversation
 * Desc : A wrapper for post comments
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Conversation • Settings
 * *************************************
 */
/**
 * ************************************
 * Conversation • Class Definitions
 * ************************************
 */
.o-conversation {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 96px;
  padding-bottom: 96px;
}

.o-conversation__container {
  max-width: 700px;
}

.o-facts-figures {
  padding-top: 90px;
  padding-bottom: 90px;
}

.o-facts-figures .container {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}

.o-facts-figures .highMetrics__title {
  font-family: Champion Welterwt A,Champion Welterwt B,Champion HTF-Welterweight,sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 3.75rem;
  line-height: 1.2;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 50px;
}

.o-facts-figures ul {
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  list-style-type: none;
}

.o-facts-figures .highMetrics__metrics--list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.o-facts-figures .highMetrics__metrics--list .metrics__three-cards {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  padding-bottom: 60px;
}

.o-facts-figures .highMetrics__metrics--list .metrics__wrapper {
  width: 100%;
  margin-bottom: 30px;
  position: relative;
}

.o-facts-figures .highMetrics__metrics--list .metrics__wrapper:last-child {
  margin-bottom: 0;
}

.o-facts-figures .highMetrics__metrics--list .highMetrics__list--highlight {
  font-family: Label A,Label B,Champion Lightwt A,Champion Lightwt B,Champion HTF-Lightweight,sans-serif;
  font-weight: 300;
  font-style: normal;
  font-size: 2.75rem;
  line-height: .9;
  text-transform: uppercase;
  text-align: center;
  display: block;
  margin-bottom: 10px;
}

.o-facts-figures .highMetrics__metrics--list .highMetrics__list--text {
  font-family: "Noto Serif",Heading A,Heading B,Chronicle Display A,Chronicle Display B,serif;
  font-weight: 700;
  font-style: italic;
  font-size: .875rem;
  line-height: 1.4;
  letter-spacing: .6px;
  text-align: center;
  max-width: 200px;
  margin: 0 auto;
}

.o-facts-figures .a-btn--secondary {
  margin-right: 0;
}

.highMetrics__list--highlight--theme--marianist {
  color: #8C5BCD;
}

.highMetrics__list--highlight--theme--parting {
  color: #5C61FF;
}

.highMetrics__list--highlight--theme--presidents {
  color: #B4106C;
}

.highMetrics__list--highlight--theme--sports {
  color: #832B83;
}

.highMetrics__list--highlight--theme--perceptions {
  color: #7F2C58;
}

.highMetrics__list--highlight--theme--alumni {
  color: #D82B53;
}

.highMetrics__list--highlight--theme--chapter {
  color: #D24812;
}

.highMetrics__list--highlight--theme--expert {
  color: #F97912;
}

.highMetrics__list--highlight--theme--hidden {
  color: #84BD94;
}

.highMetrics__list--highlight--theme--good-works {
  color: #A8CD56;
}

.highMetrics__list--highlight--theme--bookshelf {
  color: #00D8AE;
}

.highMetrics__list--highlight--theme--no-tag {
  color: #6D748D;
}

.o-feature-text-breaker {
  /* stylelint-disable  selector-max-type */
}

.o-feature-text-breaker .btn__carousel-container {
  margin-top: 15px;
  margin-bottom: 15px;
}

.o-feature-text-breaker .btn__carousel-arrow {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: background-color;
  transition-property: background-color;
  cursor: pointer;
  background-color: #171b48;
  border: 0;
}

.o-feature-text-breaker .btn__carousel-arrow--left {
  -webkit-transform: rotate(-180deg);
      -ms-transform: rotate(-180deg);
          transform: rotate(-180deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
}

.o-feature-text-breaker .btn__carousel-arrow:hover, .o-feature-text-breaker .btn__carousel-arrow:focus {
  background-color: #1200da;
}

.o-feature-text-breaker a.btn.btn-red, .o-feature-text-breaker a.btn.btn-blue {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.o-feature-text-breaker .btn {
  width: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  font: inherit;
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;
  line-height: normal;
  color: inherit;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border-width: 0;
  border-radius: 0;
  outline: 0;
  -webkit-font-smoothing: antialiased;
  font-family: "Label A", "Label B", "Champion Lightwt A", "Champion Lightwt B", "Champion HTF-Lightweight", sans-serif;
  font-size: 0.6875rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 2px;
  height: 60px;
  margin: 15px 0;
  padding: 15px;
  cursor: pointer;
  background-color: #ee0019;
  color: white;
}

.o-feature-text-breaker .btn:hover, .o-feature-text-breaker .btn:focus {
  background-color: #d50016;
}

.o-feature-text-breaker .btn.btn-red {
  font-family: "Work Sans", sans-serif;
  font-weight: bold;
  font-style: normal;
  font-size: 0.8125rem;
  line-height: 1;
  text-transform: uppercase;
  display: block;
  text-align: center;
  padding: 15px 0;
  letter-spacing: 2px;
  margin: 5px 0;
  -webkit-transition: all 0.3s linear;
  transition: all 0.3s linear;
  background-color: #ee0019;
  color: white;
  border: 2px solid #ee0019;
}

.o-feature-text-breaker .btn.btn-red:hover, .o-feature-text-breaker .btn.btn-red:focus {
  background-color: #1200da;
  border: 2px solid #1200da;
}

.o-feature-text-breaker .btn.btn-red.btn-outline {
  background-color: transparent;
  border: 2px solid #ee0019;
}

.o-feature-text-breaker .btn.btn-red.btn-outline:hover, .o-feature-text-breaker .btn.btn-red.btn-outline:focus {
  background-color: #ee0019;
  border: 2px solid #ee0019;
}

.o-feature-text-breaker .btn.btn-blue {
  font-family: "Work Sans", sans-serif;
  font-weight: bold;
  font-style: normal;
  font-size: 0.8125rem;
  line-height: 1;
  text-transform: uppercase;
  display: block;
  text-align: center;
  padding: 15px 0;
  letter-spacing: 2px;
  margin: 5px 0;
  -webkit-transition: all 0.3s linear;
  transition: all 0.3s linear;
  background-color: #1200da;
  color: white;
  border: 2px solid #1200da;
}

.o-feature-text-breaker .btn.btn-blue.btn-outline {
  background-color: transparent;
  border: 2px solid #1200da;
}

.o-feature-text-breaker .btn.btn-blue:hover, .o-feature-text-breaker .btn.btn-blue:focus {
  background-color: #ee0019;
  border: 2px solid #ee0019;
}

.o-feature-text-breaker .cta__social-links {
  display: block;
  margin-top: 30px;
}

.o-feature-text-breaker .cta__social-links-container {
  display: inline-block;
  margin-left: 15px;
}

.o-feature-text-breaker .cta__social-links-container:first-child {
  margin-left: 0;
}

.o-feature-text-breaker .cta__social-link {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: background-color, fill;
  transition-property: background-color, fill;
  border: 0;
  border-style: solid;
  border-color: #ee0019;
  border-width: 1px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  outline: 0;
}

.o-feature-text-breaker .cta__social-link_dark .social-icon {
  fill: black;
}

.o-feature-text-breaker .cta__social-link_light .social-icon {
  fill: white;
}

.o-feature-text-breaker .cta__social-link:hover, .o-feature-text-breaker .cta__social-link:focus {
  background-color: #ee0019;
}

.o-feature-text-breaker .cta__social-link:hover .social-icon, .o-feature-text-breaker .cta__social-link:focus .social-icon {
  fill: white;
}

.o-feature-text-breaker .social-icon {
  width: 12px;
  fill: black;
}

.o-feature-text-breaker .cta__standard {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: background-color;
  transition-property: background-color;
  font-family: "Work Sans", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  outline: 0;
  margin-left: -10px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #1200da;
  outline: 0;
}

.o-feature-text-breaker .cta__standard:hover, .o-feature-text-breaker .cta__standard:focus {
  background-color: rgba(0, 243, 255, 0.2);
}

.o-feature-text-breaker .cta__standard:hover .cta__arrow, .o-feature-text-breaker .cta__standard:focus .cta__arrow {
  fill: #171b48;
}

.o-feature-text-breaker .cta__standard_involve {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: background-color;
  transition-property: background-color;
  font-family: "Work Sans", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  outline: 0;
  margin-left: 0px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #1200da;
  outline: 0;
}

.o-feature-text-breaker .cta__standard_involve:hover, .o-feature-text-breaker .cta__standard_involve:active {
  background-color: rgba(0, 243, 255, 0.2);
}

.o-feature-text-breaker .cta__standard_involve:hover .cta__arrow, .o-feature-text-breaker .cta__standard_involve:active .cta__arrow {
  fill: #171b48;
}

.o-feature-text-breaker .cta__copy {
  padding: 10px;
  background-color: rgba(0, 243, 255, 0);
}

.o-feature-text-breaker .highlight__standard {
  font-family: "Work Sans", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
  display: inline-block;
  padding: 10px;
  margin-left: -10px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #1200da;
}

.o-feature-text-breaker .cta__featured {
  font-family: "Work Sans", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  outline: 0;
  font-family: "Work Sans", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: border-color, color;
  transition-property: border-color, color;
  width: 100%;
  align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.o-feature-text-breaker .cta__featured--light {
  border: 0;
  border-style: solid;
  border-color: #e5e5e5;
  border-width: 2px;
  color: #1200da;
}

.o-feature-text-breaker .cta__featured--light:hover, .o-feature-text-breaker .cta__featured--light:focus {
  border: 0;
  border-style: solid;
  border-color: #00f3ff;
  border-width: 2px;
  background-color: rgba(0, 243, 255, 0.2);
}

.o-feature-text-breaker .cta__featured--light:hover .cta__arrow, .o-feature-text-breaker .cta__featured--light:focus .cta__arrow {
  fill: #171b48;
}

.o-feature-text-breaker .cta__featured--light-active {
  border: 0;
  border-style: solid;
  border-color: #00f3ff;
  border-width: 2px;
  background-color: rgba(0, 243, 255, 0.2);
}

.o-feature-text-breaker .cta__featured--light-active .cta__arrow {
  fill: #171b48;
}

.o-feature-text-breaker .cta__featured--light-active:hover, .o-feature-text-breaker .cta__featured--light-active:focus {
  border: 0;
  border-style: solid;
  border-color: #e5e5e5;
  border-width: 2px;
}

.o-feature-text-breaker .cta__featured--dark {
  border: 0;
  border-style: solid;
  border-color: #1200da;
  border-width: 2px;
  color: white;
}

.o-feature-text-breaker .cta__featured--dark:hover, .o-feature-text-breaker .cta__featured--dark:focus {
  border: 0;
  border-style: solid;
  border-color: #00f3ff;
  border-width: 2px;
  background-color: rgba(0, 243, 255, 0.2);
}

.o-feature-text-breaker .cta__featured--dark:hover .cta__arrow, .o-feature-text-breaker .cta__featured--dark:focus .cta__arrow {
  fill: #171b48;
}

.o-feature-text-breaker .cta__basic {
  color: #1e1e11;
  display: inline-block;
  width: 100%;
  padding-top: 10px;
  padding-bottom: 10px;
  outline: 0;
}

.o-feature-text-breaker .cta__basic:hover, .o-feature-text-breaker .cta__basic:focus {
  background-color: rgba(0, 243, 255, 0.2);
}

.o-feature-text-breaker .cta__basic:hover .cta__basic-copy, .o-feature-text-breaker .cta__basic:focus .cta__basic-copy {
  color: #1e1e11;
}

.o-feature-text-breaker .cta__secondary-nav {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: color;
  transition-property: color;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  color: white;
}

.o-feature-text-breaker .cta__secondary-nav:hover, .o-feature-text-breaker .cta__secondary-nav:focus {
  color: #00f3ff;
}

.o-feature-text-breaker .cta__side-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  color: #1e1e11;
}

.o-feature-text-breaker .cta__secondary-nav--copy {
  font-family: "Work Sans", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
  padding-bottom: 5px;
}

.o-feature-text-breaker .cta__basic-copy {
  font-family: "Work Sans", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
}

.o-feature-text-breaker .cta__basic-copy:hover, .o-feature-text-breaker .cta__basic-copy:focus {
  color: #1e1e11;
}

.o-feature-text-breaker .cta__featured-copy {
  display: inline-block;
  padding: 10px;
  color: inherit;
  background-color: rgba(0, 243, 255, 0);
}

.o-feature-text-breaker .cta__arrow {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: fill;
  transition-property: fill;
  display: inline-block;
  padding: 10px;
  fill: #00f3ff;
}

.o-feature-text-breaker .cta__arrow--external {
  -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
          transform: rotate(-45deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
}

.o-feature-text-breaker .cta__arrow--folder {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
}

.o-feature-text-breaker .cta__arrow-nav svg {
  max-width: none;
}

.o-feature-text-breaker .cta__filter-character {
  font-family: "Label A", "Label B", "Champion Lightwt A", "Champion Lightwt B", "Champion HTF-Lightweight", sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 4px;
  border: 0;
  border-style: solid;
  border-color: rgba(229, 229, 229, 0);
  border-width: 1px;
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: 250ms;
          transition-duration: 250ms;
  -webkit-transition-property: border-color, color;
  transition-property: border-color, color;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 30px;
  height: 30px;
  margin-right: 15px;
  line-height: 1;
  color: #757575;
  text-transform: uppercase;
  letter-spacing: 0;
}

.o-feature-text-breaker .cta__filter-character:hover, .o-feature-text-breaker .cta__filter-character:focus {
  color: #ee0019;
}

.o-feature-text-breaker .cta__filter-character:active {
  color: #ee0019;
  border-color: #e5e5e5;
}

.o-feature-text-breaker .arrow-icon {
  width: 15px;
  max-width: 15px;
}

.o-feature-text-breaker .arrow {
  text-transform: uppercase;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  font-family: "Work Sans", sans-serif;
  font-weight: bold;
  font-style: normal;
  letter-spacing: 2.02px;
  -webkit-transition: all ease .5s;
  transition: all ease .5s;
}

.o-feature-text-breaker .arrow .cta__arrow {
  padding: 0 0 0 10px;
  margin-top: -4px;
}

.o-feature-text-breaker .arrow .cta__arrow .arrow-icon {
  fill: #ee0019;
  -webkit-transition: all ease .5s;
  transition: all ease .5s;
}

.o-feature-text-breaker .arrow:hover {
  color: #ee0019;
  background: transparent;
}

.o-feature-text-breaker .arrow:hover .arrow-icon {
  fill: #0200d1;
}

.o-feature-text-breaker .cta__campaign {
  font-family: "Work Sans", sans-serif;
  font-weight: bold;
  font-style: normal;
  margin-left: 0;
  display: inline;
  padding: 20px 0;
  -webkit-transition: all ease .5s;
  transition: all ease .5s;
  color: #0200d1;
  letter-spacing: 1.75px;
}

.o-feature-text-breaker .cta__campaign .cta__copy {
  border-bottom: 1px solid #f80228;
  text-transform: uppercase;
  padding: 0 0 5px;
  font-size: 13px;
  line-height: 13px;
}

.o-feature-text-breaker .cta__campaign:hover {
  background: transparent;
}

.o-feature-text-breaker .cta__campaign:hover .cta__copy {
  color: #f80228;
}

.o-feature-text-breaker .cta__social-links {
  font-family: "Champion HTF-Lightweight";
}

.o-feature-text-breaker .featText {
  position: relative;
}

.o-feature-text-breaker .featText.featText__text--dark p,
.o-feature-text-breaker .featText.featText__text--dark h2 {
  color: #171b48;
}

.o-feature-text-breaker .featText.featText__text--light p,
.o-feature-text-breaker .featText.featText__text--light h2 {
  color: white;
}

.o-feature-text-breaker .featText a:not([class]) {
  text-decoration: underline;
  color: #f80228;
}

.o-feature-text-breaker .featText a:not([class]):hover, .o-feature-text-breaker .featText a:not([class]):visited, .o-feature-text-breaker .featText a:not([class]):active {
  color: #f80228;
}

.o-feature-text-breaker .featText .featText__bgImg--plain {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  background-color: #e5e5e5;
  background-image: url("/0/_2019/images/graphics/background-featText1.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.o-feature-text-breaker .featText .featText__bgImg--plainStripes {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  background-color: #e5e5e5;
  background-image: url("/0/_2019/images/graphics/background-featText1.png");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
  overflow: hidden;
}

.o-feature-text-breaker .featText .featText__bgImg--plainStripes:after {
  content: url("/0/_2019/images/graphics/graphic-diagLines.png");
  display: block;
  position: absolute;
  top: -50px;
  left: -65px;
  -webkit-transform: scale(0.6);
  -ms-transform: scale(0.6);
      transform: scale(0.6);
}

.o-feature-text-breaker .featText .featText__bgImg--diagonal {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  background-color: #e5e5e5;
  background-image: url("/0/_2019/images/graphics/background-blueDiagonals.png");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
  overflow: hidden;
}

.o-feature-text-breaker .featText .featText__bgImg--diagonal.featText__overlay:before {
  content: " ";
  display: block;
  background-color: #171B48;
  opacity: 0.8;
  filter: alpha(opacity=80);
  width: 100%;
  height: 100%;
}

.o-feature-text-breaker .featText .featText__content--container {
  z-index: 20;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  position: relative;
  text-align: center;
}

.o-feature-text-breaker .featText .featText__content--container p {
  font-family: "Work Sans", sans-serif;
  font-weight: normal;
  font-style: normal;
}

.o-feature-text-breaker .featText .featText__content--container h2, .o-feature-text-breaker .featText .featText__content--container h2 * {
  font-family: "Noto Serif", "Heading A", "Heading B", "Chronicle Display A", "Chronicle Display B", serif;
  font-weight: bold;
  font-style: italic;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small {
  padding-top: 100px;
  padding-bottom: 90px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small h2 {
  font-size: 2rem;
  line-height: 1.1;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small p {
  font-size: 1rem;
  line-height: 1.875;
  letter-spacing: 0.6px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large {
  padding-top: 95px;
  padding-bottom: 95px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large h2 {
  font-size: 1.75rem;
  line-height: 1.1;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  margin-bottom: 30px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large p {
  font-size: 1rem;
  line-height: 1.875;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes {
  padding-top: 140px;
  padding-bottom: 90px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes h2 {
  font-size: 2rem;
  line-height: 1.1;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 30px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes p {
  font-size: 1rem;
  letter-spacing: 0.7px;
  line-height: 1.9;
}

.o-feature-text-breaker .featText .featText__content--container.bg-diagonal {
  padding-top: 60px;
  padding-bottom: 55px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-diagonal h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-diagonal h2 {
  font-size: 2.1875rem;
  line-height: 1.4;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.o-feature-text-breaker .featText .featText__content--container.bg-diagonal p {
  font-size: 1rem;
  line-height: 1.875;
}

.o-feature-text-breaker .featText .featText__cta--container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.o-feature-text-breaker .featText .featText__cta--container li {
  margin-top: 30px;
}

/**
 * Type	: Organism
 * Name	: Filter Bar
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Filter Bar • Settings
 * *************************************
 */
/**
 * ************************************
 * Filter Bar • Class Definitions
 * ************************************
 */
/**
	 * Filter Bar • Base
	 */
.o-filter-bar {
  background-color: #171B48;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 4px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
}

.o-filter-bar__container {
  max-width: 1200px;
}

.the-footer {
  background: -webkit-linear-gradient(18deg, #000 2%, #171b48 30%);
  background: linear-gradient(72deg, #000 2%, #171b48 30%);
}

.the-footer address {
  font-style: normal;
}

.the-footer__wrapper {
  max-width: 1050px;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  padding-top: 60px;
  padding-bottom: 60px;
}

.the-footer__address, .the-footer__ctas, .the-footer__featured-ctas {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}

.the-footer__address, .the-footer__ctas {
  margin-top: 30px;
}

.the-footer__address .list__link .cta__basic .cta__basic-copy, .the-footer__ctas .list__link .cta__basic .cta__basic-copy {
  color: #fff;
  padding-left: 1px;
}

.the-footer__image_container {
  display: none;
}

.the-footer__image {
  width: 100%;
  height: 100%;
  font-family: object-fit\:cover;
  -o-object-fit: cover;
     object-fit: cover;
}

.footer-logo {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: fill;
  transition-property: fill;
  width: 200px;
  fill: #fff;
}

.footer-logo:focus, .footer-logo:hover {
  fill: #00f3ff;
}

.the-footer__address {
  font-family: Work Sans;
  font-size: 1rem;
  font-style: normal;
  line-height: 1.5;
  color: #fff;
}

.the-footer__address p {
  font-weight: 400;
}

.the-footer__address a, .the-footer__address strong {
  font-weight: 500;
}

.the-footer__featured-ctas .list__link-list {
  margin-bottom: 15px;
}

.the-footer__home-cta {
  display: inline-block;
  outline: 0;
}

.the-footer__home-cta:focus .footer-logo, .the-footer__home-cta:hover .footer-logo {
  fill: #00f3ff;
}

.the-footer__address-meta {
  margin-top: 15px;
  margin-bottom: 15px;
}

.footer__anchor {
  padding-top: 30px;
  padding-bottom: 30px;
  background-color: #171b48;
  border: 0;
  border-style: solid;
  border-top-color: rgba(150, 150, 150, 0.2);
  border-top-width: 2px;
}

.footer__anchor-nav {
  max-width: 1050px;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.footer__anchor-list {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  -webkit-column-count: 2;
          column-count: 2;
}

.footer__anchor-link {
  -webkit-font-smoothing: antialiased;
  font-family: Champion Lightwt A,Champion Lightwt B;
  font-size: .8rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 2px;
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: color;
  transition-property: color;
  color: #fff;
  outline: 0;
}

.footer__anchor-link:focus, .footer__anchor-link:hover {
  color: #00f3ff;
}

.the-footer__address-cta {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: color;
  transition-property: color;
  outline: 0;
}

.the-footer__address-cta:focus, .the-footer__address-cta:hover {
  color: #00f3ff;
}

.cta__featured, .highlight__standard {
  font-family: Work Sans;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
}

.cta__featured {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  cursor: pointer;
  outline: 0;
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: border-color,color;
  transition-property: border-color,color;
  width: 100%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.list__link-list {
  list-style: none;
  margin-bottom: 30px;
}

.list__link {
  margin-bottom: 10px;
}

.list__link, .list__link .cta__basic {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: color,border-color;
  transition-property: color,border-color;
}

.list__link .cta__basic {
  color: #fff;
  border: 1px solid transparent;
  border-bottom: 1px solid #757575;
}

.list__link .cta__basic:focus .cta__basic-copy, .list__link .cta__basic:hover .cta__basic-copy {
  color: #00f3ff;
}

.list__link:first-child {
  margin-top: 0;
}

.list__link:last-child {
  margin-bottom: 0;
}

.list__link-cta {
  margin: 0;
  margin-bottom: 10px;
  border: 0;
}

.cta__featured--light {
  border: 0;
  border: 2px solid #e5e5e5;
  color: #1200da;
}

.cta__featured--light:focus, .cta__featured--light:hover {
  border: 0;
  border: 2px solid #00f3ff;
  background-color: rgba(0, 243, 255, 0.2);
}

.cta__featured--light:focus .cta__arrow, .cta__featured--light:hover .cta__arrow {
  fill: #171b48;
}

.cta__featured--dark {
  border: 0;
  border: 2px solid #1200da;
  color: #fff;
}

.cta__featured--dark:focus, .cta__featured--dark:hover {
  border: 0;
  border: 2px solid #00f3ff;
  background-color: rgba(0, 243, 255, 0.2);
}

.cta__featured--dark:focus .cta__arrow, .cta__featured--dark:hover .cta__arrow {
  fill: #171b48;
}

.cta__social-link {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: background-color,fill;
  transition-property: background-color,fill;
  border: 0;
  border: 1px solid #ee0019;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  outline: 0;
}

.cta__social-link-red {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: background-color,fill;
  transition-property: background-color,fill;
  border: 0;
  border: 1px solid #CE1141;
  background-color: #CE1141;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  outline: 0;
}

.cta__social-link-action-bar {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: background-color,fill;
  transition-property: background-color,fill;
  border: 0;
  background-color: #7b7b7b;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  outline: 0;
}

.cta__social-link_dark .social-icon {
  fill: #000;
}

.cta__social-link_light .social-icon {
  fill: #fff;
}

.cta__social-link:focus, .cta__social-link:hover, .cta__social-link-action-bar:focus, .cta__social-link-action-bar:hover {
  background-color: #ee0019;
}

.cta__social-link-red:focus, .cta__social-link-red:hover {
  background-color: #fff;
}

.cta__social-link:focus .social-icon, .cta__social-link:hover .social-icon, .cta__social-link-action-bar:focus .social-icon, .cta__social-link-action-bar:hover .social-icon {
  fill: #fff;
}

.cta__social-link-red:focus, .cta__social-link-red:hover {
  background-color: #fff;
}

.cta__social-link-red:focus .social-icon, .cta__social-link-red:hover .social-icon {
  fill: #000;
}

.social-icon {
  width: 12px;
  fill: #000;
}

.arrow-icon {
  width: 15px;
  max-width: 15px;
}

.access-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}

.cta__featured-copy {
  color: inherit;
  background-color: rgba(0, 243, 255, 0);
}

.cta__arrow, .cta__featured-copy {
  display: inline-block;
  padding: 10px;
}

.cta__arrow {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: fill;
  transition-property: fill;
  fill: #00f3ff;
}

.cta__arrow--external {
  -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
          transform: rotate(-45deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
}

.cta__arrow-nav svg {
  max-width: none;
}

.cta__social-links-container {
  display: inline-block;
  margin-left: 15px;
}

.cta__social-links-container:first-child {
  margin-left: 0;
}

/**
 * Type	: Organism
 * Name	: Grid Gallery
 * Desc : A grid of images used for displaying a simple image gallery.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Grid Gallery • Settings
 * *************************************
 */
/**
 * ************************************
 * Grid Gallery • Class Definitions
 * ************************************
 */
.o-grid-gallery {
  max-width: 1200px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 96px;
}

.o-grid-gallery__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-right: -1%;
}

.o-grid-gallery__item {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 49%;
          flex: 1 0 49%;
  max-width: 700px;
  margin-right: 1%;
  margin-bottom: 1%;
  overflow: hidden;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.o-grid-gallery__item:hover {
  opacity: 0.85;
  filter: alpha(opacity=85);
}

.o-grid-gallery__img {
  display: inherit;
  margin: 0;
  width: 100%;
}

/**
 * Type	: Organism
 * Name	: Header
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Header • Settings
 * *************************************
 */
/**
 * ************************************
 * Header • Class Definitions
 * ************************************
 */
/**
	 * Header • Base
	 */
.o-header {
  background-color: #ffffff;
  position: relative;
}

/**
	 * Header • Container
	 */
.o-header__container {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  text-align: center;
  max-width: 1200px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 8px;
}

/**
	 * Header • Icon
	 */
.o-header__logo {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: block;
}

.o-header__logo .a-icon {
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.o-header__logo:hover .a-icon {
  fill: #4D4D4D;
}

/**
	 * Header Desktop Navigation
	 */
.o-header__nav--desktop {
  display: none;
}

/**
	 * Header • Mobile Navigation
	 */
.o-header__nav--mobile {
  display: block;
  position: relative;
  top: 4px;
}

.o-header__nav--mobile .a-icon {
  fill: #00FFFF;
}

/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files relating to Heroes
 * Group	: Hero
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type	: Organism
 * Name	: Hero
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Hero • Settings
 * *************************************
 */
/**
 * ************************************
 * Hero • Class Definitions
 * ************************************
 */
/**
	 * Base
	 */
.o-hero {
  background-color: #E5E5E5;
  overflow: hidden;
  position: relative;
}

/**
	 * Variation • Tall
	 */
.o-hero--tall {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-height: 65vh;
}

/**
 * Type	: Organism
 * Name	: Hero Cover
 * Desc : Centered Content with BG Images that Cover
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Hero Cover • Settings
 * *************************************
 */
/**
 * ************************************
 * Hero Cover • Class Definitions
 * ************************************
 */
.o-hero--cover {
  text-align: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 128px;
  padding-bottom: 128px;
}

.o-hero--cover > .o-hero__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-width: 1200px;
}

/**
	 * Hero Cover • Themes
	 *
	 * Use a mixin to build different cover hero themes.
	 * These will automate hero coloring for single post pages
	 * based on the post category.
	 *
	 * NOTE: These themes will only apply to `.o-hero--cover` hero types.
	 */
.o-hero--cover.o-hero--theme--feature {
  background-color: #006EA1;
  border-bottom: 16px solid #005d88;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--snapshot {
  background-color: #4D6A90;
  border-bottom: 16px solid #445e7f;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--scribbling {
  background-color: #7FBEDA;
  border-bottom: 16px solid #6bb4d4;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--my-old-house {
  background-color: #078493;
  border-bottom: 16px solid #066e7b;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--marianist {
  background-color: #8C5BCD;
  border-bottom: 16px solid #7e47c7;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--parting {
  background-color: #5C61FF;
  border-bottom: 16px solid #4348ff;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--presidents {
  background-color: #B4106C;
  border-bottom: 16px solid #9d0e5e;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--sports {
  background-color: #832B83;
  border-bottom: 16px solid #702570;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--perceptions {
  background-color: #7F2C58;
  border-bottom: 16px solid #6c254b;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--alumni {
  background-color: #D82B53;
  border-bottom: 16px solid #c52449;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--chapter {
  background-color: #D24812;
  border-bottom: 16px solid #bb4010;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--expert {
  background-color: #F97912;
  border-bottom: 16px solid #ec6c06;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--hidden {
  background-color: #84BD94;
  border-bottom: 16px solid #73b486;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--good-works {
  background-color: #A8CD56;
  border-bottom: 16px solid #9ec742;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--bookshelf {
  background-color: #00D8AE;
  border-bottom: 16px solid #00bf99;
  border-radius: 0px !important;
}

.o-hero--cover.o-hero--theme--no-tag {
  background-color: #6D748D;
  border-bottom: 16px solid #62687f;
  border-radius: 0px !important;
}

/**
 * Type	: Organism
 * Name	: Hero Offset
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Hero Offset • Settings
 * *************************************
 */
/**
 * ************************************
 * Hero Offset • Class Definitions
 * ************************************
 */
/**
	 * Base
	 */
.o-hero--offset {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/**
	 * Hero Offset • Image
	 */
.o-hero--offset .o-hero__img {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 350px;
          flex: 0 1 350px;
}

/**
	 * Hero Offset • Content
	 */
.o-hero--offset .o-hero__content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  text-align: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 32px;
  padding-left: 32px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 64px;
  padding-bottom: 64px;
}

/**
	 * Hero Offset • My Old House
	 *
	 * The Hero offset for My Old House has a special styling that
	 * applies to the `m-title-group__pre` element.
	 */
.o-hero--offset.o-hero--offset--my-old-house .m-title-group__pre {
  color: #078493;
}

/**
 * Type	: Organism
 * Name	: Hero Issue
 * Desc : Specifically used on Issue landing pages
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Hero Issue • Settings
 * *************************************
 */
/**
 * ************************************
 * Hero Issue • Class Definitions	
 * ************************************
 */
/**
	 * Base
	 */
.o-hero--issue {
  background: #f3f3f3;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 64px;
  padding-bottom: 64px;
}

/**
	 * Hero Issue • Container
	 */
.o-hero--issue .o-hero__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  max-width: 1200px;
}

/**
	 * Hero Issue • Content
	 */
.o-hero--issue .o-hero__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  text-align: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding: 16px;
}

.o-hero--issue .m-title-group__action {
  text-align: left;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 24px;
  margin-bottom: 24px;
}

/**
 * Type	: Organism
 * Name	: Hero Simple
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Hero Simple • Settings
 * *************************************
 */
/**
 * ************************************
 * Hero Simple • Class Definitions
 * ************************************
 */
/**
	 * Simple Hero • Base
	 */
.o-hero--simple {
  text-align: center;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 128px;
  padding-bottom: 128px;
}

.o-hero--simple > .o-hero__container {
  max-width: 1200px;
}

/**
	 * Hero Simple • Content & Actions
	 */
.o-hero--simple .m-title-group__content,
.o-hero--simple .m-title-group__action {
  margin-left: auto;
  margin-right: auto;
}

.o-hero--simple .m-title-group__content {
  max-width: 600px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 24px;
}

.o-hero--simple .m-title-group__action {
  max-width: 700px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 24px;
}

/**
	 * Hero Simple • Highlighted Text
	 */
.o-hero--simple__highlight {
  color: #004B8D;
  display: block;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 16px;
}

/**
 * Type	: Organism
 * Name	: List-O-Matic
 *
 * @since 1.0.0
 * @author James Washington
 */
.o-list-o-matic .listomatic__container {
  margin-bottom: 60px;
  margin-top: 60px;
}

.o-list-o-matic .listomatic__kicker-container {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.o-list-o-matic .listomatic__kicker {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  margin-bottom: 30px;
  font-family: Champion Welterwt A,Champion Welterwt B,Champion HTF-Welterweight,sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.2rem;
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
}

.o-list-o-matic .listomatic__content-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  position: relative;
  padding-top: 30px;
  padding-bottom: 30px;
}

.o-list-o-matic .listomatic__content-wrapper:first-child {
  padding-top: 0;
}

.o-list-o-matic .listomatic__content-wrapper:after {
  position: absolute;
  bottom: 0;
  left: 20px;
  width: -webkit-calc(100% - 40px);
  width: calc(100% - 40px);
  height: 1px;
  content: "";
  background-color: #e5e5e5;
}

.o-list-o-matic .listomatic__image-wrapper {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  margin-bottom: 15px;
}

.o-list-o-matic .listomatic__copy-wrapper {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}

.o-list-o-matic .listomatic__content-wrapper .listomatic__copy-wrapper:only-child {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}

.o-list-o-matic .listomatic__image-link {
  display: inline-block;
  overflow: hidden;
}

.o-list-o-matic a.listomatic__image-link {
  color: inherit;
  border-bottom: none;
}

.o-list-o-matic a.listomatic__image-link:hover {
  color: inherit;
  border-bottom: none;
}

.o-list-o-matic .listomatic__copy-header {
  font-family: "Champion Bantamwt A", "Champion Bantamwt B", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 2.25rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.16667;
  display: inline-block;
  margin-bottom: 15px;
  text-transform: uppercase;
  letter-spacing: 3px;
}

.o-list-o-matic a.listomatic__copy-header {
  color: inherit;
  border: none;
}

.o-list-o-matic a.listomatic__copy-header:hover {
  color: inherit;
  border: none;
}

.o-list-o-matic .listomatic__copy {
  font-family: "Chronicle Text G1 A", "Chronicle Text G1 B", serif;
  font-style: normal;
  font-weight: inherit;
  font-size: 1.2rem;
}

.o-list-o-matic a.cta__standard {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: background-color;
  transition-property: background-color;
  font-family: Work Sans,sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: none;
  letter-spacing: 0;
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  margin-left: -10px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #1200da;
  outline: 0;
  border-bottom: none;
}

.o-list-o-matic a.cta__standard:hover {
  background-color: rgba(0, 243, 255, 0.2);
  color: #1200da;
  border-bottom: none;
}

.o-list-o-matic .listomatic__image {
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  max-width: 200px;
}

.o-list-o-matic .listomatic__image:hover {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2);
}

.o-list-o-matic .cta__copy {
  padding: 10px;
  background-color: rgba(0, 243, 255, 0);
}

.o-list-o-matic .cta__arrow {
  display: inline-block;
  padding: 10px;
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
  -webkit-transition-duration: .25s;
          transition-duration: .25s;
  -webkit-transition-property: fill;
  transition-property: fill;
  fill: #00f3ff;
}

.o-list-o-matic .cta__standard:hover .cta__arrow {
  fill: #171b48;
}

.o-list-o-matic .arrow-icon {
  width: 15px;
  max-width: 15px;
}

.o-list-o-matic .listomatic__link-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-top: 12px;
}

.listomatic__kicker--theme--marianist {
  color: #8C5BCD;
}

.listomatic__kicker--theme--parting {
  color: #5C61FF;
}

.listomatic__kicker--theme--presidents {
  color: #B4106C;
}

.listomatic__kicker--theme--sports {
  color: #832B83;
}

.listomatic__kicker--theme--perceptions {
  color: #7F2C58;
}

.listomatic__kicker--theme--alumni {
  color: #D82B53;
}

.listomatic__kicker--theme--chapter {
  color: #D24812;
}

.listomatic__kicker--theme--expert {
  color: #F97912;
}

.listomatic__kicker--theme--hidden {
  color: #84BD94;
}

.listomatic__kicker--theme--good-works {
  color: #A8CD56;
}

.listomatic__kicker--theme--bookshelf {
  color: #00D8AE;
}

.listomatic__kicker--theme--no-tag {
  color: #6D748D;
}

/**
 * Type	: Organism
 * Name	: Mega Menu • Base
 * Desc : Handle styling for core mega menu elements.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Mega Menu • Settings
 * *************************************
 */
/**
	 * Text Area ( only on My Old House tab )
	 */
/**
 * ************************************
 * Mega Menu • Class Definitions
 * ************************************
 */
/**
	 * Mega Menu • Base
	 */
.o-mega {
  background-color: #E5E5E5;
  pointer-events: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 20;
  border-bottom: 5px solid #ffffff;
  border-radius: 0px !important;
  opacity: 0;
  filter: alpha(opacity=0);
  -webkit-box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.1);
          box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.1);
}

/**
	 * Mega Menu • Panel
	 *
	 * The primary internal holder for all Mega Menu content
	 */
.o-mega__panel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}

/**
	 * Mega Menu • Titles
	 *
	 * Titles appear above each unique "Well"
	 */
.o-mega__title {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 16px;
}

/**
	 * Mega Menu • Text Area
	 *
	 * Keep width-restricted for visual purposes and 
	 * prevents it from flowing behind the `o-mega__cta` element.
	 */
.o-mega__text-area {
  max-width: 650px;
  width: -webkit-calc( 100% - 175px);
  width: calc( 100% - 175px);
}

/**
 * Type	: Organism
 * Name	: Mega Menu • Active State
 * Desc	: When the mega menu is activated, a class is added via JS and
 * styling needs to reflect the new mega menu state.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Mega Menu Active • Settings
 * *************************************
 */
/**
 * ************************************
 * Mega Menu Active • Class Definitions
 * ************************************
 */
.o-mega.o-mega--active {
  pointer-events: all;
  opacity: 1;
  filter: alpha(opacity=100);
}

a.has-mega--active {
  background-color: #E5E5E5;
  color: #004B8D !important;
}

/**
 * Type	: Organism
 * Name	: Mega Menu • CTA
 * Desc : A special call-to-action button positioned to the far right of the mega menu
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Mega Menu CTA • Settings
 * *************************************
 */
/**
 * ************************************
 * Mega Menu CTA • Class Definitions
 * ************************************
 */
.o-mega__cta {
  background: #EDEDED;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  width: 200px;
  /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
  background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='#F80228'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
  background-position: 50% -webkit-calc( 50% + 15px);
  background-position: 50% calc( 50% + 15px);
  background-repeat: no-repeat;
  background-size: 32px 32px;
  -webkit-box-shadow: 2px 0px 20px 15px rgba(0, 0, 0, 0.1);
          box-shadow: 2px 0px 20px 15px rgba(0, 0, 0, 0.1);
  -webkit-transition: background 0.15s ease;
  transition: background 0.15s ease;
}

.o-mega__cta:hover {
  background-color: #f3f3f3;
}

.o-mega__cta__title {
  color: #004B8D;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  position: relative;
  /**
		 * In order for the arrow and title to appear centered, the title needs
		 * its top offset be manually adjusted.
		 */
  top: -15px;
}

/**
 * Type	: Organism
 * Name	: Mega Menu • Feed
 * Desc : The wrapper where our Mega Menu Slider will eventually live. Used for displaying a feed of recent content.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Mega Menu Feed • Settings
 * *************************************
 */
/**
 * ************************************
 * Mega Menu Feed• Class Definitions
 * ************************************
 */
/**
	 * Mega Menu Feed • Base
	 */
.o-mega__feed {
  /**
		 * In order to keep the feed from passing behind `o-mega__cta`, we need to take the total
		 * width and subtract an offset value which we will define
		 */
  width: -webkit-calc( 100% - 136px);
  width: calc( 100% - 136px);
}

.o-mega__feed__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

/**
	 * Mega Menu Feed • Item
	 *
	 * Each item displayed within the feed
	 */
.o-mega__feed__item {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-right: 48px;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.o-mega__feed__item:focus {
  outline: none;
}

.o-mega__feed__item:hover .o-mega__feed__img {
  opacity: 0.9;
  filter: alpha(opacity=90);
}

/**
	 * Mega Menu Feed • Images
	 */
.o-mega__feed__img {
  -webkit-box-shadow: 0px 0px 7px 1px rgba(77, 77, 77, 0.5);
          box-shadow: 0px 0px 7px 1px rgba(77, 77, 77, 0.5);
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

.o-mega--magazine .o-mega__feed__img {
  height: 200px;
  width: 150px;
}

.o-mega--quickly .o-mega__feed__img {
  width: 225px;
}

/**
 * Type	: Organism
 * Name	: Mega Menu Well
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Mega Menu Well • Settings
 * *************************************
 */
/**
 * ************************************
 * Mega Menu Well • Class Definitions
 * ************************************
 */
/**
	 * Mega Menu • Well
	 */
.o-mega__well {
  position: relative;
}

.o-mega__well--featured,
.o-mega__well--list {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 64px;
  padding-left: 64px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 48px;
  padding-bottom: 48px;
}

/**
	 * Well Type -- List
	 */
.o-mega__well--list {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  overflow-x: hidden;
}

.o-mega__well--list:first-of-type {
  background-color: #171B48;
}

.o-mega__well--list:nth-of-type(2) {
  background-color: #004B8D;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 375px;
          flex: 0 0 375px;
}

.o-mega__well--list .m-link-list__item__anchor {
  max-width: 250px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.o-mega__well--list .o-mega__title {
  color: #ffffff;
}

/**
	 * Well Type -- Featured
	 */
.o-mega__well--featured {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow-x: hidden;
}

.o-mega__well--featured .o-mega__title {
  color: #004B8D;
}

/**
 * Type	: Organism
 * Name	: Post
 * Desc : Only appears on SINGLE Post pages for any given post type.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Post • Settings
 * *************************************
 */
/**
 * ************************************
 * Post • Class Definitions
 * ************************************
 */
/**
	 * Base
	 */
.o-post {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 48px;
  padding-bottom: 48px;
}

.o-post__container {
  position: relative;
  max-width: 700px;
}

/**
	 * Post • Copy
	 */
.o-post__content p {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 32px;
}

.o-post__content h2 {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 48px;
}

.o-post__content ol > li::before {
  content: "";
  width: 10px;
  display: inline-block;
}

.o-post__content li > ul > li {
  list-style-type: circle;
}

.o-post__content li > ul {
  padding-left: 10px;
}

.o-post__content ul {
  list-style: none;
  list-style-type: disc;
  list-style-position: inside;
  font-size: 1.25rem;
  margin-bottom: 32px;
}

.o-post__content ol {
  list-style-type: decimal;
  list-style-position: inside;
  font-size: 1.25rem;
  margin-bottom: 32px;
}

.o-post__content li > ol > li {
  list-style-type: lower-alpha;
  padding-left: 10px;
}

/**
	 * Post • Dropcap
	 */
.o-post__content p:first-child:first-letter {
  float: left;
  font-size: 375%;
  line-height: 0.8;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-left: 2px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 2px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-right: 8px;
}

/**
	 * Post • Images
	 *
	 * We are applying some unique styling to our images on "largish"
	 * screen sizes. Images will be pulled outside of the content container.
	 * As the screen shrinks, they will fit back in within the flow of of the
	 * content.
	 */
.o-post__content img {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 8px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 32px;
}

.o-post__content figure {
  float: left;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 32px;
}

.o-post__content figure img {
  margin-left: 0px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 4px;
}

.o-post__content figure figcaption {
  font-family: "Work Sans", sans-serif;
  font-style: normal;
  font-weight: 600;
  /**
	 * `ms` or Mobile Scale, applies a different "Scale" as defined in our type config
	 * on smallish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * `ds` or Desktop Scale, applies a different "Scale" as defined in our type config
	 * on largeish devices. This makes all fonts across the project to scale at exactly
	 * the same rate and by exactly the same amount.
	 */
  /**
	 * Super Tiny
	 */
  /**
	 * Really Tiny
	 */
  /**
	 * Fine Print
	 */
  /**
	 * Base body copy
	 */
  font-size: 16px;
  font-size: 1rem;
  /**
	 * Large body + Small Heading
	 */
  /**
	 * Medium Heading
	 */
  /**
	 * Large Heading
	 */
  /**
	 * XL Heading
	 */
  /**
	 * XXL Heading
	 */
  /**
	 * XXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
  /**
	 * XXXXL Heading
	 */
}

/**
 * Type	: Organism
 * Name	: Org. Highlight
 * Desc : Used to highlight a company or organization, including
 * contact info, description, relevant links, etc.
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Org. Highlight • Settings
 * *************************************
 */
/**
 * ************************************
 * Org. Highlight • Class Definitions
 * ************************************
 */
/**
	 * Base
	 */
.o-org-highlight {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  /**
		 * Target the first appearance of `.o-org-highlight` so we can
		 * give it special styling, such as unique spacing etc.
		 */
}

.o-org-highlight:nth-of-type(1) {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-bottom: 96px;
}

/**
	 * Org. Highlight • Copy & Title
	 */
.o-org-highlight__title,
.o-org-highlight__copy {
  color: #ffffff;
}

.o-org-highlight__copy {
  max-width: 500px;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-top: 24px;
}

/**
	 * Org. Highlight • Footer
	 */
.o-footer .o-org-highlight {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.o-footer .o-org-highlight__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.o-footer .o-org-highlight__title {
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  margin-bottom: 64px;
}

.o-related-links .related-links__container {
  position: relative;
  padding-top: 60px;
  padding-bottom: 60px;
}

.o-related-links .related-links__container--refresh {
  background-image: url(/0/_2019/images/graphics/background-grayNoise.png);
  background-size: cover;
}

.o-related-links .related-links__kicker-container {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.o-related-links .related-links__list {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.o-related-links .related-links__kicker {
  z-index: 20;
  font-family: Champion Welterwt A,Champion Welterwt B,Champion HTF-Welterweight,sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.2rem;
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  margin-bottom: 30px;
}

.o-related-links li.related-link__list-item a {
  width: 100%;
}

.o-related-links .related-link__list-item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  margin-bottom: 15px;
}

.o-related-links .related-links__header--marianist {
  color: #8C5BCD;
}

.o-related-links .related-links__header--parting {
  color: #5C61FF;
}

.o-related-links .related-links__header--presidents {
  color: #B4106C;
}

.o-related-links .related-links__header--sports {
  color: #832B83;
}

.o-related-links .related-links__header--perceptions {
  color: #7F2C58;
}

.o-related-links .related-links__header--alumni {
  color: #D82B53;
}

.o-related-links .related-links__header--chapter {
  color: #D24812;
}

.o-related-links .related-links__header--expert {
  color: #F97912;
}

.o-related-links .related-links__header--hidden {
  color: #84BD94;
}

.o-related-links .related-links__header--good-works {
  color: #A8CD56;
}

.o-related-links .related-links__header--bookshelf {
  color: #00D8AE;
}

.o-related-links .related-links__header--no-tag {
  color: #6D748D;
}

/**
 * Type	: Organism
 * Name	: Site
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Site • Settings
 * *************************************
 */
/**
 * ************************************
 * Site • Class Definitions
 * ************************************
 */
/**
 * Site • Base
 */
.o-site,
.o-site__scroller {
  height: 100%;
}

.o-site__scroller {
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
}

.o-site__scroller,
.o-site__scroller-inner {
  position: relative;
}

.o-site__container {
  -webkit-transform: translate3d(0px, 0px, 0px);
          transform: translate3d(0px, 0px, 0px);
}

.o-site__container.o-site__container--is-pushed {
  -webkit-transform: translate3d(-300px, 0px, 0px);
          transform: translate3d(-300px, 0px, 0px);
}

.o-site {
  position: relative;
  overflow: hidden;
}

.o-site__container {
  position: relative;
  right: 0;
  height: 100%;
}

/* overlays for pusher and for level that gets covered */
.o-site__container::after,
.m-mobile__level::after,
.m-mobile__level::before {
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  content: '';
  opacity: 0;
}

.o-site__container::after,
.m-mobile__level::after {
  background: rgba(0, 0, 0, 0.3);
  -webkit-transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s;
  transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s;
}

.o-site__container.o-site__container--is-pushed::after,
.m-mobile__level.m-mobile__overlay::after {
  width: 100%;
  height: 100%;
  opacity: 1;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}

/**
 * Type	: Organism
 * Name	: Utility Bar
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * *************************************
 * Utility Bar • Settings
 * *************************************
 */
/* IE needs both */
/* IE needs both */
/**
 * ************************************
 * Utility Bar • Class Definitions
 * ************************************
 */
/**
	 * Base
	 */
.o-utility-bar {
  background-color: #171B48;
  /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
  padding-top: 16px;
  padding-bottom: 16px;
}

.o-utility-bar__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  max-width: 100%;
}

/**
	 * Util Bar • Menu
	 */
.o-utility-bar .m-menu--secondary {
  display: none;
}

.o-utility-bar .m-form__group {
  margin-top: 0;
}

.o-utility-bar .menu__logo-link {
  position: absolute;
  margin-left: 4%;
}

.o-utility-bar .menu__logo-link .header-logo {
  fill: #fff;
  width: 225px;
  height: 44px;
  margin-top: -4px;
}

.o-utility-bar .menu__logo-link .header-logo:hover {
  fill: #00FFFF;
}

/**
	 * Load page-specific code
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Pages
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
	 * Load our utility classes 
	 */
/**
 * Name		: Loader
 * Desc		: Handles importing/loading of all partial files in the specified group.
 * Group	: Utility
 * 
 * @since 1.0.0
 * @author CreativeFuse
 */
/**
 * ****************
 * File Import List
 * ****************
 */
/**
 * Type		: Utility
 * Group	: Accessbility
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-vis-hide {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/**
 * Type		: Utility
 * Group	: Alignment
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-text-align--left {
  text-align: left;
}

.u-text-align--center {
  text-align: center;
}

.u-text-align--right {
  text-align: center;
}

.u-hug--right {
  margin-right: 0;
  margin-left: auto;
}

.u-hug--left {
  margin-right: 0;
  margin-left: auto;
}

.u-center {
  margin: 0 auto;
}

.u-center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.u-affix {
  position: fixed;
}

.u-clearfix:before,
.u-clearfix:after {
  content: " ";
  display: table;
}

.u-clearfix:after {
  clear: both;
}

.u-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.u-flex-inline {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

.u-flex-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.u-flex-col {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.u-flex-justify--start {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.u-flex-justify--end {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
}

.u-flex-justify--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.u-flex-justify--between {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.u-flex-justify--around {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.u-flex-align--start {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.u-flex-align--end {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.u-flex-align--center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.u-flex-align--baseline {
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}

.u-flex-align--stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.u-flex-wrap--no {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.u-flex-wrap--yes {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

/**
 * Type		: Utility
 * Group	: Pseudo
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-disable-scroll {
  overflow: hidden;
}

/**
 * Type		: Utility
 * Group	: Spacing
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-mar-t--2xs {
  margin-top: 2px;
}

.u-pad-t--2xs {
  padding-top: 2px;
}

.u-mar-r--2xs {
  margin-right: 2px;
}

.u-pad-r--2xs {
  padding-right: 2px;
}

.u-mar-b--2xs {
  margin-bottom: 2px;
}

.u-pad-b--2xs {
  padding-bottom: 2px;
}

.u-mar-l--2xs {
  margin-left: 2px;
}

.u-pad-l--2xs {
  padding-left: 2px;
}

.u-mar-x--2xs {
  margin-right: 2px;
  margin-left: 2px;
}

.u-pad-x--2xs {
  padding-right: 2px;
  padding-left: 2px;
}

.u-mar-y--2xs {
  margin-top: 2px;
  margin-bottom: 2px;
}

.u-pad-y--2xs {
  padding-top: 2px;
  padding-bottom: 2px;
}

.u-mar--2xs {
  margin: 2px;
}

.u-pad--2xs {
  padding: 2px;
}

.u-mar-t--xs {
  margin-top: 4px;
}

.u-pad-t--xs {
  padding-top: 4px;
}

.u-mar-r--xs {
  margin-right: 4px;
}

.u-pad-r--xs {
  padding-right: 4px;
}

.u-mar-b--xs {
  margin-bottom: 4px;
}

.u-pad-b--xs {
  padding-bottom: 4px;
}

.u-mar-l--xs {
  margin-left: 4px;
}

.u-pad-l--xs {
  padding-left: 4px;
}

.u-mar-x--xs {
  margin-right: 4px;
  margin-left: 4px;
}

.u-pad-x--xs {
  padding-right: 4px;
  padding-left: 4px;
}

.u-mar-y--xs {
  margin-top: 4px;
  margin-bottom: 4px;
}

.u-pad-y--xs {
  padding-top: 4px;
  padding-bottom: 4px;
}

.u-mar--xs {
  margin: 4px;
}

.u-pad--xs {
  padding: 4px;
}

.u-mar-t--s {
  margin-top: 8px;
}

.u-pad-t--s {
  padding-top: 8px;
}

.u-mar-r--s {
  margin-right: 8px;
}

.u-pad-r--s {
  padding-right: 8px;
}

.u-mar-b--s {
  margin-bottom: 8px;
}

.u-pad-b--s {
  padding-bottom: 8px;
}

.u-mar-l--s {
  margin-left: 8px;
}

.u-pad-l--s {
  padding-left: 8px;
}

.u-mar-x--s {
  margin-right: 8px;
  margin-left: 8px;
}

.u-pad-x--s {
  padding-right: 8px;
  padding-left: 8px;
}

.u-mar-y--s {
  margin-top: 8px;
  margin-bottom: 8px;
}

.u-pad-y--s {
  padding-top: 8px;
  padding-bottom: 8px;
}

.u-mar--s {
  margin: 8px;
}

.u-pad--s {
  padding: 8px;
}

.u-mar-t--m {
  margin-top: 16px;
}

.u-pad-t--m {
  padding-top: 16px;
}

.u-mar-r--m {
  margin-right: 16px;
}

.u-pad-r--m {
  padding-right: 16px;
}

.u-mar-b--m {
  margin-bottom: 16px;
}

.u-pad-b--m {
  padding-bottom: 16px;
}

.u-mar-l--m {
  margin-left: 16px;
}

.u-pad-l--m {
  padding-left: 16px;
}

.u-mar-x--m {
  margin-right: 16px;
  margin-left: 16px;
}

.u-pad-x--m {
  padding-right: 16px;
  padding-left: 16px;
}

.u-mar-y--m {
  margin-top: 16px;
  margin-bottom: 16px;
}

.u-pad-y--m {
  padding-top: 16px;
  padding-bottom: 16px;
}

.u-mar--m {
  margin: 16px;
}

.u-pad--m {
  padding: 16px;
}

.u-mar-t--ml {
  margin-top: 24px;
}

.u-pad-t--ml {
  padding-top: 24px;
}

.u-mar-r--ml {
  margin-right: 24px;
}

.u-pad-r--ml {
  padding-right: 24px;
}

.u-mar-b--ml {
  margin-bottom: 24px;
}

.u-pad-b--ml {
  padding-bottom: 24px;
}

.u-mar-l--ml {
  margin-left: 24px;
}

.u-pad-l--ml {
  padding-left: 24px;
}

.u-mar-x--ml {
  margin-right: 24px;
  margin-left: 24px;
}

.u-pad-x--ml {
  padding-right: 24px;
  padding-left: 24px;
}

.u-mar-y--ml {
  margin-top: 24px;
  margin-bottom: 24px;
}

.u-pad-y--ml {
  padding-top: 24px;
  padding-bottom: 24px;
}

.u-mar--ml {
  margin: 24px;
}

.u-pad--ml {
  padding: 24px;
}

.u-mar-t--l {
  margin-top: 32px;
}

.u-pad-t--l {
  padding-top: 32px;
}

.u-mar-r--l {
  margin-right: 32px;
}

.u-pad-r--l {
  padding-right: 32px;
}

.u-mar-b--l {
  margin-bottom: 32px;
}

.u-pad-b--l {
  padding-bottom: 32px;
}

.u-mar-l--l {
  margin-left: 32px;
}

.u-pad-l--l {
  padding-left: 32px;
}

.u-mar-x--l {
  margin-right: 32px;
  margin-left: 32px;
}

.u-pad-x--l {
  padding-right: 32px;
  padding-left: 32px;
}

.u-mar-y--l {
  margin-top: 32px;
  margin-bottom: 32px;
}

.u-pad-y--l {
  padding-top: 32px;
  padding-bottom: 32px;
}

.u-mar--l {
  margin: 32px;
}

.u-pad--l {
  padding: 32px;
}

.u-mar-t--lm {
  margin-top: 48px;
}

.u-pad-t--lm {
  padding-top: 48px;
}

.u-mar-r--lm {
  margin-right: 48px;
}

.u-pad-r--lm {
  padding-right: 48px;
}

.u-mar-b--lm {
  margin-bottom: 48px;
}

.u-pad-b--lm {
  padding-bottom: 48px;
}

.u-mar-l--lm {
  margin-left: 48px;
}

.u-pad-l--lm {
  padding-left: 48px;
}

.u-mar-x--lm {
  margin-right: 48px;
  margin-left: 48px;
}

.u-pad-x--lm {
  padding-right: 48px;
  padding-left: 48px;
}

.u-mar-y--lm {
  margin-top: 48px;
  margin-bottom: 48px;
}

.u-pad-y--lm {
  padding-top: 48px;
  padding-bottom: 48px;
}

.u-mar--lm {
  margin: 48px;
}

.u-pad--lm {
  padding: 48px;
}

.u-mar-t--xl {
  margin-top: 64px;
}

.u-pad-t--xl {
  padding-top: 64px;
}

.u-mar-r--xl {
  margin-right: 64px;
}

.u-pad-r--xl {
  padding-right: 64px;
}

.u-mar-b--xl {
  margin-bottom: 64px;
}

.u-pad-b--xl {
  padding-bottom: 64px;
}

.u-mar-l--xl {
  margin-left: 64px;
}

.u-pad-l--xl {
  padding-left: 64px;
}

.u-mar-x--xl {
  margin-right: 64px;
  margin-left: 64px;
}

.u-pad-x--xl {
  padding-right: 64px;
  padding-left: 64px;
}

.u-mar-y--xl {
  margin-top: 64px;
  margin-bottom: 64px;
}

.u-pad-y--xl {
  padding-top: 64px;
  padding-bottom: 64px;
}

.u-mar--xl {
  margin: 64px;
}

.u-pad--xl {
  padding: 64px;
}

.u-mar-t--2xl {
  margin-top: 96px;
}

.u-pad-t--2xl {
  padding-top: 96px;
}

.u-mar-r--2xl {
  margin-right: 96px;
}

.u-pad-r--2xl {
  padding-right: 96px;
}

.u-mar-b--2xl {
  margin-bottom: 96px;
}

.u-pad-b--2xl {
  padding-bottom: 96px;
}

.u-mar-l--2xl {
  margin-left: 96px;
}

.u-pad-l--2xl {
  padding-left: 96px;
}

.u-mar-x--2xl {
  margin-right: 96px;
  margin-left: 96px;
}

.u-pad-x--2xl {
  padding-right: 96px;
  padding-left: 96px;
}

.u-mar-y--2xl {
  margin-top: 96px;
  margin-bottom: 96px;
}

.u-pad-y--2xl {
  padding-top: 96px;
  padding-bottom: 96px;
}

.u-mar--2xl {
  margin: 96px;
}

.u-pad--2xl {
  padding: 96px;
}

.u-mar-t--3xl {
  margin-top: 128px;
}

.u-pad-t--3xl {
  padding-top: 128px;
}

.u-mar-r--3xl {
  margin-right: 128px;
}

.u-pad-r--3xl {
  padding-right: 128px;
}

.u-mar-b--3xl {
  margin-bottom: 128px;
}

.u-pad-b--3xl {
  padding-bottom: 128px;
}

.u-mar-l--3xl {
  margin-left: 128px;
}

.u-pad-l--3xl {
  padding-left: 128px;
}

.u-mar-x--3xl {
  margin-right: 128px;
  margin-left: 128px;
}

.u-pad-x--3xl {
  padding-right: 128px;
  padding-left: 128px;
}

.u-mar-y--3xl {
  margin-top: 128px;
  margin-bottom: 128px;
}

.u-pad-y--3xl {
  padding-top: 128px;
  padding-bottom: 128px;
}

.u-mar--3xl {
  margin: 128px;
}

.u-pad--3xl {
  padding: 128px;
}

.u-mar-t--4xl {
  margin-top: 160px;
}

.u-pad-t--4xl {
  padding-top: 160px;
}

.u-mar-r--4xl {
  margin-right: 160px;
}

.u-pad-r--4xl {
  padding-right: 160px;
}

.u-mar-b--4xl {
  margin-bottom: 160px;
}

.u-pad-b--4xl {
  padding-bottom: 160px;
}

.u-mar-l--4xl {
  margin-left: 160px;
}

.u-pad-l--4xl {
  padding-left: 160px;
}

.u-mar-x--4xl {
  margin-right: 160px;
  margin-left: 160px;
}

.u-pad-x--4xl {
  padding-right: 160px;
  padding-left: 160px;
}

.u-mar-y--4xl {
  margin-top: 160px;
  margin-bottom: 160px;
}

.u-pad-y--4xl {
  padding-top: 160px;
  padding-bottom: 160px;
}

.u-mar--4xl {
  margin: 160px;
}

.u-pad--4xl {
  padding: 160px;
}

/**
 * Type		: Utility
 * Group	: Text Color
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-color--red {
  color: #CE1141;
}

.u-fill--red {
  fill: #CE1141;
}

.u-color--glow-red {
  color: #F80228;
}

.u-fill--glow-red {
  fill: #F80228;
}

.u-color--blue {
  color: #004B8D;
}

.u-fill--blue {
  fill: #004B8D;
}

.u-color--glow-blue {
  color: #0200D1;
}

.u-fill--glow-blue {
  fill: #0200D1;
}

.u-color--glow-turq {
  color: #00FFFF;
}

.u-fill--glow-turq {
  fill: #00FFFF;
}

.u-color--glow-navy {
  color: #171B48;
}

.u-fill--glow-navy {
  fill: #171B48;
}

/**
 * Auto-generate a grayscale color pallette based on all
 * defined grayscale values in the $color_config map
 */
.u-color--gsrgbaWhite {
  color: white;
}

.u-color--white {
  color: #ffffff;
}

.u-color--gs99 {
  color: #fcfcfc;
}

.u-color--gs98 {
  color: #f3f3f3;
}

.u-color--gs95 {
  color: #EDEDED;
}

.u-color--gs90 {
  color: #E5E5E5;
}

.u-color--gs85 {
  color: #D9D9D9;
}

.u-color--gs80 {
  color: #CCCCCC;
}

.u-color--gs75 {
  color: #C0C0C0;
}

.u-color--gs70 {
  color: #B0B0B0;
}

.u-color--gs60 {
  color: #999999;
}

.u-color--gs50 {
  color: #808080;
}

.u-color--gs45 {
  color: #727272;
}

.u-color--gs40 {
  color: #696969;
}

.u-color--gs30 {
  color: #4D4D4D;
}

.u-color--gs20 {
  color: #363636;
}

.u-color--gs15 {
  color: #262626;
}

.u-color--gs10 {
  color: #171717;
}

.u-color--gs5 {
  color: #0a0a0a;
}

.u-color--black {
  color: #000000;
}

/**
 * Type		: Utility
 * Group	: Type
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-text-up {
  text-transform: uppercase;
}

.u-text-down {
  text-transform: lowercase;
}

.u-text-cap {
  text-transform: capitalize;
}

.u-underline--partial {
  position: relative;
}

.u-underline--partial:before {
  bottom: -16px;
  content: '';
  display: block;
  height: 5px;
  left: 0px;
  position: absolute;
  width: 140px;
}

.u-underline--partial--s {
  position: relative;
}

.u-underline--partial--s:before {
  bottom: -4px;
  content: '';
  display: block;
  height: 5px;
  left: 0px;
  position: absolute;
  width: 140px;
}

.u-underline--white:before {
  background: #ffffff;
}

.u-underline--gray:before {
  background: #363636;
}

/**
 * Type		: Utility
 * Group	: Visibility
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-remove {
  display: none;
}

.u-show {
  display: block;
}

.u-invisible {
  visibility: hidden;
}

.u-text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}

/**
 * Type		: Utility
 * Group	: Widths
 *
 * @since 1.0.0
 * @author CreativeFuse
 */
.u-max-width--100 {
  max-width: 100px;
}

.u-max-width--150 {
  max-width: 150px;
}

.u-max-width--200 {
  max-width: 200px;
}

.u-max-width--250 {
  max-width: 250px;
}

.u-max-width--300 {
  max-width: 300px;
}

.u-max-width--350 {
  max-width: 350px;
}

.u-max-width--400 {
  max-width: 400px;
}

.u-max-width--450 {
  max-width: 450px;
}

.u-max-width--500 {
  max-width: 500px;
}

.u-max-width--550 {
  max-width: 550px;
}

.u-max-width--600 {
  max-width: 600px;
}

.u-max-width--650 {
  max-width: 650px;
}

.u-max-width--700 {
  max-width: 700px;
}

.u-max-width--800 {
  max-width: 800px;
}

.u-max-width--900 {
  max-width: 900px;
}

.u-z--front {
  z-index: 10;
}

/**
 * SHAME!!!
 *
 * In a perfect world. you should NEVER need to use this file...BUT...stuff happens
 * and if you need to make a very quick hack to fix a bug, put your code in this file.
 * 
 * Please move the code out of this file and properly fix whatever you need
 * to fix as soon as possible. Code should never be left in _shame for any length of time.
 *
 */

@media (min-width: 768px) {
  .m-cta__container, .m-legal-bar__container, .o-action-bar__container, .o-aptly__container, .o-conversation__container, .o-filter-bar__container, .o-grid-gallery, .o-header__container, .o-hero--cover > .o-hero__container, .o-hero--issue .o-hero__container, .o-hero--simple > .o-hero__container, .o-post__container, .o-utility-bar__container {
    width: 90%;
  }
  .l-container--width {
    width: 90%;
  }
  blockquote {
    font-size: 31px;
    font-size: 1.95312rem;
  }
  blockquote:hover {
    background-color: #f3f3f3;
    border-color: #1997F0;
  }
  .a-btn--secondary {
    font-size: 14px;
    font-size: 0.86957rem;
  }
  .a-body--large,
  .o-post__content p {
    font-size: 20px;
    font-size: 1.25rem;
  }
  .a-body--small {
    font-size: 14px;
    font-size: 0.86957rem;
  }
  .a-heading--heavy--xl {
    font-size: 49px;
    font-size: 3.05176rem;
  }
  .a-heading--heavy--l {
    font-size: 31px;
    font-size: 1.95312rem;
  }
  .a-heading--heavy--s {
    font-size: 14px;
    font-size: 0.86957rem;
  }
  .a-heading--heavy--xs {
    font-size: 11px;
    font-size: 0.65752rem;
  }
  .a-heading--bantam--xl {
    font-size: 76px;
    font-size: 4.76837rem;
  }
  .a-heading--bantam--l {
    font-size: 61px;
    font-size: 3.8147rem;
  }
  .a-heading--bantam--m,
  .o-post__content h2 {
    font-size: 39px;
    font-size: 2.44141rem;
  }
  .a-heading--light--xxl {
    font-size: 61px;
    font-size: 3.8147rem;
  }
  .a-heading--light--xl {
    font-size: 39px;
    font-size: 2.44141rem;
  }
  .a-heading--light--l {
    font-size: 25px;
    font-size: 1.5625rem;
  }
  .a-heading--light--m {
    font-size: 20px;
    font-size: 1.25rem;
  }
  .m-card--standard {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    margin: unset;
    max-width: 100%;
  }
  .m-card--standard > .m-card__media {
    height: 200px;
    width: 200px;
  }
  .m-card--standard .m-card__img {
    left: -75px;
    position: absolute;
    width: auto;
  }
  .m-like:not(.m-like--is-liked):hover {
    background-color: #E5E5E5;
  }
  .m-title-group--box__cta {
    font-size: 14px;
    font-size: 0.86957rem;
  }
  .o-action-bar__back:hover .o-action-bar__back__icon {
    -webkit-transform: translateX(-3px) rotate(90deg);
        -ms-transform: translateX(-3px) rotate(90deg);
            transform: translateX(-3px) rotate(90deg);
  }
  .o-collection--images--3 > * {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 50%;
            flex: 1 0 50%;
    max-width: 50%;
  }
  .o-grid-gallery__container {
    margin-right: -1.33%;
  }
  .o-grid-gallery__item {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 32%;
            flex: 1 0 32%;
    margin-right: 1.33%;
    margin-bottom: 1.33%;
  }
  .o-post__content img {
    float: left;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-bottom: 8px;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-right: 32px;
  }
  .o-post__content figure {
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-bottom: 2px;
  }
  .o-post__content figure figcaption {
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-right: 32px;
  }
  .o-org-highlight:nth-of-type(1) {
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-right: 64px;
    padding-bottom: 0;
  }
}

@media all and (max-width: 700px) and (orientation: portrait), all and (orientation: landscape) and (max-height: 700px) {
  /* padding ui:inside */
  .fr-ui-inside .fr-container {
    padding: 12px 12px;
  }
  .fr-ui-inside.fr-no-sides .fr-container {
    padding: 12px;
  }
  /* padding ui:outside */
  .fr-ui-outside .fr-container {
    padding: 12px 72px;
  }
  .fr-ui-outside.fr-no-sides .fr-container {
    padding: 12px 48px;
  }
}

@media all and (max-width: 500px) and (orientation: portrait), all and (orientation: landscape) and (max-height: 500px) {
  /* padding ui:inside */
  .fr-ui-inside .fr-container {
    padding: 0px 0px;
  }
  .fr-ui-inside.fr-no-sides .fr-container {
    padding: 0px;
  }
  /* padding ui:outside */
  .fr-ui-outside .fr-container {
    padding: 0px 72px;
  }
  .fr-ui-outside.fr-no-sides .fr-container {
    padding: 0px 48px;
  }
  .fr-thumbnails-horizontal .fr-thumbnails {
    display: none !important;
  }
}

@media all and (max-width: 500px) and (orientation: portrait), all and (orientation: landscape) and (max-height: 414px) {
  .fr-side {
    width: 54px;
    height: 60px;
    margin: 0;
    margin-top: -30px;
  }
  .fr-side-button {
    width: 48px;
    height: 60px;
    margin: 0 3px;
  }
  .fr-page {
    min-width: 100%;
  }
  /* fullclick */
  .fr-page {
    min-height: 100%;
  }
  /* overflow: false */
  .fr-window-skin-fresco .fr-side-previous .fr-side-button-icon {
    background-position: 0px -300px;
  }
  .fr-window-skin-fresco .fr-side-next .fr-side-button-icon {
    background-position: -48px -300px;
  }
  .fr-window-skin-fresco .fr-side-previous:hover .fr-side-button-icon {
    background-position: 0px -360px;
  }
  .fr-window-skin-fresco .fr-side-next:hover .fr-side-button-icon {
    background-position: -48px -360px;
  }
  /* transition (png) */
  .fr-window-skin-fresco.fr-no-svg .fr-hovering-previous .fr-side-previous .fr-side-button-icon,
  .fr-window-skin-fresco.fr-no-svg.fr-mobile-touch .fr-side-previous .fr-side-button-icon {
    background-position: 0px -360px;
  }
  .fr-window-skin-fresco.fr-no-svg .fr-hovering-next .fr-side-next .fr-side-button-icon,
  .fr-window-skin-fresco.fr-no-svg.fr-mobile-touch .fr-side-next .fr-side-button-icon {
    background-position: -48px -360px;
  }
  /* transition (svg) */
  .fr-window-skin-fresco.fr-svg .fr-side-previous .fr-side-button-icon {
    background-position: 0px -360px;
  }
  .fr-window-skin-fresco.fr-svg .fr-side-next .fr-side-button-icon {
    background-position: -48px -360px;
  }
  /* disabled state (png) */
  .fr-window-skin-fresco.fr-no-svg .fr-side-previous.fr-side-disabled .fr-side-button-icon,
  .fr-window-skin-fresco.fr-no-svg .fr-hovering-previous .fr-side-previous.fr-side-disabled .fr-side-button-icon,
  .fr-window-skin-fresco.fr-no-svg .fr-side-previous.fr-side-disabled:hover .fr-side-button-icon {
    background-position: 0px -420px;
  }
  .fr-window-skin-fresco.fr-no-svg .fr-side-next.fr-side-disabled .fr-side-button-icon,
  .fr-window-skin-fresco.fr-no-svg .fr-hovering-next .fr-side-next.fr-side-disabled .fr-side-button-icon,
  .fr-window-skin-fresco.fr-no-svg .fr-side-next.fr-side-disabled:hover .fr-side-button-icon {
    background-position: -48px -420px;
  }
}

@media all and (min-height: 700px) {
  .fr-thumbnails-horizontal .fr-thumbnails-thumbs {
    padding: 16px 8px;
  }
  .fr-thumbnails-horizontal .fr-thumbnails-side {
    margin: 0 8px;
  }
  .fr-thumbnails-horizontal .fr-thumbnails-side-previous {
    margin-left: 16px;
  }
  .fr-thumbnails-horizontal .fr-thumbnails-side-next {
    margin-right: 16px;
  }
}

@media all and (min-height: 980px) {
  .fr-thumbnails-horizontal .fr-thumbnails-thumbs {
    padding: 20px 10px;
  }
  .fr-thumbnails-horizontal .fr-thumbnails-side {
    margin: 0 10px;
  }
  .fr-thumbnails-horizontal .fr-thumbnails-side-previous {
    margin-left: 20px;
  }
  .fr-thumbnails-horizontal .fr-thumbnails-side-next {
    margin-right: 20px;
  }
}

@media all and (min-width: 1200px) {
  .fr-thumbnails-vertical .fr-thumbnails-thumbs {
    padding: 8px 16px;
  }
  .fr-thumbnails-vertical .fr-thumbnails-side {
    margin: 0 8px;
  }
  .fr-thumbnails-vertical .fr-thumbnails-side-previous {
    margin-top: 16px;
  }
  .fr-thumbnails-vertical .fr-thumbnails-side-next {
    margin-bottom: 16px;
  }
}

@media all and (min-width: 1800px) {
  .fr-thumbnails-vertical .fr-thumbnails-thumbs {
    padding: 10px 20px;
  }
  .fr-thumbnails-vertical .fr-thumbnails-side {
    margin: 10px 0;
  }
  .fr-thumbnails-vertical .fr-thumbnails-side-previous {
    margin-top: 20px;
  }
  .fr-thumbnails-vertical .fr-thumbnails-side-next {
    margin-bottom: 20px;
  }
}

@media all and (max-width: 700px) and (orientation: portrait), all and (orientation: landscape) and (max-height: 414px) {
  .fr-thumbnails-vertical .fr-thumbnails {
    display: none !important;
  }
}

@media (min-width: 960px) {
  .a-btn--primary:hover {
    background-position: -webkit-calc( 20px + 4px) -webkit-calc( 50% + 0px);
    background-position: calc( 20px + 4px) calc( 50% + 0px);
  }
  .a-progress {
    height: 10px;
  }
  .m-card--standard > .m-card__link:hover {
    background-position: -webkit-calc( 50% + 4px) -webkit-calc( 50% + 0px);
    background-position: calc( 50% + 4px) calc( 50% + 0px);
  }
  .m-cta--footer__item:not(:first-child):hover {
    background-position: -webkit-calc( 95% + 4px) -webkit-calc( 50% + 0px);
    background-position: calc( 95% + 4px) calc( 50% + 0px);
  }
  .m-cta--footer__item:first-child:hover {
    background-position: -webkit-calc( 95% + 4px) -webkit-calc( 50% + 0px);
    background-position: calc( 95% + 4px) calc( 50% + 0px);
  }
  .m-title-group--box__cta:hover {
    background-position: -webkit-calc( 0px + 4px) -webkit-calc( 50% + 0px);
    background-position: calc( 0px + 4px) calc( 50% + 0px);
  }
  .o-action-bar {
    padding-top: 0;
  }
  .o-action-bar__title {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 60%;
            flex: 0 0 60%;
    opacity: 1;
    filter: alpha(opacity=100);
  }
  .o-action-bar .a-progress {
    bottom: -10px;
    top: unset;
  }
  .o-collection--images--4 > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33%;
            flex: 0 0 33.33%;
    max-width: 100%;
  }
  .o-collection--islands {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: no-wrap;
        flex-wrap: no-wrap;
    border-top: 10px solid #ffffff;
    border-radius: 0px !important;
  }
  .o-collection--islands .m-island {
    border-bottom: unset;
    border-top: unset;
  }
  .o-collection--islands__column {
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .o-collection--islands__column:nth-of-type(1) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border-right: 10px solid #ffffff;
    border-radius: 0px !important;
  }
  .o-collection--islands__column:nth-of-type(1) > .m-island {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: unset;
  }
  .o-collection--islands__column:nth-of-type(2) .m-island:nth-of-type(2) {
    border-top: 10px solid #ffffff;
    border-radius: 0px !important;
  }
  .o-hero--simple__highlight {
    display: inline-block;
    margin-top: 0;
  }
  .o-mega__cta:hover {
    background-position: -webkit-calc( 50% + 4px) -webkit-calc( 50% + 15px);
    background-position: calc( 50% + 4px) calc( 50% + 15px);
  }
  .o-post__content img {
    margin-left: -75px;
  }
  .o-post__content figure {
    margin-left: -75px;
  }
}

@media (min-width: 1040px) {
  .m-bg-video__container {
    background-image: none !important;
    background-color: transparent !important;
  }
  .m-bg-video {
    height: 300%;
    top: -100%;
    position: absolute;
  }
  .m-bg-video,
  .m-bg-video iframe {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    pointer-events: none;
  }
  .m-cta {
    background-size: cover;
    background-repeat: no-repeat;
  }
  .m-cta__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .m-cta__column:nth-of-type(1) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin: unset;
    text-align: left;
  }
  .m-cta__column:nth-of-type(2) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .m-cta__title {
    margin-left: 0;
    margin-right: auto;
    max-width: 600px;
  }
  .m-cta__action {
    text-align: right;
  }
  .o-collection--images--3 > * {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 33.33%;
            flex: 1 0 33.33%;
    max-width: 33.33%;
  }
  .o-collection--images--4 > * {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 25%;
            flex: 1 0 25%;
    max-width: 100%;
  }
  .o-header__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    text-align: left;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-top: 16px;
    padding-bottom: 16px;
  }
  .o-header__nav--desktop {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    display: block;
  }
  .o-header__nav--mobile {
    display: none;
  }
  .o-hero--offset {
    -webkit-box-orient: initial;
    -webkit-box-direction: initial;
        -ms-flex-direction: initial;
            flex-direction: initial;
  }
  .o-hero--offset .o-hero__img {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 600px;
            flex: 0 1 600px;
  }
  .o-hero--offset .o-hero__content {
    text-align: left;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-right: 64px;
    padding-left: 64px;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-top: 128px;
    padding-bottom: 128px;
  }
  .o-hero--issue {
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding-top: 128px;
    padding-bottom: 128px;
  }
  .o-hero--issue .o-hero__container {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .o-hero--issue .o-hero__content {
    text-align: left;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    padding: 64px;
  }
  .o-footer .o-org-highlight__inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .o-footer .o-org-highlight__inner > :first-child {
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    margin-right: 96px;
  }
  .o-utility-bar .m-menu--secondary {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

@media (min-width: 1200px) {
  .m-cta--footer__wrapper {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .m-cta--footer__item {
    margin-bottom: 0;
  }
  .m-cta--footer__item:not(:first-child) {
    /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
    background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='white'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
    background-position: 85% -webkit-calc( 50% + 0px);
    background-position: 85% calc( 50% + 0px);
    background-repeat: no-repeat;
    background-size: 32px 32px;
  }
  .m-cta--footer__item:first-child {
    /**
	 * We are directly embedding our arrow SVG here so we don't have to make a 
	 * HTTP call to get the icon. Note that we are encoding it, but NOT base 64
	 * encoding it. Base 64 performs poorly in this scenario.
	 *
	 * @note Tool used to encode: https://yoksel.github.io/url-encoder/
	 */
    background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 15 15' enable-background='new 0 0 15 15' xml:space='preserve' fill='white'%3E%3Cpath stroke='%236D6E70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M84,0.8L84,0.8 M-351.8,0.8 L-351.8,0.8'/%3E%3Cpath d='M7.6,0.6L5.1,3.2l2.6,2.4H0v3.6h7.7l-2.6,2.4l2.5,2.7L15,7.5L7.6,0.6z M6.7,11.8l4-3.7H1.2V6.8h9.5l-4-3.7l0.9-0.9l5.7,5.3 l-5.7,5.3L6.7,11.8z'/%3E%3C/svg%3E%0A");
    background-position: 95% -webkit-calc( 50% + 0px);
    background-position: 95% calc( 50% + 0px);
    background-repeat: no-repeat;
    background-size: 32px 32px;
  }
  .m-cta--footer__link {
    padding-left: 0;
    padding-right: 0;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    margin-right: 24px;
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    margin-left: 24px;
  }
  .o-collection--cards {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .o-collection--cards__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    /**
			 * We have to define a custom offset here to properly align our
			 * cards within our grid. If Card sizes change, the offset will
			 * also have to change.
			 */
    -ms-flex-preferred-size: calc( 50% - 16px);
        flex-basis: -webkit-calc( 50% - 16px);
        flex-basis: calc( 50% - 16px);
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .o-collection--cards__item:nth-child(odd) {
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    margin-right: 32px;
  }
  .o-collection--content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .o-collection--content__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    /**
			 * We have to define a custom offset here to properly align our
			 * content within our grid. If Content sizes change, the offset will
			 * also have to change.
			 */
    -ms-flex-preferred-size: calc( 50% - 16px);
        flex-basis: -webkit-calc( 50% - 16px);
        flex-basis: calc( 50% - 16px);
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .o-collection--content__item:nth-child(odd) {
    /**
	 * Handle setting of our property type. This $property variable
	 * will be interpolated throughout the rest of this mixin.
	 */
    margin-right: 32px;
  }
  .o-utility-bar {
    background-size: 300px 48px;
  }
}

@media (min-width: 1200px) and (min-width: 960px) {
  .m-cta--footer__item:not(:first-child):hover {
    background-position: -webkit-calc( 85% + 4px) -webkit-calc( 50% + 0px);
    background-position: calc( 85% + 4px) calc( 50% + 0px);
  }
  .m-cta--footer__item:first-child:hover {
    background-position: -webkit-calc( 95% + 4px) -webkit-calc( 50% + 0px);
    background-position: calc( 95% + 4px) calc( 50% + 0px);
  }
}

@media (min-width: 1440px) {
  .m-footnote {
    bottom: 0;
    margin-top: 0;
    right: -350px;
    position: absolute;
    max-width: 300px;
  }
}

@media (min-width: 560px) {
  .m-link-list--inline .m-link-list__item {
    display: inline-block;
  }
  .o-action-bar__back__text {
    display: inline-block;
  }
}

@media print, screen and (min-width: 64.0625em) {
  .o-callout-breaker .featured-video {
    padding: 60px;
  }
  .o-callout-breaker .featured-video .featured-video__inner {
    max-width: 1200px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .o-callout-breaker .featured-video .featured-video__inner-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .o-callout-breaker .featured-video .featured-video__left-container {
    width: 45%;
    padding: 0;
    margin: auto;
  }
  .o-callout-breaker .featured-video .featured-video__content {
    width: 35%;
    padding: 0;
    margin: auto;
  }
  .o-callout-breaker .campaign-lockup__kicker {
    font-size: 1.0625rem;
  }
  .o-callout-breaker .campaign-lockup__heading--medium {
    font-size: 2.8125rem;
  }
  .o-facts-figures .container {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 1200px;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    margin: 0 auto;
  }
  .o-facts-figures {
    padding-top: 130px;
    padding-bottom: 130px;
  }
  .o-facts-figures .highMetrics__title {
    font-size: 4.5rem;
    line-height: .8;
    letter-spacing: 2px;
    margin-bottom: 120px;
  }
  .o-facts-figures .highMetrics__metrics--list .metrics__three-cards {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
    padding-right: 1.25rem;
    padding-left: 0;
  }
  .o-facts-figures .highMetrics__metrics--list .metrics__wrapper {
    margin-bottom: 0;
  }
  .o-facts-figures .highMetrics__metrics--list .highMetrics__list--highlight {
    font-size: 3.75rem;
    line-height: .9;
    margin-bottom: 15px;
  }
  .o-facts-figures .highMetrics__metrics--list .highMetrics__list--text {
    font-size: 1.125rem;
    line-height: 1.4;
    letter-spacing: .8px;
    max-width: 250px;
  }
  .o-feature-text-breaker .cta__social-links {
    margin-top: 15px;
  }
  .o-feature-text-breaker .featText .featText__bgImg--plainStripes:after {
    top: -5px;
    left: -25px;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
        transform: scale(1);
  }
  .o-feature-text-breaker .featText .featText__content--container {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    max-width: 1200px;
    margin: 0 auto;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small {
    padding-top: 140px;
    padding-bottom: 140px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small h2 {
    font-size: 3.75rem;
    line-height: 0.9;
    letter-spacing: 2.3px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--small p {
    font-size: 1.375rem;
    line-height: 1.5;
    letter-spacing: 0.9px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large {
    padding-top: 100px;
    padding-bottom: 100px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large h2 {
    font-size: 3.125rem;
    letter-spacing: 1.9px;
    margin-bottom: 50px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain.spacing--large p {
    font-size: 1.125rem;
    line-height: 1.9;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes {
    padding-top: 160px;
    padding-bottom: 100px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes h2 {
    font-size: 3.75rem;
    line-height: 0.9;
    letter-spacing: 2.3px;
    margin-bottom: 60px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-plain-w-stripes p {
    font-size: 1.125rem;
    letter-spacing: 0.8px;
    line-height: 1.9;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-diagonal {
    padding-top: 120px;
    padding-bottom: 70px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-diagonal h2 p, .o-feature-text-breaker .featText .featText__content--container.bg-diagonal h2 {
    font-size: 3.75rem;
    line-height: 0.9;
    letter-spacing: 2.3px;
  }
  .o-feature-text-breaker .featText .featText__content--container.bg-diagonal p {
    font-size: 1.375rem;
    line-height: 1.5;
  }
  .the-footer__wrapper {
    padding-top: 90px;
    padding-bottom: 90px;
  }
  .the-footer__address, .the-footer__ctas, .the-footer__featured-ctas {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
  .the-footer__address, .the-footer__ctas {
    margin-top: 0;
  }
  .the-footer__image_container {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    display: block;
  }
  .footer__anchor-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .o-list-o-matic .listomatic__image-wrapper {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 33.33333%;
  }
  .o-list-o-matic .listomatic__copy-wrapper {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 80.33333%;
            flex: 0 0 80.33333%;
    max-width: 83.33333%;
  }
  .o-related-links .related-links__container {
    padding-top: 90px;
    padding-bottom: 90px;
  }
}

@media print, screen and (min-width: 48em) {
  .o-callout-breaker .video-container {
    min-height: 385px;
  }
  .o-callout-breaker .video-container > iframe {
    min-height: 385px;
  }
  .o-callout-breaker .featured-video__inner .featured-video__content .campaign-lockup__kicker {
    font-size: rem(17);
    letter-spacing: 2.43px;
    line-height: 18px;
  }
  .o-callout-breaker .featured-video__inner .featured-video__content .campaign-lockup__heading {
    font-size: rem(45);
    line-height: 55px;
    letter-spacing: 1.75px;
  }
  .o-callout-breaker .featured-video__inner .featured-video__content .campaign-lockup__body {
    font-size: rem(18);
    line-height: 36px;
    letter-spacing: .8px;
  }
  .o-facts-figures .container {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .o-facts-figures .highMetrics__metrics--list {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: space-evenly;
        -ms-flex-pack: space-evenly;
            justify-content: space-evenly;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .o-facts-figures .highMetrics__metrics--list .metrics__three-cards {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .o-facts-figures .highMetrics__metrics--list .metrics__wrapper {
    margin-bottom: 60px;
  }
  .o-feature-text-breaker .btn {
    font-size: 0.8125rem;
  }
  .o-feature-text-breaker .btn.btn-red {
    width: 175px;
  }
  .o-feature-text-breaker .btn.btn-blue {
    width: 175px;
  }
  .o-feature-text-breaker .cta__featured {
    max-width: 300px;
  }
  .o-feature-text-breaker .featText .featText__content--container {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
  .o-feature-text-breaker .featText .featText__content--container h2,
  .o-feature-text-breaker .featText .featText__content--container p {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%;
    padding-right: 1.25rem;
    padding-left: 1.25rem;
    max-width: unset;
    margin: 0 auto;
  }
  .o-feature-text-breaker .featText .featText__cta--container {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .o-feature-text-breaker .featText .featText__cta--container li:first-child {
    margin-right: 45px;
  }
  .o-feature-text-breaker .featText .featText__cta--container li:last-child {
    margin-left: 45px;
  }
  .the-footer__address, .the-footer__ctas, .the-footer__featured-ctas {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .footer__anchor-list {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .footer__anchor-link {
    font-size: 1rem;
  }
  .cta__featured {
    max-width: 300px;
  }
  .o-list-o-matic .listomatic__kicker {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .o-list-o-matic .listomatic__content-wrapper:after {
    left: 15px;
    width: -webkit-calc(100% - 30px);
    width: calc(100% - 30px);
  }
  .o-list-o-matic .listomatic__image-wrapper {
    padding-right: .9375rem;
    padding-left: .9375rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 26.66667%;
            flex: 0 0 26.66667%;
    max-width: 41.66667%;
    margin-bottom: 0;
  }
  .o-list-o-matic .listomatic__copy-wrapper {
    padding-right: .9375rem;
    padding-left: .9375rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 70.33333%;
            flex: 0 0 70.33333%;
    max-width: 58.33333%;
  }
  .o-list-o-matic .listomatic__content-wrapper .listomatic__copy-wrapper:only-child {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .o-related-links .related-links__kicker {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .o-related-links .related-link__list-item {
    padding-right: .9375rem;
    padding-left: .9375rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 64.0625em) and (min-width: 48em) {
  .o-feature-text-breaker .featText .featText__content--container {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
  .the-footer__address, .the-footer__ctas, .the-footer__featured-ctas {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .the-footer__image_container {
    padding-right: .9375rem;
    padding-left: .9375rem;
  }
  .o-related-links .related-link__list-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
}

@media print, screen and (min-width: 48em) and (min-width: 48em) {
  .o-feature-text-breaker .featText .featText__content--container h2,
  .o-feature-text-breaker .featText .featText__content--container p {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3QuY3NzIiwicHJvamVjdC5zY3NzIiwiMF9fY29uZmlnL19jb25maWctYm9yZGVycy5zY3NzIiwiMF9fY29uZmlnL19jb25maWctYnJlYWtwb2ludHMuc2NzcyIsIjBfX2NvbmZpZy9fY29uZmlnLWNvbG9ycy5zY3NzIiwiMF9fY29uZmlnL19jb25maWctZ3JpZC5zY3NzIiwiMF9fY29uZmlnL19jb25maWctc2hhZG93cy5zY3NzIiwiMF9fY29uZmlnL19jb25maWctc3BhY2luZy5zY3NzIiwiMF9fY29uZmlnL19jb25maWctdHJhbnNpdGlvbnMuc2NzcyIsIjBfX2NvbmZpZy9fY29uZmlnLXR5cGUuc2NzcyIsIjBfX2NvbmZpZy9fY29uZmlnLXdpZHRocy5zY3NzIiwiMF9fY29uZmlnL19jb25maWctei1pbmRleC5zY3NzIiwiMV9fdG9vbHMvYV9fZnVuY3Rpb25zL19hYS1sb2FkZXIuc2NzcyIsIjFfX3Rvb2xzL2FfX2Z1bmN0aW9ucy9fZi1oZWxwZXJzLnNjc3MiLCIxX190b29scy9hX19mdW5jdGlvbnMvX2YtY29sb3JzLnNjc3MiLCIxX190b29scy9hX19mdW5jdGlvbnMvX2YtcmFkaXVzLnNjc3MiLCIxX190b29scy9hX19mdW5jdGlvbnMvX2Ytc3BhY2luZy5zY3NzIiwiMV9fdG9vbHMvYV9fZnVuY3Rpb25zL19mLXR5cG9ncmFwaHkuc2NzcyIsIjFfX3Rvb2xzL2FfX2Z1bmN0aW9ucy9fZi16LWluZGV4LnNjc3MiLCIxX190b29scy9iX19taXhpbnMvX2FhLWxvYWRlci5zY3NzIiwiMV9fdG9vbHMvYl9fbWl4aW5zL19taXgtYXJyb3cuc2NzcyIsIjFfX3Rvb2xzL2JfX21peGlucy9fbWl4LWJvcmRlcnMuc2NzcyIsIjFfX3Rvb2xzL2JfX21peGlucy9fbWl4LWJyZWFrcG9pbnRzLnNjc3MiLCIxX190b29scy9iX19taXhpbnMvX21peC10aGVtZXMuc2NzcyIsIjFfX3Rvb2xzL2JfX21peGlucy9fbWl4LWNvbnRhaW5lci5zY3NzIiwiMV9fdG9vbHMvYl9fbWl4aW5zL19taXgtY2xlYXJmaXguc2NzcyIsIjFfX3Rvb2xzL2JfX21peGlucy9fbWl4LW9wYWNpdHkuc2NzcyIsIjFfX3Rvb2xzL2JfX21peGlucy9fbWl4LXNoYWRvd3Muc2NzcyIsIjFfX3Rvb2xzL2JfX21peGlucy9fbWl4LXNwYWNpbmcuc2NzcyIsIjFfX3Rvb2xzL2JfX21peGlucy9fbWl4LXRyYW5zaXRpb25zLnNjc3MiLCIxX190b29scy9iX19taXhpbnMvX21peC10eXBvZ3JhcGh5LnNjc3MiLCIxX190b29scy9jX19leHRlbmRzL19hYS1sb2FkZXIuc2NzcyIsIjFfX3Rvb2xzL2NfX2V4dGVuZHMvX2UtYmFja2dyb3VuZHMuc2NzcyIsIjFfX3Rvb2xzL2NfX2V4dGVuZHMvX2UtY29udGFpbmVycy5zY3NzIiwiMV9fdG9vbHMvY19fZXh0ZW5kcy9fZS1mbGV4Ym94LnNjc3MiLCIxX190b29scy9jX19leHRlbmRzL19lLXBzZXVkby5zY3NzIiwiMV9fdG9vbHMvY19fZXh0ZW5kcy9fZS10eXBlLnNjc3MiLCIyX19saWJzL19hYS1sb2FkZXIuc2NzcyIsIjJfX2xpYnMvX3Jlc2V0LnNjc3MiLCIyX19saWJzL19mcmVzY28tbGlnaHRib3gvX2ZyZXNjby5zY3NzIiwiMl9fbGlicy9fc2xpY2stc2xpZGVyL19zbGljay1iYXNlLnNjc3MiLCIyX19saWJzL19zbGljay1zbGlkZXIvX3NsaWNrLXRoZW1lLnNjc3MiLCIzX19sYXlvdXQvX2FhLWxvYWRlci5zY3NzIiwiM19fbGF5b3V0L19sLWh0bWwuc2NzcyIsIjNfX2xheW91dC9fbC1ib2R5LnNjc3MiLCIzX19sYXlvdXQvX2wtZ3JpZC5zY3NzIiwiNF9fYXRvbXMvX2FhLWxvYWRlci5zY3NzIiwiNF9fYXRvbXMvX2EtYmxvY2txdW90ZS5zY3NzIiwiNF9fYXRvbXMvX2EtYnRuLnNjc3MiLCI0X19hdG9tcy9fYS1kcm9wZG93bi5zY3NzIiwiNF9fYXRvbXMvX2EtZm9ybS1jb250cm9sLnNjc3MiLCI0X19hdG9tcy9fYS1pY29uLnNjc3MiLCI0X19hdG9tcy9fYS1pbWcuc2NzcyIsIjRfX2F0b21zL19hLWxhYmVsLnNjc3MiLCI0X19hdG9tcy9fYS1saW5rLnNjc3MiLCI0X19hdG9tcy9fYS1sb2dvLnNjc3MiLCI0X19hdG9tcy9fYS1wcm9ncmVzcy5zY3NzIiwiNF9fYXRvbXMvX2EtdHlwZS0tYm9keS5zY3NzIiwiNF9fYXRvbXMvX2EtdHlwZS0taGVhZGluZy5zY3NzIiwiNV9fbW9sZWN1bGVzL19hYS1sb2FkZXIuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1iZy12aWRlby5zY3NzIiwiNV9fbW9sZWN1bGVzL19tLWNhcmQtLW15LW9sZC1ob3VzZS5zY3NzIiwiNV9fbW9sZWN1bGVzL19tLWNhcmQtLXN0YW5kYXJkLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tY3RhLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tY3RhLS1mb290ZXIuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1lbWJlZC5zY3NzIiwiNV9fbW9sZWN1bGVzL19tLWZvb3Rub3RlLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tZm9ybXMuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1pY29uLWdyb3VwLnNjc3MiLCI1X19tb2xlY3VsZXMvX20taW1hZ2UtZ3JvdXAuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1pbmxpbmUtZ3JvdXAuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1pc2xhbmQuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1sZWdhbC1iYXIuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1saWtlLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tbGluay1saXN0LnNjc3MiLCI1X19tb2xlY3VsZXMvX20tbWVudS5zY3NzIiwiNV9fbW9sZWN1bGVzL19tLW1ldGEuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1uYXYtLW1vYmlsZS9fYWEtbG9hZGVyLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tbmF2LS1tb2JpbGUvX20tbmF2LS1tb2JpbGVfX2ljb25zLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tbmF2LS1tb2JpbGUvX20tbmF2LS1tb2JpbGUuc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1vcmctaW5mby5zY3NzIiwiNV9fbW9sZWN1bGVzL19tLXBhZ2luYXRpb24uc2NzcyIsIjVfX21vbGVjdWxlcy9fbS1zZWFyY2gtYmFyLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tc3VtbWFyeS5zY3NzIiwiNV9fbW9sZWN1bGVzL19tLXRpdGxlLWdyb3VwLnNjc3MiLCI1X19tb2xlY3VsZXMvX20tdGl0bGUtZ3JvdXAtLWJveC5zY3NzIiwiNl9fb3JnYW5pc21zL19hYS1sb2FkZXIuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1hY2NvcmRpb24uc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1hY3Rpb24tYmFyLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tYXB0bHkuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1jYWxsb3V0LWJyZWFrZXIuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1jb2xsZWN0aW9uLS1jYXJkcy5zY3NzIiwiNl9fb3JnYW5pc21zL19vLWNvbGxlY3Rpb24tLWNvbnRlbnQuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1jb2xsZWN0aW9uLS1pbWFnZXMuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1jb2xsZWN0aW9uLS1pc2xhbmRzLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tY29sbGVjdGlvbi0tbXktb2xkLWhvdXNlLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tY29udmVyc2F0aW9uLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tZmFjdHMtZmlndXJlcy5zY3NzIiwiNl9fb3JnYW5pc21zL19vLWZlYXR1cmVkLXRleHQtYnJlYWtlci5zY3NzIiwiNl9fb3JnYW5pc21zL19vLWZpbHRlci1iYXIuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1mb290ZXIuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1ncmlkLWdhbGxlcnkuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1oZWFkZXIuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1oZXJvL19hYS1sb2FkZXIuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1oZXJvL19vLWhlcm8uc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1oZXJvL19vLWhlcm8tLWNvdmVyLnNjc3MiLCI2X19vcmdhbmlzbXMvX28taGVyby9fby1oZXJvLS1vZmZzZXQuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1oZXJvL19vLWhlcm8tLWlzc3VlLnNjc3MiLCI2X19vcmdhbmlzbXMvX28taGVyby9fby1oZXJvLS1zaW1wbGUuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1saXN0LW8tbWF0aWMuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1tZWdhL19vLW1lZ2Euc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1tZWdhL19vLW1lZ2EtLWFjdGl2ZS5zY3NzIiwiNl9fb3JnYW5pc21zL19vLW1lZ2EvX28tbWVnYV9fY3RhLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tbWVnYS9fby1tZWdhX19mZWVkLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tbWVnYS9fby1tZWdhX193ZWxsLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tcG9zdC5zY3NzIiwiNl9fb3JnYW5pc21zL19vLW9yZy1oaWdobGlnaHQuc2NzcyIsIjZfX29yZ2FuaXNtcy9fby1yZWxhdGVkLWxpbmtzLnNjc3MiLCI2X19vcmdhbmlzbXMvX28tc2l0ZS5zY3NzIiwiNl9fb3JnYW5pc21zL19vLXV0aWxpdHktYmFyLnNjc3MiLCI3X19wYWdlcy9fYWEtbG9hZGVyLnNjc3MiLCI4X191dGlsaXR5L19hYS1sb2FkZXIuc2NzcyIsIjhfX3V0aWxpdHkvX3UtYWNjZXNzaWJpbGl0eS5zY3NzIiwiOF9fdXRpbGl0eS9fdS1hbGlnbm1lbnQuc2NzcyIsIjhfX3V0aWxpdHkvX3UtZmxleGJveC5zY3NzIiwiOF9fdXRpbGl0eS9fdS1wc2V1ZG8uc2NzcyIsIjhfX3V0aWxpdHkvX3Utc2Nyb2xsLnNjc3MiLCI4X191dGlsaXR5L191LXNwYWNpbmcuc2NzcyIsIjhfX3V0aWxpdHkvX3UtdGV4dC1jb2xvci5zY3NzIiwiOF9fdXRpbGl0eS9fdS10eXBvZ3JhcGh5LnNjc3MiLCI4X191dGlsaXR5L191LXVuZGVybGluZS5zY3NzIiwiOF9fdXRpbGl0eS9fdS12aXNpYmlsaXR5LnNjc3MiLCI4X191dGlsaXR5L191LXdpZHRoLnNjc3MiLCI4X191dGlsaXR5L191LXotaW5kZXguc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDRjs7O0lBR0c7QUNwQko7Ozs7OztHQU1HO0FDTkg7Ozs7OztHQU1HO0FDTkg7Ozs7OztHQU1HO0FBaU1IOztFQUVFO0FBV0Y7O0VBRUU7QUN0TkY7Ozs7OztHQU1HO0FBRUg7O0dBRUc7QUNWSDs7Ozs7O0dBTUc7QUNOSDs7Ozs7O0dBTUc7QUNOSDs7Ozs7O0dBTUc7QUNOSDs7Ozs7O0dBTUc7QUFJSDs7O0dBR0c7QUFrQkg7O0dBRUc7QUNqQ0g7Ozs7OztHQU1HO0FDTkg7Ozs7OztHQU1HO0FWNkJGOzs7OztJQUtHO0FXeENKOzs7Ozs7O0dBT0c7QUFHSDs7OztHQUlHO0FBTUY7O0dBRUU7QUN0Qkg7Ozs7Ozs7R0FPRztBQUdIOzs7Ozs7Ozs7R0FTRztBQTZDSDs7Ozs7Ozs7O0dBU0c7QUQvQ0Y7O0dBRUU7QUU1Qkg7Ozs7Ozs7R0FPRztBQUdIOzs7Ozs7O0dBT0c7QUNqQkg7Ozs7Ozs7R0FPRztBQUdIOzs7Ozs7R0FNRztBQ2hCSDs7Ozs7OztHQU9HO0FBSUg7Ozs7Ozs7R0FPRztBQ2xCSDs7Ozs7OztHQU9HO0FBSUY7Ozs7Ozs7SUFPRztBQ2xCSjs7Ozs7OztHQU9HO0FBRUY7Ozs7Ozs7SUFPRztBQ2hCSjs7Ozs7OztHQU9HO0FBR0g7Ozs7R0FJRztBQ2RIOzs7Ozs7O0dBT0c7QUFFSDs7Ozs7Ozs7R0FRRztBQ2pCSDs7Ozs7OztHQU9HO0FBR0g7Ozs7Ozs7Ozs7R0FVRztBQ3BCSDs7Ozs7OztHQU9HO0FBR0g7Ozs7R0FJRztBQ2RIOzs7Ozs7OztHQVFHO0FBRUg7Ozs7Ozs7Ozs7R0FVRztBQWlDSDs7R0FFRztBQVdIOztHQUVH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RztFQWNIOztJQUVHO0VBYUg7O0lBRUc7RUFjSDs7SUFFRztFQWFIOztJQUVHO0VBYUg7O0lBRUc7RUFhSDs7SUFFRztFQWFIOztJQUVHO0NrQmhKRjs7QUF2QkQ7RUFhRSxvQjVDdkN1RDtDNEN5Q3ZEOztBQWZGO0VBbUJFLG9CNUM1Q3dEO0M0QzhDeEQ7O0F6QjNCRjtFQUNDLDBCbkI1RHVCO0VtQjZEdkIsMEJuQjdEdUI7RXlCdEJ4QiwwQ3JCS2M7RXFCTGQsa0NyQktjO0NlcUZiOztBQVREO0VBTUUsZW5CakVzQjtFbUJrRXRCLHVCQUFzQjtDQUN0Qjs7QUFSRjtFQUNDLDBCbkIzRHVCO0VtQjREdkIsMEJuQjVEdUI7RXlCdkJ4QiwwQ3JCS2M7RXFCTGQsa0NyQktjO0NlcUZiOztBQVREO0VBTUUsZW5CaEVzQjtFbUJpRXRCLHVCQUFzQjtDQUN0Qjs7QUFSRjtFQUNDLDBCbkIxRHVCO0VtQjJEdkIsMEJuQjNEdUI7RXlCeEJ4QiwwQ3JCS2M7RXFCTGQsa0NyQktjO0NlcUZiOztBQVREO0VBTUUsZW5CL0RzQjtFbUJnRXRCLHVCQUFzQjtDQUN0Qjs7QUFSRjtFQUNDLDBCbkJ6RHVCO0VtQjBEdkIsMEJuQjFEdUI7RXlCekJ4QiwwQ3JCS2M7RXFCTGQsa0NyQktjO0NlcUZiOztBQVREO0VBTUUsZW5COURzQjtFbUIrRHRCLHVCQUFzQjtDQUN0Qjs7QUFSRjtFQUNDLDBCbkJ4RHVCO0VtQnlEdkIsMEJuQnpEdUI7RXlCMUJ4QiwwQ3JCS2M7RXFCTGQsa0NyQktjO0NlcUZiOztBQVREO0VBTUUsZW5CN0RzQjtFbUI4RHRCLHVCQUFzQjtDQUN0Qjs7QUFSRjtFQUNDLDBCbkJ2RHVCO0VtQndEdkIsMEJuQnhEdUI7RXlCM0J4QiwwQ3JCS2M7RXFCTGQsa0NyQktjO0NlcUZiOztBQVREO0VBTUUsZW5CNURzQjtFbUI2RHRCLHVCQUFzQjtDQUN0Qjs7QUFSRjtFQUNDLDBCbkJwRHVCO0VtQnFEdkIsMEJuQnJEdUI7RXlCOUJ4QiwwQ3JCS2M7RXFCTGQsa0NyQktjO0NlcUZiOztBQVREO0VBTUUsZW5CekRz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QUFiLHFCQUFhO0VBQWIsY0FBYTtFakZoQmYsa0JuQkZvQjtDb0dzQmxCOztBQUlGOzs7Ozs7OztJQVFHO0FsRm1GSDtFQUVDLDBCbkJwR21CO0VpQnlDbkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJuR21CO0VpQndDbkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJsR21CO0VpQnVDbkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJqR21CO0VpQnNDbkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkI5RnVCO0VpQm1DdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkI3RnVCO0VpQmtDdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkI1RnVCO0VpQmlDdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkIzRnVCO0VpQmdDdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkIxRnVCO0VpQitCdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJ6RnVCO0VpQjhCdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJ0RnVCO0VpQjJCdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJyRnVCO0VpQjBCdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJwRnVCO0VpQnlCdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJuRnVCO0VpQndCdkIsa0NFNEQrRDtFRnZEaEUsOEJBQXlDO0NFeUR4Qzs7QUFMRDtFQUVDLDBCbkJsRnVCO0VpQnVCdkIsa0NFNEQrRDtFRnZE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QjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxrQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UsbUIvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLG1CL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxvQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0UsaUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLGtCL0cxQjJFO0MrRzJCNUU7O0FBckJEO0VBQ0Usa0IvR1AyRTtFK0dRM0UsaUIvR1IyRTtDK0dTNUU7O0FBRUQ7RUFDRSxtQi9HWjJFO0UrR2EzRSxrQi9HYjJFO0MrR2M1RTs7QUF4QkQ7RUFDRSxnQi9HUzJFO0UrR1IzRSxtQi9HUTJFO0MrR1A1RTs7QUFFRDtFQUNFLGlCL0dJMkU7RStHSDNFLG9CL0dHMkU7QytHRjVFOztBQXJCRDtFQUNFLFkvR3NCMkU7QytHckI1RTs7QUFFRDtFQUNFLGEvR2tCMkU7QytHakI1RTs7QUFzQ0Q7RUFDRSxnQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UsaUIvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLGtCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxtQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0UsbUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG9CL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxpQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0Usa0IvRzFCMkU7QytHMkI1RTs7QUFyQkQ7RUFDRSxrQi9HUDJFO0UrR1EzRSxpQi9HUjJFO0MrR1M1RTs7QUFFRDtFQUNFLG1CL0daMkU7RStHYTNFLGtCL0diMkU7QytHYzVFOztBQXhCRDtFQUNFLGdCL0dTMkU7RStHUjNFLG1CL0dRMkU7QytHUDVFOztBQUVEO0VBQ0UsaUIvR0kyRTtFK0dIM0Usb0IvR0cyRTtDK0dGNUU7O0FBckJEO0VBQ0UsWS9Hc0IyRTtDK0dyQjVFOztBQUVEO0VBQ0UsYS9Ha0IyRTtDK0dqQjVFOztBQXNDRDtFQUNFLGdCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxpQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0Usa0IvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG1CL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxtQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0Usb0IvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLGlCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxrQi9HMUIyRTtDK0cyQjVFOztBQXJCRDtFQUNFLGtCL0dQMkU7RStHUTNFLGlCL0dSMkU7QytHUzVFOztBQUVEO0VBQ0UsbUIvR1oyRTtFK0dhM0Usa0IvR2IyRTtDK0djNUU7O0FBeEJEO0VBQ0UsZ0IvR1MyRTtFK0dSM0UsbUIvR1EyRTtDK0dQNUU7O0FBRUQ7RUFDRSxpQi9HSTJFO0UrR0gzRSxvQi9HRzJFO0MrR0Y1RTs7QUFyQkQ7RUFDRSxZL0dzQjJFO0MrR3JCNUU7O0FBRUQ7RUFDRSxhL0drQjJFO0MrR2pCNUU7O0FBc0NEO0VBQ0UsaUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLGtCL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxtQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0Usb0IvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLG9CL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxxQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0Usa0IvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG1CL0cxQjJFO0MrRzJCNUU7O0FBckJEO0VBQ0UsbUIvR1AyRTtFK0dRM0Usa0IvR1IyRTtDK0dTNUU7O0FBRUQ7RUFDRSxvQi9HWjJFO0UrR2EzRSxtQi9HYjJFO0MrR2M1RTs7QUF4QkQ7RUFDRSxpQi9HUzJFO0UrR1IzRSxvQi9HUTJFO0MrR1A1RTs7QUFFRDtFQUNFLGtCL0dJMkU7RStHSDNFLHFCL0dHMkU7QytHRjVFOztBQXJCRDtFQUNFLGEvR3NCMkU7QytHckI1RTs7QUFFRDtFQUNFLGMvR2tCMkU7QytHakI1RTs7QUFzQ0Q7RUFDRSxpQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0Usa0IvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLG1CL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxvQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0Usb0IvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLHFCL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxrQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UsbUIvRzFCMkU7QytHMkI1RTs7QUFyQkQ7RUFDRSxtQi9HUDJFO0UrR1EzRSxrQi9HUjJFO0MrR1M1RTs7QUFFRDtFQUNFLG9CL0daMkU7RStHYTNFLG1CL0diMkU7QytHYzVFOztBQXhCRDtFQUNFLGlCL0dTMkU7RStHUjNFLG9CL0dRMkU7QytHUDVFOztBQUVEO0VBQ0Usa0IvR0kyRTtFK0dIM0UscUIvR0cyRTtDK0dGNUU7O0FBckJEO0VBQ0UsYS9Hc0IyRTtDK0dyQjVFOztBQUVEO0VBQ0UsYy9Ha0IyRTtDK0dqQjVFOztBQXNDRDtFQUNFLGlCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxrQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0UsbUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG9CL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxvQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UscUIvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLGtCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxtQi9HMUIyRTtDK0cyQjVFOztBQXJCRDtFQUNFLG1CL0dQMkU7RStHUTNFLGtCL0dSMkU7QytHUzVFOztBQUVEO0VBQ0Usb0IvR1oyRTtFK0dhM0UsbUIvR2IyRTtDK0djNUU7O0FBeEJEO0VBQ0UsaUIvR1MyRTtFK0dSM0Usb0IvR1EyRTtDK0dQNUU7O0FBRUQ7RUFDRSxrQi9HSTJFO0UrR0gzRSxxQi9HRzJFO0MrR0Y1RTs7QUFyQkQ7RUFDRSxhL0dzQjJFO0MrR3JCNUU7O0FBRUQ7RUFDRSxjL0drQjJFO0MrR2pCNUU7O0FBc0NEO0VBQ0UsaUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLGtCL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxtQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0Usb0IvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLG9CL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxxQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0Usa0IvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG1CL0cxQjJFO0MrRzJCNUU7O0FBckJEO0VBQ0UsbUIvR1AyRTtFK0dRM0Usa0IvR1IyRTtDK0dTNUU7O0FBRUQ7RUFDRSxvQi9HWjJFO0UrR2EzRSxtQi9HYjJFO0MrR2M1RTs7QUF4QkQ7RUFDRSxpQi9HUzJFO0UrR1IzRSxvQi9HUTJFO0MrR1A1RTs7QUFFRDtFQUNFLGtCL0dJMkU7RStHSDNFLHFCL0dHMkU7QytHRjVFOztBQXJCRDtFQUNFLGEvR3NCMkU7QytHckI1RTs7QUFFRDtFQUNFLGMvR2tCMkU7QytHakI1RTs7QUFzQ0Q7RUFDRSxpQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0Usa0IvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLG1CL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxvQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0Usb0IvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLHFCL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxrQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UsbUIvRzFCMkU7QytHMkI1RTs7QUFyQkQ7RUFDRSxtQi9HUDJFO0UrR1EzRSxrQi9HUjJFO0MrR1M1RTs7QUFFRDtFQUNFLG9CL0daMkU7RStHYTNFLG1CL0diMkU7QytHYzVFOztBQXhCRDtFQUNFLGlCL0dTMkU7RStHUjNFLG9CL0dRMkU7QytHUDVFOztBQUVEO0VBQ0Usa0IvR0kyRTtFK0dIM0UscUIvR0cyRTtDK0dGNUU7O0FBckJEO0VBQ0UsYS9Hc0IyRTtDK0dyQjVFOztBQUVEO0VBQ0UsYy9Ha0IyRTtDK0dqQjVFOztBQXNDRDtFQUNFLGlCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxrQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0UsbUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG9CL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxvQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UscUIvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLGtCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxtQi9HMUIyRTtDK0cyQjVFOztBQXJCRDtFQUNFLG1CL0dQMkU7RStHUTNFLGtCL0dSMkU7QytHUzVFOztBQUVEO0VBQ0Usb0IvR1oyRTtFK0dhM0UsbUIvR2IyRTtDK0djNUU7O0FBeEJEO0VBQ0UsaUIvR1MyRTtFK0dSM0Usb0IvR1EyRTtDK0dQNUU7O0FBRUQ7RUFDRSxrQi9HSTJFO0UrR0gzRSxxQi9HRzJFO0MrR0Y1RTs7QUFyQkQ7RUFDRSxhL0dzQjJFO0MrR3JCNUU7O0FBRUQ7RUFDRSxjL0drQjJFO0MrR2pCNUU7O0FBc0NEO0VBQ0Usa0IvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG1CL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxvQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UscUIvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLHFCL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxzQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0UsbUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLG9CL0cxQjJFO0MrRzJCNUU7O0FBckJEO0VBQ0Usb0IvR1AyRTtFK0dRM0UsbUIvR1IyRTtDK0dTNUU7O0FBRUQ7RUFDRSxxQi9HWjJFO0UrR2EzRSxvQi9HYjJFO0MrR2M1RTs7QUF4QkQ7RUFDRSxrQi9HUzJFO0UrR1IzRSxxQi9HUTJFO0MrR1A1RTs7QUFFRDtFQUNFLG1CL0dJMkU7RStHSDNFLHNCL0dHMkU7QytHRjVFOztBQXJCRDtFQUNFLGMvR3NCMkU7QytHckI1RTs7QUFFRDtFQUNFLGUvR2tCMkU7QytHakI1RTs7QUFzQ0Q7RUFDRSxrQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0UsbUIvRzFCMkU7QytHMkI1RTs7QUFORDtFQUNFLG9CL0d0QjJFO0MrR3VCNUU7O0FBRUQ7RUFDRSxxQi9HMUIyRTtDK0cyQjVFOztBQU5EO0VBQ0UscUIvR3RCMkU7QytHdUI1RTs7QUFFRDtFQUNFLHNCL0cxQjJFO0MrRzJCNUU7O0FBTkQ7RUFDRSxtQi9HdEIyRTtDK0d1QjVFOztBQUVEO0VBQ0Usb0IvRzFCMkU7QytHMkI1RTs7QUFyQkQ7RUFDRSxvQi9HUDJFO0UrR1EzRSxtQi9HUjJFO0MrR1M1RTs7QUFFRDtFQUNFLHFCL0daMkU7RStHYTNFLG9CL0diMkU7QytHYzVFOztBQXhCRDtFQUNFLGtCL0dTMkU7RStHUjNFLHFCL0dRMkU7QytHUDVFOztBQUVEO0VBQ0UsbUIvR0kyRTtFK0dIM0Usc0IvR0cyRTtDK0dGNUU7O0FBckJEO0VBQ0UsYy9Hc0IyRTtDK0dyQjVFOztBQUVEO0VBQ0UsZS9Ha0IyRTtDK0dqQjVFOztBQ3JCUjs7Ozs7O0dBTUc7QUFPQztFQUNJLGU1SEtpQjtDNEhKcEI7O0FBR0Q7RUFDSSxjNUhBaUI7QzRIQ3BCOztBQVBEO0VBQ0ksZTVITWlCO0M0SExwQjs7QUFHRDtFQUNJLGM1SENpQjtDNEhBcEI7O0FBUEQ7RUFDSSxlNUhPaUI7QzRITnBCOztBQUdEO0VBQ0ksYzVIRWlCO0M0SERwQjs7QUFQRDtFQUNJLGU1SFFpQjtDNEhQcEI7O0FBR0Q7RUFDSSxjNUhHaUI7QzRIRnBCOztBQVBEO0VBQ0ksZTVIV2lCO0M0SFZwQjs7QUFHRDtFQUNJLGM1SE1pQjtDNEhMcEI7O0FBUEQ7RUFDSSxlNUhZaUI7QzRIWHBCOztBQUdEO0VBQ0ksYzVIT2lCO0M0SE5wQjs7QUFJTDs7O0dBR0c7QUFnQkM7RUFDSyxhNUhrSWlDO0M0SGpJcEM7O0FBWEY7RUFDSyxlNUg0SWdCO0M0SDNJbkI7O0FBT0Y7RUFDSyxlNUhvSWdCO0M0SG5JbkI7O0FBRkY7RUFDSyxlNUhxSWdCO0M0SHBJbkI7O0FBRkY7RUFDSyxlNUhzSWdCO0M0SHJJbkI7O0FBRkY7RUFDSyxlNUh1SWdCO0M0SHRJbkI7O0FBRkY7RUFDSyxlNUh3SWdCO0M0SHZJbkI7O0FBRkY7RUFDSyxlNUh5SWdCO0M0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cEIsaUJBQWdCO0dBQ2pCO0VBcEZQO0lBdUdRLHdCQUF1QjtJQUN2Qix1QkFBc0I7SUFDdEIsb0JBQW1CO1FBQW5CLHdCQUFtQjtZQUFuQixvQkFBbUI7SUFDbkIscUJBQW9CO0dBQ3JCO0VBM0dQO0lBOEhRLHdCQUF1QjtJQUN2Qix1QkFBc0I7R0FDdkI7RVF4SVA7SUFzRFksd0JBQXVCO0lBQ3ZCLHVCQUFzQjtHQUN2QjtFQXhEWDtJQTBFWSx3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLG9CQUFhO1FBQWIsa0JBQWE7WUFBYixjQUFhO0lBQ2IsZUFBYztHQUNmO0NySG9zT1Y7O0FrR252TkM7RUEvaEJGO0lBaWlCTSx5QkFBd0I7SUFDeEIsd0JBQXVCO0dBQUc7RUV4Z0JoQztJQXlCUSx3QkFBc0I7SUFDdEIsdUJBQ0o7R0FBQztFQWtCTDtJQWlCUSx3QkFBc0I7SUFDdEIsdUJBQ0o7R0FBQztFaUIxRkw7SUFtRlksb0JBQW1CO1FBQW5CLHdCQUFtQjtZQUFuQixvQkFBbUI7SUFDbkIscUJBQW9CO0dBQ3JCO0NySG1vUlY7O0FrRzVxUUM7RUE1aUJGOztJQStpQk0seUJBQXdCO0lBQ3hCLHdCQUF1QjtHQUFHO0NsRzRyUS9CIiwiZmlsZSI6InByb2plY3QuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKlx0UHJvamVjdCBTZXR1cFxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKlxuICpcdEJlZm9yZSBhbnkgb3V0cHV0IGhhcHBlbnMsIHdlIG5lZWQgdG8gcHVsbCBpbiBhbGwgb2ZcbiAqXHRvdXIgZGVwZW5kZW5pY2VzLiBUaGVzZSBkZXBlbmRlbmNpZXMgaW5jbHVkZTpcbiAqXG4gKiAxLiBDb25maWd1cmF0aW9uIEZpbGVzXG4gKiAyLiBNaXhpbnMgYW5kIEZ1bmN0aW9uc1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICpcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFxuICovXG4vKipcblx0ICogTG9hZCBvdXIgUHJvamVjdCdzIGNvbmZpZ3VyYXRpb25zLlxuXHQgKlxuXHQgKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRDb25maWdcbiAqIEdyb3VwXHQ6XHRCb3JkZXJzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqIFR5cGVcdFx0Olx0Q29uZmlnXG4gKiBHcm91cFx0Olx0QnJlYWtwb2ludHNcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogVHlwZSAgICAgOiAgIENvbmZpZ1xuICogR3JvdXAgICAgOiAgIENvbG9yc1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4qIEhvbWUgQ2F0ZWdvcnkgQ29sb3JzXG4qL1xuLyoqXG4qIElzc3VlIENhdGVnb3J5IENvbG9yc1xuKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRDb25maWdcbiAqIEdyb3VwXHQ6XHRHcmlkXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqIEdsb2JhbCBHcmlkIFNldHRpbmdzXG4gKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRDb25maWdcbiAqIEdyb3VwXHQ6XHRTaGFkb3dzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqIFR5cGVcdFx0Olx0Q29uZmlnXG4gKiBHcm91cFx0Olx0U3BhY2luZ1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBUeXBlXHRcdDpcdENvbmZpZ1xuICogR3JvdXBcdDpcdFRyYW5zaXRpb25zXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqIFR5cGVcdFx0Olx0Q29uZmlnXG4gKiBHcm91cFx0Olx0VHlwb2dyYXBoeVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBUaGUgY29yZSB0eXBlIHNldHRpbmdzIGZvciBvdXIgcHJvamVjdFxuICogQHR5cGUge1t0eXBlXX1cbiAqL1xuLyoqXG4gKiBBIGNvbmZpZ3VyYXRpb24gbWFwIHRvIHNldCB1cCBvdXIgZm9udHNcbiAqL1xuLyoqXG4gKiBUeXBlXHRcdDpcdENvbmZpZ1xuICogR3JvdXBcdDpcdE1heCBXaWR0aHNcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRDb25maWdcbiAqIEdyb3VwXHQ6XHRaLWluZGV4XG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG5cdCAqIE5leHQsIHdlIG5lZWQgdG8gbG9hZCB0aGUgcmVxdWlyZWQgdG9vbHMgKCBmdW5jdGlvbnMgYW5kIG1peGlucyApXG5cdCAqIGZvciBvdXIgcHJvamVjdC4gT3VyIHRva2VuIGRlZmluaXRpb25zIGFuZCB2YXJpb3VzIHByb3BlcnRpZXNcblx0ICogYW5kIHZhbHVlcyB0aHJvdWdob3V0IG91ciBwcm9qZWN0IGRlcGVuZCBvbiB0aGVzZSB0b29scy5cblx0ICpcblx0ICovXG4vKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBGdW5jdGlvbnNcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCogRmlyc3Qgd2UgaGF2ZSB0byBpbXBvcnQgb3VyIGhlbHBlciBmdW5jdGlvbnNcblx0Ki9cbi8qKlxuICogVHlwZSAgIDogRnVuY3Rpb25cbiAqIEdyb3VwICA6IEhlbHBlcnNcbiAqIERlc2MgICA6IFVzZWZ1bCBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgdXRpbGl6ZWQgdGhyb3VnaG91dCBvdXIgcHJvamVjdCB0byBtYWtlIGxpZmUgZWFzaWVyLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciBmdW5jdGlvbiBmb3IgZ2V0dGluZyBjb25maWd1cmF0aW9uIHZhbHVlcyBmcm9tIG11bHRpLWxldmVsIG5lc3RlZCBzYXNzIG1hcHMuXG4gKiBUaGlzIG1ha2VzIG91ciBsaWZlIG11Y2ggZWFzaWVyIHdoZW4gZ2V0dGluZyBjb25maWcgdmFsdWVzLlxuICpcbiAqIEBwYXJhbSAkbWFwICAgICAgLSBUaGUgbWFwIHdlIHdhbnQgdG8gZ2V0IG91ciBjb25maWcgZnJvbVxuICogQHBhcmFtICRrZXlzLi4uICAtIFdlIGNhbiB0cmF2ZXJzZSBvdXIgbWFwIGJ5IHVzaW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QuXG4gKiBAcmV0dXJuICAgICAgICAgIC0gVGhlIGZpbmFsIHZhbHVlIG9mIHRoZSByZXF1ZXN0ZWQga2V5XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgZnVuY3Rpb24gdG8gdGFrZSBhbnkgbnVtZXJpY2FsIHZhbHVlIGFuZFxuICogc3RyaXAgb3V0IHRoZSB1bml0IGFzc29jaWF0ZWQgd2l0aCBpdCAoIGV4LiBlbSwgcmVtLCBweCBldGMgKS5cbiAqIFRoaXMgaXMgdXNlZnVsIGR1cmluZyBjYWxjdWxhdGlvbnMgYW5kIGNvbnZlcnNpb25zIGV0Yy5cbiAqXG4gKiBAcGFyYW0gJG51bWJlciAtIEEgbnVtYmVyIHRoYXQgd2Ugd2FudCB0byByZW1vdmUgdGhlIHVuaXQgZnJvbVxuICogQHJldHVybiBBIHVuaXRsZXNzIG51bWJlclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICovXG4vKipcblx0KiBOb3cgd2UgY2FuIGltcG9ydCBvdXIgcmVtYWluaW5nIGZ1bmN0aW9uc1xuXHQqL1xuLyoqXG4gKiBUeXBlXHRcdDpcdEZ1bmN0aW9uXG4gKiBHcm91cFx0Olx0Q29sb3JcbiAqIERlc2NcdFx0Olx0RnVuY3Rpb25zIHRvIGhlbHAgbWFrZSB3b3JraW5nIHdpdGggY29sb3JzIGEgYnJlZXplIVxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIHVzZXMgYWNyb3NzIHRoZSBlbnRpcmUgcHJvamVjdCBmb3JcbiAqIGdldHRpbmcgY29sb3IgYW5kIGNvbG9yIHRvbmUgdmFsdWVzIGZyb20gdGhlIG1haW4gY29sb3IgbWFwLlxuICpcbiAqIEBwYXJhbSAkY29sb3IgXHQtIGEgY29sb3IgaW4gb3VyIGNvbG9yIHNhc3MgbWFwIGluIDFfX3NldHRpbmdzXG4gKiBAcGFyYW0gJHRvbmUgIFx0LSBhIHBhcnRpY3VsYXIgY29sb3IgdG9uZSB3ZSB3YW50IHRvIGdldCAoIGRlZmF1bHRzIHRvICdiYXNlJyApXG4gKiBAcmV0dXJuXHRcdFx0LSBUaGUgcmVzdWx0YW50IGNvbG9yXG4gKi9cbi8qKlxuICogVHlwZSAgIDogRnVuY3Rpb25cbiAqIEdyb3VwICA6IFJhZGl1c1xuICogRGVzYyAgIDogRnVuY3Rpb25zIGZvciBkZWFsaW5nIHdpdGggYm9yZGVyIHJhZGl1c1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBBIGZ1bmN0aW9uIGZvciBnZXR0aW5nIGEgdmFsdWUgZnJvbSB0aGUgYm9yZGVyIHJhZGl1cyBjb25maWd1cmF0aW9uIG1hcC5cbiAqIEBwYXJhbSAgJHNpemVcdC0gVGhlIGtleSB0byBnZXQgb3VyIHZhbHVlIGZyb20gXG4gKiBAcmV0dXJuXHRcdFx0LSBUaGUgcmV0dXJuZWQgdmFsdWUgZm9ybSBvdXIga2V5XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRGdW5jdGlvblxuICogR3JvdXBcdDpcdFNwYWNpbmdcbiAqIERlc2NcdFx0Olx0RnVuY3Rpb25zIHRoYXQgaGVscCB1cyB3b3JrIHdpdGggb3VyIHNwYWNpbmcgc2NhbGVcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogQSBmdW5jdGlvbiBmb3IgZ2V0dGluZyBhIHByZWRldGVybWluZWQgdmFsdWUgZnJvbSB0aGUgc3BhY2luZyBjb25maWd1cmF0aW9uIG1hcC5cbiAqIFxuICogQHBhcmFtICAkc2l6ZSBcdC0gVGhlIGdldCB0byBnZXQgb3VyIHZhbHVlIGZyb21cbiAqIEByZXR1cm4gXHRcdFx0LSBhIGZpbmFsIHNwYWNpbmcgdmFsdWUgd2l0aCBhIHVuaXQgYXR0YWNoZWQuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRGdW5jdGlvblxuICogR3JvdXBcdDpcdFR5cG9ncmFwaHlcbiAqIERlc2NcdFx0Olx0RnVuY3Rpb25zIHRoYXQgbWFrZSB3b3JraW5nIHdpdGggb3VyIHR5cG9ncmFwaHkgc2NhbGUgZWFzaWVyLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gICogQSBmdW5jdGlvbiB0aGF0IGdldHMgdHlwZWZhY2Ugc3RhY2sgaW5mb3JtYXRpb24gZnJvbSBvdXIgdHlwZSBjb25maWd1cmF0aW9uIG1hcC5cbiAgKiBcbiAgKiBAcGFyYW0gICR0eXBlXHQtIFRoZSBrZXkgdG8gcmV0cmVpdmUgb3VyIHZhbHVlcyBmcm9tLlxuICAqIEByZXR1cm5cdFx0XHQtIFRoZSBmaW5hbCwgZm9ybWF0dGVkIGZvbnQgc3RhY2sgdG8gcmV0dXJuLiAgXG4gICpcbiAgKiBAc2luY2UgMS4wLjBcbiAgKi9cbi8qKlxuICogVHlwZSAgIDogRnVuY3Rpb25cbiAqIEdyb3VwICA6IFotSW5kZXhcbiAqIERlc2MgICA6IEZ1bmN0aW9ucyBmb3Iga2VlcGluZyBvdXIgei1pbmRleGVzIGNvbnNpc3RlbnQuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAgKiBBIGZ1bmN0aW9uIHRoYXQgZ2V0cyBhIHotaW5kZXggdmFsdWUgZnJvbSB0aGUgei1pbmRleCBjb25maWd1cmF0aW9uIG1hcC5cbiAgKiBcbiAgKiBAcGFyYW0gICR6LWluZGV4XHQtIFRoZSBrZXkgdG8gcmV0cmlldmUgb3VyIHZhbHVlIGZyb20uXG4gICogQHJldHVyblx0XHRcdFx0LSBUaGUgcmVzdWx0YW50IHotaW5kZXguIFxuICAqXG4gICogQHNpbmNlIDEuMC4wXG4gICovXG4vKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBNaXhpbnNcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0QXJyb3dzXG4gKiBEZXNjXHRcdDpcdEFkZGluZyBhcnJvd3MgdG8gdGhpbmdzIGlzIHJlcGV0aXRpdmUuIFRoZXNlIG1peGlucyBhcmUgaGVyZSB0byBoZWxwIVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBUaGUgYWN0aW9uIGFycm93IGFwcGVhcnMgb24gdmFyaW91cyBidXR0b25zIGFuZCBjYXJkcy4gV2UgYXJlXG4gKiBidWlsZGluZyBpdCBpbnRvIGEgbWl4aW4gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlLlxuICpcbiAqIEBwYXJhbSAkYXJyb3ctc3RhcnQteC1wb3NpdGlvblx0LSBUaGUgYFhgIHN0YXJ0aW5nIGJhY2tncm91bmQgcG9zaXRpb24gZm9yIG91ciBhcnJvd1xuICogQHBhcmFtICRzaXplXHRcdFx0XHRcdFx0LSBUaGUgc2l6ZSBvZiB0aGUgYXJyb3dcbiAqICBcbiAqIEBzaW5jZSAxLjAuMFxuICovXG4vKipcbiAqIFR5cGVcdFx0Olx0TWl4aW5cbiAqIEdyb3VwXHQ6XHRCb3JkZXJzXG4gKiBEZXNjXHRcdDpcdEJvcmRlcnMgY2FuIHZhcnkgd2lsZGx5IHRocm91Z2hvdXQgYSBwcm9qZWN0LiBUaGVzZSBtaXhpbnMgaGVscCB1cyBrZWVwIHRoaW5ncyBjb25zaXN0ZW50LlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGFsbG93cyB1cyB0byBnZXQgYSBwcmVkZWZpbmVkIGJvcmRlciBmcm9tIG91ciBib3JkZXIgY29uZmlndXJhdGlvbiBmaWxlLlxuICogV2hlbiBuZWVkIGJlLCB3ZSBjYW4gZXZlbiBwYXNzIGluIGEgY29sb3IgdGhhdCBmYWxscyBvdXRzaWRlIG91ciBwcmltYXJ5IGNvbG9yIGNvbmZpZyBtYXAuXG4gKiBcbiAqIEBwYXJhbSAgJHR5cGUgICAgICAgICAgICAgICAgXHRUaGUgYm9yZGVyIHRvIHR5cGUgdG8gdXNlIGZyb20gb3VyIG1hcFxuICogQHBhcmFtICAkc2lkZTogICAgICAgICAgIFx0XHRUaGUgXCJzaWRlXCIgdGhlIGJvcmRlciBzaG91bGQgYmUgYXBwbGllZCB0b1xuICogQHBhcmFtICAkY3VzdG9tX2JvcmRlcl9jb2xvcjogXHRBIGNvbG9yIHdlIHBhc3MgaW4gdG8gb3VyIGJvcmRlclxuICogQHBhcmFtICAkcmFkaXVzICAgICAgICAgICAgICAgXHRUaGUgb3JkZXIgcmFkaXVzIHRvIGJlIHVzZWRcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKi9cbi8qKlxuICogVHlwZSAgIDogTWl4aW5cbiAqIEdyb3VwICA6IEJyZWFrcG9pbnRzXG4gKiBEZXNjICAgOiBOZWF0bHkgZW1wbG95IGJyZWFrcG9pbnRzIHRoYXQgd29yayB3aXRoIGEgcHJlZGVmaW5lZCBzaXppbmcgc3lzdGVtLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBUaGUgYnJlYWtwb2ludCBtaXhpbiB0YWtlcyBvbmx5IDEgcGFyYW1ldGVyLlxuICogXG4gKiBAcGFyYW0gJHNpemUgVGhlIHNpemUgdG8gZmV0Y2ggZnJvbSBvdXIgYnJlYWtwb2ludHMgY29uZmlnIGZpbGVcbiAqL1xuLyoqXG4gKiBUeXBlICAgOiBNaXhpblxuICogR3JvdXAgIDogVGhlbWVcbiAqIERlc2MgICA6IEJ1aWxkIG1peGlucyB0byBhdXRvLWdlbmVyYXRlIG11bHRpcGxlIGNsYXNzIFwidGhlbWVzXCIgdG8gYmUgYXBwbGllZFxuICogYWNyb3NzIG91ciBzaXRlIHdoZW4gd2UgbmVlZCBkeW5hbWljIGNvbG9yaW5nIGZvciBhIHNwZWNpZmljIHVzZS1jYXNlLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBDYXJkIFRoZW1lXG4gKlxuICogVGhpcyB0aGVtZSBnZW5lcmF0ZXMgbWFueSBkaWZmZXJlbnQgY2FyZCBjb2xvcnMgYmFzZWQgb25cbiAqIHRoZSB2YWx1ZXMgcGFzc2VkIGludG8gaXQuIEl0IGlzIGRlc2lnbmVkIGl0IGJlIHVzZWQgaW4gYSBsb29wLCBnZW5lcmF0aW5nIFxuICogYSBuZXcgY2xhc3Mgb24gZWFjaCBsb29wIGl0ZXJhdGlvbi5cbiAqIFxuICogVG8gc2VlIHRoaXMgaW4gYWN0aW9uLCBoZWFkIHRvOlxuICogYDVfbW9sZWN1bGVzL19tLWNhcmQtLXN0YW5kYXJkYFxuICogYW5kIHNlZSB0aGUgYm90dG9tIG9mIHRoZSBmaWxlIVxuICovXG4vKipcbiogVGhlbWUgZm9yIGFjY29yZGlvbnMsIGNoYW5nZXMgdGhlIGNvbG9yIG9mIHRoZSBoZWFkaW5nc1xuKiovXG4vKipcbiogVGhlbWUgZm9yIEZhY3RzIGFuZCBGaWd1cmVzLCBjaGFuZ2VzIHRoZSBjb2xvciBvZiB0aGUgaGVhZGluZ3NcbioqL1xuLyoqXG4qIFRoZW1lIGZvciBhY2NvcmRpb25zLCBjaGFuZ2VzIHRoZSBjb2xvciBvZiB0aGUgaGVhZGluZ3NcbioqL1xuLyoqXG4qIFRoZW1lIGZvciByZWxhdGVkLWxpbmtzLCBjaGFuZ2VzIHRoZSBjb2xvciBvZiB0aGUgaGVhZGluZ3NcbioqL1xuLyoqXG4qIFRoZW1lIGZvciBidXR0b25zLCBjaGFuZ2VzIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGJ1dHRvbnMgdG8gYWxzbyBiZWNvbWUgYm9yZGVyZWQgd2l0aCBjb2xvcmVkIHRleHQgdy8gd2hpdGUgYmFja2dyb3VuZFxuKiovXG4vKipcbiAqIEhlcm8gQ292ZXIgVGhlbWVcbiAqXG4gKiBUaGlzIHRoZW1lIGdlbmVyYXRlcyBtYW55IGRpZmZlcmVudCBoZXJvIGNvbG9ycyBiYXNlZCBvblxuICogdGhlIHZhbHVlcyBwYXNzZWQgaW50byBpdC4gSXQgaXMgZGVzaWduZWQgaXQgYmUgdXNlZCBpbiBhIGxvb3AsIGdlbmVyYXRpbmcgXG4gKiBhIG5ldyBjbGFzcyBvbiBlYWNoIGxvb3AgaXRlcmF0aW9uLlxuICogXG4gKiBUbyBzZWUgdGhpcyBpbiBhY3Rpb24sIGhlYWQgdG86XG4gKiBgNl9vcmdhbmlzbXMvX28taGVyby9fby1oZXJvLS1jb3Zlci5zY3NzYFxuICovXG4vKipcbiAqIFR5cGVcdFx0Olx0TWl4aW5cbiAqIEdyb3VwXHQ6XHRDb250YWluZXJcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogVGhlIENvbnRhaW5lciBtaXhpbiBleHRlbmRzIG91ciBkZWZhdWx0IGNvbnRhaW5lciB0byBoZWxwIHdpdGggY29kZS1ibG9hdFxuICogc2luY2UgaXQgd2lsbCBnZXQgYXBwbGllZCB0aHJvdWdob3V0IHRoZSBwcm9qZWN0LiBJdCBhbHNvIHNldHMgYSBtYXgtd2lkdGhcbiAqIHdpdGhpbiB0aGUgZGl2IGl0IGlzIGFwcGxpZWQgdG8gYmFzZWQgb24gdGhlIHJldHVybmVkIHZhbHVlIGZyb20gb3VyIGdyaWQgY29uZmlnLlxuICovXG4vKipcbiAqIFR5cGVcdFx0Olx0TWl4aW5cbiAqIEdyb3VwXHQ6XHRDbGVhcmZpeFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBTaW1wbGUgYW5kIHN0cmFpZ2h0Zm9yd2FyZC4gSXQgYWNjZXB0cyBubyBwYXJhbXMgYW5kXG4gKiBqdXN0IHBlcmZvcm1zIGEgc3RhbmRhcmQgY2xlYXJmaXggd2hlcmUgYXBwbGllZC5cbiAqL1xuLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0T3BhY2l0eVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBBIHNpbXBsZSBtaXhpbiB0aGF0IG5pY2VseSBoYW5kbGVzIG9wYWNpdHkgYW5kIFxuICogcHJvdmlkZXMgZmFsbGJhY2tzIGZvciBJRS5cbiAqXG4gKiBAcGFyYW0gJG9wYWNpdHkgLSB0YWtlcyBhbnkgZGVjaW1hbCBudW1iZXIgYmV0d2VlbiAxIGFuZCAwICggYWQgYWxzbyB0YWtlcyB0aGUgbnVtYmVycyAxIGFuZCAwIClcbiAqL1xuLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0U2hhZG93c1xuICogRGVzY1x0XHQ6XHRFYXNpbHkgYXBwbHkgYm94LXNoYWRvd3MgYmFzZWQgb24gZWxlbWVudCBjb25maWdzIGluIG91ciBjb25maWcgbWFwXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqIEZldGNoIGEgc2hhZG93IGNvbmZpZ3VyYXRpb24gZnJvbSBvdXIgY29uZmlnIG1hcFxuICogYW5kIGFwcGx5IGl0IHRvIGFueSBlbGVtZW50IG9mIG91ciBjaG9vc2luZy5cbiAqXG4gKiBAcGFyYW1cdCR0eXBlXHQtIFRoZSBjb25maWcgdG8gZmV0Y2ggZnJvbSBvdXIgJHNoYWRvd3NfY29uZmlnIG1hcC5cbiAqL1xuLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0U3BhY2luZ1xuICogRGVzY1x0XHQ6XHRDcmVhdGUgYSBzeXN0ZW1hdGljIHdheSB0byBpbXBsZW1lbnQgc3BhY2luZyB0aHJvdWdob3V0IG91ciBzaXRlIHRvIGtlZXBcbiAqIHRoZSBlbnRpcmUgY29kZWJhc2UgbG9ja2VkIGludG8gYSB1bmlmb3JtIGZyYW1ld29yayBvZiBwcmUtZGVmaW5lZCB2YWx1ZXMuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqIFRoaXMgaXMgb25lIGJhZGFzcyBtaXhpbiB0aGF0IHRha2VzIGNhcmUgb2Ygc2V0dGluZyBtYXJnaW4gb3IgcGFkZGluZ1xuICogaW4gYW55IGRpcmVjdGlvbiwgd2l0aCBhIHZhbHVlIGZldGNoZWQgZnJvbSBvdXIgc3BhY2luZyBjb25maWcuXG4gKlxuICogQHBhcmFtXHQkcHJvcGVydHlcdC0gVGhlIHByb3BlcnR5IHRvIHVzZSBmb3Igb3VyIHNwYWNlclxuICogQHBhcmFtXHQkZGlyZWN0aW9uXHQtIFRoZSBkaXJlY3Rpb24gd2Ugd2FudCB0byBhcHBseSBvdXIgc3BhY2VyIHRvXG4gKiBAcGFyYW1cdCRzaXplXHRcdC0gVGhlIHNpemUgdG8gZmV0Y2ggZnJvbSBvdXIgY29uZmlnXG4gKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRNaXhpblxuICogR3JvdXBcdDpcdFRyYW5zaXRpb25zXG4gKiBEZXNjXHRcdDpcdEJ1aWxkIHRyYW5zaXRpb25zIGJhc2VkIG9uIGNvbmZpZ3MgZnJvbSBvdXIgdHJhbnNpdGlvbiBtYXBcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogR2V0IGFuIGVsZW1lbnQgdG8gZmV0Y2ggZnJvbSBvdXIgJHRyYW5zaXRpb25zX2NvbmZpZyBtYXAgYW5kIGFwcGx5IHRoZSBcbiAqIHJlc3VsdHMgdG8gdGhlIGVsZW1lbnQgd2hlcmUgdGhpcyBtaXhpbiBpcyBjYWxsZWRcbiAqIFxuICogQHBhcmFtICAkZWxlbWVudCBUaGUgZWxlbWVudCBjb25maWcgdG8gZmV0Y2ggZnJvbSBvdXIgbWFwXG4gKi9cbi8qKlxuICogVHlwZVx0XHQ6XHRNaXhpblxuICogR3JvdXBcdDpcdFR5cG9ncmFwaHlcbiAqIERlc2NcdFx0Olx0XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqIEdldCB0aGUgYmFzZSBzZXR0aW5ncyBmb3IgYSB0eXBlZmFjZSBmcm9tXG4gKiBvdXIgZm9udCBjb25maWcgbWFwLlxuICpcbiAqIEBwYXJhbVx0JHR5cGVcdHRoZSB0eXBlZmFjZSB0byBnZXQgZnJvbSBvdXIgY29uZmlnXG4gKiBAcGFyYW1cdCR3ZWlnaHRcdHRoZSBmb250LXdlaWdodCB0byBmZXRjaCBmcm9tIHRoZSB0eXBlZmFjZSB3ZSBjaG9zZVxuICovXG4vKipcbiAqIFByb2Nlc3MgYSBSRU0gdmFsdWUgYW5kIHByb3ZpZGUgYSBwaXhlbCBmYWxsYmFja1xuICogXG4gKiBAcGFyYW1cdCRzaXplIFRoZSBmb250IHNpemUgdG8gd29yayB3aXRoXG4gKi9cbi8qKlxuICogVEhFIE1PVEhFUiBPRiBBTEwgTUlYSU5TXG4gKlxuICogVGhpcyBoYW5kbGVzIHNpemluZyBmb250IGFjcm9zcyBvdXIgdHlwb2dyYXBoeSBzY2FsZS5cbiAqIFxuICogQHBhcmFtICB7W3R5cGVdfSAkc2l6ZSBbZGVzY3JpcHRpb25dXG4gKiBAcmV0dXJuIHtbdHlwZV19ICAgICAgIFtkZXNjcmlwdGlvbl1cbiAqL1xuLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogRXh0ZW5kc1xuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKlxuICogRmlsZSBJbXBvcnQgTGlzdFxuICogKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqIFR5cGVcdFx0Olx0RXh0ZW5kc1xuICogR3JvdXBcdDpcdEJhY2tncm91bmRzXG4gKiBEZXNjXHRcdDpcdERlZmluZSBzaWxlbnQgY2xhc3NlcyBmb3IgY29tbW9ubHkgdXNlZCBiYWNrZ3JvdW5kIHByb3BlcnRpZXMuXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLm0tY2FyZC0tbXktb2xkLWhvdXNlLCAubS1pc2xhbmQubS1pc2xhbmQtLWhhcy1iZywgLm8taGVyby0tY292ZXIsIC5vLWhlcm8tLW9mZnNldCAuby1oZXJvX19pbWcge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4ubS1pc2xhbmQubS1pc2xhbmQtLWhhcy1iZywgLm8taGVyby0tY292ZXIsIC5vLWhlcm8tLW9mZnNldCAuby1oZXJvX19pbWcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG4ubS1jdGEge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDtcbn1cblxuLyoqXG4gKiBUeXBlXHRcdDpcdEV4dGVuZHNcbiAqIEdyb3VwXHQ6XHRDb250YWluZXJcbiAqIERlc2NcdFx0Olx0RGVmaW5lIGEgc2lsZW50IGNsYXNzIHRvIHVzZSB3aXRoIG91ciBjb250YWluZXIgZ3JpZC5cbiAqIFRoaXMga2VlcHMgdXMgZnJvbSBoYXZpbmcgdG8gZGVmaW5lIGl0IGFsbCBvdmVyIHRoZSBwbGFjZS5cbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4ubS1jdGFfX2NvbnRhaW5lciwgLm0tbGVnYWwtYmFyX19jb250YWluZXIsIC5vLWFjdGlvbi1iYXJfX2NvbnRhaW5lciwgLm8tYXB0bHlfX2NvbnRhaW5lciwgLm8tY29udmVyc2F0aW9uX19jb250YWluZXIsIC5vLWZpbHRlci1iYXJfX2NvbnRhaW5lciwgLm8tZ3JpZC1nYWxsZXJ5LCAuby1oZWFkZXJfX2NvbnRhaW5lciwgLm8taGVyby0tY292ZXIgPiAuby1oZXJvX19jb250YWluZXIsIC5vLWhlcm8tLWlzc3VlIC5vLWhlcm9fX2NvbnRhaW5lciwgLm8taGVyby0tc2ltcGxlID4gLm8taGVyb19fY29udGFpbmVyLCAuby1wb3N0X19jb250YWluZXIsIC5vLXV0aWxpdHktYmFyX19jb250YWluZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB3aWR0aDogODUlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm0tY3RhX19jb250YWluZXIsIC5tLWxlZ2FsLWJhcl9fY29udGFpbmVyLCAuby1hY3Rpb24tYmFyX19jb250YWluZXIsIC5vLWFwdGx5X19jb250YWluZXIsIC5vLWNvbnZlcnNhdGlvbl9fY29udGFpbmVyLCAuby1maWx0ZXItYmFyX19jb250YWluZXIsIC5vLWdyaWQtZ2FsbGVyeSwgLm8taGVhZGVyX19jb250YWluZXIsIC5vLWhlcm8tLWNvdmVyID4gLm8taGVyb19fY29udGFpbmVyLCAuby1oZXJvLS1pc3N1ZSAuby1oZXJvX19jb250YWluZXIsIC5vLWhlcm8tLXNpbXBsZSA+IC5vLWhlcm9fX2NvbnRhaW5lciwgLm8tcG9zdF9fY29udGFpbmVyLCAuby11dGlsaXR5LWJhcl9fY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG59XG5cbi8qKlxuICogVHlwZVx0XHQ6XHRFeHRlbmRzXG4gKiBHcm91cFx0Olx0RmxleGJveFxuICogRGVzY1x0XHQ6XHREZWZpbmUgc2lsZW50IGNsYXNzZXMgZm9yIGZsZXhib3ggdXNhZ2UuXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLm0tY2FyZC0tbXktb2xkLWhvdXNlLCAubS1pbmxpbmUtZ3JvdXAsXG4ubS1pbmxpbmUtZ3JvdXBfX2dyb3VwLCAuby1hY3Rpb24tYmFyX19hY3Rpb25zLCAuby1oZXJvLS1jb3ZlciA+IC5vLWhlcm9fX2NvbnRhaW5lciwgLm8taGVyby0taXNzdWUgLm8taGVyb19fY29udGFpbmVyLCAuby1tZWdhX19jdGEge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyoqXG4gKiBUeXBlXHRcdDpcdEV4dGVuZHNcbiAqIEdyb3VwXHQ6XHRQc2V1ZG9cbiAqIERlc2NcdFx0Olx0RGVmaW5lIHNpbGVudCBjbGFzc2VzIGZvciBlYXNpZXIgUHNldWRvIGltcGxlbWVudGF0aW9uLlxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbmJsb2NrcXVvdGUsIC5tLWlzbGFuZC5tLWlzbGFuZC0taGFzLWJnLCAudS1iZWZvcmUtLWNvdmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgLm0taXNsYW5kLm0taXNsYW5kLS1oYXMtYmc6YmVmb3JlLCAudS1iZWZvcmUtLWNvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi51LWFmdGVyLS1jb3ZlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnUtYWZ0ZXItLWNvdmVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTtcbn1cblxuLyoqXG4gKiBUeXBlXHRcdDpcdEV4dGVuZHNcbiAqIEdyb3VwXHQ6XHRTbW9vdGhcbiAqIERlc2NcdFx0Olx0RGVmaW5lIHNpbGVudCBjbGFzc2VzIGZvciBtb2RpZnlpbmcgdHlwb2dyYXBoeS5cbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4uYS1idG4sIFtjbGFzcyo9XCJhLWhlYWRpbmdcIl0ge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wMDQpO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXHRQcm9qZWN0IFN0eWxlc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKlxuICpcdE5vdyB0aGF0IG91ciBwcm9qZWN0IGhhcyBiZWVuIGNvbmZpZ3VyZWQgYW5kIG91clxuICpcdGRlcGVuZGVuY2llcyBhcmUgaW4gcGxhY2UsIHdlIGNhbiBiZWdpbiBsb2FkaW5nXG4gKlx0ZmlsZXMgdGhhdCB3aWxsIGNvbnRhaW4gYWN0dWFsIG91dHB1dCB0aGF0IHdpbGwgXG4gKlx0ZW5kIHVwIGluIG91ciBwcm9qZWN0J3MgL2Rpc3QgZm9sZGVyLiBUaGVzZSBhcmVcbiAqXHRsb2FkZWQgaW4gYW4gaW50ZW50aW9uYWwgb3JkZXIgYmFzZXMgb24gc2VsZWN0b3JcbiAqXHRzY29wZSwgZnVuY3Rpb24gYW5kIHNwZWNpZmljaXR5LiBcbiAqXG4gKiAxLiBMaWJzXG4gKiAyLiBMYXlvdXRcbiAqIDMuIEF0b21zIFxuICogNC4gTW9sZWN1bGVzXG4gKiA1LiBPcmdhbmlzbXNcbiAqIDYuIFBhZ2VzIFxuICogNy4gVXRpbGl0eVxuICpcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKlxuICogTm90ZTogV2UgdXNlIHRoZSBjb3JlIGNvbmNlcHRzIGJlaGluZCB0aGUgZm9sbG93aW5nXG4gKiBtZXRob2RvbG9naWVzIGluIHRoaXMgcHJvamVjdDpcbiAqXG4gKiAxLiBCRU0gKG1vZGlmaWVkKSAtIGh0dHA6Ly9nZXRiZW0uY29tL2ludHJvZHVjdGlvbi9cbiAqIDIuIElUU0NTUyAobW9kaWZpZWQpIC0gaHR0cHM6Ly93d3cueGZpdmUuY28vYmxvZy9pdGNzcy1zY2FsYWJsZS1tYWludGFpbmFibGUtY3NzLWFyY2hpdGVjdHVyZS9cbiAqIDMuIEF0b21pYyBEZXNpZ24gLSBodHRwOi8vYXRvbWljZGVzaWduLmJyYWRmcm9zdC5jb20vdGFibGUtb2YtY29udGVudHMvXG4gKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogXG4gKi9cbi8qKlxuXHQgKiBMb2FkIGFueSAzcmQgcGFydHkgTGlicmFyaWVzIHdlIG5lZWRcblx0ICovXG4vKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBMaWJyYXJpZXNcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiBUeXBlIDogTGlicmFyeVxuICogTmFtZSA6IFJlc2V0XG4gKiBEZXNjOiBXZSB1c2UgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIG1pbmlyZXNldC5jc3MgLSBnaXRodWIuY29tL2pndGhtcy9taW5pcmVzZXQuY3NzXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKlxuICogMi4gU2V0IHJvb3QgZm9udCBzaXplXG4gKlxuICogTm90ZSB0aGF0IGNoYW5naW5nIHRoZSBmb250LXNpemUgb24gdGhlIGh0bWwgZWxlbWVudCB3aWxsIGFmZmVjdCB0aGVcbiAqIGVudGlyZSBwcm9qZWN0IHNpbmNlIGFsbCBmb250cyBhcmUgYmVpbmcgc2l6ZWQgaW4gcmVtcyBiYXNlZCBvblxuICogdGhlIGluaXRpYWwgc2l6ZSBvZiB0aGUgaHRtbCBlbGVtZW50LlxuICovXG5odG1sIHtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbn1cblxuLyoqXG4gKiBTZXQgQm9keSB0byBPdmVyZmxvdyBIaWRkZW5cbiAqL1xuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuaHRtbCxcbmJvZHksXG5wLFxub2wsXG51bCxcbmxpLFxuZGwsXG5kdCxcbmRkLFxuYmxvY2txdW90ZSxcbmZpZ3VyZSxcbmZpZWxkc2V0LFxubGVnZW5kLFxudGV4dGFyZWEsXG5wcmUsXG5pZnJhbWUsXG5ocixcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuYSB7XG4gIGNvbG9yOiB1bnNldDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXJnaW46IDA7XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuaW1nLFxuZW1iZWQsXG5vYmplY3QsXG5hdWRpbyxcbnZpZGVvIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmlmcmFtZSxcbmJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8qIGJveC1zaXppbmcgKi9cbi5mci13aW5kb3csIC5mci13aW5kb3cgW2NsYXNzXj1cImZyLVwiXSxcbi5mci1vdmVybGF5LCAuZnItb3ZlcmxheSBbY2xhc3NePVwiZnItXCJdLFxuLmZyLXNwaW5uZXIsIC5mci1zcGlubmVyIFtjbGFzc149XCJmci1cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uZnItd2luZG93IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtc2l6ZTogMTZweC8yMHB4O1xuICAvKiBDaHJvbWUgaGFjaywgdGhpcyBmaXhlcyBhIHZpc3VhbCBnbGl0Y2ggd2hlbiBxdWlja2x5IHRvZ2dsaW5nIGEgdmlkZW8gKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7XG59XG5cbi8qIHotaW5kZXggKi9cbi5mci1vdmVybGF5IHtcbiAgei1pbmRleDogOTk5OTg7XG59XG5cbi5mci13aW5kb3cge1xuICB6LWluZGV4OiA5OTk5OTtcbn1cblxuLmZyLXNwaW5uZXIge1xuICB6LWluZGV4OiAxMDAwMDA7XG59XG5cbi8qIG92ZXJsYXkgKi9cbi5mci1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mci1vdmVybGF5LWJhY2tncm91bmQge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMC44O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApO1xufVxuXG4uZnItb3ZlcmxheS11aS1mdWxsY2xpY2sgLmZyLW92ZXJsYXktYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQ6ICMyOTI5Mjk7XG4gIG9wYWNpdHk6IDAuODU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT04NSk7XG59XG5cbi8qIG1vYmlsZSB0b3VjaCBoYXMgcG9zaXRpb246YWJzb2x1dGUgdG8gYWxsb3cgem9vbWluZyAqL1xuLmZyLXdpbmRvdy5mci1tb2JpbGUtdG91Y2gsXG4uZnItb3ZlcmxheS5mci1tb2JpbGUtdG91Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKiBzb21lIHByb3BlcnRpZXMgb24gdGhlIHdpbmRvdyBhcmUgdXNlZCB0byB0b2dnbGUgdGhpbmdzXG4gKiBsaWtlIG1hcmdpbiBhbmQgdGhlIGZ1bGxjbGljayBtb2RlLFxuICogd2UgcmVzZXQgdGhvc2UgcHJvcGVydGllcyBhZnRlciBtZWFzdXJpbmcgdGhlbVxuICovXG4uZnItbWVhc3VyZWQge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmZyLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZnItcGFnZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmZyLXBhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mci1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mci1ob3ZlcmluZy1jbGlja2FibGUgLmZyLWNvbnRhaW5lciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLypcbiAgIHBhZGRpbmc6XG4gICB5b3V0dWJlICYgdmltZW8gYWx3YXlzIGhhdmUgYnV0dG9ucyBvbiB0aGUgb3V0c2lkZVxuICAgc2lkZSBidXR0b24gPSA3MiA9IDU0ICsgKDIgKiA5IG1hcmdpbilcbiAgIGNsb3NlIGJ1dHRvbiA9IDQ4XG4qL1xuLyogcGFkZGluZyB1aTppbnNpZGUgKi9cbi5mci11aS1pbnNpZGUgLmZyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDIwcHggMjBweDtcbn1cblxuLmZyLXVpLWluc2lkZS5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLyogcGFkZGluZyB1aTpvdXRzaWRlICovXG4uZnItdWktb3V0c2lkZSAuZnItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMjBweCA4MnB4O1xufVxuXG4uZnItdWktb3V0c2lkZS5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMjBweCA0OHB4O1xufVxuXG4vKiByZWR1Y2UgcGFkZGluZyBvbiBzbWFsbGVyIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDcwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIGFuZCAobWF4LWhlaWdodDogNzAwcHgpIHtcbiAgLyogcGFkZGluZyB1aTppbnNpZGUgKi9cbiAgLmZyLXVpLWluc2lkZSAuZnItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxMnB4IDEycHg7XG4gIH1cbiAgLmZyLXVpLWluc2lkZS5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICB9XG4gIC8qIHBhZGRpbmcgdWk6b3V0c2lkZSAqL1xuICAuZnItdWktb3V0c2lkZSAuZnItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxMnB4IDcycHg7XG4gIH1cbiAgLmZyLXVpLW91dHNpZGUuZnItbm8tc2lkZXMgLmZyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMTJweCA0OHB4O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIGFuZCAobWF4LWhlaWdodDogNTAwcHgpIHtcbiAgLyogcGFkZGluZyB1aTppbnNpZGUgKi9cbiAgLmZyLXVpLWluc2lkZSAuZnItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwcHggMHB4O1xuICB9XG4gIC5mci11aS1pbnNpZGUuZnItbm8tc2lkZXMgLmZyLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG4gIC8qIHBhZGRpbmcgdWk6b3V0c2lkZSAqL1xuICAuZnItdWktb3V0c2lkZSAuZnItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwcHggNzJweDtcbiAgfVxuICAuZnItdWktb3V0c2lkZS5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwcHggNDhweDtcbiAgfVxufVxuXG4vKiBwYWRkaW5nIHVpOmZ1bGxjbGljayAqL1xuLmZyLXVpLWZ1bGxjbGljayAuZnItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLmZyLXVpLWZ1bGxjbGljay5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLyogdmlkZW8gZnVsbGNsaWNrICovXG4uZnItdWktZnVsbGNsaWNrLmZyLXR5cGUtdmlkZW8gLmZyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweCA2MnB4O1xufVxuXG4uZnItdWktZnVsbGNsaWNrLmZyLW5vLXNpZGVzLmZyLXR5cGUtdmlkZW8gLmZyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDQ4cHggMHB4O1xufVxuXG4vKiBvdmVyZmxvdy15IHNob3VsZCBhbHdheXMgaGF2ZSAwIHBhZGRpbmcgdG9wIGFuZCBib3R0b20gKi9cbi5mci1vdmVyZmxvdy15IC5mci1jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4uZnItY29udGVudCB7XG4gIGJvcmRlcjogM3B4IHNvbGlkICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uZnItY29udGVudCxcbi5mci1jb250ZW50LWJhY2tncm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIC8qIElFMTEgaGFzIGEgMXB4IGJsdXIgYnVnIG9uIHRoZSBlZGdlcyBvZiB0aGUgY2FwdGlvbiAodWk6aW5zaWRlKVxuICAgICBkdXJpbmcgYW5pbWF0aW9uIHdpdGggb3ZlcmZsb3c6aGlkZGVuICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKiBpbWcvaWZyYW1lL2Vycm9yICovXG4uZnItY29udGVudC1lbGVtZW50IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mci1jb250ZW50LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kOiAjMTAxMDEwO1xufVxuXG4uZnItaW5mbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiB0ZXh0O1xuICAtbW96LXVzZXItc2VsZWN0OiB0ZXh0O1xuICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xufVxuXG4uZnItaW5mby1iYWNrZ3JvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGxpbmUtaGVpZ2h0OiAxJTtcbiAgZmlsdGVyOiBub25lO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZnItdWktaW5zaWRlIC5mci1pbmZvLWJhY2tncm91bmQge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApO1xuICBvcGFjaXR5OiAuODtcbiAgem9vbTogMTtcbn1cblxuLyogdWk6b3V0c2lkZSBoYXMgYSBzbGlnaHRseSBsaWdodGVyIGluZm8gYmFja2dyb3VuZCB0byBicmVhayB1cCBmcm9tIGJsYWNrIHBhZ2UgYmFja2dyb3VuZHMgKi9cbi5mci11aS1vdXRzaWRlIC5mci1pbmZvLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kOiAjMGQwZDBkO1xufVxuXG4vKiBpbmZvIGF0IHRoZSBib3R0b20gZm9yIHVpOmluc2lkZSAqL1xuLmZyLWNvbnRlbnQgLmZyLWluZm8ge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMDtcbn1cblxuLmZyLWluZm8tcGFkZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDEycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5mci1jYXB0aW9uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmZyLXBvc2l0aW9uIHtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZsb2F0OiByaWdodDtcbiAgbGluZS1oZWlnaHQ6IDIxcHg7XG4gIG9wYWNpdHk6IDAuOTk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBwb3NpdGlvbnMgbm90IHdpdGhpbiB0aGUgaW5mbyBiYXJcbiAgIGZvciB1aTpvdXRzaWRlL2luc2lkZSAqL1xuLmZyLXBvc2l0aW9uLW91dHNpZGUsXG4uZnItcG9zaXRpb24taW5zaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW46IDEycHg7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiB0ZXh0O1xuICAtbW96LXVzZXItc2VsZWN0OiB0ZXh0O1xuICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xufVxuXG4uZnItcG9zaXRpb24taW5zaWRlIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4uZnItcG9zaXRpb24tYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMGQwZDBkO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApO1xuICBvcGFjaXR5OiAuODtcbiAgem9vbTogMTtcbiAgLyogb2xkSUUgKi9cbn1cblxuLmZyLXBvc2l0aW9uLXRleHQge1xuICBjb2xvcjogI2IzYjNiMztcbn1cblxuLmZyLXBvc2l0aW9uLW91dHNpZGUgLmZyLXBvc2l0aW9uLXRleHQsXG4uZnItcG9zaXRpb24taW5zaWRlIC5mci1wb3NpdGlvbi10ZXh0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIGRpc3BsYXkgaXQgZm9yIHRoZSBvdXRzaWRlIHVpLCBoaWRlIHRoZSBjYXB0aW9uIGluc2lkZSAqL1xuLmZyLXVpLW91dHNpZGUgLmZyLXBvc2l0aW9uLW91dHNpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZyLXVpLW91dHNpZGUgLmZyLWluZm8gLmZyLXBvc2l0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZyLXVpLWluc2lkZS5mci1uby1jYXB0aW9uIC5mci1wb3NpdGlvbi1pbnNpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogbGlua3MgKi9cbi5mci1pbmZvIGEsXG4uZnItaW5mbyBhOmhvdmVyIHtcbiAgY29sb3I6ICNjY2M7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5mci1pbmZvIGE6aG92ZXIge1xuICBjb2xvcjogI2VlZTtcbn1cblxuLyogbm8tY2FwdGlvbiAqL1xuLmZyLXVpLW91dHNpZGUuZnItbm8tY2FwdGlvbiAuZnItaW5mbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mci11aS1pbnNpZGUuZnItbm8tY2FwdGlvbiAuZnItY2FwdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIC0tLSBzdHJva2UgKi9cbi5mci1zdHJva2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uZnItc3Ryb2tlLXZlcnRpY2FsIHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZnItc3Ryb2tlLWhvcml6b250YWwge1xuICBwYWRkaW5nOiAwIDFweDtcbn1cblxuLmZyLXN0cm9rZS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xufVxuXG4uZnItc3Ryb2tlLWJvdHRvbSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwO1xufVxuXG4uZnItc3Ryb2tlLWNvbG9yIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG5cbi8qIHRoZSBzdHJva2UgaXMgYnJpZ2h0ZXIgaW5zaWRlIHRoZSBpbmZvIGJveCAqL1xuLmZyLWluZm8gLmZyLXN0cm9rZS1jb2xvciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoODAsIDgwLCA4MCwgMC4zKTtcbn1cblxuLyogcmVtb3ZlIHRoZSBzdHJva2Ugd2hlbiBvdXRzaWRlIHVpIGhhcyBhIGNhcHRpb24gKi9cbi5mci11aS1vdXRzaWRlLmZyLWhhcy1jYXB0aW9uIC5mci1jb250ZW50IC5mci1zdHJva2UtYm90dG9tIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogcmVtb3ZlIHN0cm9rZSBhbmQgc2hhZG93IHdoZW4gdWk6ZnVsbGNsaWNrICovXG4uZnItdWktZnVsbGNsaWNrIC5mci1zdHJva2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZnItdWktZnVsbGNsaWNrIC5mci1jb250ZW50LWJhY2tncm91bmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiB0aGUgaW5mbyBib3ggbmV2ZXIgYmFzIGEgdG9wIHN0cm9rZSAqL1xuLmZyLWluZm8gLmZyLXN0cm9rZS10b3Age1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA8ID4gKi9cbi5mci1zaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDU0cHg7XG4gIGhlaWdodDogNzJweDtcbiAgbWFyZ2luOiAwIDlweDtcbiAgbWFyZ2luLXRvcDogLTM2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHpvb206IDE7XG59XG5cbi5mci1zaWRlLXByZXZpb3VzIHtcbiAgbGVmdDogMDtcbn1cblxuLmZyLXNpZGUtbmV4dCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4uZnItc2lkZS1kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmZyLXNpZGUtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZnItc2lkZS1idXR0b24ge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZnItc2lkZS1idXR0b24tYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTAxMDEwO1xufVxuXG4uZnItc2lkZS1idXR0b24taWNvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHpvb206IDE7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi8qIHNtYWxsZXIgc2lkZSBidXR0b25zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBhbmQgKG1heC1oZWlnaHQ6IDQxNHB4KSB7XG4gIC5mci1zaWRlIHtcbiAgICB3aWR0aDogNTRweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IC0zMHB4O1xuICB9XG4gIC5mci1zaWRlLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIG1hcmdpbjogMCAzcHg7XG4gIH1cbn1cblxuLyogWCAqL1xuLmZyLWNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZnItY2xvc2UtYmFja2dyb3VuZCxcbi5mci1jbG9zZS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEycHg7XG4gIGxlZnQ6IDEycHg7XG4gIGhlaWdodDogMjZweDtcbiAgd2lkdGg6IDI2cHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5mci1jbG9zZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cblxuLyogVGh1bWJuYWlscyAqL1xuLmZyLXRodW1ibmFpbHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mci10aHVtYm5haWxzLWRpc2FibGVkIC5mci10aHVtYm5haWxzIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTIlO1xuICBtaW4taGVpZ2h0OiA3NHB4O1xuICBtYXgtaGVpZ2h0OiAxNjBweDtcbiAgYm90dG9tOiAwO1xufVxuXG4uZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwJTtcbiAgbWluLXdpZHRoOiA3NHB4O1xuICBtYXgtd2lkdGg6IDE2MHB4O1xuICBsZWZ0OiAwO1xufVxuXG4uZnItdGh1bWJuYWlscyxcbi5mci10aHVtYm5haWxzICoge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5mci10aHVtYm5haWxzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXdyYXBwZXIge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbn1cblxuLmZyLXRodW1ibmFpbHMtc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgem9vbTogMTtcbn1cblxuLmZyLXRodW1ibmFpbHMtc2xpZGVyLXNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZyLXRodW1ibmFpbHMtdGh1bWJzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5mci10aHVtYm5haWxzLXNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mci10aHVtYm5haWwtZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mci10aHVtYm5haWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHpvb206IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwIDEwcHg7XG59XG5cbi5mci1sdElFOSAuZnItdGh1bWJuYWlsICoge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiBJRTYoNykgKi9cbiAgei1pbmRleDogMTtcbiAgem9vbTogMTtcbn1cblxuLmZyLXRodW1ibmFpbC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjMTYxNjE2O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lO1xuICAvKiBJRTYoNykgKi9cbiAgei1pbmRleDogMDtcbiAgLyogSUU4ICovXG59XG5cbi5mci10aHVtYm5haWwtb3ZlcmxheSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZyLXRodW1ibmFpbC1hY3RpdmUgLmZyLXRodW1ibmFpbC1vdmVybGF5IHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZnItdGh1bWJuYWlsLW92ZXJsYXksXG4uZnItdGh1bWJuYWlsLW92ZXJsYXktYmFja2dyb3VuZCxcbi5mci10aHVtYm5haWwtb3ZlcmxheS1ib3JkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZnItbHRJRTkgLmZyLXRodW1ibmFpbC1vdmVybGF5LWJvcmRlciB7XG4gIGJvcmRlci13aWR0aDogMCAhaW1wb3J0YW50O1xufVxuXG4uZnItdGh1bWJuYWlsIC5mci10aHVtYm5haWwtaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT04NSk7XG4gIG9wYWNpdHk6IC44NTtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4uZnItdGh1bWJuYWlsOmhvdmVyIC5mci10aHVtYm5haWwtaW1hZ2UsXG4uZnItdGh1bWJuYWlsLWFjdGl2ZTpob3ZlciAuZnItdGh1bWJuYWlsLWltYWdlIHtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTk5KTtcbiAgb3BhY2l0eTogLjk5O1xufVxuXG4uZnItdGh1bWJuYWlsLWFjdGl2ZSAuZnItdGh1bWJuYWlsLWltYWdlLFxuLmZyLXRodW1ibmFpbC1hY3RpdmU6aG92ZXIgLmZyLXRodW1ibmFpbC1pbWFnZSB7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0zNSk7XG4gIG9wYWNpdHk6IC4zNTtcbn1cblxuLmZyLXRodW1ibmFpbC1hY3RpdmUge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIFRodW1ibmFpbHMgbG9hZGluZyAqL1xuLmZyLXRodW1ibmFpbC1sb2FkaW5nLFxuLmZyLXRodW1ibmFpbC1sb2FkaW5nLWJhY2tncm91bmQsXG4uZnItdGh1bWJuYWlsLWxvYWRpbmctaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZnItdGh1bWJuYWlsLWxvYWRpbmctYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjE2MTY7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG9wYWNpdHk6IC44O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vKiB0aGlzIGVsZW1lbnQgaXMgdGhlcmUgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gcHV0dGluZyB0aGUgbG9hZGluZyBpbWFnZSBvbiB0aGUgYmFja2dyb3VuZCAqL1xuLmZyLXRodW1ibmFpbC1sb2FkaW5nLWljb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBlcnJvciBvbiB0aHVtYm5haWwgKi9cbi5mci10aHVtYm5haWwtZXJyb3IgLmZyLXRodW1ibmFpbC1pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjAyMDIwO1xufVxuXG4vKiBUaHVtYm5haWwgPCA+ICovXG4uZnItdGh1bWJuYWlscy1zaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDI4cHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyB7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xufVxuXG4uZnItdGh1bWJuYWlscy1zaWRlLW5leHQge1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG59XG5cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUge1xuICBoZWlnaHQ6IDI4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDEwcHggMDtcbn1cblxuLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMTRweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNHB4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWJhY2tncm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTgwKTtcbiAgb3BhY2l0eTogLjg7XG4gIC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b246aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjNiM2I7XG59XG5cbi5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkICoge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkOmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuXG4uZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgaGVpZ2h0OiA0MnB4O1xuICB3aWR0aDogNDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKnRvcDogLTdweDtcbiAgbGVmdDogLTdweDsqL1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIHZlcnRpY2FsIHRodW1ibmFpbHMgKi9cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUsXG4uZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy10aHVtYnMsXG4uZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlsLWZyYW1lIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi8qIHVpOmZ1bGxjbGljayBoYXMgYSBkYXJrIHRodW1ibmFpbCBiYWNrZ3JvdW5kICovXG4uZnItd2luZG93LXVpLWZ1bGxjbGljayAuZnItdGh1bWJuYWlscyB7XG4gIGJhY2tncm91bmQ6ICMwOTA5MDk7XG59XG5cbi8qIHB1dCBhIHN0cm9rZSBvbiB0aGUgY29ubmVjdGluZyBjYXB0aW9uKi9cbi5mci13aW5kb3ctdWktZnVsbGNsaWNrLmZyLXRodW1ibmFpbHMtZW5hYmxlZC5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLWluZm8gLmZyLXN0cm9rZS1ib3R0b20ge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKih7IGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpOyB9ICovXG4uZnItd2luZG93LXVpLWZ1bGxjbGljay5mci10aHVtYm5haWxzLWVuYWJsZWQuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItaW5mbyAuZnItc3Ryb2tlLWxlZnQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiB0aHVtYm5haWwgc3BhY2luZyAgKi9cbi5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLXRodW1ibmFpbHMtdGh1bWJzIHtcbiAgcGFkZGluZzogMTJweCA1cHg7XG59XG5cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXRodW1icyB7XG4gIHBhZGRpbmc6IDVweCAxMnB4O1xufVxuXG4uZnItdGh1bWJuYWlscy1tZWFzdXJlZCAuZnItdGh1bWJuYWlscy10aHVtYnMge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIGhvcml6b250YWwgKi9cbkBtZWRpYSBhbGwgYW5kIChtaW4taGVpZ2h0OiA3MDBweCkge1xuICAuZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzLXRodW1icyB7XG4gICAgcGFkZGluZzogMTZweCA4cHg7XG4gIH1cbiAgLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItdGh1bWJuYWlscy1zaWRlIHtcbiAgICBtYXJnaW46IDAgOHB4O1xuICB9XG4gIC5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIH1cbiAgLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQge1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLWhlaWdodDogOTgwcHgpIHtcbiAgLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItdGh1bWJuYWlscy10aHVtYnMge1xuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgfVxuICAuZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzLXNpZGUge1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICB9XG4gIC5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIH1cbiAgLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQge1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgfVxufVxuXG4vKiB2ZXJ0aWNhbCAqL1xuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXRodW1icyB7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gIH1cbiAgLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZSB7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgfVxuICAuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICB9XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxODAwcHgpIHtcbiAgLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtdGh1bWJzIHtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIH1cbiAgLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZSB7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gIH1cbiAgLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuICAuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbn1cblxuLyogaGlkZSB0aHVtYm5haWxzIG9uIHNtYWxsZXIgc2NyZWVuc1xuICAgdGhlIGpzIGFsd2F5cyBoaWRlcyB0aGVtIG9uIHRvdWNoIGJhc2VkIGRldmljZXNcbiovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBhbmQgKG1heC1oZWlnaHQ6IDUwMHB4KSB7XG4gIC5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLXRodW1ibmFpbHMge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBhbmQgKG1heC1oZWlnaHQ6IDQxNHB4KSB7XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogZm9yY2UgZnVsbENsaWNrOiB0cnVlXG4gICBhbmQgZm9yY2Ugb3ZlcmZsb3c6IGZhbHNlICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBhbmQgKG1heC1oZWlnaHQ6IDQxNHB4KSB7XG4gIC5mci1wYWdlIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cbiAgLyogZnVsbGNsaWNrICovXG4gIC5mci1wYWdlIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9XG4gIC8qIG92ZXJmbG93OiBmYWxzZSAqL1xufVxuXG4vKiBzd2l0Y2ggYmV0d2VlbiB1aSBtb2Rlc1xuICAgd2UgZm9yY2UgZXZlcnl0aGluZyBub3QgaW4gdGhlIGN1cnJlbnQgVUkgbW9kZSB0byBoaWRlXG4qL1xuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLXNpZGUtbmV4dC1vdXRzaWRlLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLXNpZGUtcHJldmlvdXMtb3V0c2lkZSxcbi5mci13aW5kb3ctdWktZnVsbGNsaWNrIC5mci1jbG9zZS1vdXRzaWRlLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQgLmZyLXNpZGUtbmV4dCxcbi5mci13aW5kb3ctdWktZnVsbGNsaWNrIC5mci1jb250ZW50IC5mci1zaWRlLXByZXZpb3VzLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQgLmZyLWNsb3NlLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQgLmZyLWluZm8sXG4uZnItd2luZG93LXVpLW91dHNpZGUgLmZyLXNpZGUtbmV4dC1mdWxsY2xpY2ssXG4uZnItd2luZG93LXVpLW91dHNpZGUgLmZyLXNpZGUtcHJldmlvdXMtZnVsbGNsaWNrLFxuLmZyLXdpbmRvdy11aS1vdXRzaWRlIC5mci1jbG9zZS1mdWxsY2xpY2ssXG4uZnItd2luZG93LXVpLW91dHNpZGUgLmZyLWNvbnRlbnQgLmZyLXNpZGUtbmV4dCxcbi5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItY29udGVudCAuZnItc2lkZS1wcmV2aW91cyxcbi5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItY29udGVudCAuZnItY2xvc2UsXG4uZnItd2luZG93LXVpLW91dHNpZGUgLmZyLWNvbnRlbnQgLmZyLWluZm8sXG4uZnItd2luZG93LXVpLWluc2lkZSAuZnItcGFnZSA+IC5mci1pbmZvLFxuLmZyLXdpbmRvdy11aS1pbnNpZGUgLmZyLXNpZGUtbmV4dC1mdWxsY2xpY2ssXG4uZnItd2luZG93LXVpLWluc2lkZSAuZnItc2lkZS1wcmV2aW91cy1mdWxsY2xpY2ssXG4uZnItd2luZG93LXVpLWluc2lkZSAuZnItY2xvc2UtZnVsbGNsaWNrLFxuLmZyLXdpbmRvdy11aS1pbnNpZGUgLmZyLXNpZGUtbmV4dC1vdXRzaWRlLFxuLmZyLXdpbmRvdy11aS1pbnNpZGUgLmZyLXNpZGUtcHJldmlvdXMtb3V0c2lkZSxcbi5mci13aW5kb3ctdWktaW5zaWRlIC5mci1jbG9zZS1vdXRzaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBzb21lIHVpIGVsZW1lbnRzIGNhbiBiZSB0b2dnbGVkIG9uIG1vdXNlbW92ZS5cbiAgIGZpbHRlcjphbHBoYShvcGFjaXR5KSBpcyBidWdnZWQgc28gd2UgdXNlIGRpc3BsYXkgaW4gb2xkSUVcbiovXG4uZnItdG9nZ2xlLXVpIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC4zcztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG59XG5cbi5mci12aXNpYmxlLWZ1bGxjbGljay11aSAuZnItYm94ID4gLmZyLXRvZ2dsZS11aSxcbi5mci12aXNpYmxlLWluc2lkZS11aSAuZnItdWktaW5zaWRlIC5mci10b2dnbGUtdWkge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZnItaGlkZGVuLWZ1bGxjbGljay11aSAuZnItYm94ID4gLmZyLXRvZ2dsZS11aSxcbi5mci1oaWRkZW4taW5zaWRlLXVpIC5mci11aS1pbnNpZGUgLmZyLXRvZ2dsZS11aSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xufVxuXG4uZnItbHRJRTkuZnItaGlkZGVuLWZ1bGxjbGljay11aSAuZnItYm94ID4gLmZyLXRvZ2dsZS11aSxcbi5mci1sdElFOS5mci1oaWRkZW4taW5zaWRlLXVpIC5mci11aS1pbnNpZGUgLmZyLXRvZ2dsZS11aSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFNwaW5uZXIgKi9cbi5mci1zcGlubmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogNTJweDtcbiAgaGVpZ2h0OiA1MnB4O1xuICBiYWNrZ3JvdW5kOiAjMTAxMDEwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxNiwgMTYsIDAuODUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5mci1zcGlubmVyIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDY0JTtcbiAgd2lkdGg6IDY0JTtcbiAgbWFyZ2luLWxlZnQ6IDE4JTtcbiAgbWFyZ2luLXRvcDogMTglO1xuICBvcGFjaXR5OiAxO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZnJlc2NvLTEyIDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbjogZnJlc2NvLTEyIDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbi5mci1zcGlubmVyIGRpdjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMnB4O1xuICBoZWlnaHQ6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcbiAgLyogZml4ZXMgcmVuZGVyaW5nIGluIEZpcmVmb3ggKi9cbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tMSB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMS4xcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMS4xcztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tMiB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMS4wcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMS4wcztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tMyB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC45cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC45cztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tNCB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEyMGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEyMGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC44cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC44cztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tNSB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxNTBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE1MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE1MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC43cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC43cztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tNiB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC42cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC42cztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tNiB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC42cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC42cztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tNyB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIxMGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIxMGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC41cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC41cztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tOCB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI0MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI0MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC40cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40cztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tOSB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4zcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zcztcbn1cblxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tMTAge1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzAwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMDBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzMDBkZWcpO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMnM7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMnM7XG59XG5cbi5mci1zcGlubmVyIGRpdi5mci1zcGluLTExIHtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDMzMGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKTtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjFzO1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjFzO1xufVxuXG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi0xMiB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZyZXNjby0xMiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmcmVzY28tMTIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi8qIFRodW1ibmFpbCBzcGlubmVyICovXG4uZnItdGh1bWJuYWlsLXNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IC0yMHB4O1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5mci10aHVtYm5haWwtc3Bpbm5lci1zcGluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiA4cHggMCAwIDhweDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5ZW07XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZmZmO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZnItdGh1bWJuYWlsLXNwaW4gMS4xcyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbjogZnItdGh1bWJuYWlsLXNwaW4gMS4xcyBpbmZpbml0ZSBsaW5lYXI7XG59XG5cbi5mci10aHVtYm5haWwtc3Bpbm5lci1zcGluLFxuLmZyLXRodW1ibmFpbC1zcGlubmVyLXNwaW46YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmci10aHVtYm5haWwtc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZnItdGh1bWJuYWlsLXNwaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4vKiBFcnJvciAqL1xuLmZyLWVycm9yIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhMzQzNDtcbiAgd2lkdGg6IDE2MHB4O1xuICBoZWlnaHQ6IDE2MHB4O1xufVxuXG4uZnItZXJyb3ItaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0yMXB4O1xuICBtYXJnaW4tdG9wOiAtMjFweDtcbn1cblxuLyogc2tpbjogJ2ZyZXNjbycgKi9cbi8qIFNwcml0ZSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWNsb3NlLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1lcnJvci1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ZyZXNjby1zcHJpdGUuc3ZnXCIpO1xufVxuXG4vKiBmYWxsYmFjayBwbmcgc3ByaXRlICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1jbG9zZS1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWVycm9yLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvZnJlc2NvLXNwcml0ZS5wbmdcIik7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWVycm9yLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTEyNnB4O1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1jb250ZW50LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kOiAjMTAxMDEwO1xuICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktZnVsbGNsaWNrIC5mci1jb250ZW50LWJhY2tncm91bmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiB0aHVtYm5haWwgc2hhZG93ICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWwtd3JhcHBlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWwtYWN0aXZlIC5mci10aHVtYm5haWwtd3JhcHBlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiA8ID4gKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXNpZGUtYnV0dG9uLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1wcmV2aW91cyAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xM3B4IC0xNHB4O1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTNweCAtMTRweDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1wcmV2aW91czpob3ZlciAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xM3B4IC0xMTRweDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1uZXh0OmhvdmVyIC5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTkzcHggLTExNHB4O1xufVxuXG4vKiB0cmFuc2l0aW9uIChwbmcpICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItaG92ZXJpbmctcHJldmlvdXMgLmZyLXNpZGUtcHJldmlvdXMgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2Zy5mci1tb2JpbGUtdG91Y2ggLmZyLXNpZGUtcHJldmlvdXMgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTNweCAtMTE0cHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1ob3ZlcmluZy1uZXh0IC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2Zy5mci1tb2JpbGUtdG91Y2ggLmZyLXNpZGUtbmV4dCAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05M3B4IC0xMTRweDtcbn1cblxuLyogZGlzYWJsZWQgc3RhdGUgKHBuZykgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLXByZXZpb3VzLmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItaG92ZXJpbmctcHJldmlvdXMgLmZyLXNpZGUtcHJldmlvdXMuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLXByZXZpb3VzLmZyLXNpZGUtZGlzYWJsZWQ6aG92ZXIgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTNweCAtMjE0cHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1ob3ZlcmluZy1uZXh0IC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZDpob3ZlciAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05M3B4IC0yMTRweDtcbn1cblxuLyogdHJhbnNpdGlvbiAoc3ZnKSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXNpZGUtcHJldmlvdXMgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTNweCAtMTE0cHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTNweCAtMTE0cHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgb3BhY2l0eTogLjU7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1zaWRlOmhvdmVyIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLWhvdmVyaW5nLXByZXZpb3VzIC5mci1zaWRlLXByZXZpb3VzIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLWhvdmVyaW5nLW5leHQgLmZyLXNpZGUtbmV4dCAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnLmZyLW1vYmlsZS10b3VjaCAuZnItc2lkZSAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gIG9wYWNpdHk6IC44O1xufVxuXG4vKiB0b3VjaCBhbHdheXMgYWN0aXZlIGJ1dCBhdCBsb3dlciBvcGFjaXR5ICovXG4vKiBkaXNhYmxlZCAoc3ZnKSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItaG92ZXJpbmctcHJldmlvdXMgLmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItaG92ZXJpbmctbmV4dCAuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1zaWRlLWRpc2FibGVkOmhvdmVyIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcuZnItbW9iaWxlLXRvdWNoIC5mci1zaWRlLWRpc2FibGVkIC5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgb3BhY2l0eTogLjI7XG59XG5cbi8qIFRPRE86IG1ha2Ugc3VyZSB0aGlzIHdvcmtzICovXG4vKiBoaWRlIGZvciB1aTppbnNpZGUvZnVsbGNsaWNrLCBvbmx5IGZvciB0aGUgaW1hZ2UgdHlwZSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktaW5zaWRlIC5mci10eXBlLWltYWdlIC5mci1zaWRlLWRpc2FibGVkIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktZnVsbGNsaWNrLmZyLXNob3dpbmctdHlwZS1pbWFnZSAuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8qIDwgPiByZXNwb25zaXZlICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBhbmQgKG1heC1oZWlnaHQ6IDQxNHB4KSB7XG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXNpZGUtcHJldmlvdXMgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzAwcHg7XG4gIH1cbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1uZXh0IC5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzAwcHg7XG4gIH1cbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1wcmV2aW91czpob3ZlciAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zNjBweDtcbiAgfVxuICAuZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLW5leHQ6aG92ZXIgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0zNjBweDtcbiAgfVxuICAvKiB0cmFuc2l0aW9uIChwbmcpICovXG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1ob3ZlcmluZy1wcmV2aW91cyAuZnItc2lkZS1wcmV2aW91cyAuZnItc2lkZS1idXR0b24taWNvbixcbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcuZnItbW9iaWxlLXRvdWNoIC5mci1zaWRlLXByZXZpb3VzIC5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM2MHB4O1xuICB9XG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1ob3ZlcmluZy1uZXh0IC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnLmZyLW1vYmlsZS10b3VjaCAuZnItc2lkZS1uZXh0IC5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzYwcHg7XG4gIH1cbiAgLyogdHJhbnNpdGlvbiAoc3ZnKSAqL1xuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItc2lkZS1wcmV2aW91cyAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zNjBweDtcbiAgfVxuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItc2lkZS1uZXh0IC5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzYwcHg7XG4gIH1cbiAgLyogZGlzYWJsZWQgc3RhdGUgKHBuZykgKi9cbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXNpZGUtcHJldmlvdXMuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLWhvdmVyaW5nLXByZXZpb3VzIC5mci1zaWRlLXByZXZpb3VzLmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLXByZXZpb3VzLmZyLXNpZGUtZGlzYWJsZWQ6aG92ZXIgLmZyLXNpZGUtYnV0dG9uLWljb24ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDIwcHg7XG4gIH1cbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXNpZGUtbmV4dC5mci1zaWRlLWRpc2FibGVkIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItaG92ZXJpbmctbmV4dCAuZnItc2lkZS1uZXh0LmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZDpob3ZlciAuZnItc2lkZS1idXR0b24taWNvbiB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTQyMHB4O1xuICB9XG59XG5cbi8qIFggKi9cbi8qIGNvbG9ycyAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItY2xvc2UtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjM2MzY7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItd2luZG93LXVpLW91dHNpZGUgLmZyLWNsb3NlOmhvdmVyIC5mci1jbG9zZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQzNDM0Mztcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktaW5zaWRlIC5mci1jbG9zZS1iYWNrZ3JvdW5kLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktZnVsbGNsaWNrIC5mci1jbG9zZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMTMxMztcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTgwKTtcbiAgb3BhY2l0eTogLjg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItd2luZG93LXVpLWluc2lkZSAuZnItY2xvc2U6aG92ZXIgLmZyLWNsb3NlLWJhY2tncm91bmQsXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNsb3NlOmhvdmVyIC5mci1jbG9zZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MTkxOTtcbn1cblxuLyogLSBpbWFnZSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItY2xvc2UgLmZyLWNsb3NlLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTY4cHggLThweDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItY2xvc2U6aG92ZXIgLmZyLWNsb3NlLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjEwcHggLThweDtcbn1cblxuLyogLSB0cmFuc2l0aW9uICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItY2xvc2UgLmZyLWNsb3NlLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjEwcHggLThweDtcbiAgb3BhY2l0eTogLjg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWNsb3NlOmhvdmVyIC5mci1jbG9zZS1pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogaU9TIDguNC4xIGJ1Zzogd2hlbiBvcGFjaXR5IGNoYW5nZXMgaXQnbGwgcmVxdWlyZSAyIHRhcHNcbiAgIGZvcmNlIGEgc2luZ2xlIG9wYWNpdHkgdG8gZml4IHRoaXNcbiovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2Zy5mci1tb2JpbGUtdG91Y2ggLmZyLWNsb3NlIC5mci1jbG9zZS1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1tb2JpbGUtdG91Y2ggLmZyLWNsb3NlOmhvdmVyIC5mci1jbG9zZS1pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogVGh1bWJuYWlscyAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItdGh1bWJuYWlsLXdyYXBwZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbC13cmFwcGVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbC1hY3RpdmUgLmZyLXRodW1ibmFpbC13cmFwcGVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbC13cmFwcGVyIHtcbiAgYm94LXNoYWRvdzogMCAtMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbC1vdmVybGF5LWJvcmRlciB7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIC8qIHNob3VsZCByZW1haW4gcmdiYSAqL1xufVxuXG4vKiBubyBpbm5lciBib3JkZXIgb24gYWN0aXZlIHRodW1ibmFpbCAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItdGh1bWJuYWlsLWFjdGl2ZSAuZnItdGh1bWJuYWlsLW92ZXJsYXktYm9yZGVyLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItdGh1bWJuYWlsLWFjdGl2ZTpob3ZlciAuZnItdGh1bWJuYWlsLW92ZXJsYXktYm9yZGVyIHtcbiAgYm9yZGVyOiAwcHg7XG59XG5cbi8qIFRodW1ibmFpbHMgPCA+ICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNjdweCAtNDlweDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzOmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA5cHggLTQ5cHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0IC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTY3cHggLTkxcHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0OmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA5cHggLTkxcHg7XG59XG5cbi8qIHZlcnRpY2FsIF4gKHVwL2Rvd24pIGFkanVzdG1lbnRzICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI5M3B4IC00OXB4O1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91czpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMzNXB4IC00OXB4O1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0IC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjkzcHggLTkxcHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQ6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMzVweCAtOTFweDtcbn1cblxuLyogVGh1bWJuYWlscyA8ID4gdHJhbnNpdGlvbiAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZSAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLWluO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2UtaW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2UtaW47XG4gIG9wYWNpdHk6IC44O1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2N3B4IC00OXB4O1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDlweCAtOTFweDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZTpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogdmVydGljYWwgXiAodXAvZG93bikgYWRqdXN0bWVudHMgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI5M3B4IC00OXB4O1xufVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2Zy5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzM1cHggLTkxcHg7XG59XG5cbi8qIGxvd2VyIG9wYWNpdHkgb24gZGlzYWJsZWQgc3RhdGVzICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZTpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC41O1xufVxuXG4vKiBsb3dlciBvcGFjaXR5IElFIDwgOSB1c2luZyBpbWFnZXMgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXM6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNTFweCAtNDlweDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0IC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQ6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNTFweCAtOTFweDtcbn1cblxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZSAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1iYWNrZ3JvdW5kLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZTpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1iYWNrZ3JvdW5kIHtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbn1cblxuLyogdmVydGljYWwgXiAodXAvZG93bikgYWRqdXN0bWVudHMgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzOmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzc3cHggLTQ5cHg7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0IC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2Zy5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dDpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM3N3B4IC05MXB4O1xufVxuXG4vKiBTbGlkZXIgKi9cbi5zbGljay1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uc2xpY2stbGlzdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IGhhbmQ7XG59XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uc2xpY2stdHJhY2s6YmVmb3JlLCAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFjayB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5bZGlyPVwicnRsXCJdIC5zbGljay1zbGlkZSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLnNsaWNrLXNsaWRlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBTbGlkZXIgKi9cbi5zbGljay1sb2FkaW5nIC5zbGljay1saXN0IHtcbiAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIuLi9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xufVxuXG4vKiBJY29ucyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNsaWNrXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvc2xpY2suZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3NsaWNrLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvc2xpY2sudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9zbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8qIEFycm93cyAqL1xuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAwcHg7XG4gIGZvbnQtc2l6ZTogMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRvcDogMTI2JTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI2JSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI2JSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjYlKTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICB6LWluZGV4OiAyMDtcbn1cblxuLnNsaWNrLXByZXY6aG92ZXIsIC5zbGljay1wcmV2OmZvY3VzLFxuLnNsaWNrLW5leHQ6aG92ZXIsXG4uc2xpY2stbmV4dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zbGljay1wcmV2OmhvdmVyOmJlZm9yZSwgLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxuLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNsaWNrLXByZXYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlLFxuLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4yNTtcbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlLFxuLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICNDRTExNDE7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cblxuLnNsaWNrLXByZXYge1xuICBsZWZ0OiAtMjVweDtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldiB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjVweDtcbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgY29udGVudDogXCLihpBcIjtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKGklwiO1xufVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAyNXB4O1xufVxuXG5bZGlyPVwicnRsXCJdIC5zbGljay1uZXh0IHtcbiAgbGVmdDogLTI1cHg7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4uc2xpY2stbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIuKGklwiO1xufVxuXG5bZGlyPVwicnRsXCJdIC5zbGljay1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oaQXCI7XG59XG5cbi8qIERvdHMgKi9cbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLnNsaWNrLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTUxcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsZWZ0OiAtMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2xpY2stZG90cyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBtYXJnaW46IDAgNXB4O1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zbGljay1kb3RzIGxpIGJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBvdXRsaW5lOiBub25lO1xuICBsaW5lLWhlaWdodDogMHB4O1xuICBmb250LXNpemU6IDBweDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZzogOHB4O1xufVxuXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGNvbnRlbnQ6IFwi4oCiXCI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBcInNsaWNrXCI7XG4gIGZvbnQtc2l6ZTogOHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwNEI4RDtcbiAgb3BhY2l0eTogMC4yNTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gIGNvbG9yOiAjMDA0QjhEO1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4vKipcblx0ICogTG9hZCBsYXlvdXQgKGdyaWQpIHJlbGF0ZWQgc3R5bGVzXG5cdCAqL1xuLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogTGF5b3V0XG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogVHlwZVx0OiBMYXlvdXRcbiAqIE5hbWVcdDogSFRNTFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIVE1MIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKlxuICogSFRNTCDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKlxuICovXG5odG1sIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKipcbiAqIFR5cGVcdDogTGF5b3V0XG4gKiBOYW1lXHQ6IEJvZHlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQm9keSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKipcbiAqIEJvZHkg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIEZvciBvdXIgYm9keSB3ZSBvbmx5IG5lZWQgdG8gZGVmaW5lIGEgZmV3IHNpbXBsZSB0aGluZ3MgYWxsIHJldm9sdmluZ1xuXHQgKiBhcm91bmQgdHlwZWZhY2Ugc2V0dXAgZm9yIG91ciBwcm9qZWN0LlxuXHQgKi9cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzM2MzYzNjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LWZhbWlseTogXCJDaHJvbmljbGUgVGV4dCBHMSBBXCIsIFwiQ2hyb25pY2xlIFRleHQgRzEgQlwiLCBzZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbi8qKlxuICogVHlwZVx0OiBMYXlvdXRcbiAqIE5hbWVcdDogR3JpZFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiBPdXIgR3JpZCBpcyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgQm9vdHN0cmFwJ3MgZ3JpZCFcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKipcbiAqIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKipcbiAqL1xuLmwtY29udGFpbmVyIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmwtY29udGFpbmVyOm5vdChbY2xhc3MqPVwibC1jb250YWluZXItLW1heFwiXSkge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5sLWNvbnRhaW5lci0tbWF4LS1sIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG59XG5cbi5sLWNvbnRhaW5lci0tbWF4LS1zIHtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG59XG5cbi5sLWNvbnRhaW5lci0td2lkdGgge1xuICB3aWR0aDogODUlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmwtY29udGFpbmVyLS13aWR0aCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxufVxuXG4ubC1jb250YWluZXItZmx1aWQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4vKipcblx0ICogTG9hZCBvdXIgQXRvbXNcblx0ICovXG4vKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBBdG9tc1xuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKlxuICogRmlsZSBJbXBvcnQgTGlzdFxuICogKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqIFR5cGVcdDogQXRvbVxuICogTmFtZVx0OiBCbG9ja3F1b3RlXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICogQmxvY2txdW90ZSDigKIgU2V0dGluZ3NcbiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICovXG4vKipcbiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICogQmxvY2txdW90ZSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICovXG5ibG9ja3F1b3RlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIC8qKlxuXHQgKiBgbXNgIG9yIE1vYmlsZSBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gc21hbGxpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogYGRzYCBvciBEZXNrdG9wIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBsYXJnZWlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBTdXBlciBUaW55XG5cdCAqL1xuICAvKipcblx0ICogUmVhbGx5IFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBGaW5lIFByaW50XG5cdCAqL1xuICAvKipcblx0ICogQmFzZSBib2R5IGNvcHlcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXNpemU6IDEuNTIwODdyZW07XG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiAzMnB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIHBhZGRpbmctbGVmdDogMzJweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICBibG9ja3F1b3RlIHtcbiAgICBmb250LXNpemU6IDMxcHg7XG4gICAgZm9udC1zaXplOiAxLjk1MzEycmVtO1xuICB9XG59XG5cbmJsb2NrcXVvdGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBpZD0nTGF5ZXJfMScgZGF0YS1uYW1lPSdMYXllciAxJyBmaWxsPScjMTk5N0YwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMiAyMiclM0UlM0NwYXRoIGQ9J00xMSwxQTEwLDEwLDAsMSwwLDIxLDExLDEwLDEwLDAsMCwwLDExLDFabTUuMDUsOGE2LjgsNi44LDAsMCwxLTEwLjQ3LDYsNC43OSw0Ljc5LDAsMCwwLDMuNTQtMSwyLjM5LDIuMzksMCwwLDEtMi4yMy0xLjY2LDIuNDUsMi40NSwwLDAsMCwxLjA4LDBBMi4zOSwyLjM5LDAsMCwxLDYuMDUsMTBhMi4zMywyLjMzLDAsMCwwLDEuMDguMywyLjQxLDIuNDEsMCwwLDEtLjc0LTMuMiw2LjgxLDYuODEsMCwwLDAsNC45NCwyLjUxLDIuNCwyLjQsMCwwLDEsNC4wOC0yLjE5LDQuNTIsNC41MiwwLDAsMCwxLjUyLS41OCwyLjQyLDIuNDIsMCwwLDEtMS4wNiwxLjMzLDQuODYsNC44NiwwLDAsMCwxLjM4LS4zOEE0Ljg4LDQuODgsMCwwLDEsMTYuMDUsOVonLyUzRSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDk4JSA5MyU7XG4gIGJhY2tncm91bmQtc2l6ZTogMjVweCAyNXB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5ibG9ja3F1b3RlOmFmdGVyIHtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHJpZ2h0OiA0NnB4O1xuICBjb250ZW50OiBcIlR3ZWV0IFRoaXNcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA5cHg7XG4gIC8qKlxuXHQgKiBgbXNgIG9yIE1vYmlsZSBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gc21hbGxpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogYGRzYCBvciBEZXNrdG9wIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBsYXJnZWlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBTdXBlciBUaW55XG5cdCAqL1xuICAvKipcblx0ICogUmVhbGx5IFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBGaW5lIFByaW50XG5cdCAqL1xuICAvKipcblx0ICogQmFzZSBib2R5IGNvcHlcblx0ICovXG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICAvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBNZWRpdW0gSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGJsb2NrcXVvdGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTk5N0YwO1xuICB9XG59XG5cbi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IEJ1dHRvblxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBCdXR0b24g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBWYXJpYW50OiBwcmltYXJ5XG5cdCAqL1xuLyoqXG5cdCAqIFRoaXMgaXMgb25lIG9mIHRoZSBvbmx5IHRpbWVzIHBhZGRpbmcgc2hvdWxkIGJlXG5cdCAqIGRlZmluZWQgb3V0c2lkZSBvZiB0aGUgc3BhY2luZyBjb25maWcgZmlsZS4gV2UgaGF2ZSBjdXN0b20gcGFkZGluZ3Ncblx0ICogaGVyZSB0byBwcm9wZXJseSBhZGp1c3QgcGFkZGluZyBmb3IgbGluZSBoZWlnaHQgYW5kIHRvIG1ha2Vcblx0ICogc3VyZSBvdXIgYnV0dG9ucyBsb29rIHBlcmZlY3QhXG5cdCAqL1xuLyoqXG5cdCAqIFZhcmlhbnQ6IHNlY29uZGFyeVxuXHQgKi9cbi8qKlxuXHQgKiBUaGlzIGlzIG9uZSBvZiB0aGUgb25seSB0aW1lcyBwYWRkaW5nIHNob3VsZCBiZVxuXHQgKiBkZWZpbmVkIG91dHNpZGUgb2YgdGhlIHNwYWNpbmcgY29uZmlnIGZpbGUuIFdlIGhhdmUgY3VzdG9tIHBhZGRpbmdzXG5cdCAqIGhlcmUgdG8gcHJvcGVybHkgYWRqdXN0IHBhZGRpbmcgZm9yIGxpbmUgaGVpZ2h0IGFuZCB0byBtYWtlXG5cdCAqIHN1cmUgb3VyIGJ1dHRvbnMgbG9vayBwZXJmZWN0IVxuXHQgKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBCdXR0b24g4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIEFsbCBCdXR0b25zXG5cdCAqL1xuLmEtYnRuIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcIkNoYW1waW9uIEhlYXZ5d3QgQVwiLCBcIkNoYW1waW9uIEhlYXZ5d3QgQlwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLyoqXG5cdCAqIFZhcmlhbnRcdDogcHJpbWFyeVxuXHQgKi9cbi5hLWJ0bi0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBsZXR0ZXItc3BhY2luZzogNXB4O1xuICBwYWRkaW5nOiAxOHB4IDMycHggMTZweCA3MnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qKlxuXHQgKiBXZSBhcmUgZGlyZWN0bHkgZW1iZWRkaW5nIG91ciBhcnJvdyBTVkcgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYSBcblx0ICogSFRUUCBjYWxsIHRvIGdldCB0aGUgaWNvbi4gTm90ZSB0aGF0IHdlIGFyZSBlbmNvZGluZyBpdCwgYnV0IE5PVCBiYXNlIDY0XG5cdCAqIGVuY29kaW5nIGl0LiBCYXNlIDY0IHBlcmZvcm1zIHBvb3JseSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKlxuXHQgKiBAbm90ZSBUb29sIHVzZWQgdG8gZW5jb2RlOiBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXIvXG5cdCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTUgMTUnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDE1IDE1JyB4bWw6c3BhY2U9J3ByZXNlcnZlJyBmaWxsPSd3aGl0ZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzNkQ2RTcwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTg0LDAuOEw4NCwwLjggTS0zNTEuOCwwLjggTC0zNTEuOCwwLjgnLyUzRSUzQ3BhdGggZD0nTTcuNiwwLjZMNS4xLDMuMmwyLjYsMi40SDB2My42aDcuN2wtMi42LDIuNGwyLjUsMi43TDE1LDcuNUw3LjYsMC42eiBNNi43LDExLjhsNC0zLjdIMS4yVjYuOGg5LjVsLTQtMy43bDAuOS0wLjlsNS43LDUuMyBsLTUuNyw1LjNMNi43LDExLjh6Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMHB4IGNhbGMoIDUwJSArIDBweCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMzJweCAzMnB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgLyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBgZHNgIG9yIERlc2t0b3AgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIGxhcmdlaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIFN1cGVyIFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmEtYnRuLS1wcmltYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKCAyMHB4ICsgNHB4KSBjYWxjKCA1MCUgKyAwcHgpO1xuICB9XG59XG5cbi5hLWJ0bi0tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLmEtYnRuLS1wcmltYXJ5OmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cblxuLyoqXG5cdCAqIFZhcmlhbnRcdDogc2Vjb25kYXJ5XG5cdCAqL1xuLmEtYnRuLS1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiAjQ0UxMTQxO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgcGFkZGluZzogMTBweCAxOHB4IDdweCAxOHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgLyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBgZHNgIG9yIERlc2t0b3AgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIGxhcmdlaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIFN1cGVyIFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYS1idG4tLXNlY29uZGFyeSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMC44Njk1N3JlbTtcbiAgfVxufVxuXG4uYS1idG4tLXNlY29uZGFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNiNjBmM2E7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5OmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICM5ZjBkMzI7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tbWFyaWFuaXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhDNUJDRDtcbiAgYm9yZGVyOiAycHggc29saWQgIzhDNUJDRDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLW1hcmlhbmlzdDpob3ZlciwgLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1tYXJpYW5pc3Q6YWN0aXZlIHtcbiAgY29sb3I6ICM4QzVCQ0Q7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tcGFydGluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1QzYxRkY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM1QzYxRkY7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1wYXJ0aW5nOmhvdmVyLCAuYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLXBhcnRpbmc6YWN0aXZlIHtcbiAgY29sb3I6ICM1QzYxRkY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tcHJlc2lkZW50cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNDEwNkM7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNCNDEwNkM7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1wcmVzaWRlbnRzOmhvdmVyLCAuYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLXByZXNpZGVudHM6YWN0aXZlIHtcbiAgY29sb3I6ICNCNDEwNkM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tc3BvcnRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgzMkI4MztcbiAgYm9yZGVyOiAycHggc29saWQgIzgzMkI4MztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLXNwb3J0czpob3ZlciwgLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1zcG9ydHM6YWN0aXZlIHtcbiAgY29sb3I6ICM4MzJCODM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tcGVyY2VwdGlvbnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN0YyQzU4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjN0YyQzU4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tcGVyY2VwdGlvbnM6aG92ZXIsIC5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tcGVyY2VwdGlvbnM6YWN0aXZlIHtcbiAgY29sb3I6ICM3RjJDNTg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tYWx1bW5pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q4MkI1MztcbiAgYm9yZGVyOiAycHggc29saWQgI0Q4MkI1MztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLWFsdW1uaTpob3ZlciwgLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1hbHVtbmk6YWN0aXZlIHtcbiAgY29sb3I6ICNEODJCNTM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tY2hhcHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEMjQ4MTI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNEMjQ4MTI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1jaGFwdGVyOmhvdmVyLCAuYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLWNoYXB0ZXI6YWN0aXZlIHtcbiAgY29sb3I6ICNEMjQ4MTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tZXhwZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y5NzkxMjtcbiAgYm9yZGVyOiAycHggc29saWQgI0Y5NzkxMjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLWV4cGVydDpob3ZlciwgLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1leHBlcnQ6YWN0aXZlIHtcbiAgY29sb3I6ICNGOTc5MTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0taGlkZGVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg0QkQ5NDtcbiAgYm9yZGVyOiAycHggc29saWQgIzg0QkQ5NDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLWhpZGRlbjpob3ZlciwgLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1oaWRkZW46YWN0aXZlIHtcbiAgY29sb3I6ICM4NEJEOTQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tZ29vZC13b3JrcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBOENENTY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNBOENENTY7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1nb29kLXdvcmtzOmhvdmVyLCAuYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLWdvb2Qtd29ya3M6YWN0aXZlIHtcbiAgY29sb3I6ICNBOENENTY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tYm9va3NoZWxmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRDhBRTtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwRDhBRTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLWJvb2tzaGVsZjpob3ZlciwgLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1ib29rc2hlbGY6YWN0aXZlIHtcbiAgY29sb3I6ICMwMEQ4QUU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5hLWJ0bi0tc2Vjb25kYXJ5LS10aGVtZS0tbm8tdGFnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZENzQ4RDtcbiAgYm9yZGVyOiAycHggc29saWQgIzZENzQ4RDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uYS1idG4tLXNlY29uZGFyeS0tdGhlbWUtLW5vLXRhZzpob3ZlciwgLmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS1uby10YWc6YWN0aXZlIHtcbiAgY29sb3I6ICM2RDc0OEQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IERyb3Bkb3duXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIERyb3Bkb3duIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogV2UgYXJlIGRpcmVjdGx5IGVtYmVkZGluZyBvdXIgY2FyZXQgU1ZHIGhlcmUgc28gd2UgZG9uJ3QgaGF2ZSB0byBtYWtlIGEgXG5cdCAqIEhUVFAgY2FsbCB0byBnZXQgdGhlIGljb24uIE5vdGUgdGhhdCB3ZSBhcmUgZW5jb2RpbmcgaXQsIGJ1dCBOT1QgYmFzZSA2NFxuXHQgKiBlbmNvZGluZyBpdC4gQmFzZSA2NCBwZXJmb3JtcyBwb29ybHkgaW4gdGhpcyBzY2VuYXJpby5cblx0ICpcblx0ICogVGhlIGNvbG9yIGlzIGludGVycG9sYXRlZCBpbnRvIHRoZSBlbWJlZCBmcm9tIHRoZSB2YXJpYWJsZXMgZGVjbGFyZWQgYWJvdmUuXG5cdCAqXG5cdCAqIEBub3RlIFRvb2wgdXNlZCB0byBlbmNvZGU6IGh0dHBzOi8veW9rc2VsLmdpdGh1Yi5pby91cmwtZW5jb2Rlci9cblx0ICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRHJvcGRvd24g4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIERyb3Bkb3duIOKAoiBCYXNlXG5cdCAqL1xuLmEtZHJvcGRvd24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLyoqXG5cdFx0ICogV2UgZG9uJ3QgdHlwaWNhbGx5IGRlZmluZSBmb250IG91dHNpZGUgb2YgdGhlIHR5cGUtc3BlY2lmaWMgc2NzcyBmaWxlcyxcblx0XHQgKiBidXQgaW4gdGhpcyBjYXNlIDxzZWxlY3Q+IGlzbid0IHBpY2tpbmcgdXAgb3VyIGRlZmF1bHQgZm9udCBzdHlsZXMsIHNvXG5cdFx0ICogd2Ugd2lsbCBkZWZpbmUgdGhlbSBoZXJlLlxuXHRcdCAqL1xuICBmb250LWZhbWlseTogXCJDaHJvbmljbGUgVGV4dCBHMSBBXCIsIFwiQ2hyb25pY2xlIFRleHQgRzEgQlwiLCBzZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLmEtZHJvcGRvd246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYS1kcm9wZG93bjpub3QoLmEtZHJvcGRvd24tLWZhbmN5KSB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1yaWdodDogMzJweDtcbn1cblxuLyoqXG5cdCAqIERyb3Bkb3duIFZhcmlhdGlvbiDigKIgRmFuY3lcblx0ICovXG4uYS1kcm9wZG93bi0tZmFuY3kge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTAlIGNlbnRlcjtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4O1xufVxuXG4vKipcblx0ICogRHJvcGRvd24gVGhlbWUg4oCiIExpZ2h0XG5cdCAqL1xuLm0tZm9ybS5tLWZvcm0tLWZpZWxkcy0tbGlnaHQgLmEtZHJvcGRvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAvKipcblx0XHQgKiBXZSBuZWVkIHRvIHNwZWNpZnkgb3VyIGRyb3Bkb3duIGljb24gZm9yIGNhdGVnb3JpZXNcblx0XHQgKiBzcGVjaWZpY2FsbHkgZm9yIHRoZSBcImxpZ2h0XCIgdGhlbWUuXG5cdFx0ICovXG59XG5cbi5tLWZvcm0ubS1mb3JtLS1maWVsZHMtLWxpZ2h0IC5hLWRyb3Bkb3duLmEtZHJvcGRvd24tLWZhbmN5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBpZD0nTGF5ZXJfMScgZGF0YS1uYW1lPSdMYXllciAxJyBmaWxsPSclMjN7JGRyb3Bkb3duLWFycm93LS1saWdodC0tY29sb3J9JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMiAyMiclM0UlM0N0aXRsZSUzRWFycm93LXMlM0MvdGl0bGUlM0UlM0Nwb2x5Z29uIHBvaW50cz0nMi44MyA0Ljc4IDEuMDQgNi40NCAxMS4wNCAxNy4yIDIxLjA0IDYuNDQgMTkuMjUgNC43OCAxMS4wNCAxMy42MSAyLjgzIDQuNzgnLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi5tLWZvcm0ubS1mb3JtLS1maWVsZHMtLWxpZ2h0IC5hLWRyb3Bkb3duOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U1RTVFNTtcbn1cblxuLyoqXG5cdCAqIERyb3Bkb3duIFRoZW1lIOKAoiBEYXJrXG5cdCAqL1xuLm0tZm9ybS5tLWZvcm0tLWZpZWxkcy0tZGFyayAuYS1kcm9wZG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzI5NmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICAvKipcblx0XHQgKiBXZSBuZWVkIHRvIHNwZWNpZnkgb3VyIGRyb3Bkb3duIGljb24gZm9yIGNhdGVnb3JpZXNcblx0XHQgKiBzcGVjaWZpY2FsbHkgZm9yIHRoZSBcImRhcmtcIiB0aGVtZS5cblx0XHQgKi9cbn1cblxuLm0tZm9ybS5tLWZvcm0tLWZpZWxkcy0tZGFyayAuYS1kcm9wZG93bi5hLWRyb3Bkb3duLS1mYW5jeSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgaWQ9J0xheWVyXzEnIGRhdGEtbmFtZT0nTGF5ZXIgMScgZmlsbD0nJTIzeyRkcm9wZG93bi1hcnJvdy0tZGFyay0tY29sb3J9JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMiAyMiclM0UlM0N0aXRsZSUzRWFycm93LXMlM0MvdGl0bGUlM0UlM0Nwb2x5Z29uIHBvaW50cz0nMi44MyA0Ljc4IDEuMDQgNi40NCAxMS4wNCAxNy4yIDIxLjA0IDYuNDQgMTkuMjUgNC43OCAxMS4wNCAxMy42MSAyLjgzIDQuNzgnLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi5tLWZvcm0ubS1mb3JtLS1maWVsZHMtLWRhcmsgLmEtZHJvcGRvd246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQyMjViO1xufVxuXG4vKipcbiAqIFR5cGVcdDogQXRvbVxuICogTmFtZVx0OiBGb3JtIENvbnRyb2xcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRm9ybSBDb250cm9sIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRm9ybSBDb250cm9sIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBGb3JtIGNvbnRyb2wgc2hvdWxkIGJlIGFkZGVkIHRvIGFsbCBmb3JtIGlucHV0IGZpZWxkcyB0b1xuXHQgKiBjb250cm9sIHRoZWlyIHN0eWxpbmcgZnJvbSBvbmUgY2VudHJhbCBsb2NhdGlvbi5cblx0ICovXG4uYS1mb3JtLWNvbnRyb2wge1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG5cbi5hLWZvcm0tY29udHJvbDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5hLWZvcm0tY29udHJvbDpub3QoLmEtZm9ybS1jb250cm9sLS1sYXJnZSkge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuXG4uYS1mb3JtLWNvbnRyb2wtLWxhcmdlIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG50ZXh0YXJlYS5hLWZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTUwcHg7XG59XG5cbi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IEljb25cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSWNvbiDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBJY29uIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4uYS1pY29uIHtcbiAgZmlsbDogIzAwMDAwMDtcbiAgc2hhcGUtcmVuZGVyaW5nOiBnZW9tZXRyaWNQcmVjaXNpb247XG59XG5cbi5hLWljb24tLWludmVydGVkIHtcbiAgZmlsbDogI2ZmZmZmZjtcbiAgc2hhcGUtcmVuZGVyaW5nOiBnZW9tZXRyaWNQcmVjaXNpb247XG59XG5cbi5hLWljb24tLWwge1xuICBoZWlnaHQ6IDY0cHg7XG4gIHdpZHRoOiA2NHB4O1xufVxuXG4uYS1pY29uLS1tIHtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbn1cblxuLmEtaWNvbi0tcyB7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG59XG5cbi5hLWljb24tLXhzIHtcbiAgaGVpZ2h0OiAxM3B4O1xuICB3aWR0aDogMTNweDtcbn1cblxuLyoqXG5cdCAqIFNwZWNpZmljYWxseSB1c2VkIGZvciB0aGUgVUQgTWFnIExvZ28gaW4gdGhlIGhlYWRlci4gU2hvdWxkIG5vdCBiZSB1c2VkIGFueXdoZXJlIGVsc2UuXG5cdCAqL1xuLmEtaWNvbi0taGVhZGVyLWxvZ28ge1xuICBoZWlnaHQ6IDg0cHg7XG4gIHdpZHRoOiAyOTNweDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IEF0b21cbiAqIE5hbWVcdDogSW1hZ2VcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEltYWdlIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLmEtaW1nLS1oYXMtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggMXB4IHJnYmEoNzcsIDc3LCA3NywgMC41KTtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IEF0b21cbiAqIE5hbWVcdDogTGFiZWxcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExhYmVsIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiBUeXBlXHQ6IEF0b21cbiAqIE5hbWVcdDogTGlua1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBMaW5rIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiogKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBMaW5rIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuKiAqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuLyoqXG5cdCAqIFN0YW5kYXJkIHRleHQgaHlwZXJsaW5rc1xuXHQgKlxuXHQgKiBXZSB3aWxsIG5lZWQgdG8gYWRkIGEgY2xhc3MgdG8gdXNlIHRoZXNlIHRocm91Z2hvdXQgdGhlIHNpdGUsIGJ1dCBvbiBwb3N0IHBhZ2VzXG5cdCAqIChNYWcgQXJ0aWNsZSwgTXkgT2xkIEhvdXNlLCBldGMpLCBjbGFzc2xlc3MgaHlwZXJsaW5rcyB3aWxsIHBpY2sgdXAgdGhpcyBcblx0ICogc3R5bGluZyBhdXRvbWFnaWNhbGx5IGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IGEgYnV0dG9uIVxuXHQgKi9cbi5hLWxpbmssXG4uby1wb3N0X19jb250YWluZXIgYTpub3QoLmEtYnRuKSwgLm8tY29sbGVjdGlvbi0tY29udGVudF9faXRlbSBhOm5vdCguYS1idG4pIHtcbiAgY29sb3I6ICNDRTExNDE7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5hLWxpbms6aG92ZXIsXG4uby1wb3N0X19jb250YWluZXIgYTpub3QoLmEtYnRuKTpob3ZlciwgLm8tY29sbGVjdGlvbi0tY29udGVudF9faXRlbSBhOm5vdCguYS1idG4pOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjYwZjNhO1xuICBjb2xvcjogI2I2MGYzYTtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IEF0b21cbiAqIE5hbWVcdDogTG9nb1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBMb2dvIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExvZ28g4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5hLWxvZ28ge1xuICBtYXgtd2lkdGg6IDI1MHB4O1xufVxuXG4vKipcbiAqIFR5cGUgOiBBdG9tXG4gKiBOYW1lIDogUHJvZ3Jlc3NcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogUHJvZ3Jlc3Mg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFByb2dyZXNzIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICpcbiAqIE5vdGU6IFRoZSBwcm9ncmVzcyBiYXIgd2lsbCBhbHdheXMgYXBwZWFyXG4gKiBpbnNpZGUgb2YgYC5tLWFjdGlvbi1iYXJgLCBzbyB0aGUgdGhlIHRvcFxuICogYW5kIGJvdHRvbSBwb3NpdGlvbmluZyB3aWxsIGJlIGhhbmRsZWQgaW4gdGhlXG4gKiBgLm0tYWN0aW9uLWJhcmAgcGFydGlhbCBmaWxlXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4uYS1wcm9ncmVzcyB7XG4gIGhlaWdodDogNXB4O1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyMTtcbiAgLyogUmVzZXQgdGhlIGFwcGVhcmFuY2UgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qKlxuICAgICAqIEZpeGVzIGZvciBzcGVjaWZpYyBicm93c2Vyc1xuICAgICAqL1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI0NFMTE0MTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5hLXByb2dyZXNzIHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gIH1cbn1cblxuLmEtcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5hLXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjQ0UxMTQxLCAjMDA0QjhEKTtcbn1cblxuLmEtcHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjQ0UxMTQxLCAjMDA0QjhEKTtcbn1cblxuLmEtcHJvZ3Jlc3M6Oi1tcy1maWxsIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjQ0UxMTQxLCAjMDA0QjhEKTtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IEF0b21cbiAqIE5hbWVcdDogQm9keSBDb3B5XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEJvZHkgQ29weSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEJvZHkgQ29weSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5bY2xhc3MqPVwiYS1ib2R5XCJdIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLmEtYm9keS0tbGFyZ2UsXG4uby1wb3N0X19jb250ZW50IHAge1xuICBsaW5lLWhlaWdodDogMS44O1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYS1ib2R5LS1sYXJnZSxcbiAgLm8tcG9zdF9fY29udGVudCBwIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG59XG5cbi5hLWJvZHkge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi5hLWJvZHktLXNtYWxsIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBNZWRpdW0gSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5hLWJvZHktLXNtYWxsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC1zaXplOiAwLjg2OTU3cmVtO1xuICB9XG59XG5cbi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IEhlYWRpbmdcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuXHQgKiBBbGwgSGVhZGluZ3Ncblx0ICovXG4vKipcblx0ICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdCAqIEhlYWRpbmdzIOKAoiBTZXR0aW5nc1xuXHQgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICovXG4vKipcblx0ICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdCAqIEhlYWRpbmcg4oCiIENoYW1waW9uIEhlYXZ5d2VpZ2h0IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuXHQgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICovXG5bY2xhc3MqPVwiYS1oZWFkaW5nLS1oZWF2eVwiXSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcIkNoYW1waW9uIEhlYXZ5d3QgQVwiLCBcIkNoYW1waW9uIEhlYXZ5d3QgQlwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5hLWhlYWRpbmctLWhlYXZ5LS14bCB7XG4gIGxldHRlci1zcGFjaW5nOiAxMHB4O1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBNZWRpdW0gSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgZm9udC1zaXplOiAyLjAxMTM2cmVtO1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYS1oZWFkaW5nLS1oZWF2eS0teGwge1xuICAgIGZvbnQtc2l6ZTogNDlweDtcbiAgICBmb250LXNpemU6IDMuMDUxNzZyZW07XG4gIH1cbn1cblxuLmEtaGVhZGluZy0taGVhdnktLWwge1xuICBsZXR0ZXItc3BhY2luZzogMTBweDtcbiAgLyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBgZHNgIG9yIERlc2t0b3AgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIGxhcmdlaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIFN1cGVyIFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMS41MjA4N3JlbTtcbiAgLyoqXG5cdCAqIFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmEtaGVhZGluZy0taGVhdnktLWwge1xuICAgIGZvbnQtc2l6ZTogMzFweDtcbiAgICBmb250LXNpemU6IDEuOTUzMTJyZW07XG4gIH1cbn1cblxuLmEtaGVhZGluZy0taGVhdnktLW0ge1xuICBsZXR0ZXItc3BhY2luZzogNXB4O1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbi5hLWhlYWRpbmctLWhlYXZ5LS1zIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgLyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBgZHNgIG9yIERlc2t0b3AgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIGxhcmdlaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIFN1cGVyIFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYS1oZWFkaW5nLS1oZWF2eS0tcyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMC44Njk1N3JlbTtcbiAgfVxufVxuXG4uYS1oZWFkaW5nLS1oZWF2eS0teHMge1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgZm9udC1zaXplOiA4cHg7XG4gIGZvbnQtc2l6ZTogMC41MTJyZW07XG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYS1oZWFkaW5nLS1oZWF2eS0teHMge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXNpemU6IDAuNjU3NTJyZW07XG4gIH1cbn1cblxuLyoqXG5cdCAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHQgKiBIZWFkaW5nIOKAoiBDaGFtcGlvbiBCYW50YW0g4oCiIENsYXNzIERlZmluaXRpb25zXG5cdCAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHQgKi9cbltjbGFzcyo9XCJhLWhlYWRpbmctLWJhbnRhbVwiXSxcbi5vLXBvc3RfX2NvbnRlbnQgaDIge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJDaGFtcGlvbiBCYW50YW13dCBBXCIsIFwiQ2hhbXBpb24gQmFudGFtd3QgQlwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5hLWhlYWRpbmctLWJhbnRhbS0teGwge1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICBsaW5lLWhlaWdodDogMS4xO1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBNZWRpdW0gSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICBmb250LXNpemU6IDQzcHg7XG4gIGZvbnQtc2l6ZTogMi42NjAwMnJlbTtcbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYS1oZWFkaW5nLS1iYW50YW0tLXhsIHtcbiAgICBmb250LXNpemU6IDc2cHg7XG4gICAgZm9udC1zaXplOiA0Ljc2ODM3cmVtO1xuICB9XG59XG5cbi5hLWhlYWRpbmctLWJhbnRhbS0tbCB7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIC8qKlxuXHQgKiBgbXNgIG9yIE1vYmlsZSBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gc21hbGxpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogYGRzYCBvciBEZXNrdG9wIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBsYXJnZWlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBTdXBlciBUaW55XG5cdCAqL1xuICAvKipcblx0ICogUmVhbGx5IFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBGaW5lIFByaW50XG5cdCAqL1xuICAvKipcblx0ICogQmFzZSBib2R5IGNvcHlcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgZm9udC1zaXplOiAzN3B4O1xuICBmb250LXNpemU6IDIuMzEzMDZyZW07XG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5hLWhlYWRpbmctLWJhbnRhbS0tbCB7XG4gICAgZm9udC1zaXplOiA2MXB4O1xuICAgIGZvbnQtc2l6ZTogMy44MTQ3cmVtO1xuICB9XG59XG5cbi5hLWhlYWRpbmctLWJhbnRhbS0tbSxcbi5vLXBvc3RfX2NvbnRlbnQgaDIge1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBNZWRpdW0gSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMS43NDkwMXJlbTtcbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYS1oZWFkaW5nLS1iYW50YW0tLW0sXG4gIC5vLXBvc3RfX2NvbnRlbnQgaDIge1xuICAgIGZvbnQtc2l6ZTogMzlweDtcbiAgICBmb250LXNpemU6IDIuNDQxNDFyZW07XG4gIH1cbn1cblxuLyoqXG5cdCAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHQgKiBIZWFkaW5nIOKAoiBDaGFtcGlvbiBMaWdodCDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcblx0ICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdCAqL1xuW2NsYXNzKj1cImEtaGVhZGluZy0tbGlnaHRcIl0ge1xuICBmb250LWZhbWlseTogXCJDaGFtcGlvbiBMaWdodHd0IEFcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uYS1oZWFkaW5nLS1saWdodC0teHhsIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgLyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBgZHNgIG9yIERlc2t0b3AgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIGxhcmdlaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIFN1cGVyIFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIGJvZHkgKyBTbWFsbCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTWVkaXVtIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuICBmb250LXNpemU6IDM3cHg7XG4gIGZvbnQtc2l6ZTogMi4zMTMwNnJlbTtcbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmEtaGVhZGluZy0tbGlnaHQtLXh4bCB7XG4gICAgZm9udC1zaXplOiA2MXB4O1xuICAgIGZvbnQtc2l6ZTogMy44MTQ3cmVtO1xuICB9XG59XG5cbi5hLWhlYWRpbmctLWxpZ2h0LS14bCB7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIC8qKlxuXHQgKiBgbXNgIG9yIE1vYmlsZSBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gc21hbGxpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogYGRzYCBvciBEZXNrdG9wIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBsYXJnZWlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBTdXBlciBUaW55XG5cdCAqL1xuICAvKipcblx0ICogUmVhbGx5IFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBGaW5lIFByaW50XG5cdCAqL1xuICAvKipcblx0ICogQmFzZSBib2R5IGNvcHlcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhMIEhlYWRpbmdcblx0ICovXG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAxLjc0OTAxcmVtO1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5hLWhlYWRpbmctLWxpZ2h0LS14bCB7XG4gICAgZm9udC1zaXplOiAzOXB4O1xuICAgIGZvbnQtc2l6ZTogMi40NDE0MXJlbTtcbiAgfVxufVxuXG4uYS1oZWFkaW5nLS1saWdodC0tbCB7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIC8qKlxuXHQgKiBgbXNgIG9yIE1vYmlsZSBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gc21hbGxpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogYGRzYCBvciBEZXNrdG9wIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBsYXJnZWlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBTdXBlciBUaW55XG5cdCAqL1xuICAvKipcblx0ICogUmVhbGx5IFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBGaW5lIFByaW50XG5cdCAqL1xuICAvKipcblx0ICogQmFzZSBib2R5IGNvcHlcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtc2l6ZTogMS4zMjI1cmVtO1xuICAvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmEtaGVhZGluZy0tbGlnaHQtLWwge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTtcbiAgfVxufVxuXG4uYS1oZWFkaW5nLS1saWdodC0tbSB7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIC8qKlxuXHQgKiBgbXNgIG9yIE1vYmlsZSBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gc21hbGxpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogYGRzYCBvciBEZXNrdG9wIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBsYXJnZWlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBTdXBlciBUaW55XG5cdCAqL1xuICAvKipcblx0ICogUmVhbGx5IFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBGaW5lIFByaW50XG5cdCAqL1xuICAvKipcblx0ICogQmFzZSBib2R5IGNvcHlcblx0ICovXG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuMTVyZW07XG4gIC8qKlxuXHQgKiBNZWRpdW0gSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5hLWhlYWRpbmctLWxpZ2h0LS1tIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG59XG5cbi5hLWhlYWRpbmctLWxpZ2h0LS1zIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBgZHNgIG9yIERlc2t0b3AgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIGxhcmdlaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIFN1cGVyIFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xufVxuXG4vKipcblx0ICogTG9hZCBvdXIgTW9sZWN1bGVzXG5cdCAqL1xuLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogTW9sZWN1bGVzXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogVHlwZSA6IE1vbGVjdWxlc1xuICogTmFtZSA6IEJhY2tncm91bmQgVmlkZW9cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQmFja2dyb3VuZCBWaWRlbyDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQmFja2dyb3VuZCBWaWRlbyDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qXG4gKiBBdXRvcGxheSBkb2VzIG5vdCBjdXJyZW50bHkgd29yayBhY3Jvc3MgdGhlIGJvYXJkXG4gKiBvbiBtb2JpbGUgZGV2aWNlcy4gQmVjYXVzZSBvZiB0aGlzLCBoaWRlIHRoZSB2aWRlbyBcbiAqIGNvbnRhaW5lciBpbiB0aGVzZSBjYXNlcy5cbiAqIFxuICogRm9yIG5vbi1tb2JpbGUgZGV2aWNlcyAobWF4LXdpZHRoOiAxMDQwcHggY3VycmVudGx5ICdsJyksXG4gKiB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBiYWNrZ3JvdW5kLWltYWdlIHNvIGl0IGRvZXNuJ3Qgc2hvd1xuICogYmVmb3JlIHRoZSB2aWRlbyBsb2Fkcy5cbiAqIFxuICogSUUgLyBFZGdlIEZpeGVzOlxuICogIC0gYCotd2lkdGhgIGluc3RlYWQgb2YgYCotZGV2aWNlLXdpZHRoYCBhcyBpdCBtaXNiZWhhdmVzXG4gKiAgLSBgcG9zaXRpb246IGFic29sdXRlYCBmb3IgcG9zaXRpb25hbCB2YWx1ZXMgdG8gYmUgdXNlZFxuICovXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm0tYmctdmlkZW9fX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAubS1iZy12aWRlb19fY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTA0MHB4KSB7XG4gIC5tLWJnLXZpZGVvIHtcbiAgICBoZWlnaHQ6IDMwMCU7XG4gICAgdG9wOiAtMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cblxuLm0tYmctdmlkZW8sXG4ubS1iZy12aWRlbyBpZnJhbWUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogLTE7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm0tYmctdmlkZW8sXG4gIC5tLWJnLXZpZGVvIGlmcmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuXG4vKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogTXkgT2xkIEhvdXNlIENhcmQgXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE15IE9sZCBIb3VzZSBDYXJkIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTXkgT2xkIEhvdXNlIENhcmQg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLm0tY2FyZC0tbXktb2xkLWhvdXNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA2NHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG59XG5cbi5tLWNhcmQtLW15LW9sZC1ob3VzZV9fYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuXG4ubS1jYXJkLS1teS1vbGQtaG91c2U6aG92ZXIgLm0tY2FyZC0tbXktb2xkLWhvdXNlX19iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywgMTMyLCAxNDcsIDAuNyk7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBDYXJkXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENhcmQg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDYXJkIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLWNhcmQtLXN0YW5kYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VERURFRDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogNDAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm0tY2FyZC0tc3RhbmRhcmQ6YmVmb3JlLCAubS1jYXJkLS1zdGFuZGFyZDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm0tY2FyZC0tc3RhbmRhcmQ6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tLWNhcmQtLXN0YW5kYXJkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbjogdW5zZXQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5tLWNhcmQtLXN0YW5kYXJkIGEsXG4ubS1jYXJkLS1zdGFuZGFyZCAubS10aXRsZS1ncm91cF9fcHJlLFxuLm0tY2FyZC0tc3RhbmRhcmQgLm0tdGl0bGUtZ3JvdXBfX3RpdGxlIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG59XG5cbi8qKlxuXHQgKiBDYXJkIOKAoiBXcmFwcGVyc1xuXHQgKi9cbi5tLWNhcmQtLXN0YW5kYXJkID4gLm0tY2FyZF9fbWVkaWEge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgb3BhY2l0eTogMTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMCk7XG59XG5cbi5tLWNhcmQtLXN0YW5kYXJkID4gLm0tY2FyZF9fbWVkaWE6aG92ZXIge1xuICBvcGFjaXR5OiAwLjg7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT04MCk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubS1jYXJkLS1zdGFuZGFyZCA+IC5tLWNhcmRfX21lZGlhIHtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIHdpZHRoOiAyMDBweDtcbiAgfVxufVxuXG4ubS1jYXJkLS1zdGFuZGFyZCA+IC5tLWNhcmRfX2NvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURFREVEO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAwIDEgMTAwJTtcbiAgaGVpZ2h0OiAyMDBweDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG59XG5cbi5tLWNhcmQtLXN0YW5kYXJkID4gLm0tY2FyZF9fbGluayB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleDogMCAwIDUwcHg7XG4gIC8qKlxuXHQgKiBXZSBhcmUgZGlyZWN0bHkgZW1iZWRkaW5nIG91ciBhcnJvdyBTVkcgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYSBcblx0ICogSFRUUCBjYWxsIHRvIGdldCB0aGUgaWNvbi4gTm90ZSB0aGF0IHdlIGFyZSBlbmNvZGluZyBpdCwgYnV0IE5PVCBiYXNlIDY0XG5cdCAqIGVuY29kaW5nIGl0LiBCYXNlIDY0IHBlcmZvcm1zIHBvb3JseSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKlxuXHQgKiBAbm90ZSBUb29sIHVzZWQgdG8gZW5jb2RlOiBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXIvXG5cdCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTUgMTUnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDE1IDE1JyB4bWw6c3BhY2U9J3ByZXNlcnZlJyBmaWxsPSd3aGl0ZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzNkQ2RTcwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTg0LDAuOEw4NCwwLjggTS0zNTEuOCwwLjggTC0zNTEuOCwwLjgnLyUzRSUzQ3BhdGggZD0nTTcuNiwwLjZMNS4xLDMuMmwyLjYsMi40SDB2My42aDcuN2wtMi42LDIuNGwyLjUsMi43TDE1LDcuNUw3LjYsMC42eiBNNi43LDExLjhsNC0zLjdIMS4yVjYuOGg5LjVsLTQtMy43bDAuOS0wLjlsNS43LDUuMyBsLTUuNyw1LjNMNi43LDExLjh6Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgY2FsYyggNTAlICsgMHB4KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAzMnB4IDMycHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubS1jYXJkLS1zdGFuZGFyZCA+IC5tLWNhcmRfX2xpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoIDUwJSArIDRweCkgY2FsYyggNTAlICsgMHB4KTtcbiAgfVxufVxuXG4vKipcblx0ICogQ2FyZCDigKIgSW5uZXIgQ29udGVudFxuXHQgKi9cbi5tLWNhcmQtLXN0YW5kYXJkIC5tLXRpdGxlLWdyb3VwIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cblxuLm0tY2FyZC0tc3RhbmRhcmQgLm0tdGl0bGUtZ3JvdXBfX3RpdGxlIHtcbiAgY29sb3I6ICMxNzE3MTc7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5tLWNhcmQtLXN0YW5kYXJkIC5tLXRpdGxlLWdyb3VwX190aXRsZTpob3ZlciB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS1zdGFuZGFyZCAubS10aXRsZS1ncm91cF9fc3ViLFxuLm0tY2FyZC0tc3RhbmRhcmQgLm0tbWV0YV9faXRlbSB7XG4gIGNvbG9yOiAjNjk2OTY5O1xufVxuXG4ubS1jYXJkLS1zdGFuZGFyZCAubS1tZXRhX19pY29uID4gc3ZnIHtcbiAgZmlsbDogIzRENEQ0RDtcbn1cblxuLm0tY2FyZC0tc3RhbmRhcmQgLm0tY2FyZF9faW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxlZnQ6IDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm0tY2FyZC0tc3RhbmRhcmQgLm0tY2FyZF9faW1nIHtcbiAgICBsZWZ0OiAtNzVweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLyoqXG5cdCAqIENhcmQg4oCiIFRoZW1lc1xuXHQgKi9cbi8qKlxuXHRcdCAqIFdlIGFyZSB1c2luZyBhIGN1c3RvbSBtaXhpbiB0byBnZW5lcmF0ZSBkaWZmZXJlbnQgY2FyZCB0aGVtZSBjbGFzc2VzIGF1dG9tYWdpY2FsbHkuXG5cdFx0ICogVGhlc2Ugd2lsbCBhdXRvbWF0ZSBjYXJkIGNvbG9yaW5nIGJhc2VkIG9uIHRoZSBjYXJkIGNhdGVnb3J5LlxuXHRcdCAqL1xuLm0tY2FyZC0tdGhlbWUtLWZlYXR1cmUgLm0tY2FyZF9fbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDZFQTE7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1mZWF0dXJlIC5tLWNhcmRfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1ZDg4O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tZmVhdHVyZSAubS1tZXRhX19jYXRlZ29yeSxcbi5tLWNhcmQtLXRoZW1lLS1mZWF0dXJlIC5tLXRpdGxlLWdyb3VwX19wcmUge1xuICBjb2xvcjogIzRENEQ0RDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWZlYXR1cmUgLm0tbWV0YV9fY2F0ZWdvcnk6aG92ZXIsXG4ubS1jYXJkLS10aGVtZS0tZmVhdHVyZSAubS10aXRsZS1ncm91cF9fcHJlOmhvdmVyIHtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1zbmFwc2hvdCAubS1jYXJkX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRENkE5MDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXNuYXBzaG90IC5tLWNhcmRfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ1ZTdmO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tc25hcHNob3QgLm0tbWV0YV9fY2F0ZWdvcnksXG4ubS1jYXJkLS10aGVtZS0tc25hcHNob3QgLm0tdGl0bGUtZ3JvdXBfX3ByZSB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tc25hcHNob3QgLm0tbWV0YV9fY2F0ZWdvcnk6aG92ZXIsXG4ubS1jYXJkLS10aGVtZS0tc25hcHNob3QgLm0tdGl0bGUtZ3JvdXBfX3ByZTpob3ZlciB7XG4gIGNvbG9yOiAjMzYzNjM2O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tc2NyaWJibGluZyAubS1jYXJkX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdGQkVEQTtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXNjcmliYmxpbmcgLm0tY2FyZF9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YmI0ZDQ7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1zY3JpYmJsaW5nIC5tLW1ldGFfX2NhdGVnb3J5LFxuLm0tY2FyZC0tdGhlbWUtLXNjcmliYmxpbmcgLm0tdGl0bGUtZ3JvdXBfX3ByZSB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tc2NyaWJibGluZyAubS1tZXRhX19jYXRlZ29yeTpob3Zlcixcbi5tLWNhcmQtLXRoZW1lLS1zY3JpYmJsaW5nIC5tLXRpdGxlLWdyb3VwX19wcmU6aG92ZXIge1xuICBjb2xvcjogIzM2MzYzNjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLW15LW9sZC1ob3VzZSAubS1jYXJkX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA3ODQ5Mztcbn1cblxuLm0tY2FyZC0tdGhlbWUtLW15LW9sZC1ob3VzZSAubS1jYXJkX19saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA2NmU3Yjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLW15LW9sZC1ob3VzZSAubS1tZXRhX19jYXRlZ29yeSxcbi5tLWNhcmQtLXRoZW1lLS1teS1vbGQtaG91c2UgLm0tdGl0bGUtZ3JvdXBfX3ByZSB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tbXktb2xkLWhvdXNlIC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuLm0tY2FyZC0tdGhlbWUtLW15LW9sZC1ob3VzZSAubS10aXRsZS1ncm91cF9fcHJlOmhvdmVyIHtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1tYXJpYW5pc3QgLm0tY2FyZF9fbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4QzVCQ0Q7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1tYXJpYW5pc3QgLm0tY2FyZF9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZTQ3Yzc7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1tYXJpYW5pc3QgLm0tbWV0YV9fY2F0ZWdvcnksXG4ubS1jYXJkLS10aGVtZS0tbWFyaWFuaXN0IC5tLXRpdGxlLWdyb3VwX19wcmUge1xuICBjb2xvcjogIzRENEQ0RDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLW1hcmlhbmlzdCAubS1tZXRhX19jYXRlZ29yeTpob3Zlcixcbi5tLWNhcmQtLXRoZW1lLS1tYXJpYW5pc3QgLm0tdGl0bGUtZ3JvdXBfX3ByZTpob3ZlciB7XG4gIGNvbG9yOiAjMzYzNjM2O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tcGFydGluZyAubS1jYXJkX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVDNjFGRjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXBhcnRpbmcgLm0tY2FyZF9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MzQ4ZmY7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1wYXJ0aW5nIC5tLW1ldGFfX2NhdGVnb3J5LFxuLm0tY2FyZC0tdGhlbWUtLXBhcnRpbmcgLm0tdGl0bGUtZ3JvdXBfX3ByZSB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tcGFydGluZyAubS1tZXRhX19jYXRlZ29yeTpob3Zlcixcbi5tLWNhcmQtLXRoZW1lLS1wYXJ0aW5nIC5tLXRpdGxlLWdyb3VwX19wcmU6aG92ZXIge1xuICBjb2xvcjogIzM2MzYzNjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXByZXNpZGVudHMgLm0tY2FyZF9fbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNDEwNkM7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1wcmVzaWRlbnRzIC5tLWNhcmRfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWQwZTVlO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tcHJlc2lkZW50cyAubS1tZXRhX19jYXRlZ29yeSxcbi5tLWNhcmQtLXRoZW1lLS1wcmVzaWRlbnRzIC5tLXRpdGxlLWdyb3VwX19wcmUge1xuICBjb2xvcjogIzRENEQ0RDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXByZXNpZGVudHMgLm0tbWV0YV9fY2F0ZWdvcnk6aG92ZXIsXG4ubS1jYXJkLS10aGVtZS0tcHJlc2lkZW50cyAubS10aXRsZS1ncm91cF9fcHJlOmhvdmVyIHtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1zcG9ydHMgLm0tY2FyZF9fbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MzJCODM7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1zcG9ydHMgLm0tY2FyZF9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MDI1NzA7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1zcG9ydHMgLm0tbWV0YV9fY2F0ZWdvcnksXG4ubS1jYXJkLS10aGVtZS0tc3BvcnRzIC5tLXRpdGxlLWdyb3VwX19wcmUge1xuICBjb2xvcjogIzRENEQ0RDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXNwb3J0cyAubS1tZXRhX19jYXRlZ29yeTpob3Zlcixcbi5tLWNhcmQtLXRoZW1lLS1zcG9ydHMgLm0tdGl0bGUtZ3JvdXBfX3ByZTpob3ZlciB7XG4gIGNvbG9yOiAjMzYzNjM2O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tcGVyY2VwdGlvbnMgLm0tY2FyZF9fbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3RjJDNTg7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1wZXJjZXB0aW9ucyAubS1jYXJkX19saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjMjU0Yjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXBlcmNlcHRpb25zIC5tLW1ldGFfX2NhdGVnb3J5LFxuLm0tY2FyZC0tdGhlbWUtLXBlcmNlcHRpb25zIC5tLXRpdGxlLWdyb3VwX19wcmUge1xuICBjb2xvcjogIzRENEQ0RDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLXBlcmNlcHRpb25zIC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuLm0tY2FyZC0tdGhlbWUtLXBlcmNlcHRpb25zIC5tLXRpdGxlLWdyb3VwX19wcmU6aG92ZXIge1xuICBjb2xvcjogIzM2MzYzNjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWFsdW1uaSAubS1jYXJkX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q4MkI1Mztcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWFsdW1uaSAubS1jYXJkX19saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M1MjQ0OTtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWFsdW1uaSAubS1tZXRhX19jYXRlZ29yeSxcbi5tLWNhcmQtLXRoZW1lLS1hbHVtbmkgLm0tdGl0bGUtZ3JvdXBfX3ByZSB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tYWx1bW5pIC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuLm0tY2FyZC0tdGhlbWUtLWFsdW1uaSAubS10aXRsZS1ncm91cF9fcHJlOmhvdmVyIHtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1jaGFwdGVyIC5tLWNhcmRfX2xpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDI0ODEyO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tY2hhcHRlciAubS1jYXJkX19saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiNDAxMDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWNoYXB0ZXIgLm0tbWV0YV9fY2F0ZWdvcnksXG4ubS1jYXJkLS10aGVtZS0tY2hhcHRlciAubS10aXRsZS1ncm91cF9fcHJlIHtcbiAgY29sb3I6ICM0RDRENEQ7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1jaGFwdGVyIC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuLm0tY2FyZC0tdGhlbWUtLWNoYXB0ZXIgLm0tdGl0bGUtZ3JvdXBfX3ByZTpob3ZlciB7XG4gIGNvbG9yOiAjMzYzNjM2O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tZXhwZXJ0IC5tLWNhcmRfX2xpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjk3OTEyO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tZXhwZXJ0IC5tLWNhcmRfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM2YzA2O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tZXhwZXJ0IC5tLW1ldGFfX2NhdGVnb3J5LFxuLm0tY2FyZC0tdGhlbWUtLWV4cGVydCAubS10aXRsZS1ncm91cF9fcHJlIHtcbiAgY29sb3I6ICM0RDRENEQ7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1leHBlcnQgLm0tbWV0YV9fY2F0ZWdvcnk6aG92ZXIsXG4ubS1jYXJkLS10aGVtZS0tZXhwZXJ0IC5tLXRpdGxlLWdyb3VwX19wcmU6aG92ZXIge1xuICBjb2xvcjogIzM2MzYzNjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWhpZGRlbiAubS1jYXJkX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg0QkQ5NDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWhpZGRlbiAubS1jYXJkX19saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczYjQ4Njtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWhpZGRlbiAubS1tZXRhX19jYXRlZ29yeSxcbi5tLWNhcmQtLXRoZW1lLS1oaWRkZW4gLm0tdGl0bGUtZ3JvdXBfX3ByZSB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS10aGVtZS0taGlkZGVuIC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuLm0tY2FyZC0tdGhlbWUtLWhpZGRlbiAubS10aXRsZS1ncm91cF9fcHJlOmhvdmVyIHtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1nb29kLXdvcmtzIC5tLWNhcmRfX2xpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQThDRDU2O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tZ29vZC13b3JrcyAubS1jYXJkX19saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllYzc0Mjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLWdvb2Qtd29ya3MgLm0tbWV0YV9fY2F0ZWdvcnksXG4ubS1jYXJkLS10aGVtZS0tZ29vZC13b3JrcyAubS10aXRsZS1ncm91cF9fcHJlIHtcbiAgY29sb3I6ICM0RDRENEQ7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1nb29kLXdvcmtzIC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuLm0tY2FyZC0tdGhlbWUtLWdvb2Qtd29ya3MgLm0tdGl0bGUtZ3JvdXBfX3ByZTpob3ZlciB7XG4gIGNvbG9yOiAjMzYzNjM2O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tYm9va3NoZWxmIC5tLWNhcmRfX2xpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBEOEFFO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tYm9va3NoZWxmIC5tLWNhcmRfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiZjk5O1xufVxuXG4ubS1jYXJkLS10aGVtZS0tYm9va3NoZWxmIC5tLW1ldGFfX2NhdGVnb3J5LFxuLm0tY2FyZC0tdGhlbWUtLWJvb2tzaGVsZiAubS10aXRsZS1ncm91cF9fcHJlIHtcbiAgY29sb3I6ICM0RDRENEQ7XG59XG5cbi5tLWNhcmQtLXRoZW1lLS1ib29rc2hlbGYgLm0tbWV0YV9fY2F0ZWdvcnk6aG92ZXIsXG4ubS1jYXJkLS10aGVtZS0tYm9va3NoZWxmIC5tLXRpdGxlLWdyb3VwX19wcmU6aG92ZXIge1xuICBjb2xvcjogIzM2MzYzNjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLW5vLXRhZyAubS1jYXJkX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZENzQ4RDtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLW5vLXRhZyAubS1jYXJkX19saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyNjg3Zjtcbn1cblxuLm0tY2FyZC0tdGhlbWUtLW5vLXRhZyAubS1tZXRhX19jYXRlZ29yeSxcbi5tLWNhcmQtLXRoZW1lLS1uby10YWcgLm0tdGl0bGUtZ3JvdXBfX3ByZSB7XG4gIGNvbG9yOiAjNEQ0RDREO1xufVxuXG4ubS1jYXJkLS10aGVtZS0tbm8tdGFnIC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuLm0tY2FyZC0tdGhlbWUtLW5vLXRhZyAubS10aXRsZS1ncm91cF9fcHJlOmhvdmVyIHtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBDVEFcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ1RBIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ1RBIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLWN0YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRCOEQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9iYWNrZ3JvdW5kLWJsdWVkaWFnb25hbHMucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IHVuc2V0O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA2NHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAubS1jdGEge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxufVxuXG4ubS1jdGEuLS1hbHQge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiAzMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLm0tY3RhX19jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm0tY3RhX19jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuLm0tY3RhX19jb2x1bW46bnRoLW9mLXR5cGUoMSkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAubS1jdGFfX2NvbHVtbjpudGgtb2YtdHlwZSgxKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luOiB1bnNldDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5cbi5tLWN0YV9fY29sdW1uOm50aC1vZi10eXBlKDIpIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTA0MHB4KSB7XG4gIC5tLWN0YV9fY29sdW1uOm50aC1vZi10eXBlKDIpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLm0tY3RhX190aXRsZSB7XG4gIGNvbG9yOiAjMDBGRkZGO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTA0MHB4KSB7XG4gIC5tLWN0YV9fdGl0bGUge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm0tY3RhX19hY3Rpb24ge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBGb290ZXIgQ1RBXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZvb3RlciBDVEEg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGb290ZXIgQ1RBIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLWN0YS0tZm9vdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi10b3A6IDI0cHg7XG59XG5cbi5tLWN0YS0tZm9vdGVyX193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubS1jdGEtLWZvb3Rlcl9fd3JhcHBlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxufVxuXG4vKipcbiAqIEZvb3RlciBDVEEg4oCiIExpc3QgSXRlbVxuICovXG4ubS1jdGEtLWZvb3Rlcl9faXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgZmxleDogYXV0bztcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubS1jdGEtLWZvb3Rlcl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4ubS1jdGEtLWZvb3Rlcl9faXRlbTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xufVxuXG4ubS1jdGEtLWZvb3Rlcl9faXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIC8qKlxuXHQgKiBIZXJlIHdlIGFyZSBqdXN0IHNldHRpbmcgYSBkaWZmZXJlbnQgeCBwb3NpdGlvbiBmb3IgdGhlIGFycm93XG5cdCAqIG9uIGRpZmZlcmVudCBkZXZpY2Ugc2l6ZXNcblx0ICovXG4gIC8qKlxuXHQgKiBXZSBhcmUgZGlyZWN0bHkgZW1iZWRkaW5nIG91ciBhcnJvdyBTVkcgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYSBcblx0ICogSFRUUCBjYWxsIHRvIGdldCB0aGUgaWNvbi4gTm90ZSB0aGF0IHdlIGFyZSBlbmNvZGluZyBpdCwgYnV0IE5PVCBiYXNlIDY0XG5cdCAqIGVuY29kaW5nIGl0LiBCYXNlIDY0IHBlcmZvcm1zIHBvb3JseSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKlxuXHQgKiBAbm90ZSBUb29sIHVzZWQgdG8gZW5jb2RlOiBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXIvXG5cdCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTUgMTUnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDE1IDE1JyB4bWw6c3BhY2U9J3ByZXNlcnZlJyBmaWxsPSd3aGl0ZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzNkQ2RTcwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTg0LDAuOEw4NCwwLjggTS0zNTEuOCwwLjggTC0zNTEuOCwwLjgnLyUzRSUzQ3BhdGggZD0nTTcuNiwwLjZMNS4xLDMuMmwyLjYsMi40SDB2My42aDcuN2wtMi42LDIuNGwyLjUsMi43TDE1LDcuNUw3LjYsMC42eiBNNi43LDExLjhsNC0zLjdIMS4yVjYuOGg5LjVsLTQtMy43bDAuOS0wLjlsNS43LDUuMyBsLTUuNyw1LjNMNi43LDExLjh6Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5NSUgY2FsYyggNTAlICsgMHB4KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAzMnB4IDMycHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubS1jdGEtLWZvb3Rlcl9faXRlbTpub3QoOmZpcnN0LWNoaWxkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYyggOTUlICsgNHB4KSBjYWxjKCA1MCUgKyAwcHgpO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm0tY3RhLS1mb290ZXJfX2l0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIC8qKlxuXHQgKiBXZSBhcmUgZGlyZWN0bHkgZW1iZWRkaW5nIG91ciBhcnJvdyBTVkcgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYSBcblx0ICogSFRUUCBjYWxsIHRvIGdldCB0aGUgaWNvbi4gTm90ZSB0aGF0IHdlIGFyZSBlbmNvZGluZyBpdCwgYnV0IE5PVCBiYXNlIDY0XG5cdCAqIGVuY29kaW5nIGl0LiBCYXNlIDY0IHBlcmZvcm1zIHBvb3JseSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKlxuXHQgKiBAbm90ZSBUb29sIHVzZWQgdG8gZW5jb2RlOiBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXIvXG5cdCAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyBpZD0nTGF5ZXJfMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCAxNSAxNScgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgMTUgMTUnIHhtbDpzcGFjZT0ncHJlc2VydmUnIGZpbGw9J3doaXRlJyUzRSUzQ3BhdGggc3Ryb2tlPSclMjM2RDZFNzAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBkPSdNODQsMC44TDg0LDAuOCBNLTM1MS44LDAuOCBMLTM1MS44LDAuOCcvJTNFJTNDcGF0aCBkPSdNNy42LDAuNkw1LjEsMy4ybDIuNiwyLjRIMHYzLjZoNy43bC0yLjYsMi40bDIuNSwyLjdMMTUsNy41TDcuNiwwLjZ6IE02LjcsMTEuOGw0LTMuN0gxLjJWNi44aDkuNWwtNC0zLjdsMC45LTAuOWw1LjcsNS4zIGwtNS43LDUuM0w2LjcsMTEuOHonLyUzRSUzQy9zdmclM0UlMEFcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogODUlIGNhbGMoIDUwJSArIDBweCk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm0tY3RhLS1mb290ZXJfX2l0ZW06bm90KDpmaXJzdC1jaGlsZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoIDg1JSArIDRweCkgY2FsYyggNTAlICsgMHB4KTtcbiAgfVxufVxuXG4ubS1jdGEtLWZvb3Rlcl9faXRlbTpmaXJzdC1jaGlsZCB7XG4gIC8qKlxuIFx0ICogSGVyZSB3ZSBhcmUganVzdCBzZXR0aW5nIGEgZGlmZmVyZW50IHggcG9zaXRpb24gZm9yIHRoZSBhcnJvd1xuIFx0ICogb24gZGlmZmVyZW50IGRldmljZSBzaXplc1xuIFx0ICovXG4gIC8qKlxuXHQgKiBXZSBhcmUgZGlyZWN0bHkgZW1iZWRkaW5nIG91ciBhcnJvdyBTVkcgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYSBcblx0ICogSFRUUCBjYWxsIHRvIGdldCB0aGUgaWNvbi4gTm90ZSB0aGF0IHdlIGFyZSBlbmNvZGluZyBpdCwgYnV0IE5PVCBiYXNlIDY0XG5cdCAqIGVuY29kaW5nIGl0LiBCYXNlIDY0IHBlcmZvcm1zIHBvb3JseSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKlxuXHQgKiBAbm90ZSBUb29sIHVzZWQgdG8gZW5jb2RlOiBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXIvXG5cdCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTUgMTUnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDE1IDE1JyB4bWw6c3BhY2U9J3ByZXNlcnZlJyBmaWxsPSd3aGl0ZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzNkQ2RTcwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTg0LDAuOEw4NCwwLjggTS0zNTEuOCwwLjggTC0zNTEuOCwwLjgnLyUzRSUzQ3BhdGggZD0nTTcuNiwwLjZMNS4xLDMuMmwyLjYsMi40SDB2My42aDcuN2wtMi42LDIuNGwyLjUsMi43TDE1LDcuNUw3LjYsMC42eiBNNi43LDExLjhsNC0zLjdIMS4yVjYuOGg5LjVsLTQtMy43bDAuOS0wLjlsNS43LDUuMyBsLTUuNyw1LjNMNi43LDExLjh6Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5NSUgY2FsYyggNTAlICsgMHB4KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAzMnB4IDMycHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubS1jdGEtLWZvb3Rlcl9faXRlbTpmaXJzdC1jaGlsZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYyggOTUlICsgNHB4KSBjYWxjKCA1MCUgKyAwcHgpO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm0tY3RhLS1mb290ZXJfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgIC8qKlxuXHQgKiBXZSBhcmUgZGlyZWN0bHkgZW1iZWRkaW5nIG91ciBhcnJvdyBTVkcgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYSBcblx0ICogSFRUUCBjYWxsIHRvIGdldCB0aGUgaWNvbi4gTm90ZSB0aGF0IHdlIGFyZSBlbmNvZGluZyBpdCwgYnV0IE5PVCBiYXNlIDY0XG5cdCAqIGVuY29kaW5nIGl0LiBCYXNlIDY0IHBlcmZvcm1zIHBvb3JseSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKlxuXHQgKiBAbm90ZSBUb29sIHVzZWQgdG8gZW5jb2RlOiBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXIvXG5cdCAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyBpZD0nTGF5ZXJfMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCAxNSAxNScgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgMTUgMTUnIHhtbDpzcGFjZT0ncHJlc2VydmUnIGZpbGw9J3doaXRlJyUzRSUzQ3BhdGggc3Ryb2tlPSclMjM2RDZFNzAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBkPSdNODQsMC44TDg0LDAuOCBNLTM1MS44LDAuOCBMLTM1MS44LDAuOCcvJTNFJTNDcGF0aCBkPSdNNy42LDAuNkw1LjEsMy4ybDIuNiwyLjRIMHYzLjZoNy43bC0yLjYsMi40bDIuNSwyLjdMMTUsNy41TDcuNiwwLjZ6IE02LjcsMTEuOGw0LTMuN0gxLjJWNi44aDkuNWwtNC0zLjdsMC45LTAuOWw1LjcsNS4zIGwtNS43LDUuM0w2LjcsMTEuOHonLyUzRSUzQy9zdmclM0UlMEFcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTUlIGNhbGMoIDUwJSArIDBweCk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm0tY3RhLS1mb290ZXJfX2l0ZW06Zmlyc3QtY2hpbGQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoIDk1JSArIDRweCkgY2FsYyggNTAlICsgMHB4KTtcbiAgfVxufVxuXG4vKipcbiAgKiBGb290ZXIgQ1RBIOKAoiBMaW5rXG4gICovXG4ubS1jdGEtLWZvb3Rlcl9fbGluayB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMzJweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm0tY3RhLS1mb290ZXJfX2xpbmsge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG4gICAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICB9XG59XG5cbi5tLWN0YS0tZm9vdGVyX19saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMwMEZGRkY7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBFbWJlZFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBFbWJlZCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEVtYmVkIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLWVtYmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLm0tZW1iZWQgaWZyYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBGb290bm90ZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGb290bm90ZSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZvb3Rub3RlIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLWZvb3Rub3RlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VERURFRDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi10b3A6IDY0cHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZzogMzJweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuICAubS1mb290bm90ZSB7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcmlnaHQ6IC0zNTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgfVxufVxuXG4ubS1mb290bm90ZSBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IEZvcm1cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRm9ybSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZvcm0g4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLm0tZm9ybS0tZmllbGRzLS1saWdodCAuYS1mb3JtLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLm0tZm9ybS0tZmllbGRzLS1saWdodCAuYS1mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xufVxuXG4ubS1mb3JtLS1maWVsZHMtLWRhcmsgLmEtZm9ybS1jb250cm9sIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MUI0ODtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMEZGRkY7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4ubS1mb3JtLS1maWVsZHMtLWRhcmsgLmEtZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MUI0ODtcbn1cblxuLm0tZm9ybS0tbGFiZWwtLWxpZ2h0IGxhYmVsIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5tLWZvcm1fX2dyb3VwIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tdG9wOiAzMnB4O1xufVxuXG4ubS1mb3JtX19ncm91cCAuYS1jaGVja2JveCBpbnB1dCxcbi5tLWZvcm1fX2dyb3VwIC5hLXJhZGlvIGlucHV0IHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IEljb24gR3JvdXBcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSWNvbiBHcm91cCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEljb24gR3JvdXAg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLm0taWNvbi1ncm91cCAubS1pY29uLWdyb3VwX19pY29uOm5vdCg6bGFzdC1jaGlsZCkge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4ubS1pY29uLWdyb3VwX19pY29uIC5hLWljb24ge1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBmaWxsOiAjMDBGRkZGO1xuICB0cmFuc2l0aW9uOiBmaWxsIDAuMTVzIGVhc2U7XG59XG5cbi8qKlxuXHQgKiBDb2xvclxuXHQgKi9cbi5tLWljb24tZ3JvdXA6bm90KC5tLWljb24tZ3JvdXAtLWFjdGlvbikgLmEtaWNvbiB7XG4gIGZpbGw6ICMwMEZGRkY7XG59XG5cbi5tLWljb24tZ3JvdXA6bm90KC5tLWljb24tZ3JvdXAtLWFjdGlvbikgLm0taWNvbi1ncm91cF9faWNvbjpob3ZlciAuYS1pY29uIHtcbiAgZmlsbDogIzAwY2NjYztcbn1cblxuLyoqXG5cdCAqIFZhcmlhdGlvbiDigKIgQWN0aW9uXG5cdCAqL1xuLm0taWNvbi1ncm91cC0tYWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm0taWNvbi1ncm91cC0tYWN0aW9uIC5tLWljb24tZ3JvdXBfX2ljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tLWljb24tZ3JvdXAtLWFjdGlvbiAuYS1pY29uIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG59XG5cbi5tLWljb24tZ3JvdXAtLWFjdGlvbiAubS1pY29uLWdyb3VwX19pY29uIC5hLWljb24ge1xuICBmaWxsOiAjQ0UxMTQxO1xufVxuXG4ubS1pY29uLWdyb3VwLS1hY3Rpb24gLm0taWNvbi1ncm91cF9faWNvbjpob3ZlciAuYS1pY29uIHtcbiAgZmlsbDogI2I2MGYzYTtcbn1cblxuLyoqXG5cdCAqIFZhcmlhdGlvbiDigKIgV2l0aCBUZXh0XG5cdCAqL1xuLm0taWNvbi1ncm91cF9fdGV4dCB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuXG4ubS1pY29uLWdyb3VwX19pY29uOmhvdmVyIC5tLWljb24tZ3JvdXBfX3RleHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLm0taW1hZ2UtZ3JvdXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmEubS1pbWFnZS1ncm91cCAubS1pbWFnZS1ncm91cF9faW1nLFxuYS5tLWltYWdlLWdyb3VwIC5tLWltYWdlLWdyb3VwX190aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG59XG5cbmEubS1pbWFnZS1ncm91cCAubS1pbWFnZS1ncm91cF9faW1nIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA3cHggMXB4IHJnYmEoNzcsIDc3LCA3NywgMC41KTtcbn1cblxuYS5tLWltYWdlLWdyb3VwOmhvdmVyIC5tLWltYWdlLWdyb3VwX19pbWcsXG5hLm0taW1hZ2UtZ3JvdXA6aG92ZXIgLm0taW1hZ2UtZ3JvdXBfX3RpdGxlIHtcbiAgb3BhY2l0eTogMC44NTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTg1KTtcbn1cblxuLm0taW1hZ2UtZ3JvdXBfX2ltZyB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IElubGluZSBHcm91cFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBJbmxpbmUgR3JvdXAg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBJbmxpbmUgR3JvdXAg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIElubGluZSBHcm91cCDigKIgQmFzZVxuXHQgKi9cbi5tLWlubGluZS1ncm91cCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubS1pbmxpbmUtZ3JvdXAsXG4ubS1pbmxpbmUtZ3JvdXBfX2dyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm0taW5saW5lLWdyb3VwX19ncm91cCB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLyoqXG5cdCAqIEVhY2ggc3ViIGdyb3VwIGl0ZW0gYW5kIGVhY2ggY2hpbGQgb2YgYSBzdWItZ3JvdXAgaXRlbVxuXHQgKiBuZWVkcyByaWdodCBtYXJnaW4sIEVYQ0VQVCBmb3IgdGhlIGxhc3QgaXRlbSBpbiBlYWNoIG9mIHRob3NlIGdyb3Vwcy5cblx0ICovXG4ubS1pbmxpbmUtZ3JvdXBfX2dyb3VwOm5vdCg6bGFzdC1jaGlsZCksXG4ubS1pbmxpbmUtZ3JvdXBfX2dyb3VwID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBJc2xhbmRcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSXNsYW5kIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSXNsYW5kIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLWlzbGFuZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMTI4cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMjhweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG59XG5cbi5tLWlzbGFuZDpub3QoLm0taXNsYW5kLS1oYXMtYmcpIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5tLWlzbGFuZC5tLWlzbGFuZC0taGFzLWJnOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIG9wYWNpdHk6IDAuODtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTgwKTtcbn1cblxuLm0taXNsYW5kLS1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNEI4RDtcbn1cblxuLm0taXNsYW5kLS1uYXZ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MUI0ODtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IExlZ2FsIEJhclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBMZWdhbCBCYXIg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBMZWdhbCBCYXIg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLm0tbGVnYWwtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MUI0ODtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiAzMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLm0tbGVnYWwtYmFyX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IExpa2VcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTGlrZSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExpa2Ug4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIExpa2Ug4oCiIEJhc2Vcblx0ICovXG4ubS1saWtlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nOiA4cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuXG4vKipcblx0ICogTGlrZSDigKIgVW5saWtlZFxuXHQgKi9cbi5tLWxpa2U6bm90KC5tLWxpa2UtLWlzLWxpa2VkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tLWxpa2U6bm90KC5tLWxpa2UtLWlzLWxpa2VkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U1RTVFNTtcbiAgfVxufVxuXG4ubS1saWtlX19jb3VudCB7XG4gIGNvbG9yOiAjQjBCMEIwO1xufVxuXG4ubS1saWtlIC5hLWljb24ge1xuICBmaWxsOiAjQ0NDQ0NDO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4vKipcblx0ICogTGlrZSDigKIgTGlrZWRcblx0ICovXG4ubS1saWtlLS1pcy1saWtlZCAuYS1pY29uIHtcbiAgZmlsbDogI0Y4MDIyODtcbn1cblxuLm0tbGlrZS0taXMtbGlrZWQgLm0tbGlrZV9fY291bnQge1xuICBjb2xvcjogIzgwODA4MDtcbn1cblxuLyoqXG5cdCAqIExpa2Ug4oCiIEFuaW1hdGlvblxuXHQgKi9cbi5tLWxpa2UuLS1pcy1hbmltYXRpbmcgLmEtaWNvbiB7XG4gIGFuaW1hdGlvbjogaGVhcnRiZWF0O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xufVxuXG5Aa2V5ZnJhbWVzIGhlYXJ0YmVhdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgfVxuICAxMDAlIHtcbiAgICBmaWxsOiAjRjgwMjI4O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuLm0tbGlrZS4tLWlzLWFuaW1hdGluZyAubS1saWtlX19jb3VudCB7XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjRzIGVhc2U7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBMaW5rIExpc3RcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTGluayBMaXN0IOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTGluayBMaXN0IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBHbG9iYWxseSBhcHBsaWVkXG5cdCAqL1xuLm0tbGluay1saXN0X19pdGVtX19hbmNob3Ige1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cblxuLm0tbGluay1saXN0X19pdGVtIC5hLWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMnB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4vKipcblx0ICogVmFyaWF0aW9uIOKAoiBJbmxpbmVcblx0ICovXG4ubS1saW5rLWxpc3QtLWlubGluZSAubS1saW5rLWxpc3RfX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU2MHB4KSB7XG4gIC5tLWxpbmstbGlzdC0taW5saW5lIC5tLWxpbmstbGlzdF9faXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi5tLWxpbmstbGlzdC0taW5saW5lIC5tLWxpbmstbGlzdF9faXRlbV9fYW5jaG9yIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbn1cblxuLyoqXG5cdCAqIFZhcmlhdGlvbiDigKIgU3RhY2tlZFxuXHQgKi9cbi5tLWxpbmstbGlzdC0tc3RhY2tlZCAubS1saW5rLWxpc3RfX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5tLWxpbmstbGlzdC0tc3RhY2tlZCAubS1saW5rLWxpc3RfX2l0ZW1fX2FuY2hvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG5cdCAqIFZhcmlhdGlvbiDigKIgU2lkZSBieSBTaWRlXG5cdCAqL1xuLm0tbGluay1saXN0LS1zaWRlLWJ5LXNpZGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG5cbi5tLWxpbmstbGlzdC0tc2lkZS1ieS1zaWRlIC5tLWxpbmstbGlzdF9faXRlbSB7XG4gIGZsZXg6IDEgMSA1MCU7XG4gIC1tcy1mbGV4OiAwIDAgNTAlO1xuICAvKiBuZWVkZWQgZm9yIElFIDExICovXG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4vKipcblx0ICogQ29sb3IgVGhlbWUg4oCiIExpZ2h0XG5cdCAqL1xuLm0tbGluay1saXN0LS1saWdodCAubS1saW5rLWxpc3RfX2l0ZW1fX2FuY2hvciB7XG4gIGNvbG9yOiAjMDBGRkZGO1xufVxuXG4ubS1saW5rLWxpc3QtLWxpZ2h0IC5tLWxpbmstbGlzdF9faXRlbV9fYW5jaG9yOmhvdmVyIHtcbiAgY29sb3I6ICMwMGNjY2M7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBNZW51XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lbnUg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZW51IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLW1lbnUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vKipcblx0ICogVmFyaWF0aW9uIOKAoiBQcmltYXJ5XG5cdCAqL1xuLm0tbWVudS0tcHJpbWFyeSAubS1tZW51X19pdGVtX19hbmNob3Ige1xuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzM2MzYzNjtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy10b3A6IDMycHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuXG4ubS1tZW51LS1wcmltYXJ5IC5tLW1lbnVfX2l0ZW1fX2FuY2hvcjpob3ZlciB7XG4gIGNvbG9yOiAjMDA0QjhEO1xufVxuXG4vKipcblx0ICogVmFyaWF0aW9uIOKAoiBTZWNvbmRhcnlcblx0ICovXG4ubS1tZW51LS1zZWNvbmRhcnkgLm0tbWVudV9faXRlbV9fYW5jaG9yIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZzogOHB4O1xufVxuXG4ubS1tZW51LS1zZWNvbmRhcnkgLm0tbWVudV9faXRlbV9fYW5jaG9yOmhvdmVyIHtcbiAgY29sb3I6ICMwMEZGRkY7XG59XG5cbi5tLW1lbnUtLXNlY29uZGFyeSAubS1tZW51X19pdGVtIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4vKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogTWV0YVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZXRhIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWV0YSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogVmFyaWF0aW9uIOKAoiBJbmxpbmVcblx0ICovXG4ubS1tZXRhLS1pbmxpbmUgLm0tbWV0YV9faXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tcmlnaHQ6IDRweDtcbn1cblxuLm0tbWV0YS0taW5saW5lIC5tLW1ldGFfX2ljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMXB4O1xufVxuXG4vKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBNb2JpbGUgTmF2XG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2xpbmVjb25zJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9saW5lY29ucy5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbGluZWNvbnMuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvbGluZWNvbnMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9saW5lY29ucy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL2xpbmVjb25zLnN2ZyNsaW5lY29uc1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmljb246YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6ICdsaW5lY29ucyc7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAwLjZlbTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi5pY29uLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzJcIjtcbn1cblxuLmljb24tYXJyb3ctbGVmdC0yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM0XCI7XG59XG5cbi5pY29uLWFycm93LWxlZnQtMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNlwiO1xufVxuXG4uaWNvbi1hcnJvdy1sZWZ0LTQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzhcIjtcbn1cblxuLmljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzVcIjtcbn1cblxuLmljb24tYXJyb3ctcmlnaHQtMjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzN1wiO1xufVxuXG4uaWNvbi1hcnJvdy1yaWdodC0zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM5XCI7XG59XG5cbi5pY29uLWFycm93LXJpZ2h0LTQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzNcIjtcbn1cblxuLmljb24td29ybGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMmZcIjtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1vYmlsZSBOYXZpZ2F0aW9uXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1vYmlsZSBOYXZpZ2F0aW9uIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTW9iaWxlIE5hdmlnYXRpb24g4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiBNb2JpbGUg4oCiIEJhc2VcbiAqL1xuLm0tbW9iaWxlLW5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREVERUQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyogd2UgY2FuJ3QgdXNlIGZpeGVkIGhlcmUgOiggKi9cbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5tLW1vYmlsZS1uYXZfX2JnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MUI0OCAhaW1wb3J0YW50O1xufVxuXG4ubS1tb2JpbGVfX2xldmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjRURFREVEO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB6LWluZGV4OiAxO1xufVxuXG4ubS1tb2JpbGVfX2xldmVsOjphZnRlciB7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4uby1zaXRlX19jb250YWluZXIsXG4ubS1tb2JpbGVfX2xldmVsIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG59XG5cbi8qKlxuICogTW9iaWxlIOKAoiBPdmVybGF5XG4gKi9cbi5tLW1vYmlsZV9fbGV2ZWwubS1tb2JpbGVfX292ZXJsYXkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlX19vdmVybGF5Lm0tbW9iaWxlX19sZXZlbDo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qKlxuICogQ3VycmVudGx5IE9wZW4gTGV2ZWxcbiAqL1xuLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZS0tb3BlbiB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi8qKlxuICogTW9iaWxlIOKAoiBGaXJzdCBMZXZlbFxuICovXG4ubS1tb2JpbGUtbmF2ID4gLm0tbW9iaWxlX19sZXZlbCxcbi5tLW1vYmlsZS1uYXYgPiAubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlLS1vcGVuLFxuLm0tbW9iaWxlLW5hdi5tLW1vYmlsZS1uYXZfX292ZXJsYXAgPiAubS1tb2JpbGVfX2xldmVsLFxuLm0tbW9iaWxlLW5hdi5tLW1vYmlsZS1uYXZfX292ZXJsYXAgPiAubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlLS1vcGVuIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLyoqXG4gKiBNb2JpbGUg4oCiIE1lbnUgQ292ZXJcbiAqL1xuLm0tbW9iaWxlX19jb3ZlciAubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlLS1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLm0tbW9iaWxlX19jb3ZlciAubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlLS1vcGVuID4gLm0tbW9iaWxlX19wYW5lbCA+IC5tLW1vYmlsZV9fcGFuZWxfX2l0ZW0gPiAubS1tb2JpbGVfX2xldmVsOm5vdCgubS1tb2JpbGUtLW9wZW4pIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbn1cblxuLyoqXG4gKiBNb2JpbGUg4oCiIGB1bGAgUGFuZWxcbiAqL1xuLm0tbW9iaWxlLW5hdiAubS1tb2JpbGVfX3BhbmVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURFREVEO1xufVxuXG4vKipcbiAqIE1vYmlsZSDigKIgSGVhZGluZ1xuICovXG4ubS1tb2JpbGUtbmF2IGgyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREVERUQ7XG59XG5cbi8qKlxuICogTW9iaWxlIOKAoiBgbGlgIFBhbmVsIEl0ZW1cbiAqL1xuLm0tbW9iaWxlLW5hdiAubS1tb2JpbGVfX3BhbmVsIC5tLW1vYmlsZV9fcGFuZWxfX2l0ZW06OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6IDA7XG4gIGNvbG9yOiAjMDA0QjhEO1xuICBsaW5lLWhlaWdodDogNDtcbn1cblxuLm0tbW9iaWxlX19wYW5lbF9faXRlbS5tLW1vYmlsZV9fcGFuZWxfX2l0ZW0tLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0QjhEO1xufVxuXG4ubS1tb2JpbGVfX3BhbmVsX19pdGVtLm0tbW9iaWxlX19wYW5lbF9faXRlbS0tYmx1ZSA+IC5tLW1vYmlsZV9fcGFuZWxfX2l0ZW1fX2xpbmsge1xuICBjb2xvcjogIzAwRkZGRjtcbn1cblxuLyoqXG4gKiBNb2JpbGUg4oCiIGBhYCBMaW5rIEl0ZW1cbiAqL1xuLm0tbW9iaWxlLW5hdiAubS1tb2JpbGVfX3BhbmVsIC5tLW1vYmlsZV9fcGFuZWxfX2l0ZW0gPiAubS1tb2JpbGVfX3BhbmVsX19pdGVtX19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcywgYm94LXNoYWRvdyAwLjNzO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIHBhZGRpbmctbGVmdDogMzJweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi8qKlxuICogTW9iaWxlIOKAoiBCYWNrIEJ1dHRvblxuICovXG4ubS1tb2JpbGVfX2JhY2sge1xuICBiYWNrZ3JvdW5kOiAjQ0NDQ0NDO1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogIzRENEQ0RDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xufVxuXG4ubS1tb2JpbGVfX2JhY2s6OmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6ICdsaW5lY29ucyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcXGUwMzhcIjtcbiAgbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5tLW1vYmlsZS1uYXYgLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZV9fb3ZlcmxheSA+IC5tLW1vYmlsZV9fYmFjayxcbi5tLW1vYmlsZS1uYXYgLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZV9fb3ZlcmxheSA+IC5tLW1vYmlsZV9fYmFjazo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyoqXG4gKiBNb2JpbGUgT3JnIEluZm9cbiAqL1xuLm0tbW9iaWxlX19pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MUI0ODtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nOiAzMnB4O1xufVxuXG4ubS1tb2JpbGVfX2luZm8gLm0tbGluay1saXN0X19pdGVtIC5hLWljb24ge1xuICBwb3NpdGlvbjogdW5zZXQ7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBPcmcgSW5mb1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBPcmcgSW5mbyDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE9yZyBJbmZvIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLW9yZy1pbmZvX19jb250YWN0IC5hLWljb24ge1xuICBmaWxsOiAjMDBGRkZGO1xufVxuXG4vKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogUGFnaW5hdGlvblxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBQYWdpbmF0aW9uIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgKiBQYWdpbmF0aW9uIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqL1xuLm0tcGFnaW5hdGlvbiB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm0tcGFnaW5hdGlvbl9faXRlbSxcbi5tLXBhZ2luYXRpb25fX2l0ZW1fX2xpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyoqXG4gICAgICAqIFdlIHdpbGwgYXBwbHkgdGhlc2UgdG8gZXZlcnkgaXRlbSwgYnV0IHdlIGRvbid0IHdhbnQgdGhlXG4gICAgICAqIHJhbmdlIHRvIGFwcGVhciBjbGlja2FibGUsIHNvIHdlIHdpbGwgTk9UIGFwcGx5IHRoZVxuICAgICAgKiBob3ZlciBzdHlsZXMgdG8gdGhlIHJhbmdlIDopXG4gICAgICAqL1xuLm0tcGFnaW5hdGlvbl9faXRlbTpub3QoLm0tcGFnaW5hdGlvbl9faXRlbS0tcmFuZ2UpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubS1wYWdpbmF0aW9uX19pdGVtOm5vdCgubS1wYWdpbmF0aW9uX19pdGVtLS1yYW5nZSk6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi5tLXBhZ2luYXRpb25fX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi5tLXBhZ2luYXRpb25fX2l0ZW0tLWFycm93IHtcbiAgY29sb3I6ICNDRTExNDE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5tLXBhZ2luYXRpb25fX2l0ZW0tLW51bWJlcjpub3QoLm0tcGFnaW5hdGlvbl9faXRlbS0tY3VycmVudCksXG4ubS1wYWdpbmF0aW9uX19pdGVtLS1hcnJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFREVERUQ7XG59XG5cbi5tLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0QjhEO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLm0tcGFnaW5hdGlvbl9faXRlbS0tcmFuZ2Uge1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4vKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogU2VhcmNoIEJhclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTZWFyY2ggQmFyIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU2VhcmNoIEJhciDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogU2VhcmNoIEJhciDigKIgQmFzZVxuXHQgKi9cbi5tLXNlYXJjaC1iYXIgLm0tZm9ybV9fZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubS1zZWFyY2gtYmFyX19zdWJtaXQge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIDQwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubS1zZWFyY2gtYmFyX19zdWJtaXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4vKipcblx0ICogU2VhcmNoIEJhciDigKIgTGlnaHQgVGhlbWVcblx0ICovXG4ubS1zZWFyY2gtYmFyLm0tZm9ybS0tZmllbGRzLS1saWdodCAubS1zZWFyY2gtYmFyX19zdWJtaXQge1xuICBiYWNrZ3JvdW5kOiAjQ0UxMTQxO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG5cbi5tLXNlYXJjaC1iYXIubS1mb3JtLS1maWVsZHMtLWxpZ2h0IC5tLXNlYXJjaC1iYXJfX3N1Ym1pdCA+IC5hLWljb24ge1xuICBmaWxsOiAjZmZmZmZmO1xufVxuXG4ubS1zZWFyY2gtYmFyLm0tZm9ybS0tZmllbGRzLS1saWdodCAubS1zZWFyY2gtYmFyX19zdWJtaXQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjYjYwZjNhO1xufVxuXG4ubS1zZWFyY2gtYmFyLm0tZm9ybS0tZmllbGRzLS1saWdodCAubS1zZWFyY2gtYmFyX19zdWJtaXQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjOWYwZDMyO1xufVxuXG4vKipcblx0ICogU2VhcmNoIEJhciDigKIgRGFyayBUaGVtZVxuXHQgKi9cbi5tLXNlYXJjaC1iYXIubS1mb3JtLS1maWVsZHMtLWRhcmsgLm0tc2VhcmNoLWJhcl9fc3VibWl0IHtcbiAgYmFja2dyb3VuZDogIzE3MUI0ODtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4ubS1zZWFyY2gtYmFyLm0tZm9ybS0tZmllbGRzLS1kYXJrIC5tLXNlYXJjaC1iYXJfX3N1Ym1pdCA+IC5hLWljb24ge1xuICBmaWxsOiAjZmZmZmZmO1xufVxuXG4ubS1zZWFyY2gtYmFyLm0tZm9ybS0tZmllbGRzLS1kYXJrIC5tLXNlYXJjaC1iYXJfX3N1Ym1pdCA+IC5hLWljb246aG92ZXIge1xuICBmaWxsOiAjMDBGRkZGO1xufVxuXG4vKipcblx0ICogU2VhcmNoIEJhciDigKIgTGFyZ2Vcblx0ICovXG4ubS1zZWFyY2gtYmFyIC5hLWZvcm0tY29udHJvbC0tbGFyZ2UgKyAubS1zZWFyY2gtYmFyX19zdWJtaXQge1xuICBmbGV4OiAwIDAgNjBweDtcbn1cblxuLm0tc2VhcmNoLWJhciAuYS1mb3JtLWNvbnRyb2wtLWxhcmdlICsgLm0tc2VhcmNoLWJhcl9fc3VibWl0IC5hLWljb24tcyB7XG4gIGhlaWdodDogMjNweDtcbiAgd2lkdGg6IDIzcHg7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBTdW1tYXJ5XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFN1bW1hcnkg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTdW1tYXJ5IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLXN1bW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTVFNUU1O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmc6IDQ4cHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IFRpdGxlIEdyb3VwXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFRpdGxlIEdyb3VwIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVGl0bGUgR3JvdXAg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLm0tdGl0bGUtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tLXRpdGxlLWdyb3VwX19zdWIge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi10b3A6IDRweDtcbn1cblxuLm0tdGl0bGUtZ3JvdXAgLm0tbWV0YS0taW5saW5lIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi5tLXRpdGxlLWdyb3VwX19hY3Rpb24ge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi10b3A6IDE2cHg7XG59XG5cbi5tLXRpdGxlLWdyb3VwX19jb250ZW50IHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBUaXRsZSBHcm91cCBCb3hcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVGl0bGUgR3JvdXAgQm94IOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVGl0bGUgR3JvdXAgQm94IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5tLXRpdGxlLWdyb3VwLS1ib3gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAxO1xuICBib3JkZXI6IDNweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm0tdGl0bGUtZ3JvdXAtLWJveF9fdXBwZXIsXG4ubS10aXRsZS1ncm91cC0tYm94X19sb3dlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xufVxuXG4ubS10aXRsZS1ncm91cC0tYm94X19sb3dlcixcbi5tLXRpdGxlLWdyb3VwLS1ib3hfX2N0YSB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLm0tdGl0bGUtZ3JvdXAtLWJveF9fY3RhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAyNHB4O1xufVxuXG4ubS10aXRsZS1ncm91cC0tYm94X191cHBlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLm0tdGl0bGUtZ3JvdXAtLWJveF9fbG93ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMiwgNDAsIDAuNyk7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm0tdGl0bGUtZ3JvdXAtLWJveF9fbG93ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMiwgNDAsIDAuOCk7XG59XG5cbi5tLXRpdGxlLWdyb3VwLS1ib3hfX2N0YSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKipcblx0ICogV2UgYXJlIGRpcmVjdGx5IGVtYmVkZGluZyBvdXIgYXJyb3cgU1ZHIGhlcmUgc28gd2UgZG9uJ3QgaGF2ZSB0byBtYWtlIGEgXG5cdCAqIEhUVFAgY2FsbCB0byBnZXQgdGhlIGljb24uIE5vdGUgdGhhdCB3ZSBhcmUgZW5jb2RpbmcgaXQsIGJ1dCBOT1QgYmFzZSA2NFxuXHQgKiBlbmNvZGluZyBpdC4gQmFzZSA2NCBwZXJmb3JtcyBwb29ybHkgaW4gdGhpcyBzY2VuYXJpby5cblx0ICpcblx0ICogQG5vdGUgVG9vbCB1c2VkIHRvIGVuY29kZTogaHR0cHM6Ly95b2tzZWwuZ2l0aHViLmlvL3VybC1lbmNvZGVyL1xuXHQgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIGlkPSdMYXllcl8xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgdmlld0JveD0nMCAwIDE1IDE1JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCAxNSAxNScgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgZmlsbD0nd2hpdGUnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzZENkU3MCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGQ9J004NCwwLjhMODQsMC44IE0tMzUxLjgsMC44IEwtMzUxLjgsMC44Jy8lM0UlM0NwYXRoIGQ9J003LjYsMC42TDUuMSwzLjJsMi42LDIuNEgwdjMuNmg3LjdsLTIuNiwyLjRsMi41LDIuN0wxNSw3LjVMNy42LDAuNnogTTYuNywxMS44bDQtMy43SDEuMlY2LjhoOS41bC00LTMuN2wwLjktMC45bDUuNyw1LjMgbC01LjcsNS4zTDYuNywxMS44eicvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IGNhbGMoIDUwJSArIDBweCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMzJweCAzMnB4O1xuICAvKipcblx0ICogYG1zYCBvciBNb2JpbGUgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIHNtYWxsaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIGBkc2Agb3IgRGVza3RvcCBTY2FsZSwgYXBwbGllcyBhIGRpZmZlcmVudCBcIlNjYWxlXCIgYXMgZGVmaW5lZCBpbiBvdXIgdHlwZSBjb25maWdcblx0ICogb24gbGFyZ2Vpc2ggZGV2aWNlcy4gVGhpcyBtYWtlcyBhbGwgZm9udHMgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIHNjYWxlIGF0IGV4YWN0bHlcblx0ICogdGhlIHNhbWUgcmF0ZSBhbmQgYnkgZXhhY3RseSB0aGUgc2FtZSBhbW91bnQuXG5cdCAqL1xuICAvKipcblx0ICogU3VwZXIgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIFJlYWxseSBUaW55XG5cdCAqL1xuICAvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgLyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBNZWRpdW0gSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIExhcmdlIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm0tdGl0bGUtZ3JvdXAtLWJveF9fY3RhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKCAwcHggKyA0cHgpIGNhbGMoIDUwJSArIDBweCk7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tLXRpdGxlLWdyb3VwLS1ib3hfX2N0YSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMC44Njk1N3JlbTtcbiAgfVxufVxuXG4vKipcblx0ICogTG9hZCBvdXIgT3JnYW5pc21zXG5cdCAqL1xuLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogT3JnYW5pc21zXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBBY2NvcmRpb25cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgVG9kZCBMb3VwZVxuICovXG4uby1hY2NvcmRpb24ge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcGFkZGluZzogNDBweCAwO1xufVxuXG4uby1hY2NvcmRpb24gLm8tYWNjb3JkaW9uLS1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAxOHB4IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDEuNWVtO1xuICB0cmFuc2l0aW9uOiAwLjRzO1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2VlZTtcbiAgZm9udC1mYW1pbHk6IFwiQ2hhbXBpb24gV2VsdGVyd3QgQVwiLCBcIkNoYW1waW9uIFdlbHRlcnd0IEJcIiwgXCJDaGFtcGlvbiBIVEYtV2VsdGVyd2VpZ2h0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm8tYWNjb3JkaW9uIC5vLWFjY29yZGlvbi0taXRlbTpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm8tYWNjb3JkaW9uIC5vLWFjY29yZGlvbi0taXRlbTpob3ZlciwgLm8tYWNjb3JkaW9uIC5vLWFjY29yZGlvbi0taXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuXG4uby1hY2NvcmRpb24gLm8tYWNjb3JkaW9uLS1pdGVtIHN2Zy5hcnJvd19faWNvbiB7XG4gIHdpZHRoOiAxNXB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIHRvcDogMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uby1hY2NvcmRpb24gLm8tYWNjb3JkaW9uLS1pdGVtLmFjdGl2ZSBzdmcuYXJyb3dfX2ljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuXG4uby1hY2NvcmRpb24gLm8tYWNjb3JkaW9uLS1wYW5lbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LWZhbWlseTogXCJDaHJvbmljbGUgVGV4dCBHMSBBXCIsIFwiQ2hyb25pY2xlIFRleHQgRzEgQlwiLCBzZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICBwYWRkaW5nLWJvdHRvbTogMThweDtcbn1cblxuLm8tYWNjb3JkaW9uIC5vLWFjY29yZGlvbi0tcGFuZWwgaDIge1xuICBmb250LWZhbWlseTogXCJDaGFtcGlvbiBCYW50YW13dCBBXCIsIFwiQ2hhbXBpb24gQmFudGFtd3QgQlwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5vLWFjY29yZGlvbi0tdGhlbWUtLW1hcmlhbmlzdCAuby1hY2NvcmRpb24tLWl0ZW0ge1xuICBjb2xvcjogIzhDNUJDRDtcbn1cblxuLm8tYWNjb3JkaW9uLS10aGVtZS0tcGFydGluZyAuby1hY2NvcmRpb24tLWl0ZW0ge1xuICBjb2xvcjogIzVDNjFGRjtcbn1cblxuLm8tYWNjb3JkaW9uLS10aGVtZS0tcHJlc2lkZW50cyAuby1hY2NvcmRpb24tLWl0ZW0ge1xuICBjb2xvcjogI0I0MTA2Qztcbn1cblxuLm8tYWNjb3JkaW9uLS10aGVtZS0tc3BvcnRzIC5vLWFjY29yZGlvbi0taXRlbSB7XG4gIGNvbG9yOiAjODMyQjgzO1xufVxuXG4uby1hY2NvcmRpb24tLXRoZW1lLS1wZXJjZXB0aW9ucyAuby1hY2NvcmRpb24tLWl0ZW0ge1xuICBjb2xvcjogIzdGMkM1ODtcbn1cblxuLm8tYWNjb3JkaW9uLS10aGVtZS0tYWx1bW5pIC5vLWFjY29yZGlvbi0taXRlbSB7XG4gIGNvbG9yOiAjRDgyQjUzO1xufVxuXG4uby1hY2NvcmRpb24tLXRoZW1lLS1jaGFwdGVyIC5vLWFjY29yZGlvbi0taXRlbSB7XG4gIGNvbG9yOiAjRDI0ODEyO1xufVxuXG4uby1hY2NvcmRpb24tLXRoZW1lLS1leHBlcnQgLm8tYWNjb3JkaW9uLS1pdGVtIHtcbiAgY29sb3I6ICNGOTc5MTI7XG59XG5cbi5vLWFjY29yZGlvbi0tdGhlbWUtLWhpZGRlbiAuby1hY2NvcmRpb24tLWl0ZW0ge1xuICBjb2xvcjogIzg0QkQ5NDtcbn1cblxuLm8tYWNjb3JkaW9uLS10aGVtZS0tZ29vZC13b3JrcyAuby1hY2NvcmRpb24tLWl0ZW0ge1xuICBjb2xvcjogI0E4Q0Q1Njtcbn1cblxuLm8tYWNjb3JkaW9uLS10aGVtZS0tYm9va3NoZWxmIC5vLWFjY29yZGlvbi0taXRlbSB7XG4gIGNvbG9yOiAjMDBEOEFFO1xufVxuXG4uby1hY2NvcmRpb24tLXRoZW1lLS1uby10YWcgLm8tYWNjb3JkaW9uLS1pdGVtIHtcbiAgY29sb3I6ICM2RDc0OEQ7XG59XG5cbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBBY3Rpb24gQmFyXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEFjdGlvbiBCYXIg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBBY3Rpb24gQmFyIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBBY3Rpb24gQmFyIOKAoiBCYXNlXG5cdCAqL1xuLm8tYWN0aW9uLWJhciB7XG4gIGJhY2tncm91bmQ6ICNFREVERUQ7XG4gIC8qKlxuXHRcdCAqIERlZmluaW5nIHBhZGRpbmcgaGVyZSBpbnN0ZWFkIG9mIGluIHNwYWNlcigpIGJlY2F1c2Ugb2YgdGhlIHVuaXF1ZSBhbmQgc3BlY2lmaWMgdmFsdWUuXG5cdFx0ICogVGhpcyBudW1iZXIgc2hvdWxkIGVxdWFsIHRoZSBwcm9ncmVzcyBiYXIgaGVpZ2h0IGF0IGxhcmdpc2ggc2l6ZS5cblx0XHQgKi9cbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAtODBweCwgMHB4KTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDIxO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLW91dDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5vLWFjdGlvbi1iYXIge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbi5vLWFjdGlvbi1iYXJfX2NvbnRhaW5lciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuXG4vKipcblx0ICogQWN0aW9uIEJhciDigKIgVmlzaWJsZVxuXHQgKlxuXHQgKiBDbGFzcyBhZGRlZCB2aWEgSlNcblx0ICovXG4uby1hY3Rpb24tYmFyLS12aXNpYmxlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcbn1cblxuLyoqXG5cdCAqIEFjdGlvbiBCYXIg4oCiIEJhY2tcblx0ICovXG4uby1hY3Rpb24tYmFyX19iYWNrIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5vLWFjdGlvbi1iYXJfX2JhY2s6aG92ZXIgLm8tYWN0aW9uLWJhcl9fYmFja19faWNvbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSg5MGRlZyk7XG4gIH1cbn1cblxuLm8tYWN0aW9uLWJhcl9fYmFja19faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmlsbDogIzAwNEI4RDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgcm90YXRlKDkwZGVnKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuXG4uby1hY3Rpb24tYmFyX19iYWNrX190ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU2MHB4KSB7XG4gIC5vLWFjdGlvbi1iYXJfX2JhY2tfX3RleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vKipcblx0ICogQWN0aW9uIEJhciDigKIgVGl0bGVcblx0ICovXG4uby1hY3Rpb24tYmFyX190aXRsZSB7XG4gIGZsZXg6IDAgMCAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMjUwcHg7XG4gIC8qKlxuXHRcdCAqIFdlIHdhbnQgdG8gdmlzdWFsbHkgaGlkZSB0aGUgdGl0bGUgb24gc21hbGxpc2ggZGV2aWNlc1xuXHRcdCAqIGJ1dCB3ZSBkbyBub3Qgd2FudCB0byBkaXNwbGF5IG5vbmUsIGJlY2F1c2Ugd2Ugc3RpbGwgd2FudFxuXHRcdCAqIHRoZSB0aXRsZSB0byB0YWtlIHVwIHNwYWNlIGluIG9yZGVyIHRvIGtlZXAgc3BhY2luZyBjb3JyZWN0XG5cdFx0ICogZm9yIHRoZSBvdGhlciBpdGVtcy5cblx0XHQgKi9cbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5vLWFjdGlvbi1iYXJfX3RpdGxlIHtcbiAgICBmbGV4OiAwIDAgNjAlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMCk7XG4gIH1cbn1cblxuLyoqXG5cdCAqIEFjdGlvbiBCYXIg4oCiIEFjdGlvbnNcblx0ICpcblx0ICogVGhpcyB3cmFwcGVyIGNvbnRhaW5zIGxpa2luZyBhbmQgc2hhcmluZ1xuXHQgKi9cbi5vLWFjdGlvbi1iYXJfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vKipcblx0ICogQWN0aW9uIEJhciDigKIgTGlrZXNcblx0ICovXG4uby1hY3Rpb24tYmFyIC5tLWxpa2Uge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4vKipcblx0ICogQWN0aW9uIEJhciDigKIgUHJvZ3Jlc3Ncblx0ICovXG4uby1hY3Rpb24tYmFyIC5hLXByb2dyZXNzIHtcbiAgYm90dG9tOiB1bnNldDtcbiAgdG9wOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm8tYWN0aW9uLWJhciAuYS1wcm9ncmVzcyB7XG4gICAgYm90dG9tOiAtMTBweDtcbiAgICB0b3A6IHVuc2V0O1xuICB9XG59XG5cbi5vLWFwdGx5IHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLWJvdHRvbTogOTZweDtcbn1cblxuLm8tYXB0bHkgLmNfYXdwX3dyYXBwZXIge1xuICBwYWRkaW5nOiAwJTtcbn1cblxuLm8tYXB0bHlfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNzAwcHg7XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDg1cHggMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgd2lkdGg6IDk5dnc7XG4gIGxlZnQ6IGNhbGMoLTUwdncgKyA1MCUpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW8ge1xuICAgIHBhZGRpbmc6IDYwcHg7XG4gIH1cbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlbzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvMC9fMjAxOS9pbWFnZXMvZ3JhcGhpY3MvYmFja2dyb3VuZC1ncmF5Tm9pc2UucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3A7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtcmVwZWF0LXg6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1yZXBlYXQteTogbm8tcmVwZWF0O1xufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IGF1dG87XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlbyAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuICAuby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvIC5mZWF0dXJlZC12aWRlb19faW5uZXItcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIC5mZWF0dXJlZC12aWRlb19fbGVmdC1jb250YWluZXIge1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvIC5mZWF0dXJlZC12aWRlb19fbGVmdC1jb250YWluZXIge1xuICAgIHdpZHRoOiA0NSU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlb19faW5uZXIgLmZlYXR1cmVkLXZpZGVvX19jb250ZW50IHtcbiAgei1pbmRleDogMTA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICMxNzFiNDg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlbyAuZmVhdHVyZWQtdmlkZW9fX2NvbnRlbnQge1xuICAgIHdpZHRoOiAzNSU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC52aWRlby1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMTVweCAwO1xuICBtaW4taGVpZ2h0OiA0MHZ3O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1jYWxsb3V0LWJyZWFrZXIgLnZpZGVvLWNvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogMzg1cHg7XG4gIH1cbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5jYW1wYWlnbi1sb2NrdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLnZpZGVvLWNvbnRhaW5lciA+IGlmcmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgbWluLWhlaWdodDogNDB2dztcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tY2FsbG91dC1icmVha2VyIC52aWRlby1jb250YWluZXIgPiBpZnJhbWUge1xuICAgIG1pbi1oZWlnaHQ6IDM4NXB4O1xuICB9XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBmb250LWZhbWlseTogQ2hhbXBpb24gV2VsdGVyd3QgQSxDaGFtcGlvbiBXZWx0ZXJ3dCBCLENoYW1waW9uIEhURi1XZWx0ZXJ3ZWlnaHQsc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IC44NzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWNhbGxvdXQtYnJlYWtlciAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICB9XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIC5mZWF0dXJlZC12aWRlb19fY29udGVudCAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBmb250LXNpemU6IHJlbSgxNCk7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvX19pbm5lciAuZmVhdHVyZWQtdmlkZW9fX2NvbnRlbnQgLmNhbXBhaWduLWxvY2t1cF9fa2lja2VyIHtcbiAgICBmb250LXNpemU6IHJlbSgxNyk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDIuNDNweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgfVxufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLmNhbXBhaWduLWxvY2t1cF9faGVhZGluZyB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTZXJpZlwiLEhlYWRpbmcgQSxIZWFkaW5nIEIsQ2hyb25pY2xlIERpc3BsYXkgQSxDaHJvbmljbGUgRGlzcGxheSBCLHNlcmlmO1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuY2FtcGFpZ24tbG9ja3VwX19oZWFkaW5nLS1tZWRpdW0ge1xuICBmb250LWZhbWlseTogXCJOb3RvIFNlcmlmXCIsSGVhZGluZyBBLEhlYWRpbmcgQixDaHJvbmljbGUgRGlzcGxheSBBLENocm9uaWNsZSBEaXNwbGF5IEIsc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWNhbGxvdXQtYnJlYWtlciAuY2FtcGFpZ24tbG9ja3VwX19oZWFkaW5nLS1tZWRpdW0ge1xuICAgIGZvbnQtc2l6ZTogMi44MTI1cmVtO1xuICB9XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIC5mZWF0dXJlZC12aWRlb19fY29udGVudCAuY2FtcGFpZ24tbG9ja3VwX19oZWFkaW5nIHtcbiAgZm9udC1zaXplOiByZW0oMjUpO1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IC45NHB4O1xuICBtYXJnaW46IDMwcHggMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlb19faW5uZXIgLmZlYXR1cmVkLXZpZGVvX19jb250ZW50IC5jYW1wYWlnbi1sb2NrdXBfX2hlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogcmVtKDQ1KTtcbiAgICBsaW5lLWhlaWdodDogNTVweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMS43NXB4O1xuICB9XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuY2FtcGFpZ24tbG9ja3VwX19ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFdvcmsgU2FucyxzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIC5mZWF0dXJlZC12aWRlb19fY29udGVudCAuY2FtcGFpZ24tbG9ja3VwX19ib2R5IHtcbiAgZm9udC1zaXplOiByZW0oMTYpO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IC42cHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIC5mZWF0dXJlZC12aWRlb19fY29udGVudCAuY2FtcGFpZ24tbG9ja3VwX19ib2R5IHtcbiAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC44cHg7XG4gIH1cbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlbyAuYS1idG4tLXNlY29uZGFyeSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLWNhbGxvdXRfX2ltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW8tLW1hcmlhbmlzdCAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBjb2xvcjogIzhDNUJDRDtcbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlby0tcGFydGluZyAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBjb2xvcjogIzVDNjFGRjtcbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlby0tcHJlc2lkZW50cyAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBjb2xvcjogI0I0MTA2Qztcbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlby0tc3BvcnRzIC5jYW1wYWlnbi1sb2NrdXBfX2tpY2tlciB7XG4gIGNvbG9yOiAjODMyQjgzO1xufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvLS1wZXJjZXB0aW9ucyAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBjb2xvcjogIzdGMkM1ODtcbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlby0tYWx1bW5pIC5jYW1wYWlnbi1sb2NrdXBfX2tpY2tlciB7XG4gIGNvbG9yOiAjRDgyQjUzO1xufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvLS1jaGFwdGVyIC5jYW1wYWlnbi1sb2NrdXBfX2tpY2tlciB7XG4gIGNvbG9yOiAjRDI0ODEyO1xufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvLS1leHBlcnQgLmNhbXBhaWduLWxvY2t1cF9fa2lja2VyIHtcbiAgY29sb3I6ICNGOTc5MTI7XG59XG5cbi5vLWNhbGxvdXQtYnJlYWtlciAuZmVhdHVyZWQtdmlkZW8tLWhpZGRlbiAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBjb2xvcjogIzg0QkQ5NDtcbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlby0tZ29vZC13b3JrcyAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuICBjb2xvcjogI0E4Q0Q1Njtcbn1cblxuLm8tY2FsbG91dC1icmVha2VyIC5mZWF0dXJlZC12aWRlby0tYm9va3NoZWxmIC5jYW1wYWlnbi1sb2NrdXBfX2tpY2tlciB7XG4gIGNvbG9yOiAjMDBEOEFFO1xufVxuXG4uby1jYWxsb3V0LWJyZWFrZXIgLmZlYXR1cmVkLXZpZGVvLS1uby10YWcgLmNhbXBhaWduLWxvY2t1cF9fa2lja2VyIHtcbiAgY29sb3I6ICM2RDc0OEQ7XG59XG5cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBDb2xsZWN0aW9uIOKAoiBDYXJkc1xuICogRGVzYyA6IFByb3Blcmx5IGRpc3BsYXkgYSBjb2xsZWN0aW9uIG9yIFwiZ3JpZFwiIG9mIGNhcmRzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbGxlY3Rpb24g4oCiIENhcmRzIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29sbGVjdGlvbiDigKIgQ2FyZHMg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBDb2xsZWN0aW9uIOKAoiBDYXJkcyDigKIgQmFzZVxuXHQgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm8tY29sbGVjdGlvbi0tY2FyZHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG59XG5cbi8qKlxuXHQgKiBDb2xsZWN0aW9uIOKAoiBDYXJkcyDigKIgRWFjaCBDYXJkIGl0ZW1cblx0ICovXG4uby1jb2xsZWN0aW9uLS1jYXJkc19faXRlbSB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuby1jb2xsZWN0aW9uLS1jYXJkc19faXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAvKipcblx0XHRcdCAqIFdlIGhhdmUgdG8gZGVmaW5lIGEgY3VzdG9tIG9mZnNldCBoZXJlIHRvIHByb3Blcmx5IGFsaWduIG91clxuXHRcdFx0ICogY2FyZHMgd2l0aGluIG91ciBncmlkLiBJZiBDYXJkIHNpemVzIGNoYW5nZSwgdGhlIG9mZnNldCB3aWxsXG5cdFx0XHQgKiBhbHNvIGhhdmUgdG8gY2hhbmdlLlxuXHRcdFx0ICovXG4gICAgZmxleC1iYXNpczogY2FsYyggNTAlIC0gMTZweCk7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAuby1jb2xsZWN0aW9uLS1jYXJkc19faXRlbTpudGgtY2hpbGQob2RkKSB7XG4gICAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgfVxufVxuXG4vKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogQ29sbGVjdGlvbiDigKIgQ29udGVudFxuICogRGVzYyA6IFByb3Blcmx5IGRpc3BsYXkgYSBjb2xsZWN0aW9uIG9yIFwiZ3JpZFwiIG9mIGNvbnRlbnRcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgVURBWVRPTlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbGxlY3Rpb24g4oCiIENvbnRlbnQg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2xsZWN0aW9uIOKAoiBDb250ZW50IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogQ29sbGVjdGlvbiDigKIgQ29udGVudCDigKIgQmFzZVxuXHQgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm8tY29sbGVjdGlvbi0tY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cblxuLyoqXG5cdCAqIENvbGxlY3Rpb24g4oCiIENvbnRlbnQg4oCiIEVhY2ggQ29udGVudCBpdGVtXG5cdCAqL1xuLm8tY29sbGVjdGlvbi0tY29udGVudF9faXRlbSB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuby1jb2xsZWN0aW9uLS1jb250ZW50X19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qKlxuXHRcdFx0ICogV2UgaGF2ZSB0byBkZWZpbmUgYSBjdXN0b20gb2Zmc2V0IGhlcmUgdG8gcHJvcGVybHkgYWxpZ24gb3VyXG5cdFx0XHQgKiBjb250ZW50IHdpdGhpbiBvdXIgZ3JpZC4gSWYgQ29udGVudCBzaXplcyBjaGFuZ2UsIHRoZSBvZmZzZXQgd2lsbFxuXHRcdFx0ICogYWxzbyBoYXZlIHRvIGNoYW5nZS5cblx0XHRcdCAqL1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoIDUwJSAtIDE2cHgpO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm8tY29sbGVjdGlvbi0tY29udGVudF9faXRlbTpudGgtY2hpbGQob2RkKSB7XG4gICAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgfVxufVxuXG4uby1jb2xsZWN0aW9uLS1jb250ZW50X19pdGVtLS1mdyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQ0NDQ0M7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMzJweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLyoqXG5cdCogQ29sbGVjdGlvbiBDb250ZW50IEVhY2ggQ29udGVudCBJdGVtIENvbnRlbnRcblx0Ki9cbi5vLWNvbGxlY3Rpb24tLWNvbnRlbnRfX2l0ZW0tLWNvbnRlbnQge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi10b3A6IDMycHg7XG59XG5cbi5vLWNvbGxlY3Rpb24tLWNvbnRlbnRfX2l0ZW0gcCB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLm8tY29sbGVjdGlvbi0taW1hZ2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uby1jb2xsZWN0aW9uLS1pbWFnZXMtLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm8tY29sbGVjdGlvbi0taW1hZ2VzID4gKiB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZzogMzJweDtcbn1cblxuLm8tY29sbGVjdGlvbi0taW1hZ2VzLS0zID4gKiB7XG4gIGZsZXg6IDEgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuby1jb2xsZWN0aW9uLS1pbWFnZXMtLTMgPiAqIHtcbiAgICBmbGV4OiAxIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm8tY29sbGVjdGlvbi0taW1hZ2VzLS0zID4gKiB7XG4gICAgZmxleDogMSAwIDMzLjMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzJTtcbiAgfVxufVxuXG4uby1jb2xsZWN0aW9uLS1pbWFnZXMtLTQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5vLWNvbGxlY3Rpb24tLWltYWdlcy0tNCA+ICoge1xuICAgIGZsZXg6IDAgMCAzMy4zMyU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm8tY29sbGVjdGlvbi0taW1hZ2VzLS00ID4gKiB7XG4gICAgZmxleDogMSAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IENvbGxlY3Rpb24g4oCiIElzbGFuZHNcbiAqIERlc2MgOiBHcm91cCB0b2dldGhlciBpc2xhbmRzIGFuZCBkaXNwbGF5IHRoZW0gaW4gYSB1bmlxdWUgd2F5XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbGxlY3Rpb24g4oCiIElzbGFuZHMg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbGxlY3Rpb24g4oCiIElzbGFuZHMg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogQ29sbGVjdGlvbiDigKIgSXNsYW5kcyDigKIgQmFzZVxuXHQgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuby1jb2xsZWN0aW9uLS1pc2xhbmRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiBuby13cmFwO1xuICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcblx0ICogQ29sbGVjdGlvbiDigKIgSXNsYW5kcyDigKIgRWFjaCBJc2xhbmQgSXRlbVxuXHQgKi9cbi5vLWNvbGxlY3Rpb24tLWlzbGFuZHMgLm0taXNsYW5kIHtcbiAgLyoqXG5cdFx0ICogUHVsbCBpbiBvdXIgYXJ0aWNsZSBib3JkZXIgd2l0aCBhIGN1c3RvbSBjb2xvciB3aGVuIGlzbGFuZHMgY29sbGFwc2Vcblx0XHQgKiBkb3duIHRvIGZ1bGwtd2lkdGggYmxvY2tzLlxuXHRcdCAqL1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICMwMDZFQTE7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAvKipcblx0XHQgKiBBYm92ZSBhIGRlZmluZWQgc2NyZWVuIHNpemUsIHdlIHdhbnQgdG8gdW5zZXQgdG9wIGFuZCBib3R0b20gYm9yZGVyc1xuXHRcdCAqIHNvIHRoZSBhYm92ZSBydWxlIHRha2VzIGVmZmVjdCBhbmQgaXMgbm90IGFmZmVjdGVkIGJ5IGFueSBvdGhlciBib3JkZXJcblx0XHQgKiBkZWZpbml0aW9ucy5cblx0XHQgKi9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5vLWNvbGxlY3Rpb24tLWlzbGFuZHMgLm0taXNsYW5kIHtcbiAgICBib3JkZXItYm90dG9tOiB1bnNldDtcbiAgICBib3JkZXItdG9wOiB1bnNldDtcbiAgfVxufVxuXG4vKipcblx0ICogQ29sbGVjdGlvbiDigKIgSXNsYW5kcyDigKIgQ29sdW1uXG5cdCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5vLWNvbGxlY3Rpb24tLWlzbGFuZHNfX2NvbHVtbiB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBmbGV4OiAxO1xuICB9XG59XG5cbi8qKlxuXHQgKiBMZWZ0LWhhbmQgQ29sdW1uXG5cdCAqIFxuXHQgKiBUaGVyZSBzaG91bGQgdHJ1bHkgZXZlciBiZSAxIGlzbGFuZCBpbnNpZGUgb2YgdGhlIGxlZnQgY29sdW1uLiBUaGlzIHdpbGxcblx0ICogYWxsb3cgdGhlIGlzbGFuZCB0byBmbGV4IHRvIHRoZSBoZWlnaHQgb2YgMSBvciAyIGlzbGFuZHMgaW4gdGhlIHJpZ2h0LWhhbmQgXG5cdCAqIGNvbHVtbi5cblx0ICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm8tY29sbGVjdGlvbi0taXNsYW5kc19fY29sdW1uOm50aC1vZi10eXBlKDEpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlci1yaWdodDogMTBweCBzb2xpZCAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gIC5vLWNvbGxlY3Rpb24tLWlzbGFuZHNfX2NvbHVtbjpudGgtb2YtdHlwZSgxKSA+IC5tLWlzbGFuZCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogdW5zZXQ7XG4gIH1cbn1cblxuLyoqXG5cdCAqIFJpZ2h0LWhhbmQgQ29sdW1uXG5cdCAqIFxuXHQgKiBUaGUgcmlnaHQgY2FuIGNvbHVtbiBjYW4gaG9sZCBlaXRoZXIgMSBvciAyIElzbGFuZHMgd2l0aGluIGl0LFxuXHQgKiBidXQgc2hvdWxkIG5ldmVyIGhvbGQgYW55IG1vcmUgdGhhbiAyLlxuXHQgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuby1jb2xsZWN0aW9uLS1pc2xhbmRzX19jb2x1bW46bnRoLW9mLXR5cGUoMikgLm0taXNsYW5kOm50aC1vZi10eXBlKDIpIHtcbiAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBUeXBlIDogT3JnYW5pc21cbiAqIE5hbWUgOiBDb2xsZWN0aW9uIOKAoiBNeSBPbGQgSG91c2VcbiAqIERlc2MgOiBQcm9wZXJseSBkaXNwbGF5IGEgY29sbGVjdGlvbiBvciBcImdyaWRcIiBvZiBjYXJkc1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2xsZWN0aW9uIOKAoiBNeSBPbGQgSG91c2Ug4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2xsZWN0aW9uIOKAoiBNeSBPbGQgSG91c2Ug4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICAgKiBDb2xsZWN0aW9uIOKAoiBNeSBPbGQgSG91c2Ug4oCiIEJhc2VcbiAgICovXG4uby1jb2xsZWN0aW9uLS1teS1vbGQtaG91c2Uge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uby1jb2xsZWN0aW9uLS1teS1vbGQtaG91c2UgLm0tY2FyZC0tbXktb2xkLWhvdXNlIHtcbiAgbWluLXdpZHRoOiAzNTBweDtcbn1cblxuLyoqXG4gICAqIENvbGxlY3Rpb24g4oCiIE15IE9sZCBIb3VzZSDigKIgRWFjaCBDYXJkIGl0ZW1cbiAgICovXG4uby1jb2xsZWN0aW9uLS1teS1vbGQtaG91c2VfX2l0ZW0ge1xuICBmbGV4OiAwIDAgMzMuMzMlO1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4vKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogQ29udmVyc2F0aW9uXG4gKiBEZXNjIDogQSB3cmFwcGVyIGZvciBwb3N0IGNvbW1lbnRzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbnZlcnNhdGlvbiDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbnZlcnNhdGlvbiDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4uby1jb252ZXJzYXRpb24ge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA5NnB4O1xuICBwYWRkaW5nLWJvdHRvbTogOTZweDtcbn1cblxuLm8tY29udmVyc2F0aW9uX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDcwMHB4O1xufVxuXG4uby1mYWN0cy1maWd1cmVzIHtcbiAgcGFkZGluZy10b3A6IDkwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA5MHB4O1xufVxuXG4uby1mYWN0cy1maWd1cmVzIC5jb250YWluZXIge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vLWZhY3RzLWZpZ3VyZXMgLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZhY3RzLWZpZ3VyZXMgLmNvbnRhaW5lciB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZhY3RzLWZpZ3VyZXMge1xuICAgIHBhZGRpbmctdG9wOiAxMzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7XG4gIH1cbn1cblxuLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IENoYW1waW9uIFdlbHRlcnd0IEEsQ2hhbXBpb24gV2VsdGVyd3QgQixDaGFtcGlvbiBIVEYtV2VsdGVyd2VpZ2h0LHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAzLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBsZXR0ZXItc3BhY2luZzogMS40cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1mYWN0cy1maWd1cmVzIC5oaWdoTWV0cmljc19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAuODtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEyMHB4O1xuICB9XG59XG5cbi5vLWZhY3RzLWZpZ3VyZXMgdWwge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX21ldHJpY3MtLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1mYWN0cy1maWd1cmVzIC5oaWdoTWV0cmljc19fbWV0cmljcy0tbGlzdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cblxuLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX21ldHJpY3MtLWxpc3QgLm1ldHJpY3NfX3RocmVlLWNhcmRzIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX21ldHJpY3MtLWxpc3QgLm1ldHJpY3NfX3RocmVlLWNhcmRzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX21ldHJpY3MtLWxpc3QgLm1ldHJpY3NfX3RocmVlLWNhcmRzIHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbi5vLWZhY3RzLWZpZ3VyZXMgLmhpZ2hNZXRyaWNzX19tZXRyaWNzLS1saXN0IC5tZXRyaWNzX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX21ldHJpY3MtLWxpc3QgLm1ldHJpY3NfX3dyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1mYWN0cy1maWd1cmVzIC5oaWdoTWV0cmljc19fbWV0cmljcy0tbGlzdCAubWV0cmljc19fd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uby1mYWN0cy1maWd1cmVzIC5oaWdoTWV0cmljc19fbWV0cmljcy0tbGlzdCAubWV0cmljc19fd3JhcHBlcjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX21ldHJpY3MtLWxpc3QgLmhpZ2hNZXRyaWNzX19saXN0LS1oaWdobGlnaHQge1xuICBmb250LWZhbWlseTogTGFiZWwgQSxMYWJlbCBCLENoYW1waW9uIExpZ2h0d3QgQSxDaGFtcGlvbiBMaWdodHd0IEIsQ2hhbXBpb24gSFRGLUxpZ2h0d2VpZ2h0LHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyLjc1cmVtO1xuICBsaW5lLWhlaWdodDogLjk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tZmFjdHMtZmlndXJlcyAuaGlnaE1ldHJpY3NfX21ldHJpY3MtLWxpc3QgLmhpZ2hNZXRyaWNzX19saXN0LS1oaWdobGlnaHQge1xuICAgIGZvbnQtc2l6ZTogMy43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogLjk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgfVxufVxuXG4uby1mYWN0cy1maWd1cmVzIC5oaWdoTWV0cmljc19fbWV0cmljcy0tbGlzdCAuaGlnaE1ldHJpY3NfX2xpc3QtLXRleHQge1xuICBmb250LWZhbWlseTogXCJOb3RvIFNlcmlmXCIsSGVhZGluZyBBLEhlYWRpbmcgQixDaHJvbmljbGUgRGlzcGxheSBBLENocm9uaWNsZSBEaXNwbGF5IEIsc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBsZXR0ZXItc3BhY2luZzogLjZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1mYWN0cy1maWd1cmVzIC5oaWdoTWV0cmljc19fbWV0cmljcy0tbGlzdCAuaGlnaE1ldHJpY3NfX2xpc3QtLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjhweDtcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICB9XG59XG5cbi5vLWZhY3RzLWZpZ3VyZXMgLmEtYnRuLS1zZWNvbmRhcnkge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5oaWdoTWV0cmljc19fbGlzdC0taGlnaGxpZ2h0LS10aGVtZS0tbWFyaWFuaXN0IHtcbiAgY29sb3I6ICM4QzVCQ0Q7XG59XG5cbi5oaWdoTWV0cmljc19fbGlzdC0taGlnaGxpZ2h0LS10aGVtZS0tcGFydGluZyB7XG4gIGNvbG9yOiAjNUM2MUZGO1xufVxuXG4uaGlnaE1ldHJpY3NfX2xpc3QtLWhpZ2hsaWdodC0tdGhlbWUtLXByZXNpZGVudHMge1xuICBjb2xvcjogI0I0MTA2Qztcbn1cblxuLmhpZ2hNZXRyaWNzX19saXN0LS1oaWdobGlnaHQtLXRoZW1lLS1zcG9ydHMge1xuICBjb2xvcjogIzgzMkI4Mztcbn1cblxuLmhpZ2hNZXRyaWNzX19saXN0LS1oaWdobGlnaHQtLXRoZW1lLS1wZXJjZXB0aW9ucyB7XG4gIGNvbG9yOiAjN0YyQzU4O1xufVxuXG4uaGlnaE1ldHJpY3NfX2xpc3QtLWhpZ2hsaWdodC0tdGhlbWUtLWFsdW1uaSB7XG4gIGNvbG9yOiAjRDgyQjUzO1xufVxuXG4uaGlnaE1ldHJpY3NfX2xpc3QtLWhpZ2hsaWdodC0tdGhlbWUtLWNoYXB0ZXIge1xuICBjb2xvcjogI0QyNDgxMjtcbn1cblxuLmhpZ2hNZXRyaWNzX19saXN0LS1oaWdobGlnaHQtLXRoZW1lLS1leHBlcnQge1xuICBjb2xvcjogI0Y5NzkxMjtcbn1cblxuLmhpZ2hNZXRyaWNzX19saXN0LS1oaWdobGlnaHQtLXRoZW1lLS1oaWRkZW4ge1xuICBjb2xvcjogIzg0QkQ5NDtcbn1cblxuLmhpZ2hNZXRyaWNzX19saXN0LS1oaWdobGlnaHQtLXRoZW1lLS1nb29kLXdvcmtzIHtcbiAgY29sb3I6ICNBOENENTY7XG59XG5cbi5oaWdoTWV0cmljc19fbGlzdC0taGlnaGxpZ2h0LS10aGVtZS0tYm9va3NoZWxmIHtcbiAgY29sb3I6ICMwMEQ4QUU7XG59XG5cbi5oaWdoTWV0cmljc19fbGlzdC0taGlnaGxpZ2h0LS10aGVtZS0tbm8tdGFnIHtcbiAgY29sb3I6ICM2RDc0OEQ7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgIHNlbGVjdG9yLW1heC10eXBlICovXG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG5fX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG5fX2Nhcm91c2VsLWFycm93IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxYjQ4O1xuICBib3JkZXI6IDA7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG5fX2Nhcm91c2VsLWFycm93LS1sZWZ0IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmJ0bl9fY2Fyb3VzZWwtYXJyb3c6aG92ZXIsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG5fX2Nhcm91c2VsLWFycm93OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMDBkYTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgYS5idG4uYnRuLXJlZCwgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgYS5idG4uYnRuLWJsdWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmJ0biB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBmb250OiBpbmhlcml0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBpbmhlcml0O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogXCJMYWJlbCBBXCIsIFwiTGFiZWwgQlwiLCBcIkNoYW1waW9uIExpZ2h0d3QgQVwiLCBcIkNoYW1waW9uIExpZ2h0d3QgQlwiLCBcIkNoYW1waW9uIEhURi1MaWdodHdlaWdodFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBtYXJnaW46IDE1cHggMDtcbiAgcGFkZGluZzogMTVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWUwMDE5O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG4ge1xuICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICB9XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG46aG92ZXIsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDUwMDE2O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYnRuLmJ0bi1yZWQge1xuICBmb250LWZhbWlseTogXCJXb3JrIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIG1hcmdpbjogNXB4IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlMDAxOTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZWUwMDE5O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYnRuLmJ0bi1yZWQge1xuICAgIHdpZHRoOiAxNzVweDtcbiAgfVxufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYnRuLmJ0bi1yZWQ6aG92ZXIsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG4uYnRuLXJlZDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMjAwZGE7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMxMjAwZGE7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG4uYnRuLXJlZC5idG4tb3V0bGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZWUwMDE5O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYnRuLmJ0bi1yZWQuYnRuLW91dGxpbmU6aG92ZXIsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG4uYnRuLXJlZC5idG4tb3V0bGluZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZTAwMTk7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlZTAwMTk7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5idG4uYnRuLWJsdWUge1xuICBmb250LWZhbWlseTogXCJXb3JrIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxNXB4IDA7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIG1hcmdpbjogNXB4IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMDBkYTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDJweCBzb2xpZCAjMTIwMGRhO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYnRuLmJ0bi1ibHVlIHtcbiAgICB3aWR0aDogMTc1cHg7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmJ0bi5idG4tYmx1ZS5idG4tb3V0bGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBzb2xpZCAjMTIwMGRhO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYnRuLmJ0bi1ibHVlOmhvdmVyLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYnRuLmJ0bi1ibHVlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlMDAxOTtcbiAgYm9yZGVyOiAycHggc29saWQgI2VlMDAxOTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc29jaWFsLWxpbmtzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc29jaWFsLWxpbmtzIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX3NvY2lhbC1saW5rcy1jb250YWluZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zb2NpYWwtbGlua3MtY29udGFpbmVyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX3NvY2lhbC1saW5rIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgZmlsbDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNlZTAwMTk7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdXRsaW5lOiAwO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zb2NpYWwtbGlua19kYXJrIC5zb2NpYWwtaWNvbiB7XG4gIGZpbGw6IGJsYWNrO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zb2NpYWwtbGlua19saWdodCAuc29jaWFsLWljb24ge1xuICBmaWxsOiB3aGl0ZTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc29jaWFsLWxpbms6aG92ZXIsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX3NvY2lhbC1saW5rOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlMDAxOTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc29jaWFsLWxpbms6aG92ZXIgLnNvY2lhbC1pY29uLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zb2NpYWwtbGluazpmb2N1cyAuc29jaWFsLWljb24ge1xuICBmaWxsOiB3aGl0ZTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLnNvY2lhbC1pY29uIHtcbiAgd2lkdGg6IDEycHg7XG4gIGZpbGw6IGJsYWNrO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zdGFuZGFyZCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiAjMTIwMGRhO1xuICBvdXRsaW5lOiAwO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zdGFuZGFyZDpob3ZlciwgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc3RhbmRhcmQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zdGFuZGFyZDpob3ZlciAuY3RhX19hcnJvdywgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc3RhbmRhcmQ6Zm9jdXMgLmN0YV9fYXJyb3cge1xuICBmaWxsOiAjMTcxYjQ4O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zdGFuZGFyZF9pbnZvbHZlIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgZm9udC1mYW1pbHk6IFwiV29yayBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xODc1O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogMDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiAjMTIwMGRhO1xuICBvdXRsaW5lOiAwO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zdGFuZGFyZF9pbnZvbHZlOmhvdmVyLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zdGFuZGFyZF9pbnZvbHZlOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMik7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX3N0YW5kYXJkX2ludm9sdmU6aG92ZXIgLmN0YV9fYXJyb3csIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX3N0YW5kYXJkX2ludm9sdmU6YWN0aXZlIC5jdGFfX2Fycm93IHtcbiAgZmlsbDogIzE3MWI0ODtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fY29weSB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDApO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuaGlnaGxpZ2h0X19zdGFuZGFyZCB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiAjMTIwMGRhO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZCB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3JkZXItY29sb3IsIGNvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZCB7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgfVxufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZC0tbGlnaHQge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI2U1ZTVlNTtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGNvbG9yOiAjMTIwMGRhO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZC0tbGlnaHQ6aG92ZXIsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2ZlYXR1cmVkLS1saWdodDpmb2N1cyB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBmM2ZmO1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC4yKTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0OmhvdmVyIC5jdGFfX2Fycm93LCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZC0tbGlnaHQ6Zm9jdXMgLmN0YV9fYXJyb3cge1xuICBmaWxsOiAjMTcxYjQ4O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZC0tbGlnaHQtYWN0aXZlIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMwMGYzZmY7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZC0tbGlnaHQtYWN0aXZlIC5jdGFfX2Fycm93IHtcbiAgZmlsbDogIzE3MWI0ODtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0LWFjdGl2ZTpob3ZlciwgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0LWFjdGl2ZTpmb2N1cyB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuICBib3JkZXItd2lkdGg6IDJweDtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fZmVhdHVyZWQtLWRhcmsge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzEyMDBkYTtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fZmVhdHVyZWQtLWRhcms6aG92ZXIsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2ZlYXR1cmVkLS1kYXJrOmZvY3VzIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMwMGYzZmY7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19mZWF0dXJlZC0tZGFyazpob3ZlciAuY3RhX19hcnJvdywgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fZmVhdHVyZWQtLWRhcms6Zm9jdXMgLmN0YV9fYXJyb3cge1xuICBmaWxsOiAjMTcxYjQ4O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19iYXNpYyB7XG4gIGNvbG9yOiAjMWUxZTExO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2Jhc2ljOmhvdmVyLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19iYXNpYzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMik7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2Jhc2ljOmhvdmVyIC5jdGFfX2Jhc2ljLWNvcHksIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2Jhc2ljOmZvY3VzIC5jdGFfX2Jhc2ljLWNvcHkge1xuICBjb2xvcjogIzFlMWUxMTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc2Vjb25kYXJ5LW5hdiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc2Vjb25kYXJ5LW5hdjpob3ZlciwgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fc2Vjb25kYXJ5LW5hdjpmb2N1cyB7XG4gIGNvbG9yOiAjMDBmM2ZmO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zaWRlLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6ICMxZTFlMTE7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX3NlY29uZGFyeS1uYXYtLWNvcHkge1xuICBmb250LWZhbWlseTogXCJXb3JrIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE4NzU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fYmFzaWMtY29weSB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19iYXNpYy1jb3B5OmhvdmVyLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19iYXNpYy1jb3B5OmZvY3VzIHtcbiAgY29sb3I6ICMxZTFlMTE7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2ZlYXR1cmVkLWNvcHkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwKTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fYXJyb3cge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBmaWxsO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGZpbGw6ICMwMGYzZmY7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2Fycm93LS1leHRlcm5hbCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fYXJyb3ctLWZvbGRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19hcnJvdy1uYXYgc3ZnIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19maWx0ZXItY2hhcmFjdGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiTGFiZWwgQVwiLCBcIkxhYmVsIEJcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEFcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEJcIiwgXCJDaGFtcGlvbiBIVEYtTGlnaHR3ZWlnaHRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogNHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyMjksIDIyOSwgMjI5LCAwKTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvcmRlci1jb2xvciwgY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM3NTc1NzU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19maWx0ZXItY2hhcmFjdGVyOmhvdmVyLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19maWx0ZXItY2hhcmFjdGVyOmZvY3VzIHtcbiAgY29sb3I6ICNlZTAwMTk7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2ZpbHRlci1jaGFyYWN0ZXI6YWN0aXZlIHtcbiAgY29sb3I6ICNlZTAwMTk7XG4gIGJvcmRlci1jb2xvcjogI2U1ZTVlNTtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmFycm93LWljb24ge1xuICB3aWR0aDogMTVweDtcbiAgbWF4LXdpZHRoOiAxNXB4O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYXJyb3cge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogMi4wMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5hcnJvdyAuY3RhX19hcnJvdyB7XG4gIHBhZGRpbmc6IDAgMCAwIDEwcHg7XG4gIG1hcmdpbi10b3A6IC00cHg7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5hcnJvdyAuY3RhX19hcnJvdyAuYXJyb3ctaWNvbiB7XG4gIGZpbGw6ICNlZTAwMTk7XG4gIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmFycm93OmhvdmVyIHtcbiAgY29sb3I6ICNlZTAwMTk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuYXJyb3c6aG92ZXIgLmFycm93LWljb24ge1xuICBmaWxsOiAjMDIwMGQxO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19jYW1wYWlnbiB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgY29sb3I6ICMwMjAwZDE7XG4gIGxldHRlci1zcGFjaW5nOiAxLjc1cHg7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5jdGFfX2NhbXBhaWduIC5jdGFfX2NvcHkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y4MDIyODtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogMCAwIDVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMTNweDtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fY2FtcGFpZ246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmN0YV9fY2FtcGFpZ246aG92ZXIgLmN0YV9fY29weSB7XG4gIGNvbG9yOiAjZjgwMjI4O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuY3RhX19zb2NpYWwtbGlua3Mge1xuICBmb250LWZhbWlseTogXCJDaGFtcGlvbiBIVEYtTGlnaHR3ZWlnaHRcIjtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQuZmVhdFRleHRfX3RleHQtLWRhcmsgcCxcbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dC5mZWF0VGV4dF9fdGV4dC0tZGFyayBoMiB7XG4gIGNvbG9yOiAjMTcxYjQ4O1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQuZmVhdFRleHRfX3RleHQtLWxpZ2h0IHAsXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQuZmVhdFRleHRfX3RleHQtLWxpZ2h0IGgyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgYTpub3QoW2NsYXNzXSkge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6ICNmODAyMjg7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCBhOm5vdChbY2xhc3NdKTpob3ZlciwgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IGE6bm90KFtjbGFzc10pOnZpc2l0ZWQsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCBhOm5vdChbY2xhc3NdKTphY3RpdmUge1xuICBjb2xvcjogI2Y4MDIyODtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fYmdJbWctLXBsYWluIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi8wL18yMDE5L2ltYWdlcy9ncmFwaGljcy9iYWNrZ3JvdW5kLWZlYXRUZXh0MS5wbmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fYmdJbWctLXBsYWluU3RyaXBlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvMC9fMjAxOS9pbWFnZXMvZ3JhcGhpY3MvYmFja2dyb3VuZC1mZWF0VGV4dDEucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19iZ0ltZy0tcGxhaW5TdHJpcGVzOmFmdGVyIHtcbiAgY29udGVudDogdXJsKFwiLzAvXzIwMTkvaW1hZ2VzL2dyYXBoaWNzL2dyYXBoaWMtZGlhZ0xpbmVzLnBuZ1wiKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNTBweDtcbiAgbGVmdDogLTY1cHg7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2JnSW1nLS1wbGFpblN0cmlwZXM6YWZ0ZXIge1xuICAgIHRvcDogLTVweDtcbiAgICBsZWZ0OiAtMjVweDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fYmdJbWctLWRpYWdvbmFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi8wL18yMDE5L2ltYWdlcy9ncmFwaGljcy9iYWNrZ3JvdW5kLWJsdWVEaWFnb25hbHMucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19iZ0ltZy0tZGlhZ29uYWwuZmVhdFRleHRfX292ZXJsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxQjQ4O1xuICBvcGFjaXR5OiAwLjg7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT04MCk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDIwO1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIgaDIsXG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciBwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciBoMixcbiAgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyIHAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIgcCB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciBoMiwgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyIGgyICoge1xuICBmb250LWZhbWlseTogXCJOb3RvIFNlcmlmXCIsIFwiSGVhZGluZyBBXCIsIFwiSGVhZGluZyBCXCIsIFwiQ2hyb25pY2xlIERpc3BsYXkgQVwiLCBcIkNocm9uaWNsZSBEaXNwbGF5IEJcIiwgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgcGFkZGluZy1ib3R0b206IDkwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLXNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE0MHB4O1xuICB9XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1zbWFsbCBoMiBwLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tc21hbGwgaDIge1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAxLjJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tc21hbGwgaDIgcCwgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLXNtYWxsIGgyIHtcbiAgICBmb250LXNpemU6IDMuNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuOTtcbiAgICBsZXR0ZXItc3BhY2luZzogMi4zcHg7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLXNtYWxsIHAge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjg3NTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1zbWFsbCBwIHtcbiAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuOXB4O1xuICB9XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1sYXJnZSB7XG4gIHBhZGRpbmctdG9wOiA5NXB4O1xuICBwYWRkaW5nLWJvdHRvbTogOTVweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLWxhcmdlIGgyIHAsIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1sYXJnZSBoMiB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1sYXJnZSBoMiBwLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tbGFyZ2UgaDIge1xuICAgIGZvbnQtc2l6ZTogMy4xMjVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuOXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLWxhcmdlIHAge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjg3NTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tbGFyZ2UgcCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS45O1xuICB9XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi13LXN0cmlwZXMge1xuICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA5MHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi13LXN0cmlwZXMge1xuICAgIHBhZGRpbmctdG9wOiAxNjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLXctc3RyaXBlcyBoMiBwLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4tdy1zdHJpcGVzIGgyIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLXctc3RyaXBlcyBoMiBwLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4tdy1zdHJpcGVzIGgyIHtcbiAgICBmb250LXNpemU6IDMuNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuOTtcbiAgICBsZXR0ZXItc3BhY2luZzogMi4zcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgfVxufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4tdy1zdHJpcGVzIHAge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjdweDtcbiAgbGluZS1oZWlnaHQ6IDEuOTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4tdy1zdHJpcGVzIHAge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLWRpYWdvbmFsIHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA1NXB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1kaWFnb25hbCB7XG4gICAgcGFkZGluZy10b3A6IDEyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3MHB4O1xuICB9XG59XG5cbi5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1kaWFnb25hbCBoMiBwLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctZGlhZ29uYWwgaDIge1xuICBmb250LXNpemU6IDIuMTg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1kaWFnb25hbCBoMiBwLCAuby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctZGlhZ29uYWwgaDIge1xuICAgIGZvbnQtc2l6ZTogMy43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMC45O1xuICAgIGxldHRlci1zcGFjaW5nOiAyLjNweDtcbiAgfVxufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctZGlhZ29uYWwgcCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODc1O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1kaWFnb25hbCBwIHtcbiAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY3RhLS1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY3RhLS1jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4uby1mZWF0dXJlLXRleHQtYnJlYWtlciAuZmVhdFRleHQgLmZlYXRUZXh0X19jdGEtLWNvbnRhaW5lciBsaSB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vLWZlYXR1cmUtdGV4dC1icmVha2VyIC5mZWF0VGV4dCAuZmVhdFRleHRfX2N0YS0tY29udGFpbmVyIGxpOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ1cHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tZmVhdHVyZS10ZXh0LWJyZWFrZXIgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY3RhLS1jb250YWluZXIgbGk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG4gIH1cbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IEZpbHRlciBCYXJcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRmlsdGVyIEJhciDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZpbHRlciBCYXIg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIEZpbHRlciBCYXIg4oCiIEJhc2Vcblx0ICovXG4uby1maWx0ZXItYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MUI0ODtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xufVxuXG4uby1maWx0ZXItYmFyX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbn1cblxuLnRoZS1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNzJkZWcsICMwMDAgMiUsICMxNzFiNDggMzAlKTtcbn1cblxuLnRoZS1mb290ZXIgYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLnRoZS1mb290ZXJfX3dyYXBwZXIge1xuICBtYXgtd2lkdGg6IDEwNTBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA2MHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC50aGUtZm9vdGVyX193cmFwcGVyIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbiAgfVxufVxuXG4udGhlLWZvb3Rlcl9fYWRkcmVzcywgLnRoZS1mb290ZXJfX2N0YXMsIC50aGUtZm9vdGVyX19mZWF0dXJlZC1jdGFzIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAudGhlLWZvb3Rlcl9fYWRkcmVzcywgLnRoZS1mb290ZXJfX2N0YXMsIC50aGUtZm9vdGVyX19mZWF0dXJlZC1jdGFzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLnRoZS1mb290ZXJfX2FkZHJlc3MsIC50aGUtZm9vdGVyX19jdGFzLCAudGhlLWZvb3Rlcl9fZmVhdHVyZWQtY3RhcyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAudGhlLWZvb3Rlcl9fYWRkcmVzcywgLnRoZS1mb290ZXJfX2N0YXMsIC50aGUtZm9vdGVyX19mZWF0dXJlZC1jdGFzIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICB9XG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzLCAudGhlLWZvb3Rlcl9fY3RhcyB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzIC5saXN0X19saW5rIC5jdGFfX2Jhc2ljIC5jdGFfX2Jhc2ljLWNvcHksIC50aGUtZm9vdGVyX19jdGFzIC5saXN0X19saW5rIC5jdGFfX2Jhc2ljIC5jdGFfX2Jhc2ljLWNvcHkge1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLnRoZS1mb290ZXJfX2FkZHJlc3MsIC50aGUtZm9vdGVyX19jdGFzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi50aGUtZm9vdGVyX19pbWFnZV9jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC50aGUtZm9vdGVyX19pbWFnZV9jb250YWluZXIge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkgYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnRoZS1mb290ZXJfX2ltYWdlX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgfVxufVxuXG4udGhlLWZvb3Rlcl9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogb2JqZWN0LWZpdFxcOmNvdmVyO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmZvb3Rlci1sb2dvIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBmaWxsO1xuICB3aWR0aDogMjAwcHg7XG4gIGZpbGw6ICNmZmY7XG59XG5cbi5mb290ZXItbG9nbzpmb2N1cywgLmZvb3Rlci1sb2dvOmhvdmVyIHtcbiAgZmlsbDogIzAwZjNmZjtcbn1cblxuLnRoZS1mb290ZXJfX2FkZHJlc3Mge1xuICBmb250LWZhbWlseTogV29yayBTYW5zO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzIHAge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4udGhlLWZvb3Rlcl9fYWRkcmVzcyBhLCAudGhlLWZvb3Rlcl9fYWRkcmVzcyBzdHJvbmcge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4udGhlLWZvb3Rlcl9fZmVhdHVyZWQtY3RhcyAubGlzdF9fbGluay1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnRoZS1mb290ZXJfX2hvbWUtY3RhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdXRsaW5lOiAwO1xufVxuXG4udGhlLWZvb3Rlcl9faG9tZS1jdGE6Zm9jdXMgLmZvb3Rlci1sb2dvLCAudGhlLWZvb3Rlcl9faG9tZS1jdGE6aG92ZXIgLmZvb3Rlci1sb2dvIHtcbiAgZmlsbDogIzAwZjNmZjtcbn1cblxuLnRoZS1mb290ZXJfX2FkZHJlc3MtbWV0YSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi5mb290ZXJfX2FuY2hvciB7XG4gIHBhZGRpbmctdG9wOiAzMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWI0ODtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMik7XG4gIGJvcmRlci10b3Atd2lkdGg6IDJweDtcbn1cblxuLmZvb3Rlcl9fYW5jaG9yLW5hdiB7XG4gIG1heC13aWR0aDogMTA1MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuXG4uZm9vdGVyX19hbmNob3ItbGlzdCB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgY29sdW1uLWNvdW50OiAyO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZm9vdGVyX19hbmNob3ItbGlzdCB7XG4gICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5mb290ZXJfX2FuY2hvci1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxufVxuXG4uZm9vdGVyX19hbmNob3ItbGluayB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogQ2hhbXBpb24gTGlnaHR3dCBBLENoYW1waW9uIExpZ2h0d3QgQjtcbiAgZm9udC1zaXplOiAuOHJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvcjtcbiAgY29sb3I6ICNmZmY7XG4gIG91dGxpbmU6IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mb290ZXJfX2FuY2hvci1saW5rIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cblxuLmZvb3Rlcl9fYW5jaG9yLWxpbms6Zm9jdXMsIC5mb290ZXJfX2FuY2hvci1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMwMGYzZmY7XG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzLWN0YSB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XG4gIG91dGxpbmU6IDA7XG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzLWN0YTpmb2N1cywgLnRoZS1mb290ZXJfX2FkZHJlc3MtY3RhOmhvdmVyIHtcbiAgY29sb3I6ICMwMGYzZmY7XG59XG5cbi5jdGFfX2ZlYXR1cmVkLCAuaGlnaGxpZ2h0X19zdGFuZGFyZCB7XG4gIGZvbnQtZmFtaWx5OiBXb3JrIFNhbnM7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xODc1O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi5jdGFfX2ZlYXR1cmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiAwO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IC4yNXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvcmRlci1jb2xvcixjb2xvcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmN0YV9fZmVhdHVyZWQge1xuICAgIG1heC13aWR0aDogMzAwcHg7XG4gIH1cbn1cblxuLmxpc3RfX2xpbmstbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5saXN0X19saW5rIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmxpc3RfX2xpbmssIC5saXN0X19saW5rIC5jdGFfX2Jhc2ljIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvcixib3JkZXItY29sb3I7XG59XG5cbi5saXN0X19saW5rIC5jdGFfX2Jhc2ljIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc1NzU3NTtcbn1cblxuLmxpc3RfX2xpbmsgLmN0YV9fYmFzaWM6Zm9jdXMgLmN0YV9fYmFzaWMtY29weSwgLmxpc3RfX2xpbmsgLmN0YV9fYmFzaWM6aG92ZXIgLmN0YV9fYmFzaWMtY29weSB7XG4gIGNvbG9yOiAjMDBmM2ZmO1xufVxuXG4ubGlzdF9fbGluazpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5saXN0X19saW5rOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubGlzdF9fbGluay1jdGEge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJvcmRlcjogMDtcbn1cblxuLmN0YV9fZmVhdHVyZWQtLWxpZ2h0IHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZTVlNWU1O1xuICBjb2xvcjogIzEyMDBkYTtcbn1cblxuLmN0YV9fZmVhdHVyZWQtLWxpZ2h0OmZvY3VzLCAuY3RhX19mZWF0dXJlZC0tbGlnaHQ6aG92ZXIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMGYzZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMik7XG59XG5cbi5jdGFfX2ZlYXR1cmVkLS1saWdodDpmb2N1cyAuY3RhX19hcnJvdywgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0OmhvdmVyIC5jdGFfX2Fycm93IHtcbiAgZmlsbDogIzE3MWI0ODtcbn1cblxuLmN0YV9fZmVhdHVyZWQtLWRhcmsge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMxMjAwZGE7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uY3RhX19mZWF0dXJlZC0tZGFyazpmb2N1cywgLmN0YV9fZmVhdHVyZWQtLWRhcms6aG92ZXIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMGYzZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMik7XG59XG5cbi5jdGFfX2ZlYXR1cmVkLS1kYXJrOmZvY3VzIC5jdGFfX2Fycm93LCAuY3RhX19mZWF0dXJlZC0tZGFyazpob3ZlciAuY3RhX19hcnJvdyB7XG4gIGZpbGw6ICMxNzFiNDg7XG59XG5cbi5jdGFfX3NvY2lhbC1saW5rIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLGZpbGw7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlMDAxOTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3V0bGluZTogMDtcbn1cblxuLmN0YV9fc29jaWFsLWxpbmstcmVkIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLGZpbGw7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0NFMTE0MTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NFMTE0MTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3V0bGluZTogMDtcbn1cblxuLmN0YV9fc29jaWFsLWxpbmstYWN0aW9uLWJhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcixmaWxsO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3YjdiN2I7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5jdGFfX3NvY2lhbC1saW5rX2RhcmsgLnNvY2lhbC1pY29uIHtcbiAgZmlsbDogIzAwMDtcbn1cblxuLmN0YV9fc29jaWFsLWxpbmtfbGlnaHQgLnNvY2lhbC1pY29uIHtcbiAgZmlsbDogI2ZmZjtcbn1cblxuLmN0YV9fc29jaWFsLWxpbms6Zm9jdXMsIC5jdGFfX3NvY2lhbC1saW5rOmhvdmVyLCAuY3RhX19zb2NpYWwtbGluay1hY3Rpb24tYmFyOmZvY3VzLCAuY3RhX19zb2NpYWwtbGluay1hY3Rpb24tYmFyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlMDAxOTtcbn1cblxuLmN0YV9fc29jaWFsLWxpbmstcmVkOmZvY3VzLCAuY3RhX19zb2NpYWwtbGluay1yZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uY3RhX19zb2NpYWwtbGluazpmb2N1cyAuc29jaWFsLWljb24sIC5jdGFfX3NvY2lhbC1saW5rOmhvdmVyIC5zb2NpYWwtaWNvbiwgLmN0YV9fc29jaWFsLWxpbmstYWN0aW9uLWJhcjpmb2N1cyAuc29jaWFsLWljb24sIC5jdGFfX3NvY2lhbC1saW5rLWFjdGlvbi1iYXI6aG92ZXIgLnNvY2lhbC1pY29uIHtcbiAgZmlsbDogI2ZmZjtcbn1cblxuLmN0YV9fc29jaWFsLWxpbmstcmVkOmZvY3VzLCAuY3RhX19zb2NpYWwtbGluay1yZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uY3RhX19zb2NpYWwtbGluay1yZWQ6Zm9jdXMgLnNvY2lhbC1pY29uLCAuY3RhX19zb2NpYWwtbGluay1yZWQ6aG92ZXIgLnNvY2lhbC1pY29uIHtcbiAgZmlsbDogIzAwMDtcbn1cblxuLnNvY2lhbC1pY29uIHtcbiAgd2lkdGg6IDEycHg7XG4gIGZpbGw6ICMwMDA7XG59XG5cbi5hcnJvdy1pY29uIHtcbiAgd2lkdGg6IDE1cHg7XG4gIG1heC13aWR0aDogMTVweDtcbn1cblxuLmFjY2Vzcy1oaWRkZW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLmN0YV9fZmVhdHVyZWQtY29weSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwKTtcbn1cblxuLmN0YV9fYXJyb3csIC5jdGFfX2ZlYXR1cmVkLWNvcHkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5jdGFfX2Fycm93IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBmaWxsO1xuICBmaWxsOiAjMDBmM2ZmO1xufVxuXG4uY3RhX19hcnJvdy0tZXh0ZXJuYWwge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG5cbi5jdGFfX2Fycm93LW5hdiBzdmcge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbi5jdGFfX3NvY2lhbC1saW5rcy1jb250YWluZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uY3RhX19zb2NpYWwtbGlua3MtY29udGFpbmVyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBHcmlkIEdhbGxlcnlcbiAqIERlc2MgOiBBIGdyaWQgb2YgaW1hZ2VzIHVzZWQgZm9yIGRpc3BsYXlpbmcgYSBzaW1wbGUgaW1hZ2UgZ2FsbGVyeS5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogR3JpZCBHYWxsZXJ5IOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogR3JpZCBHYWxsZXJ5IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5vLWdyaWQtZ2FsbGVyeSB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA5NnB4O1xufVxuXG4uby1ncmlkLWdhbGxlcnlfX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogLTElO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm8tZ3JpZC1nYWxsZXJ5X19jb250YWluZXIge1xuICAgIG1hcmdpbi1yaWdodDogLTEuMzMlO1xuICB9XG59XG5cbi5vLWdyaWQtZ2FsbGVyeV9faXRlbSB7XG4gIGZsZXg6IDEgMCA0OSU7XG4gIG1heC13aWR0aDogNzAwcHg7XG4gIG1hcmdpbi1yaWdodDogMSU7XG4gIG1hcmdpbi1ib3R0b206IDElO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5vLWdyaWQtZ2FsbGVyeV9faXRlbSB7XG4gICAgZmxleDogMSAwIDMyJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMzMlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMzMlO1xuICB9XG59XG5cbi5vLWdyaWQtZ2FsbGVyeV9faXRlbTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT04NSk7XG59XG5cbi5vLWdyaWQtZ2FsbGVyeV9faW1nIHtcbiAgZGlzcGxheTogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IEhlYWRlclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZWFkZXIg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZWFkZXIg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIEhlYWRlciDigKIgQmFzZVxuXHQgKi9cbi5vLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyoqXG5cdCAqIEhlYWRlciDigKIgQ29udGFpbmVyXG5cdCAqL1xuLm8taGVhZGVyX19jb250YWluZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAuby1oZWFkZXJfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgfVxufVxuXG4vKipcblx0ICogSGVhZGVyIOKAoiBJY29uXG5cdCAqL1xuLm8taGVhZGVyX19sb2dvIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uby1oZWFkZXJfX2xvZ28gLmEtaWNvbiB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xufVxuXG4uby1oZWFkZXJfX2xvZ286aG92ZXIgLmEtaWNvbiB7XG4gIGZpbGw6ICM0RDRENEQ7XG59XG5cbi8qKlxuXHQgKiBIZWFkZXIgRGVza3RvcCBOYXZpZ2F0aW9uXG5cdCAqL1xuLm8taGVhZGVyX19uYXYtLWRlc2t0b3Age1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTA0MHB4KSB7XG4gIC5vLWhlYWRlcl9fbmF2LS1kZXNrdG9wIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vKipcblx0ICogSGVhZGVyIOKAoiBNb2JpbGUgTmF2aWdhdGlvblxuXHQgKi9cbi5vLWhlYWRlcl9fbmF2LS1tb2JpbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDRweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAuby1oZWFkZXJfX25hdi0tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5vLWhlYWRlcl9fbmF2LS1tb2JpbGUgLmEtaWNvbiB7XG4gIGZpbGw6ICMwMEZGRkY7XG59XG5cbi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgcmVsYXRpbmcgdG8gSGVyb2VzXG4gKiBHcm91cFx0OiBIZXJvXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBIZXJvXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEhlcm8g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZXJvIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBCYXNlXG5cdCAqL1xuLm8taGVybyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNUU1RTU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyoqXG5cdCAqIFZhcmlhdGlvbiDigKIgVGFsbFxuXHQgKi9cbi5vLWhlcm8tLXRhbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA2NXZoO1xufVxuXG4vKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogSGVybyBDb3ZlclxuICogRGVzYyA6IENlbnRlcmVkIENvbnRlbnQgd2l0aCBCRyBJbWFnZXMgdGhhdCBDb3ZlclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZXJvIENvdmVyIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyBDb3ZlciDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4uby1oZXJvLS1jb3ZlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogMTI4cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMjhweDtcbn1cblxuLm8taGVyby0tY292ZXIgPiAuby1oZXJvX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbn1cblxuLyoqXG5cdCAqIEhlcm8gQ292ZXIg4oCiIFRoZW1lc1xuXHQgKlxuXHQgKiBVc2UgYSBtaXhpbiB0byBidWlsZCBkaWZmZXJlbnQgY292ZXIgaGVybyB0aGVtZXMuXG5cdCAqIFRoZXNlIHdpbGwgYXV0b21hdGUgaGVybyBjb2xvcmluZyBmb3Igc2luZ2xlIHBvc3QgcGFnZXNcblx0ICogYmFzZWQgb24gdGhlIHBvc3QgY2F0ZWdvcnkuXG5cdCAqXG5cdCAqIE5PVEU6IFRoZXNlIHRoZW1lcyB3aWxsIG9ubHkgYXBwbHkgdG8gYC5vLWhlcm8tLWNvdmVyYCBoZXJvIHR5cGVzLlxuXHQgKi9cbi5vLWhlcm8tLWNvdmVyLm8taGVyby0tdGhlbWUtLWZlYXR1cmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2RUExO1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICMwMDVkODg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uby1oZXJvLS1jb3Zlci5vLWhlcm8tLXRoZW1lLS1zbmFwc2hvdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0RDZBOTA7XG4gIGJvcmRlci1ib3R0b206IDE2cHggc29saWQgIzQ0NWU3ZjtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5vLWhlcm8tLWNvdmVyLm8taGVyby0tdGhlbWUtLXNjcmliYmxpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN0ZCRURBO1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICM2YmI0ZDQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uby1oZXJvLS1jb3Zlci5vLWhlcm8tLXRoZW1lLS1teS1vbGQtaG91c2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDc4NDkzO1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICMwNjZlN2I7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uby1oZXJvLS1jb3Zlci5vLWhlcm8tLXRoZW1lLS1tYXJpYW5pc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEM1QkNEO1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICM3ZTQ3Yzc7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uby1oZXJvLS1jb3Zlci5vLWhlcm8tLXRoZW1lLS1wYXJ0aW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVDNjFGRjtcbiAgYm9yZGVyLWJvdHRvbTogMTZweCBzb2xpZCAjNDM0OGZmO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm8taGVyby0tY292ZXIuby1oZXJvLS10aGVtZS0tcHJlc2lkZW50cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNDEwNkM7XG4gIGJvcmRlci1ib3R0b206IDE2cHggc29saWQgIzlkMGU1ZTtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5vLWhlcm8tLWNvdmVyLm8taGVyby0tdGhlbWUtLXNwb3J0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MzJCODM7XG4gIGJvcmRlci1ib3R0b206IDE2cHggc29saWQgIzcwMjU3MDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5vLWhlcm8tLWNvdmVyLm8taGVyby0tdGhlbWUtLXBlcmNlcHRpb25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdGMkM1ODtcbiAgYm9yZGVyLWJvdHRvbTogMTZweCBzb2xpZCAjNmMyNTRiO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm8taGVyby0tY292ZXIuby1oZXJvLS10aGVtZS0tYWx1bW5pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q4MkI1MztcbiAgYm9yZGVyLWJvdHRvbTogMTZweCBzb2xpZCAjYzUyNDQ5O1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cblxuLm8taGVyby0tY292ZXIuby1oZXJvLS10aGVtZS0tY2hhcHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEMjQ4MTI7XG4gIGJvcmRlci1ib3R0b206IDE2cHggc29saWQgI2JiNDAxMDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5vLWhlcm8tLWNvdmVyLm8taGVyby0tdGhlbWUtLWV4cGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGOTc5MTI7XG4gIGJvcmRlci1ib3R0b206IDE2cHggc29saWQgI2VjNmMwNjtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5vLWhlcm8tLWNvdmVyLm8taGVyby0tdGhlbWUtLWhpZGRlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NEJEOTQ7XG4gIGJvcmRlci1ib3R0b206IDE2cHggc29saWQgIzczYjQ4NjtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5vLWhlcm8tLWNvdmVyLm8taGVyby0tdGhlbWUtLWdvb2Qtd29ya3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQThDRDU2O1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICM5ZWM3NDI7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uby1oZXJvLS1jb3Zlci5vLWhlcm8tLXRoZW1lLS1ib29rc2hlbGYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBEOEFFO1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICMwMGJmOTk7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uby1oZXJvLS1jb3Zlci5vLWhlcm8tLXRoZW1lLS1uby10YWcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkQ3NDhEO1xuICBib3JkZXItYm90dG9tOiAxNnB4IHNvbGlkICM2MjY4N2Y7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogSGVybyBPZmZzZXRcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyBPZmZzZXQg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZXJvIE9mZnNldCDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogQmFzZVxuXHQgKi9cbi5vLWhlcm8tLW9mZnNldCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm8taGVyby0tb2Zmc2V0IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogaW5pdGlhbDtcbiAgfVxufVxuXG4vKipcblx0ICogSGVybyBPZmZzZXQg4oCiIEltYWdlXG5cdCAqL1xuLm8taGVyby0tb2Zmc2V0IC5vLWhlcm9fX2ltZyB7XG4gIGZsZXg6IDAgMSAzNTBweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAuby1oZXJvLS1vZmZzZXQgLm8taGVyb19faW1nIHtcbiAgICBmbGV4OiAwIDEgNjAwcHg7XG4gIH1cbn1cblxuLyoqXG5cdCAqIEhlcm8gT2Zmc2V0IOKAoiBDb250ZW50XG5cdCAqL1xuLm8taGVyby0tb2Zmc2V0IC5vLWhlcm9fX2NvbnRlbnQge1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA2NHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAuby1oZXJvLS1vZmZzZXQgLm8taGVyb19fY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gICAgcGFkZGluZy1yaWdodDogNjRweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDY0cHg7XG4gICAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICAgIHBhZGRpbmctdG9wOiAxMjhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTI4cHg7XG4gIH1cbn1cblxuLyoqXG5cdCAqIEhlcm8gT2Zmc2V0IOKAoiBNeSBPbGQgSG91c2Vcblx0ICpcblx0ICogVGhlIEhlcm8gb2Zmc2V0IGZvciBNeSBPbGQgSG91c2UgaGFzIGEgc3BlY2lhbCBzdHlsaW5nIHRoYXRcblx0ICogYXBwbGllcyB0byB0aGUgYG0tdGl0bGUtZ3JvdXBfX3ByZWAgZWxlbWVudC5cblx0ICovXG4uby1oZXJvLS1vZmZzZXQuby1oZXJvLS1vZmZzZXQtLW15LW9sZC1ob3VzZSAubS10aXRsZS1ncm91cF9fcHJlIHtcbiAgY29sb3I6ICMwNzg0OTM7XG59XG5cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBIZXJvIElzc3VlXG4gKiBEZXNjIDogU3BlY2lmaWNhbGx5IHVzZWQgb24gSXNzdWUgbGFuZGluZyBwYWdlc1xuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyBJc3N1ZSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEhlcm8gSXNzdWUg4oCiIENsYXNzIERlZmluaXRpb25zXHRcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogQmFzZVxuXHQgKi9cbi5vLWhlcm8tLWlzc3VlIHtcbiAgYmFja2dyb3VuZDogI2YzZjNmMztcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogNjRweDtcbiAgcGFkZGluZy1ib3R0b206IDY0cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm8taGVyby0taXNzdWUge1xuICAgIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgICBwYWRkaW5nLXRvcDogMTI4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEyOHB4O1xuICB9XG59XG5cbi8qKlxuXHQgKiBIZXJvIElzc3VlIOKAoiBDb250YWluZXJcblx0ICovXG4uby1oZXJvLS1pc3N1ZSAuby1oZXJvX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAuby1oZXJvLS1pc3N1ZSAuby1oZXJvX19jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbn1cblxuLyoqXG5cdCAqIEhlcm8gSXNzdWUg4oCiIENvbnRlbnRcblx0ICovXG4uby1oZXJvLS1pc3N1ZSAuby1oZXJvX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmc6IDE2cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm8taGVyby0taXNzdWUgLm8taGVyb19fY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gICAgcGFkZGluZzogNjRweDtcbiAgfVxufVxuXG4uby1oZXJvLS1pc3N1ZSAubS10aXRsZS1ncm91cF9fYWN0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4vKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogSGVybyBTaW1wbGVcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyBTaW1wbGUg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZXJvIFNpbXBsZSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogU2ltcGxlIEhlcm8g4oCiIEJhc2Vcblx0ICovXG4uby1oZXJvLS1zaW1wbGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy10b3A6IDEyOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTI4cHg7XG59XG5cbi5vLWhlcm8tLXNpbXBsZSA+IC5vLWhlcm9fX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xufVxuXG4vKipcblx0ICogSGVybyBTaW1wbGUg4oCiIENvbnRlbnQgJiBBY3Rpb25zXG5cdCAqL1xuLm8taGVyby0tc2ltcGxlIC5tLXRpdGxlLWdyb3VwX19jb250ZW50LFxuLm8taGVyby0tc2ltcGxlIC5tLXRpdGxlLWdyb3VwX19hY3Rpb24ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uby1oZXJvLS1zaW1wbGUgLm0tdGl0bGUtZ3JvdXBfX2NvbnRlbnQge1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi10b3A6IDI0cHg7XG59XG5cbi5vLWhlcm8tLXNpbXBsZSAubS10aXRsZS1ncm91cF9fYWN0aW9uIHtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tdG9wOiAyNHB4O1xufVxuXG4vKipcblx0ICogSGVybyBTaW1wbGUg4oCiIEhpZ2hsaWdodGVkIFRleHRcblx0ICovXG4uby1oZXJvLS1zaW1wbGVfX2hpZ2hsaWdodCB7XG4gIGNvbG9yOiAjMDA0QjhEO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLm8taGVyby0tc2ltcGxlX19oaWdobGlnaHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBMaXN0LU8tTWF0aWNcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgSmFtZXMgV2FzaGluZ3RvblxuICovXG4uby1saXN0LW8tbWF0aWMgLmxpc3RvbWF0aWNfX2NvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19fa2lja2VyLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuXG4uby1saXN0LW8tbWF0aWMgLmxpc3RvbWF0aWNfX2tpY2tlciB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgZm9udC1mYW1pbHk6IENoYW1waW9uIFdlbHRlcnd0IEEsQ2hhbXBpb24gV2VsdGVyd3QgQixDaGFtcGlvbiBIVEYtV2VsdGVyd2VpZ2h0LHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuby1saXN0LW8tbWF0aWMgLmxpc3RvbWF0aWNfX2tpY2tlciB7XG4gICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgfVxufVxuXG4uby1saXN0LW8tbWF0aWMgLmxpc3RvbWF0aWNfX2NvbnRlbnQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAzMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbn1cblxuLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19jb250ZW50LXdyYXBwZXI6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19jb250ZW50LXdyYXBwZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMjBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBoZWlnaHQ6IDFweDtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19jb250ZW50LXdyYXBwZXI6YWZ0ZXIge1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICB9XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19faW1hZ2Utd3JhcHBlciB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19pbWFnZS13cmFwcGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICAgIGZsZXg6IDAgMCAyNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19faW1hZ2Utd3JhcHBlciB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgfVxufVxuXG4uby1saXN0LW8tbWF0aWMgLmxpc3RvbWF0aWNfX2NvcHktd3JhcHBlciB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19jb3B5LXdyYXBwZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogLjkzNzVyZW07XG4gICAgZmxleDogMCAwIDcwLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gIC5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19fY29weS13cmFwcGVyIHtcbiAgICBmbGV4OiAwIDAgODAuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlO1xuICB9XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19fY29udGVudC13cmFwcGVyIC5saXN0b21hdGljX19jb3B5LXdyYXBwZXI6b25seS1jaGlsZCB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19jb250ZW50LXdyYXBwZXIgLmxpc3RvbWF0aWNfX2NvcHktd3JhcHBlcjpvbmx5LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICB9XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19faW1hZ2UtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm8tbGlzdC1vLW1hdGljIGEubGlzdG9tYXRpY19faW1hZ2UtbGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4uby1saXN0LW8tbWF0aWMgYS5saXN0b21hdGljX19pbWFnZS1saW5rOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19fY29weS1oZWFkZXIge1xuICBmb250LWZhbWlseTogXCJDaGFtcGlvbiBCYW50YW13dCBBXCIsIFwiQ2hhbXBpb24gQmFudGFtd3QgQlwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4xNjY2NztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogM3B4O1xufVxuXG4uby1saXN0LW8tbWF0aWMgYS5saXN0b21hdGljX19jb3B5LWhlYWRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5vLWxpc3Qtby1tYXRpYyBhLmxpc3RvbWF0aWNfX2NvcHktaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19jb3B5IHtcbiAgZm9udC1mYW1pbHk6IFwiQ2hyb25pY2xlIFRleHQgRzEgQVwiLCBcIkNocm9uaWNsZSBUZXh0IEcxIEJcIiwgc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG4uby1saXN0LW8tbWF0aWMgYS5jdGFfX3N0YW5kYXJkIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LWZhbWlseTogV29yayBTYW5zLHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xODc1O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6ICMxMjAwZGE7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5vLWxpc3Qtby1tYXRpYyBhLmN0YV9fc3RhbmRhcmQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpO1xuICBjb2xvcjogIzEyMDBkYTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19pbWFnZSB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgbWF4LXdpZHRoOiAyMDBweDtcbn1cblxuLm8tbGlzdC1vLW1hdGljIC5saXN0b21hdGljX19pbWFnZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbn1cblxuLm8tbGlzdC1vLW1hdGljIC5jdGFfX2NvcHkge1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwKTtcbn1cblxuLm8tbGlzdC1vLW1hdGljIC5jdGFfX2Fycm93IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IC4yNXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGZpbGw7XG4gIGZpbGw6ICMwMGYzZmY7XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAuY3RhX19zdGFuZGFyZDpob3ZlciAuY3RhX19hcnJvdyB7XG4gIGZpbGw6ICMxNzFiNDg7XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAuYXJyb3ctaWNvbiB7XG4gIHdpZHRoOiAxNXB4O1xuICBtYXgtd2lkdGg6IDE1cHg7XG59XG5cbi5vLWxpc3Qtby1tYXRpYyAubGlzdG9tYXRpY19fbGluay13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLmxpc3RvbWF0aWNfX2tpY2tlci0tdGhlbWUtLW1hcmlhbmlzdCB7XG4gIGNvbG9yOiAjOEM1QkNEO1xufVxuXG4ubGlzdG9tYXRpY19fa2lja2VyLS10aGVtZS0tcGFydGluZyB7XG4gIGNvbG9yOiAjNUM2MUZGO1xufVxuXG4ubGlzdG9tYXRpY19fa2lja2VyLS10aGVtZS0tcHJlc2lkZW50cyB7XG4gIGNvbG9yOiAjQjQxMDZDO1xufVxuXG4ubGlzdG9tYXRpY19fa2lja2VyLS10aGVtZS0tc3BvcnRzIHtcbiAgY29sb3I6ICM4MzJCODM7XG59XG5cbi5saXN0b21hdGljX19raWNrZXItLXRoZW1lLS1wZXJjZXB0aW9ucyB7XG4gIGNvbG9yOiAjN0YyQzU4O1xufVxuXG4ubGlzdG9tYXRpY19fa2lja2VyLS10aGVtZS0tYWx1bW5pIHtcbiAgY29sb3I6ICNEODJCNTM7XG59XG5cbi5saXN0b21hdGljX19raWNrZXItLXRoZW1lLS1jaGFwdGVyIHtcbiAgY29sb3I6ICNEMjQ4MTI7XG59XG5cbi5saXN0b21hdGljX19raWNrZXItLXRoZW1lLS1leHBlcnQge1xuICBjb2xvcjogI0Y5NzkxMjtcbn1cblxuLmxpc3RvbWF0aWNfX2tpY2tlci0tdGhlbWUtLWhpZGRlbiB7XG4gIGNvbG9yOiAjODRCRDk0O1xufVxuXG4ubGlzdG9tYXRpY19fa2lja2VyLS10aGVtZS0tZ29vZC13b3JrcyB7XG4gIGNvbG9yOiAjQThDRDU2O1xufVxuXG4ubGlzdG9tYXRpY19fa2lja2VyLS10aGVtZS0tYm9va3NoZWxmIHtcbiAgY29sb3I6ICMwMEQ4QUU7XG59XG5cbi5saXN0b21hdGljX19raWNrZXItLXRoZW1lLS1uby10YWcge1xuICBjb2xvcjogIzZENzQ4RDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1lZ2EgTWVudSDigKIgQmFzZVxuICogRGVzYyA6IEhhbmRsZSBzdHlsaW5nIGZvciBjb3JlIG1lZ2EgbWVudSBlbGVtZW50cy5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogVGV4dCBBcmVhICggb25seSBvbiBNeSBPbGQgSG91c2UgdGFiIClcblx0ICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBNZWdhIE1lbnUg4oCiIEJhc2Vcblx0ICovXG4uby1tZWdhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U1RTVFNTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjA7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi8qKlxuXHQgKiBNZWdhIE1lbnUg4oCiIFBhbmVsXG5cdCAqXG5cdCAqIFRoZSBwcmltYXJ5IGludGVybmFsIGhvbGRlciBmb3IgYWxsIE1lZ2EgTWVudSBjb250ZW50XG5cdCAqL1xuLm8tbWVnYV9fcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyoqXG5cdCAqIE1lZ2EgTWVudSDigKIgVGl0bGVzXG5cdCAqXG5cdCAqIFRpdGxlcyBhcHBlYXIgYWJvdmUgZWFjaCB1bmlxdWUgXCJXZWxsXCJcblx0ICovXG4uby1tZWdhX190aXRsZSB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLyoqXG5cdCAqIE1lZ2EgTWVudSDigKIgVGV4dCBBcmVhXG5cdCAqXG5cdCAqIEtlZXAgd2lkdGgtcmVzdHJpY3RlZCBmb3IgdmlzdWFsIHB1cnBvc2VzIGFuZCBcblx0ICogcHJldmVudHMgaXQgZnJvbSBmbG93aW5nIGJlaGluZCB0aGUgYG8tbWVnYV9fY3RhYCBlbGVtZW50LlxuXHQgKi9cbi5vLW1lZ2FfX3RleHQtYXJlYSB7XG4gIG1heC13aWR0aDogNjUwcHg7XG4gIHdpZHRoOiBjYWxjKCAxMDAlIC0gMTc1cHgpO1xufVxuXG4vKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogTWVnYSBNZW51IOKAoiBBY3RpdmUgU3RhdGVcbiAqIERlc2NcdDogV2hlbiB0aGUgbWVnYSBtZW51IGlzIGFjdGl2YXRlZCwgYSBjbGFzcyBpcyBhZGRlZCB2aWEgSlMgYW5kXG4gKiBzdHlsaW5nIG5lZWRzIHRvIHJlZmxlY3QgdGhlIG5ldyBtZWdhIG1lbnUgc3RhdGUuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZ2EgTWVudSBBY3RpdmUg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZWdhIE1lbnUgQWN0aXZlIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi5vLW1lZ2Euby1tZWdhLS1hY3RpdmUge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICBvcGFjaXR5OiAxO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTtcbn1cblxuYS5oYXMtbWVnYS0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U1RTVFNTtcbiAgY29sb3I6ICMwMDRCOEQgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1lZ2EgTWVudSDigKIgQ1RBXG4gKiBEZXNjIDogQSBzcGVjaWFsIGNhbGwtdG8tYWN0aW9uIGJ1dHRvbiBwb3NpdGlvbmVkIHRvIHRoZSBmYXIgcmlnaHQgb2YgdGhlIG1lZ2EgbWVudVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZWdhIE1lbnUgQ1RBIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IENUQSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4uby1tZWdhX19jdGEge1xuICBiYWNrZ3JvdW5kOiAjRURFREVEO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDIwMHB4O1xuICAvKipcblx0ICogV2UgYXJlIGRpcmVjdGx5IGVtYmVkZGluZyBvdXIgYXJyb3cgU1ZHIGhlcmUgc28gd2UgZG9uJ3QgaGF2ZSB0byBtYWtlIGEgXG5cdCAqIEhUVFAgY2FsbCB0byBnZXQgdGhlIGljb24uIE5vdGUgdGhhdCB3ZSBhcmUgZW5jb2RpbmcgaXQsIGJ1dCBOT1QgYmFzZSA2NFxuXHQgKiBlbmNvZGluZyBpdC4gQmFzZSA2NCBwZXJmb3JtcyBwb29ybHkgaW4gdGhpcyBzY2VuYXJpby5cblx0ICpcblx0ICogQG5vdGUgVG9vbCB1c2VkIHRvIGVuY29kZTogaHR0cHM6Ly95b2tzZWwuZ2l0aHViLmlvL3VybC1lbmNvZGVyL1xuXHQgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIGlkPSdMYXllcl8xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgdmlld0JveD0nMCAwIDE1IDE1JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCAxNSAxNScgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgZmlsbD0nI0Y4MDIyOCclM0UlM0NwYXRoIHN0cm9rZT0nJTIzNkQ2RTcwJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTg0LDAuOEw4NCwwLjggTS0zNTEuOCwwLjggTC0zNTEuOCwwLjgnLyUzRSUzQ3BhdGggZD0nTTcuNiwwLjZMNS4xLDMuMmwyLjYsMi40SDB2My42aDcuN2wtMi42LDIuNGwyLjUsMi43TDE1LDcuNUw3LjYsMC42eiBNNi43LDExLjhsNC0zLjdIMS4yVjYuOGg5LjVsLTQtMy43bDAuOS0wLjlsNS43LDUuMyBsLTUuNyw1LjNMNi43LDExLjh6Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgY2FsYyggNTAlICsgMTVweCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMzJweCAzMnB4O1xuICBib3gtc2hhZG93OiAycHggMHB4IDIwcHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5vLW1lZ2FfX2N0YTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYyggNTAlICsgNHB4KSBjYWxjKCA1MCUgKyAxNXB4KTtcbiAgfVxufVxuXG4uby1tZWdhX19jdGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xufVxuXG4uby1tZWdhX19jdGFfX3RpdGxlIHtcbiAgY29sb3I6ICMwMDRCOEQ7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qKlxuXHRcdCAqIEluIG9yZGVyIGZvciB0aGUgYXJyb3cgYW5kIHRpdGxlIHRvIGFwcGVhciBjZW50ZXJlZCwgdGhlIHRpdGxlIG5lZWRzXG5cdFx0ICogaXRzIHRvcCBvZmZzZXQgYmUgbWFudWFsbHkgYWRqdXN0ZWQuXG5cdFx0ICovXG4gIHRvcDogLTE1cHg7XG59XG5cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBNZWdhIE1lbnUg4oCiIEZlZWRcbiAqIERlc2MgOiBUaGUgd3JhcHBlciB3aGVyZSBvdXIgTWVnYSBNZW51IFNsaWRlciB3aWxsIGV2ZW50dWFsbHkgbGl2ZS4gVXNlZCBmb3IgZGlzcGxheWluZyBhIGZlZWQgb2YgcmVjZW50IGNvbnRlbnQuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZ2EgTWVudSBGZWVkIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IEZlZWTigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogTWVnYSBNZW51IEZlZWQg4oCiIEJhc2Vcblx0ICovXG4uby1tZWdhX19mZWVkIHtcbiAgLyoqXG5cdFx0ICogSW4gb3JkZXIgdG8ga2VlcCB0aGUgZmVlZCBmcm9tIHBhc3NpbmcgYmVoaW5kIGBvLW1lZ2FfX2N0YWAsIHdlIG5lZWQgdG8gdGFrZSB0aGUgdG90YWxcblx0XHQgKiB3aWR0aCBhbmQgc3VidHJhY3QgYW4gb2Zmc2V0IHZhbHVlIHdoaWNoIHdlIHdpbGwgZGVmaW5lXG5cdFx0ICovXG4gIHdpZHRoOiBjYWxjKCAxMDAlIC0gMTM2cHgpO1xufVxuXG4uby1tZWdhX19mZWVkX193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi8qKlxuXHQgKiBNZWdhIE1lbnUgRmVlZCDigKIgSXRlbVxuXHQgKlxuXHQgKiBFYWNoIGl0ZW0gZGlzcGxheWVkIHdpdGhpbiB0aGUgZmVlZFxuXHQgKi9cbi5vLW1lZ2FfX2ZlZWRfX2l0ZW0ge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi1yaWdodDogNDhweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG59XG5cbi5vLW1lZ2FfX2ZlZWRfX2l0ZW06Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uby1tZWdhX19mZWVkX19pdGVtOmhvdmVyIC5vLW1lZ2FfX2ZlZWRfX2ltZyB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTtcbn1cblxuLyoqXG5cdCAqIE1lZ2EgTWVudSBGZWVkIOKAoiBJbWFnZXNcblx0ICovXG4uby1tZWdhX19mZWVkX19pbWcge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDdweCAxcHggcmdiYSg3NywgNzcsIDc3LCAwLjUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cblxuLm8tbWVnYS0tbWFnYXppbmUgLm8tbWVnYV9fZmVlZF9faW1nIHtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgd2lkdGg6IDE1MHB4O1xufVxuXG4uby1tZWdhLS1xdWlja2x5IC5vLW1lZ2FfX2ZlZWRfX2ltZyB7XG4gIHdpZHRoOiAyMjVweDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1lZ2EgTWVudSBXZWxsXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZ2EgTWVudSBXZWxsIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IFdlbGwg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG5cdCAqIE1lZ2EgTWVudSDigKIgV2VsbFxuXHQgKi9cbi5vLW1lZ2FfX3dlbGwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vLW1lZ2FfX3dlbGwtLWZlYXR1cmVkLFxuLm8tbWVnYV9fd2VsbC0tbGlzdCB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1yaWdodDogNjRweDtcbiAgcGFkZGluZy1sZWZ0OiA2NHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbn1cblxuLyoqXG5cdCAqIFdlbGwgVHlwZSAtLSBMaXN0XG5cdCAqL1xuLm8tbWVnYV9fd2VsbC0tbGlzdCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi5vLW1lZ2FfX3dlbGwtLWxpc3Q6Zmlyc3Qtb2YtdHlwZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzFCNDg7XG59XG5cbi5vLW1lZ2FfX3dlbGwtLWxpc3Q6bnRoLW9mLXR5cGUoMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0QjhEO1xuICBmbGV4OiAwIDAgMzc1cHg7XG59XG5cbi5vLW1lZ2FfX3dlbGwtLWxpc3QgLm0tbGluay1saXN0X19pdGVtX19hbmNob3Ige1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm8tbWVnYV9fd2VsbC0tbGlzdCAuby1tZWdhX190aXRsZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4vKipcblx0ICogV2VsbCBUeXBlIC0tIEZlYXR1cmVkXG5cdCAqL1xuLm8tbWVnYV9fd2VsbC0tZmVhdHVyZWQge1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi5vLW1lZ2FfX3dlbGwtLWZlYXR1cmVkIC5vLW1lZ2FfX3RpdGxlIHtcbiAgY29sb3I6ICMwMDRCOEQ7XG59XG5cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBQb3N0XG4gKiBEZXNjIDogT25seSBhcHBlYXJzIG9uIFNJTkdMRSBQb3N0IHBhZ2VzIGZvciBhbnkgZ2l2ZW4gcG9zdCB0eXBlLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBQb3N0IOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogUG9zdCDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4vKipcblx0ICogQmFzZVxuXHQgKi9cbi5vLXBvc3Qge1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbn1cblxuLm8tcG9zdF9fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xufVxuXG4vKipcblx0ICogUG9zdCDigKIgQ29weVxuXHQgKi9cbi5vLXBvc3RfX2NvbnRlbnQgcCB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLm8tcG9zdF9fY29udGVudCBoMiB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLXRvcDogNDhweDtcbn1cblxuLm8tcG9zdF9fY29udGVudCBvbCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uby1wb3N0X19jb250ZW50IGxpID4gdWwgPiBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xufVxuXG4uby1wb3N0X19jb250ZW50IGxpID4gdWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5vLXBvc3RfX2NvbnRlbnQgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4uby1wb3N0X19jb250ZW50IG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLm8tcG9zdF9fY29udGVudCBsaSA+IG9sID4gbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi8qKlxuXHQgKiBQb3N0IOKAoiBEcm9wY2FwXG5cdCAqL1xuLm8tcG9zdF9fY29udGVudCBwOmZpcnN0LWNoaWxkOmZpcnN0LWxldHRlciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDM3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwLjg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1sZWZ0OiAycHg7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy10b3A6IDJweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG5cbi8qKlxuXHQgKiBQb3N0IOKAoiBJbWFnZXNcblx0ICpcblx0ICogV2UgYXJlIGFwcGx5aW5nIHNvbWUgdW5pcXVlIHN0eWxpbmcgdG8gb3VyIGltYWdlcyBvbiBcImxhcmdpc2hcIlxuXHQgKiBzY3JlZW4gc2l6ZXMuIEltYWdlcyB3aWxsIGJlIHB1bGxlZCBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci5cblx0ICogQXMgdGhlIHNjcmVlbiBzaHJpbmtzLCB0aGV5IHdpbGwgZml0IGJhY2sgaW4gd2l0aGluIHRoZSBmbG93IG9mIG9mIHRoZVxuXHQgKiBjb250ZW50LlxuXHQgKi9cbi5vLXBvc3RfX2NvbnRlbnQgaW1nIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctYm90dG9tOiAzMnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm8tcG9zdF9fY29udGVudCBpbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuby1wb3N0X19jb250ZW50IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IC03NXB4O1xuICB9XG59XG5cbi5vLXBvc3RfX2NvbnRlbnQgZmlndXJlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgcGFkZGluZy1ib3R0b206IDMycHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuby1wb3N0X19jb250ZW50IGZpZ3VyZSB7XG4gICAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5vLXBvc3RfX2NvbnRlbnQgZmlndXJlIHtcbiAgICBtYXJnaW4tbGVmdDogLTc1cHg7XG4gIH1cbn1cblxuLm8tcG9zdF9fY29udGVudCBmaWd1cmUgaW1nIHtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xufVxuXG4uby1wb3N0X19jb250ZW50IGZpZ3VyZSBmaWdjYXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiV29yayBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgLyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG4gIC8qKlxuXHQgKiBgZHNgIG9yIERlc2t0b3AgU2NhbGUsIGFwcGxpZXMgYSBkaWZmZXJlbnQgXCJTY2FsZVwiIGFzIGRlZmluZWQgaW4gb3VyIHR5cGUgY29uZmlnXG5cdCAqIG9uIGxhcmdlaXNoIGRldmljZXMuIFRoaXMgbWFrZXMgYWxsIGZvbnRzIGFjcm9zcyB0aGUgcHJvamVjdCB0byBzY2FsZSBhdCBleGFjdGx5XG5cdCAqIHRoZSBzYW1lIHJhdGUgYW5kIGJ5IGV4YWN0bHkgdGhlIHNhbWUgYW1vdW50LlxuXHQgKi9cbiAgLyoqXG5cdCAqIFN1cGVyIFRpbnlcblx0ICovXG4gIC8qKlxuXHQgKiBSZWFsbHkgVGlueVxuXHQgKi9cbiAgLyoqXG5cdCAqIEZpbmUgUHJpbnRcblx0ICovXG4gIC8qKlxuXHQgKiBCYXNlIGJvZHkgY29weVxuXHQgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIC8qKlxuXHQgKiBMYXJnZSBib2R5ICsgU21hbGwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuICAvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWEwgSGVhZGluZ1xuXHQgKi9cbiAgLyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG4gIC8qKlxuXHQgKiBYWFhYTCBIZWFkaW5nXG5cdCAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm8tcG9zdF9fY29udGVudCBmaWd1cmUgZmlnY2FwdGlvbiB7XG4gICAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIH1cbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE9yZy4gSGlnaGxpZ2h0XG4gKiBEZXNjIDogVXNlZCB0byBoaWdobGlnaHQgYSBjb21wYW55IG9yIG9yZ2FuaXphdGlvbiwgaW5jbHVkaW5nXG4gKiBjb250YWN0IGluZm8sIGRlc2NyaXB0aW9uLCByZWxldmFudCBsaW5rcywgZXRjLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBPcmcuIEhpZ2hsaWdodCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE9yZy4gSGlnaGxpZ2h0IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBCYXNlXG5cdCAqL1xuLm8tb3JnLWhpZ2hsaWdodCB7XG4gIGZsZXg6IDE7XG4gIC8qKlxuXHRcdCAqIFRhcmdldCB0aGUgZmlyc3QgYXBwZWFyYW5jZSBvZiBgLm8tb3JnLWhpZ2hsaWdodGAgc28gd2UgY2FuXG5cdFx0ICogZ2l2ZSBpdCBzcGVjaWFsIHN0eWxpbmcsIHN1Y2ggYXMgdW5pcXVlIHNwYWNpbmcgZXRjLlxuXHRcdCAqL1xufVxuXG4uby1vcmctaGlnaGxpZ2h0Om50aC1vZi10eXBlKDEpIHtcbiAgLyoqXG5cdCAqIEhhbmRsZSBzZXR0aW5nIG9mIG91ciBwcm9wZXJ0eSB0eXBlLiBUaGlzICRwcm9wZXJ0eSB2YXJpYWJsZVxuXHQgKiB3aWxsIGJlIGludGVycG9sYXRlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoaXMgbWl4aW4uXG5cdCAqL1xuICBwYWRkaW5nLWJvdHRvbTogOTZweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5vLW9yZy1oaWdobGlnaHQ6bnRoLW9mLXR5cGUoMSkge1xuICAgIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi8qKlxuXHQgKiBPcmcuIEhpZ2hsaWdodCDigKIgQ29weSAmIFRpdGxlXG5cdCAqL1xuLm8tb3JnLWhpZ2hsaWdodF9fdGl0bGUsXG4uby1vcmctaGlnaGxpZ2h0X19jb3B5IHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5vLW9yZy1oaWdobGlnaHRfX2NvcHkge1xuICBtYXgtd2lkdGg6IDUwMHB4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIG1hcmdpbi10b3A6IDI0cHg7XG59XG5cbi8qKlxuXHQgKiBPcmcuIEhpZ2hsaWdodCDigKIgRm9vdGVyXG5cdCAqL1xuLm8tZm9vdGVyIC5vLW9yZy1oaWdobGlnaHQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm8tZm9vdGVyIC5vLW9yZy1oaWdobGlnaHRfX2lubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwNDBweCkge1xuICAuby1mb290ZXIgLm8tb3JnLWhpZ2hsaWdodF9faW5uZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLm8tZm9vdGVyIC5vLW9yZy1oaWdobGlnaHRfX2lubmVyID4gOmZpcnN0LWNoaWxkIHtcbiAgICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gICAgbWFyZ2luLXJpZ2h0OiA5NnB4O1xuICB9XG59XG5cbi5vLWZvb3RlciAuby1vcmctaGlnaGxpZ2h0X190aXRsZSB7XG4gIC8qKlxuXHQgKiBIYW5kbGUgc2V0dGluZyBvZiBvdXIgcHJvcGVydHkgdHlwZS4gVGhpcyAkcHJvcGVydHkgdmFyaWFibGVcblx0ICogd2lsbCBiZSBpbnRlcnBvbGF0ZWQgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGlzIG1peGluLlxuXHQgKi9cbiAgbWFyZ2luLWJvdHRvbTogNjRweDtcbn1cblxuLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rc19fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDYwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rc19fY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDtcbiAgfVxufVxuXG4uby1yZWxhdGVkLWxpbmtzIC5yZWxhdGVkLWxpbmtzX19jb250YWluZXItLXJlZnJlc2gge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLzAvXzIwMTkvaW1hZ2VzL2dyYXBoaWNzL2JhY2tncm91bmQtZ3JheU5vaXNlLnBuZyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5vLXJlbGF0ZWQtbGlua3MgLnJlbGF0ZWQtbGlua3NfX2tpY2tlci1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cblxuLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rc19fbGlzdCB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuXG4uby1yZWxhdGVkLWxpbmtzIC5yZWxhdGVkLWxpbmtzX19raWNrZXIge1xuICB6LWluZGV4OiAyMDtcbiAgZm9udC1mYW1pbHk6IENoYW1waW9uIFdlbHRlcnd0IEEsQ2hhbXBpb24gV2VsdGVyd3QgQixDaGFtcGlvbiBIVEYtV2VsdGVyd2VpZ2h0LHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vLXJlbGF0ZWQtbGlua3MgLnJlbGF0ZWQtbGlua3NfX2tpY2tlciB7XG4gICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgfVxufVxuXG4uby1yZWxhdGVkLWxpbmtzIGxpLnJlbGF0ZWQtbGlua19fbGlzdC1pdGVtIGEge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rX19saXN0LWl0ZW0ge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vLXJlbGF0ZWQtbGlua3MgLnJlbGF0ZWQtbGlua19fbGlzdC1pdGVtIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkgYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rX19saXN0LWl0ZW0ge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gIH1cbn1cblxuLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rc19faGVhZGVyLS1tYXJpYW5pc3Qge1xuICBjb2xvcjogIzhDNUJDRDtcbn1cblxuLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rc19faGVhZGVyLS1wYXJ0aW5nIHtcbiAgY29sb3I6ICM1QzYxRkY7XG59XG5cbi5vLXJlbGF0ZWQtbGlua3MgLnJlbGF0ZWQtbGlua3NfX2hlYWRlci0tcHJlc2lkZW50cyB7XG4gIGNvbG9yOiAjQjQxMDZDO1xufVxuXG4uby1yZWxhdGVkLWxpbmtzIC5yZWxhdGVkLWxpbmtzX19oZWFkZXItLXNwb3J0cyB7XG4gIGNvbG9yOiAjODMyQjgzO1xufVxuXG4uby1yZWxhdGVkLWxpbmtzIC5yZWxhdGVkLWxpbmtzX19oZWFkZXItLXBlcmNlcHRpb25zIHtcbiAgY29sb3I6ICM3RjJDNTg7XG59XG5cbi5vLXJlbGF0ZWQtbGlua3MgLnJlbGF0ZWQtbGlua3NfX2hlYWRlci0tYWx1bW5pIHtcbiAgY29sb3I6ICNEODJCNTM7XG59XG5cbi5vLXJlbGF0ZWQtbGlua3MgLnJlbGF0ZWQtbGlua3NfX2hlYWRlci0tY2hhcHRlciB7XG4gIGNvbG9yOiAjRDI0ODEyO1xufVxuXG4uby1yZWxhdGVkLWxpbmtzIC5yZWxhdGVkLWxpbmtzX19oZWFkZXItLWV4cGVydCB7XG4gIGNvbG9yOiAjRjk3OTEyO1xufVxuXG4uby1yZWxhdGVkLWxpbmtzIC5yZWxhdGVkLWxpbmtzX19oZWFkZXItLWhpZGRlbiB7XG4gIGNvbG9yOiAjODRCRDk0O1xufVxuXG4uby1yZWxhdGVkLWxpbmtzIC5yZWxhdGVkLWxpbmtzX19oZWFkZXItLWdvb2Qtd29ya3Mge1xuICBjb2xvcjogI0E4Q0Q1Njtcbn1cblxuLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rc19faGVhZGVyLS1ib29rc2hlbGYge1xuICBjb2xvcjogIzAwRDhBRTtcbn1cblxuLm8tcmVsYXRlZC1saW5rcyAucmVsYXRlZC1saW5rc19faGVhZGVyLS1uby10YWcge1xuICBjb2xvcjogIzZENzQ4RDtcbn1cblxuLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IFNpdGVcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU2l0ZSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNpdGUg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyoqXG4gKiBTaXRlIOKAoiBCYXNlXG4gKi9cbi5vLXNpdGUsXG4uby1zaXRlX19zY3JvbGxlciB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm8tc2l0ZV9fc2Nyb2xsZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLm8tc2l0ZV9fc2Nyb2xsZXIsXG4uby1zaXRlX19zY3JvbGxlci1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm8tc2l0ZV9fY29udGFpbmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcbn1cblxuLm8tc2l0ZV9fY29udGFpbmVyLm8tc2l0ZV9fY29udGFpbmVyLS1pcy1wdXNoZWQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDBweCwgMHB4LCAwcHgpO1xufVxuXG4uby1zaXRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uby1zaXRlX19jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIG92ZXJsYXlzIGZvciBwdXNoZXIgYW5kIGZvciBsZXZlbCB0aGF0IGdldHMgY292ZXJlZCAqL1xuLm8tc2l0ZV9fY29udGFpbmVyOjphZnRlcixcbi5tLW1vYmlsZV9fbGV2ZWw6OmFmdGVyLFxuLm0tbW9iaWxlX19sZXZlbDo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBjb250ZW50OiAnJztcbiAgb3BhY2l0eTogMDtcbn1cblxuLm8tc2l0ZV9fY29udGFpbmVyOjphZnRlcixcbi5tLW1vYmlsZV9fbGV2ZWw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MsIHdpZHRoIDAuMXMgMC4zcywgaGVpZ2h0IDAuMXMgMC4zcztcbn1cblxuLm8tc2l0ZV9fY29udGFpbmVyLm8tc2l0ZV9fY29udGFpbmVyLS1pcy1wdXNoZWQ6OmFmdGVyLFxuLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZV9fb3ZlcmxheTo6YWZ0ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG59XG5cbi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBVdGlsaXR5IEJhclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBVdGlsaXR5IEJhciDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuLyogSUUgbmVlZHMgYm90aCAqL1xuLyogSUUgbmVlZHMgYm90aCAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFV0aWxpdHkgQmFyIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBCYXNlXG5cdCAqL1xuLm8tdXRpbGl0eS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxQjQ4O1xuICAvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuby11dGlsaXR5LWJhciB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAzMDBweCA0OHB4O1xuICB9XG59XG5cbi5vLXV0aWxpdHktYmFyX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qKlxuXHQgKiBVdGlsIEJhciDigKIgTWVudVxuXHQgKi9cbi5vLXV0aWxpdHktYmFyIC5tLW1lbnUtLXNlY29uZGFyeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDQwcHgpIHtcbiAgLm8tdXRpbGl0eS1iYXIgLm0tbWVudS0tc2Vjb25kYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5vLXV0aWxpdHktYmFyIC5tLWZvcm1fX2dyb3VwIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLm8tdXRpbGl0eS1iYXIgLm1lbnVfX2xvZ28tbGluayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IDQlO1xufVxuXG4uby11dGlsaXR5LWJhciAubWVudV9fbG9nby1saW5rIC5oZWFkZXItbG9nbyB7XG4gIGZpbGw6ICNmZmY7XG4gIHdpZHRoOiAyMjVweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBtYXJnaW4tdG9wOiAtNHB4O1xufVxuXG4uby11dGlsaXR5LWJhciAubWVudV9fbG9nby1saW5rIC5oZWFkZXItbG9nbzpob3ZlciB7XG4gIGZpbGw6ICMwMEZGRkY7XG59XG5cbi8qKlxuXHQgKiBMb2FkIHBhZ2Utc3BlY2lmaWMgY29kZVxuXHQgKi9cbi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC5cbiAqIEdyb3VwXHQ6IFBhZ2VzXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cbi8qKlxuXHQgKiBMb2FkIG91ciB1dGlsaXR5IGNsYXNzZXMgXG5cdCAqL1xuLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogVXRpbGl0eVxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi8qKlxuICogKioqKioqKioqKioqKioqKlxuICogRmlsZSBJbXBvcnQgTGlzdFxuICogKioqKioqKioqKioqKioqKlxuICovXG4vKipcbiAqIFR5cGVcdFx0OiBVdGlsaXR5XG4gKiBHcm91cFx0OiBBY2Nlc3NiaWxpdHlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi51LXZpcy1oaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogVHlwZVx0XHQ6IFV0aWxpdHlcbiAqIEdyb3VwXHQ6IEFsaWdubWVudFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLnUtdGV4dC1hbGlnbi0tbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi51LXRleHQtYWxpZ24tLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnUtdGV4dC1hbGlnbi0tcmlnaHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi51LWh1Zy0tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4udS1odWctLWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4udS1jZW50ZXIge1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnUtY2VudGVyLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi51LWFmZml4IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG4udS1jbGVhcmZpeDpiZWZvcmUsXG4udS1jbGVhcmZpeDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnUtY2xlYXJmaXg6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnUtZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi51LWZsZXgtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi51LWZsZXgtcm93IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLnUtZmxleC1jb2wge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4udS1mbGV4LWp1c3RpZnktLXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4udS1mbGV4LWp1c3RpZnktLWVuZCB7XG4gIGp1c3RpZnktY29udGVudDogZW5kO1xufVxuXG4udS1mbGV4LWp1c3RpZnktLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4udS1mbGV4LWp1c3RpZnktLWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnUtZmxleC1qdXN0aWZ5LS1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnUtZmxleC1hbGlnbi0tc3RhcnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnUtZmxleC1hbGlnbi0tZW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG4udS1mbGV4LWFsaWduLS1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udS1mbGV4LWFsaWduLS1iYXNlbGluZSB7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cblxuLnUtZmxleC1hbGlnbi0tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4udS1mbGV4LXdyYXAtLW5vIHtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi51LWZsZXgtd3JhcC0teWVzIHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4vKipcbiAqIFR5cGVcdFx0OiBVdGlsaXR5XG4gKiBHcm91cFx0OiBQc2V1ZG9cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi51LWRpc2FibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyoqXG4gKiBUeXBlXHRcdDogVXRpbGl0eVxuICogR3JvdXBcdDogU3BhY2luZ1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuLnUtbWFyLXQtLTJ4cyB7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLnUtcGFkLXQtLTJ4cyB7XG4gIHBhZGRpbmctdG9wOiAycHg7XG59XG5cbi51LW1hci1yLS0yeHMge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbn1cblxuLnUtcGFkLXItLTJ4cyB7XG4gIHBhZGRpbmctcmlnaHQ6IDJweDtcbn1cblxuLnUtbWFyLWItLTJ4cyB7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cblxuLnUtcGFkLWItLTJ4cyB7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG59XG5cbi51LW1hci1sLS0yeHMge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuXG4udS1wYWQtbC0tMnhzIHtcbiAgcGFkZGluZy1sZWZ0OiAycHg7XG59XG5cbi51LW1hci14LS0yeHMge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLnUtcGFkLXgtLTJ4cyB7XG4gIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgcGFkZGluZy1sZWZ0OiAycHg7XG59XG5cbi51LW1hci15LS0yeHMge1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cblxuLnUtcGFkLXktLTJ4cyB7XG4gIHBhZGRpbmctdG9wOiAycHg7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG59XG5cbi51LW1hci0tMnhzIHtcbiAgbWFyZ2luOiAycHg7XG59XG5cbi51LXBhZC0tMnhzIHtcbiAgcGFkZGluZzogMnB4O1xufVxuXG4udS1tYXItdC0teHMge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi51LXBhZC10LS14cyB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG59XG5cbi51LW1hci1yLS14cyB7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4udS1wYWQtci0teHMge1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG5cbi51LW1hci1iLS14cyB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnUtcGFkLWItLXhzIHtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbn1cblxuLnUtbWFyLWwtLXhzIHtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLnUtcGFkLWwtLXhzIHtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG59XG5cbi51LW1hci14LS14cyB7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4udS1wYWQteC0teHMge1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xufVxuXG4udS1tYXIteS0teHMge1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnUtcGFkLXktLXhzIHtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbn1cblxuLnUtbWFyLS14cyB7XG4gIG1hcmdpbjogNHB4O1xufVxuXG4udS1wYWQtLXhzIHtcbiAgcGFkZGluZzogNHB4O1xufVxuXG4udS1tYXItdC0tcyB7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLnUtcGFkLXQtLXMge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuXG4udS1tYXItci0tcyB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4udS1wYWQtci0tcyB7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cblxuLnUtbWFyLWItLXMge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi51LXBhZC1iLS1zIHtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLnUtbWFyLWwtLXMge1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG4udS1wYWQtbC0tcyB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4udS1tYXIteC0tcyB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG4udS1wYWQteC0tcyB7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi51LW1hci15LS1zIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi51LXBhZC15LS1zIHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLnUtbWFyLS1zIHtcbiAgbWFyZ2luOiA4cHg7XG59XG5cbi51LXBhZC0tcyB7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuLnUtbWFyLXQtLW0ge1xuICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4udS1wYWQtdC0tbSB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xufVxuXG4udS1tYXItci0tbSB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cblxuLnUtcGFkLXItLW0ge1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xufVxuXG4udS1tYXItYi0tbSB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbi51LXBhZC1iLS1tIHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi51LW1hci1sLS1tIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi51LXBhZC1sLS1tIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuXG4udS1tYXIteC0tbSB7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi51LXBhZC14LS1tIHtcbiAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuXG4udS1tYXIteS0tbSB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbi51LXBhZC15LS1tIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuXG4udS1tYXItLW0ge1xuICBtYXJnaW46IDE2cHg7XG59XG5cbi51LXBhZC0tbSB7XG4gIHBhZGRpbmc6IDE2cHg7XG59XG5cbi51LW1hci10LS1tbCB7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG59XG5cbi51LXBhZC10LS1tbCB7XG4gIHBhZGRpbmctdG9wOiAyNHB4O1xufVxuXG4udS1tYXItci0tbWwge1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG59XG5cbi51LXBhZC1yLS1tbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG59XG5cbi51LW1hci1iLS1tbCB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi51LXBhZC1iLS1tbCB7XG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xufVxuXG4udS1tYXItbC0tbWwge1xuICBtYXJnaW4tbGVmdDogMjRweDtcbn1cblxuLnUtcGFkLWwtLW1sIHtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xufVxuXG4udS1tYXIteC0tbWwge1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xufVxuXG4udS1wYWQteC0tbWwge1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG59XG5cbi51LW1hci15LS1tbCB7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi51LXBhZC15LS1tbCB7XG4gIHBhZGRpbmctdG9wOiAyNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbn1cblxuLnUtbWFyLS1tbCB7XG4gIG1hcmdpbjogMjRweDtcbn1cblxuLnUtcGFkLS1tbCB7XG4gIHBhZGRpbmc6IDI0cHg7XG59XG5cbi51LW1hci10LS1sIHtcbiAgbWFyZ2luLXRvcDogMzJweDtcbn1cblxuLnUtcGFkLXQtLWwge1xuICBwYWRkaW5nLXRvcDogMzJweDtcbn1cblxuLnUtbWFyLXItLWwge1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7XG59XG5cbi51LXBhZC1yLS1sIHtcbiAgcGFkZGluZy1yaWdodDogMzJweDtcbn1cblxuLnUtbWFyLWItLWwge1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4udS1wYWQtYi0tbCB7XG4gIHBhZGRpbmctYm90dG9tOiAzMnB4O1xufVxuXG4udS1tYXItbC0tbCB7XG4gIG1hcmdpbi1sZWZ0OiAzMnB4O1xufVxuXG4udS1wYWQtbC0tbCB7XG4gIHBhZGRpbmctbGVmdDogMzJweDtcbn1cblxuLnUtbWFyLXgtLWwge1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7XG4gIG1hcmdpbi1sZWZ0OiAzMnB4O1xufVxuXG4udS1wYWQteC0tbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIHBhZGRpbmctbGVmdDogMzJweDtcbn1cblxuLnUtbWFyLXktLWwge1xuICBtYXJnaW4tdG9wOiAzMnB4O1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4udS1wYWQteS0tbCB7XG4gIHBhZGRpbmctdG9wOiAzMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLnUtbWFyLS1sIHtcbiAgbWFyZ2luOiAzMnB4O1xufVxuXG4udS1wYWQtLWwge1xuICBwYWRkaW5nOiAzMnB4O1xufVxuXG4udS1tYXItdC0tbG0ge1xuICBtYXJnaW4tdG9wOiA0OHB4O1xufVxuXG4udS1wYWQtdC0tbG0ge1xuICBwYWRkaW5nLXRvcDogNDhweDtcbn1cblxuLnUtbWFyLXItLWxtIHtcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xufVxuXG4udS1wYWQtci0tbG0ge1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xufVxuXG4udS1tYXItYi0tbG0ge1xuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xufVxuXG4udS1wYWQtYi0tbG0ge1xuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbn1cblxuLnUtbWFyLWwtLWxtIHtcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XG59XG5cbi51LXBhZC1sLS1sbSB7XG4gIHBhZGRpbmctbGVmdDogNDhweDtcbn1cblxuLnUtbWFyLXgtLWxtIHtcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xuICBtYXJnaW4tbGVmdDogNDhweDtcbn1cblxuLnUtcGFkLXgtLWxtIHtcbiAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xufVxuXG4udS1tYXIteS0tbG0ge1xuICBtYXJnaW4tdG9wOiA0OHB4O1xuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xufVxuXG4udS1wYWQteS0tbG0ge1xuICBwYWRkaW5nLXRvcDogNDhweDtcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7XG59XG5cbi51LW1hci0tbG0ge1xuICBtYXJnaW46IDQ4cHg7XG59XG5cbi51LXBhZC0tbG0ge1xuICBwYWRkaW5nOiA0OHB4O1xufVxuXG4udS1tYXItdC0teGwge1xuICBtYXJnaW4tdG9wOiA2NHB4O1xufVxuXG4udS1wYWQtdC0teGwge1xuICBwYWRkaW5nLXRvcDogNjRweDtcbn1cblxuLnUtbWFyLXItLXhsIHtcbiAgbWFyZ2luLXJpZ2h0OiA2NHB4O1xufVxuXG4udS1wYWQtci0teGwge1xuICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xufVxuXG4udS1tYXItYi0teGwge1xuICBtYXJnaW4tYm90dG9tOiA2NHB4O1xufVxuXG4udS1wYWQtYi0teGwge1xuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcbn1cblxuLnUtbWFyLWwtLXhsIHtcbiAgbWFyZ2luLWxlZnQ6IDY0cHg7XG59XG5cbi51LXBhZC1sLS14bCB7XG4gIHBhZGRpbmctbGVmdDogNjRweDtcbn1cblxuLnUtbWFyLXgtLXhsIHtcbiAgbWFyZ2luLXJpZ2h0OiA2NHB4O1xuICBtYXJnaW4tbGVmdDogNjRweDtcbn1cblxuLnUtcGFkLXgtLXhsIHtcbiAgcGFkZGluZy1yaWdodDogNjRweDtcbiAgcGFkZGluZy1sZWZ0OiA2NHB4O1xufVxuXG4udS1tYXIteS0teGwge1xuICBtYXJnaW4tdG9wOiA2NHB4O1xuICBtYXJnaW4tYm90dG9tOiA2NHB4O1xufVxuXG4udS1wYWQteS0teGwge1xuICBwYWRkaW5nLXRvcDogNjRweDtcbiAgcGFkZGluZy1ib3R0b206IDY0cHg7XG59XG5cbi51LW1hci0teGwge1xuICBtYXJnaW46IDY0cHg7XG59XG5cbi51LXBhZC0teGwge1xuICBwYWRkaW5nOiA2NHB4O1xufVxuXG4udS1tYXItdC0tMnhsIHtcbiAgbWFyZ2luLXRvcDogOTZweDtcbn1cblxuLnUtcGFkLXQtLTJ4bCB7XG4gIHBhZGRpbmctdG9wOiA5NnB4O1xufVxuXG4udS1tYXItci0tMnhsIHtcbiAgbWFyZ2luLXJpZ2h0OiA5NnB4O1xufVxuXG4udS1wYWQtci0tMnhsIHtcbiAgcGFkZGluZy1yaWdodDogOTZweDtcbn1cblxuLnUtbWFyLWItLTJ4bCB7XG4gIG1hcmdpbi1ib3R0b206IDk2cHg7XG59XG5cbi51LXBhZC1iLS0yeGwge1xuICBwYWRkaW5nLWJvdHRvbTogOTZweDtcbn1cblxuLnUtbWFyLWwtLTJ4bCB7XG4gIG1hcmdpbi1sZWZ0OiA5NnB4O1xufVxuXG4udS1wYWQtbC0tMnhsIHtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4O1xufVxuXG4udS1tYXIteC0tMnhsIHtcbiAgbWFyZ2luLXJpZ2h0OiA5NnB4O1xuICBtYXJnaW4tbGVmdDogOTZweDtcbn1cblxuLnUtcGFkLXgtLTJ4bCB7XG4gIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG4gIHBhZGRpbmctbGVmdDogOTZweDtcbn1cblxuLnUtbWFyLXktLTJ4bCB7XG4gIG1hcmdpbi10b3A6IDk2cHg7XG4gIG1hcmdpbi1ib3R0b206IDk2cHg7XG59XG5cbi51LXBhZC15LS0yeGwge1xuICBwYWRkaW5nLXRvcDogOTZweDtcbiAgcGFkZGluZy1ib3R0b206IDk2cHg7XG59XG5cbi51LW1hci0tMnhsIHtcbiAgbWFyZ2luOiA5NnB4O1xufVxuXG4udS1wYWQtLTJ4bCB7XG4gIHBhZGRpbmc6IDk2cHg7XG59XG5cbi51LW1hci10LS0zeGwge1xuICBtYXJnaW4tdG9wOiAxMjhweDtcbn1cblxuLnUtcGFkLXQtLTN4bCB7XG4gIHBhZGRpbmctdG9wOiAxMjhweDtcbn1cblxuLnUtbWFyLXItLTN4bCB7XG4gIG1hcmdpbi1yaWdodDogMTI4cHg7XG59XG5cbi51LXBhZC1yLS0zeGwge1xuICBwYWRkaW5nLXJpZ2h0OiAxMjhweDtcbn1cblxuLnUtbWFyLWItLTN4bCB7XG4gIG1hcmdpbi1ib3R0b206IDEyOHB4O1xufVxuXG4udS1wYWQtYi0tM3hsIHtcbiAgcGFkZGluZy1ib3R0b206IDEyOHB4O1xufVxuXG4udS1tYXItbC0tM3hsIHtcbiAgbWFyZ2luLWxlZnQ6IDEyOHB4O1xufVxuXG4udS1wYWQtbC0tM3hsIHtcbiAgcGFkZGluZy1sZWZ0OiAxMjhweDtcbn1cblxuLnUtbWFyLXgtLTN4bCB7XG4gIG1hcmdpbi1yaWdodDogMTI4cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMjhweDtcbn1cblxuLnUtcGFkLXgtLTN4bCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEyOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEyOHB4O1xufVxuXG4udS1tYXIteS0tM3hsIHtcbiAgbWFyZ2luLXRvcDogMTI4cHg7XG4gIG1hcmdpbi1ib3R0b206IDEyOHB4O1xufVxuXG4udS1wYWQteS0tM3hsIHtcbiAgcGFkZGluZy10b3A6IDEyOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTI4cHg7XG59XG5cbi51LW1hci0tM3hsIHtcbiAgbWFyZ2luOiAxMjhweDtcbn1cblxuLnUtcGFkLS0zeGwge1xuICBwYWRkaW5nOiAxMjhweDtcbn1cblxuLnUtbWFyLXQtLTR4bCB7XG4gIG1hcmdpbi10b3A6IDE2MHB4O1xufVxuXG4udS1wYWQtdC0tNHhsIHtcbiAgcGFkZGluZy10b3A6IDE2MHB4O1xufVxuXG4udS1tYXItci0tNHhsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNjBweDtcbn1cblxuLnUtcGFkLXItLTR4bCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE2MHB4O1xufVxuXG4udS1tYXItYi0tNHhsIHtcbiAgbWFyZ2luLWJvdHRvbTogMTYwcHg7XG59XG5cbi51LXBhZC1iLS00eGwge1xuICBwYWRkaW5nLWJvdHRvbTogMTYwcHg7XG59XG5cbi51LW1hci1sLS00eGwge1xuICBtYXJnaW4tbGVmdDogMTYwcHg7XG59XG5cbi51LXBhZC1sLS00eGwge1xuICBwYWRkaW5nLWxlZnQ6IDE2MHB4O1xufVxuXG4udS1tYXIteC0tNHhsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNjBweDtcbiAgbWFyZ2luLWxlZnQ6IDE2MHB4O1xufVxuXG4udS1wYWQteC0tNHhsIHtcbiAgcGFkZGluZy1yaWdodDogMTYwcHg7XG4gIHBhZGRpbmctbGVmdDogMTYwcHg7XG59XG5cbi51LW1hci15LS00eGwge1xuICBtYXJnaW4tdG9wOiAxNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTYwcHg7XG59XG5cbi51LXBhZC15LS00eGwge1xuICBwYWRkaW5nLXRvcDogMTYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNjBweDtcbn1cblxuLnUtbWFyLS00eGwge1xuICBtYXJnaW46IDE2MHB4O1xufVxuXG4udS1wYWQtLTR4bCB7XG4gIHBhZGRpbmc6IDE2MHB4O1xufVxuXG4vKipcbiAqIFR5cGVcdFx0OiBVdGlsaXR5XG4gKiBHcm91cFx0OiBUZXh0IENvbG9yXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4udS1jb2xvci0tcmVkIHtcbiAgY29sb3I6ICNDRTExNDE7XG59XG5cbi51LWZpbGwtLXJlZCB7XG4gIGZpbGw6ICNDRTExNDE7XG59XG5cbi51LWNvbG9yLS1nbG93LXJlZCB7XG4gIGNvbG9yOiAjRjgwMjI4O1xufVxuXG4udS1maWxsLS1nbG93LXJlZCB7XG4gIGZpbGw6ICNGODAyMjg7XG59XG5cbi51LWNvbG9yLS1ibHVlIHtcbiAgY29sb3I6ICMwMDRCOEQ7XG59XG5cbi51LWZpbGwtLWJsdWUge1xuICBmaWxsOiAjMDA0QjhEO1xufVxuXG4udS1jb2xvci0tZ2xvdy1ibHVlIHtcbiAgY29sb3I6ICMwMjAwRDE7XG59XG5cbi51LWZpbGwtLWdsb3ctYmx1ZSB7XG4gIGZpbGw6ICMwMjAwRDE7XG59XG5cbi51LWNvbG9yLS1nbG93LXR1cnEge1xuICBjb2xvcjogIzAwRkZGRjtcbn1cblxuLnUtZmlsbC0tZ2xvdy10dXJxIHtcbiAgZmlsbDogIzAwRkZGRjtcbn1cblxuLnUtY29sb3ItLWdsb3ctbmF2eSB7XG4gIGNvbG9yOiAjMTcxQjQ4O1xufVxuXG4udS1maWxsLS1nbG93LW5hdnkge1xuICBmaWxsOiAjMTcxQjQ4O1xufVxuXG4vKipcbiAqIEF1dG8tZ2VuZXJhdGUgYSBncmF5c2NhbGUgY29sb3IgcGFsbGV0dGUgYmFzZWQgb24gYWxsXG4gKiBkZWZpbmVkIGdyYXlzY2FsZSB2YWx1ZXMgaW4gdGhlICRjb2xvcl9jb25maWcgbWFwXG4gKi9cbi51LWNvbG9yLS1nc3JnYmFXaGl0ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnUtY29sb3ItLXdoaXRlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi51LWNvbG9yLS1nczk5IHtcbiAgY29sb3I6ICNmY2ZjZmM7XG59XG5cbi51LWNvbG9yLS1nczk4IHtcbiAgY29sb3I6ICNmM2YzZjM7XG59XG5cbi51LWNvbG9yLS1nczk1IHtcbiAgY29sb3I6ICNFREVERUQ7XG59XG5cbi51LWNvbG9yLS1nczkwIHtcbiAgY29sb3I6ICNFNUU1RTU7XG59XG5cbi51LWNvbG9yLS1nczg1IHtcbiAgY29sb3I6ICNEOUQ5RDk7XG59XG5cbi51LWNvbG9yLS1nczgwIHtcbiAgY29sb3I6ICNDQ0NDQ0M7XG59XG5cbi51LWNvbG9yLS1nczc1IHtcbiAgY29sb3I6ICNDMEMwQzA7XG59XG5cbi51LWNvbG9yLS1nczcwIHtcbiAgY29sb3I6ICNCMEIwQjA7XG59XG5cbi51LWNvbG9yLS1nczYwIHtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG5cbi51LWNvbG9yLS1nczUwIHtcbiAgY29sb3I6ICM4MDgwODA7XG59XG5cbi51LWNvbG9yLS1nczQ1IHtcbiAgY29sb3I6ICM3MjcyNzI7XG59XG5cbi51LWNvbG9yLS1nczQwIHtcbiAgY29sb3I6ICM2OTY5Njk7XG59XG5cbi51LWNvbG9yLS1nczMwIHtcbiAgY29sb3I6ICM0RDRENEQ7XG59XG5cbi51LWNvbG9yLS1nczIwIHtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5cbi51LWNvbG9yLS1nczE1IHtcbiAgY29sb3I6ICMyNjI2MjY7XG59XG5cbi51LWNvbG9yLS1nczEwIHtcbiAgY29sb3I6ICMxNzE3MTc7XG59XG5cbi51LWNvbG9yLS1nczUge1xuICBjb2xvcjogIzBhMGEwYTtcbn1cblxuLnUtY29sb3ItLWJsYWNrIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi8qKlxuICogVHlwZVx0XHQ6IFV0aWxpdHlcbiAqIEdyb3VwXHQ6IFR5cGVcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi51LXRleHQtdXAge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udS10ZXh0LWRvd24ge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4udS10ZXh0LWNhcCB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4udS11bmRlcmxpbmUtLXBhcnRpYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51LXVuZGVybGluZS0tcGFydGlhbDpiZWZvcmUge1xuICBib3R0b206IC0xNnB4O1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogNXB4O1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDE0MHB4O1xufVxuXG4udS11bmRlcmxpbmUtLXBhcnRpYWwtLXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51LXVuZGVybGluZS0tcGFydGlhbC0tczpiZWZvcmUge1xuICBib3R0b206IC00cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA1cHg7XG4gIGxlZnQ6IDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTQwcHg7XG59XG5cbi51LXVuZGVybGluZS0td2hpdGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuLnUtdW5kZXJsaW5lLS1ncmF5OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMzNjM2MzY7XG59XG5cbi8qKlxuICogVHlwZVx0XHQ6IFV0aWxpdHlcbiAqIEdyb3VwXHQ6IFZpc2liaWxpdHlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cbi51LXJlbW92ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi51LXNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnUtaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4udS10ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBUeXBlXHRcdDogVXRpbGl0eVxuICogR3JvdXBcdDogV2lkdGhzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG4udS1tYXgtd2lkdGgtLTEwMCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG59XG5cbi51LW1heC13aWR0aC0tMTUwIHtcbiAgbWF4LXdpZHRoOiAxNTBweDtcbn1cblxuLnUtbWF4LXdpZHRoLS0yMDAge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4udS1tYXgtd2lkdGgtLTI1MCB7XG4gIG1heC13aWR0aDogMjUwcHg7XG59XG5cbi51LW1heC13aWR0aC0tMzAwIHtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbn1cblxuLnUtbWF4LXdpZHRoLS0zNTAge1xuICBtYXgtd2lkdGg6IDM1MHB4O1xufVxuXG4udS1tYXgtd2lkdGgtLTQwMCB7XG4gIG1heC13aWR0aDogNDAwcHg7XG59XG5cbi51LW1heC13aWR0aC0tNDUwIHtcbiAgbWF4LXdpZHRoOiA0NTBweDtcbn1cblxuLnUtbWF4LXdpZHRoLS01MDAge1xuICBtYXgtd2lkdGg6IDUwMHB4O1xufVxuXG4udS1tYXgtd2lkdGgtLTU1MCB7XG4gIG1heC13aWR0aDogNTUwcHg7XG59XG5cbi51LW1heC13aWR0aC0tNjAwIHtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbn1cblxuLnUtbWF4LXdpZHRoLS02NTAge1xuICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuXG4udS1tYXgtd2lkdGgtLTcwMCB7XG4gIG1heC13aWR0aDogNzAwcHg7XG59XG5cbi51LW1heC13aWR0aC0tODAwIHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbn1cblxuLnUtbWF4LXdpZHRoLS05MDAge1xuICBtYXgtd2lkdGg6IDkwMHB4O1xufVxuXG4udS16LS1mcm9udCB7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4vKipcbiAqIFNIQU1FISEhXG4gKlxuICogSW4gYSBwZXJmZWN0IHdvcmxkLiB5b3Ugc2hvdWxkIE5FVkVSIG5lZWQgdG8gdXNlIHRoaXMgZmlsZS4uLkJVVC4uLnN0dWZmIGhhcHBlbnNcbiAqIGFuZCBpZiB5b3UgbmVlZCB0byBtYWtlIGEgdmVyeSBxdWljayBoYWNrIHRvIGZpeCBhIGJ1ZywgcHV0IHlvdXIgY29kZSBpbiB0aGlzIGZpbGUuXG4gKiBcbiAqIFBsZWFzZSBtb3ZlIHRoZSBjb2RlIG91dCBvZiB0aGlzIGZpbGUgYW5kIHByb3Blcmx5IGZpeCB3aGF0ZXZlciB5b3UgbmVlZFxuICogdG8gZml4IGFzIHNvb24gYXMgcG9zc2libGUuIENvZGUgc2hvdWxkIG5ldmVyIGJlIGxlZnQgaW4gX3NoYW1lIGZvciBhbnkgbGVuZ3RoIG9mIHRpbWUuXG4gKlxuICovXG4iLCIvKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXHRQcm9qZWN0IFNldHVwXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXG4gKlx0QmVmb3JlIGFueSBvdXRwdXQgaGFwcGVucywgd2UgbmVlZCB0byBwdWxsIGluIGFsbCBvZlxuICpcdG91ciBkZXBlbmRlbmljZXMuIFRoZXNlIGRlcGVuZGVuY2llcyBpbmNsdWRlOlxuICpcbiAqIDEuIENvbmZpZ3VyYXRpb24gRmlsZXNcbiAqIDIuIE1peGlucyBhbmQgRnVuY3Rpb25zXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogXG4gKi9cblx0LyoqXG5cdCAqIExvYWQgb3VyIFByb2plY3QncyBjb25maWd1cmF0aW9ucy5cblx0ICpcblx0ICovXG5cblx0QGltcG9ydCAnMF9fY29uZmlnL19jb25maWctYm9yZGVycyc7XG5cdEBpbXBvcnQgJzBfX2NvbmZpZy9fY29uZmlnLWJyZWFrcG9pbnRzJztcblx0QGltcG9ydCAnMF9fY29uZmlnL19jb25maWctY29sb3JzJztcblx0QGltcG9ydCAnMF9fY29uZmlnL19jb25maWctZ3JpZCc7XG5cdEBpbXBvcnQgJzBfX2NvbmZpZy9fY29uZmlnLXNoYWRvd3MnO1xuXHRAaW1wb3J0ICcwX19jb25maWcvX2NvbmZpZy1zcGFjaW5nJztcblx0QGltcG9ydCAnMF9fY29uZmlnL19jb25maWctdHJhbnNpdGlvbnMnO1xuXHRAaW1wb3J0ICcwX19jb25maWcvX2NvbmZpZy10eXBlJztcblx0QGltcG9ydCAnMF9fY29uZmlnL19jb25maWctd2lkdGhzJztcblx0QGltcG9ydCAnMF9fY29uZmlnL19jb25maWctei1pbmRleCc7XG5cblxuXG5cdC8qKlxuXHQgKiBOZXh0LCB3ZSBuZWVkIHRvIGxvYWQgdGhlIHJlcXVpcmVkIHRvb2xzICggZnVuY3Rpb25zIGFuZCBtaXhpbnMgKVxuXHQgKiBmb3Igb3VyIHByb2plY3QuIE91ciB0b2tlbiBkZWZpbml0aW9ucyBhbmQgdmFyaW91cyBwcm9wZXJ0aWVzXG5cdCAqIGFuZCB2YWx1ZXMgdGhyb3VnaG91dCBvdXIgcHJvamVjdCBkZXBlbmQgb24gdGhlc2UgdG9vbHMuXG5cdCAqXG5cdCAqL1xuXHRAaW1wb3J0ICcxX190b29scy9hX19mdW5jdGlvbnMvX2FhLWxvYWRlcic7XG5cdEBpbXBvcnQgJzFfX3Rvb2xzL2JfX21peGlucy9fYWEtbG9hZGVyJztcblx0QGltcG9ydCAnMV9fdG9vbHMvY19fZXh0ZW5kcy9fYWEtbG9hZGVyJztcblxuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICpcdFByb2plY3QgU3R5bGVzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXG4gKlx0Tm93IHRoYXQgb3VyIHByb2plY3QgaGFzIGJlZW4gY29uZmlndXJlZCBhbmQgb3VyXG4gKlx0ZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGFjZSwgd2UgY2FuIGJlZ2luIGxvYWRpbmdcbiAqXHRmaWxlcyB0aGF0IHdpbGwgY29udGFpbiBhY3R1YWwgb3V0cHV0IHRoYXQgd2lsbCBcbiAqXHRlbmQgdXAgaW4gb3VyIHByb2plY3QncyAvZGlzdCBmb2xkZXIuIFRoZXNlIGFyZVxuICpcdGxvYWRlZCBpbiBhbiBpbnRlbnRpb25hbCBvcmRlciBiYXNlcyBvbiBzZWxlY3RvclxuICpcdHNjb3BlLCBmdW5jdGlvbiBhbmQgc3BlY2lmaWNpdHkuIFxuICpcbiAqIDEuIExpYnNcbiAqIDIuIExheW91dFxuICogMy4gQXRvbXMgXG4gKiA0LiBNb2xlY3VsZXNcbiAqIDUuIE9yZ2FuaXNtc1xuICogNi4gUGFnZXMgXG4gKiA3LiBVdGlsaXR5XG4gKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXG4gKiBOb3RlOiBXZSB1c2UgdGhlIGNvcmUgY29uY2VwdHMgYmVoaW5kIHRoZSBmb2xsb3dpbmdcbiAqIG1ldGhvZG9sb2dpZXMgaW4gdGhpcyBwcm9qZWN0OlxuICpcbiAqIDEuIEJFTSAobW9kaWZpZWQpIC0gaHR0cDovL2dldGJlbS5jb20vaW50cm9kdWN0aW9uL1xuICogMi4gSVRTQ1NTIChtb2RpZmllZCkgLSBodHRwczovL3d3dy54Zml2ZS5jby9ibG9nL2l0Y3NzLXNjYWxhYmxlLW1haW50YWluYWJsZS1jc3MtYXJjaGl0ZWN0dXJlL1xuICogMy4gQXRvbWljIERlc2lnbiAtIGh0dHA6Ly9hdG9taWNkZXNpZ24uYnJhZGZyb3N0LmNvbS90YWJsZS1vZi1jb250ZW50cy9cbiAqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBcbiAqL1xuXG5cblx0LyoqXG5cdCAqIExvYWQgYW55IDNyZCBwYXJ0eSBMaWJyYXJpZXMgd2UgbmVlZFxuXHQgKi9cblx0QGltcG9ydCAnMl9fbGlicy9fYWEtbG9hZGVyJztcblxuXHQvKipcblx0ICogTG9hZCBsYXlvdXQgKGdyaWQpIHJlbGF0ZWQgc3R5bGVzXG5cdCAqL1xuXHRAaW1wb3J0ICczX19sYXlvdXQvX2FhLWxvYWRlcic7XG5cblxuXHQvKipcblx0ICogTG9hZCBvdXIgQXRvbXNcblx0ICovXG5cdEBpbXBvcnQgJzRfX2F0b21zL19hYS1sb2FkZXInO1xuXG5cdC8qKlxuXHQgKiBMb2FkIG91ciBNb2xlY3VsZXNcblx0ICovXG5cdEBpbXBvcnQgJzVfX21vbGVjdWxlcy9fYWEtbG9hZGVyJztcblxuXHQvKipcblx0ICogTG9hZCBvdXIgT3JnYW5pc21zXG5cdCAqL1xuXHRAaW1wb3J0ICc2X19vcmdhbmlzbXMvX2FhLWxvYWRlcic7XG5cblxuXHQvKipcblx0ICogTG9hZCBwYWdlLXNwZWNpZmljIGNvZGVcblx0ICovXG5cdEBpbXBvcnQgJzdfX3BhZ2VzL19hYS1sb2FkZXInO1xuXG5cblx0LyoqXG5cdCAqIExvYWQgb3VyIHV0aWxpdHkgY2xhc3NlcyBcblx0ICovXG5cdEBpbXBvcnQgJzhfX3V0aWxpdHkvX2FhLWxvYWRlcic7XG5cblxuXG4vKipcbiAqIFNIQU1FISEhXG4gKlxuICogSW4gYSBwZXJmZWN0IHdvcmxkLiB5b3Ugc2hvdWxkIE5FVkVSIG5lZWQgdG8gdXNlIHRoaXMgZmlsZS4uLkJVVC4uLnN0dWZmIGhhcHBlbnNcbiAqIGFuZCBpZiB5b3UgbmVlZCB0byBtYWtlIGEgdmVyeSBxdWljayBoYWNrIHRvIGZpeCBhIGJ1ZywgcHV0IHlvdXIgY29kZSBpbiB0aGlzIGZpbGUuXG4gKiBcbiAqIFBsZWFzZSBtb3ZlIHRoZSBjb2RlIG91dCBvZiB0aGlzIGZpbGUgYW5kIHByb3Blcmx5IGZpeCB3aGF0ZXZlciB5b3UgbmVlZFxuICogdG8gZml4IGFzIHNvb24gYXMgcG9zc2libGUuIENvZGUgc2hvdWxkIG5ldmVyIGJlIGxlZnQgaW4gX3NoYW1lIGZvciBhbnkgbGVuZ3RoIG9mIHRpbWUuXG4gKlxuICovXG5cblx0QGltcG9ydCAnX3NoYW1lJzsiLCIvKipcbiAqIFR5cGVcdFx0Olx0Q29uZmlnXG4gKiBHcm91cFx0Olx0Qm9yZGVyc1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbiRib3JkZXJfY29uZmlnIDogKFxuXHRcblx0YXJ0aWNsZTooXG5cdFx0XG5cdFx0d2lkdGhcdDogMTZweCxcblx0XHRzdHlsZVx0OiBzb2xpZCxcblxuXHQpLFxuXG5cblx0YmxvY2txdW90ZTooXG5cdFx0XG5cdFx0d2lkdGhcdDogNXB4LFxuXHRcdHN0eWxlXHQ6IHNvbGlkLFxuXG5cdCksXG5cblx0YnRuLS1wcmltYXJ5OihcblxuXHRcdHdpZHRoXHQ6IDJweCxcblx0XHRzdHlsZVx0OiBzb2xpZCxcblx0XHRjb2xvclx0OiBncmF5c2NhbGUsXG5cdFx0dG9uZVx0OiB3aGl0ZSxcblxuXHQpLFxuXG5cdGlzbGFuZC0tZmVhdHVyZTooXG5cdFx0XG5cdFx0d2lkdGhcdDogMTBweCxcblx0XHRzdHlsZVx0OiBzb2xpZCxcblx0XHRjb2xvclx0OiBncmF5c2NhbGUsXG5cdFx0dG9uZVx0OiB3aGl0ZSxcblxuXHQpLFxuXG5cdGxpZ2h0Ym94Oihcblx0XHRcblx0XHR3aWR0aFx0OiAzcHgsXG5cdFx0c3R5bGVcdDogc29saWQsXG5cdFx0Y29sb3JcdDogZ3JheXNjYWxlLFxuXHRcdHRvbmVcdDogd2hpdGUsXG5cblx0KSxcblx0XG5cdGxpbms6KFxuXHRcdFxuXHRcdHdpZHRoXHQ6IDJweCxcblx0XHRzdHlsZVx0OiBzb2xpZCxcblx0XHRjb2xvclx0OiByZWQsXG5cdFx0dG9uZVx0OiBiYXNlLFxuXG5cdCksXG5cblx0bWVnYS1tZW51Oihcblx0XHRcblx0XHR3aWR0aFx0OiA1cHgsXG5cdFx0c3R5bGVcdDogc29saWQsXG5cdFx0Y29sb3JcdDogZ3JheXNjYWxlLFxuXHRcdHRvbmVcdDogd2hpdGUsXG5cblx0KSxcblxuXHR0aXRsZS1ncm91cC1ib3g6KFxuXHRcdFxuXHRcdHdpZHRoXHQ6IDNweCxcblx0XHRzdHlsZVx0OiBzb2xpZCxcblx0XHRjb2xvclx0OiBncmF5c2NhbGUsXG5cdFx0dG9uZVx0OiB3aGl0ZSxcblxuXHQpLFxuXG4pO1xuXG5cbiRib3JkZXItcmFkaXVzX2NvbmZpZyA6IChcblxuXHRkZWZhdWx0IDogMHB4XG5cbik7IiwiLyoqXG4gKiBUeXBlXHRcdDpcdENvbmZpZ1xuICogR3JvdXBcdDpcdEJyZWFrcG9pbnRzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbiRicmVha3BvaW50c19jb25maWc6KFxuXHRcblx0MnhzXHRcdDpcdDQxNHB4LFxuXHR4c1x0XHQ6XHQ1NjBweCxcblx0c1x0XHQ6IFx0NzY4cHgsXG5cdG1cdFx0Olx0OTYwcHgsXG5cdGxcdFx0Olx0MTA0MHB4LFxuXHR4bFx0XHQ6XHQxMjAwcHgsXG5cdDJ4bFx0XHQ6XHQxNDQwcHgsXG5cdDN4bFx0XHQ6XHQxNjQwcHhcblx0XG4pOyIsIi8qKlxuICogVHlwZSAgICAgOiAgIENvbmZpZ1xuICogR3JvdXAgICAgOiAgIENvbG9yc1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSAkY29sb3JzIG1hcCBpcyB3aGVyZSB5b3UgZGVmaW5lIGFsbFxuLy8gb2YgeW91ciBicmFuZCBjb2xvcnMuXG4vLyBcbi8vIFRoaXMgc2hvdWxkIGJlIHRoZSBPTkxZIHBsYWNlIGNvbG9yIGhleCB2YWx1ZXMgYXJlIGRlZmluZWQgaW4geW91ciBwcm9qZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRjb2xvcnMgOiAoXG4gICAgXG4gICAgLy8gUHJpbWFyeVxuICAgIHJlZCAgICAgICAgIDogI0NFMTE0MSxcbiAgICBnbG93LXJlZCAgICA6ICNGODAyMjgsXG4gICAgYmx1ZSAgICAgICAgOiAjMDA0QjhELFxuICAgIGdsb3ctYmx1ZSAgIDogIzAyMDBEMSxcblxuICAgIC8vIEFjY2VudFxuICAgIGdsb3ctdHVycSAgIDogIzAwRkZGRixcbiAgICBnbG93LW5hdnkgICA6ICMxNzFCNDgsXG5cbik7XG5cblxuJGNhdGVnb3J5LWNvbG9ycyA6IChcbiAgICBcbiAgICAvL0hvbWVcbiAgICBzZWEgICAgIDogIzAwNkVBMSxcbiAgICBzbGF0ZSAgIDogIzRENkE5MCxcbiAgICBza3kgICAgIDogIzdGQkVEQSxcbiAgICBjYWx5cHNvIDogIzA3ODQ5MyxcbiAgICBcbiAgICAvLyBJc3N1ZVxuICAgIGVuY2hhdGVkICAgIDogIzhDNUJDRCxcbiAgICBuZXB0dW5lICAgICA6ICM1QzYxRkYsXG4gICAgZHJhZ29uICAgICAgOiAjQjQxMDZDLCBcbiAgICBwbHVtICAgICAgICA6ICM4MzJCODMsXG4gICAgYnJ1aXNlICAgICAgOiAjN0YyQzU4LCBcbiAgICBjaGFybSAgICAgICA6ICNEODJCNTMsXG5cbiAgICAvLyBMZWdhY3kgSXNzdWVcbiAgICBtYWhvZ2FueSAgICA6ICNEMjQ4MTIsXG4gICAgZ2FyZmllbGQgICAgOiAjRjk3OTEyLFxuICAgIG1vc3MgICAgICAgIDogIzg0QkQ5NCxcbiAgICBhcHBsZSAgICAgICA6ICNBOENENTYsXG4gICAgY2FyaWJiZWFuICAgOiAjMDBEOEFFLFxuICAgIG1pbmVyYWwgICAgIDogIzZENzQ4RCxcblxuXG4pO1xuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlZmluZSB0aGUgY29sb3Igc2NhbGUgbWFwIHRvIHVzZSB3aXRoIG91ciBwcm9qZWN0LlxuLy8gXG4vLyBPdXIgY29sb3Igc2NhbGUgbWFwIGlzIHJlbGF0aXZlIHRvIHRoZSAkY29sb3JzIGRlZmluZWQgYWJvdmUuXG4vLyBXZSBkbyBub3QgZGVjYXJlIGFyYml0cmFyeSBoZXggdmFsdWVzLCBidXQgcmF0aGVyLCBrZWVwIGVhY2hcbi8vIGJyYW5kZWQgY29sb3IgcmVsYXRpdmUgdG8gaXRzIGJhc2UgdmFsdWUsIGFuZCBlaXRoZXIgbGlnaHRlbigpLFxuLy8gb3IgZGFya2VuKCkgYWNjb3JkaW5nbHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGNvbG9yX2NvbmZpZzogKFxuICAgIFxuICAgIHJlZDogKCAgXG5cbiAgICAgICAgbGlnaHQyMCAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIHJlZCApLCAyMCUgKSxcbiAgICAgICAgbGlnaHQxNSAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIHJlZCApLCAxNSUgKSxcbiAgICAgICAgbGlnaHQxMCAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIHJlZCApLCAxMCUgKSxcbiAgICAgICAgbGlnaHQ1ICAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIHJlZCApLCA1JSApLFxuXG4gICAgICAgIGJhc2UgICAgIDogICBtYXAtZ2V0KCAkY29sb3JzLCByZWQgKSxcblxuICAgICAgICBkYXJrNSAgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCByZWQgKSwgNSUgKSxcbiAgICAgICAgZGFyazEwICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgcmVkICksIDEwJSApLFxuICAgICAgICBkYXJrMTUgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCByZWQgKSwgMTUlICksXG4gICAgICAgIGRhcmsyMCAgIDogICBkYXJrZW4oIG1hcC1nZXQoICRjb2xvcnMsIHJlZCApLCAyMCUgKSxcbiAgICAgICAgXG4gICAgKSxcblxuICAgIGdsb3ctcmVkOiAoICBcblxuICAgICAgICBsaWdodDIwICA6ICAgbGlnaHRlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy1yZWQgKSwgMjAlICksXG4gICAgICAgIGxpZ2h0MTUgIDogICBsaWdodGVuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LXJlZCApLCAxNSUgKSxcbiAgICAgICAgbGlnaHQxMCAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctcmVkICksIDEwJSApLFxuICAgICAgICBsaWdodDUgICA6ICAgbGlnaHRlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy1yZWQgKSwgNSUgKSxcblxuICAgICAgICBiYXNlICAgICA6ICAgbWFwLWdldCggJGNvbG9ycywgZ2xvdy1yZWQgKSxcblxuICAgICAgICBkYXJrNSAgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LXJlZCApLCA1JSApLFxuICAgICAgICBkYXJrMTAgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LXJlZCApLCAxMCUgKSxcbiAgICAgICAgZGFyazE1ICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy1yZWQgKSwgMTUlICksXG4gICAgICAgIGRhcmsyMCAgIDogICBkYXJrZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctcmVkICksIDIwJSApLFxuICAgICAgICBcbiAgICApLFxuXG4gICAgYmx1ZTogKCAgXG5cbiAgICAgICAgbGlnaHQyMCAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIGJsdWUgKSwgMjAlICksXG4gICAgICAgIGxpZ2h0MTUgIDogICBsaWdodGVuKCBtYXAtZ2V0KCAkY29sb3JzLCBibHVlICksIDE1JSApLFxuICAgICAgICBsaWdodDEwICA6ICAgbGlnaHRlbiggbWFwLWdldCggJGNvbG9ycywgYmx1ZSApLCAxMCUgKSxcbiAgICAgICAgbGlnaHQ1ICAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIGJsdWUgKSwgNSUgKSxcblxuICAgICAgICBiYXNlICAgICA6ICAgbWFwLWdldCggJGNvbG9ycywgYmx1ZSApLFxuXG4gICAgICAgIGRhcms1ICAgIDogICBkYXJrZW4oIG1hcC1nZXQoICRjb2xvcnMsIGJsdWUgKSwgNSUgKSxcbiAgICAgICAgZGFyazEwICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgYmx1ZSApLCAxMCUgKSxcbiAgICAgICAgZGFyazE1ICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgYmx1ZSApLCAxNSUgKSxcbiAgICAgICAgZGFyazIwICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgYmx1ZSApLCAyMCUgKSxcbiAgICAgICAgXG4gICAgKSxcblxuICAgIGdsb3ctYmx1ZTogKCAgXG5cbiAgICAgICAgbGlnaHQyMCAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctYmx1ZSApLCAyMCUgKSxcbiAgICAgICAgbGlnaHQxNSAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctYmx1ZSApLCAxNSUgKSxcbiAgICAgICAgbGlnaHQxMCAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctYmx1ZSApLCAxMCUgKSxcbiAgICAgICAgbGlnaHQ1ICAgOiAgIGxpZ2h0ZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctYmx1ZSApLCA1JSApLFxuXG4gICAgICAgIGJhc2UgICAgOiAgIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctYmx1ZSApLFxuXG4gICAgICAgIGRhcms1ICAgIDogICBkYXJrZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctYmx1ZSApLCA1JSApLFxuICAgICAgICBkYXJrMTAgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LWJsdWUgKSwgMTAlICksXG4gICAgICAgIGRhcmsxNSAgIDogICBkYXJrZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctYmx1ZSApLCAxNSUgKSxcbiAgICAgICAgZGFyazIwICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy1ibHVlICksIDIwJSApLFxuICAgICAgICBcbiAgICApLFxuXG4gICAgZ2xvdy10dXJxOiAoICBcblxuICAgICAgICBsaWdodDIwICA6ICAgbGlnaHRlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy10dXJxICksIDIwJSApLFxuICAgICAgICBsaWdodDE1ICA6ICAgbGlnaHRlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy10dXJxICksIDE1JSApLFxuICAgICAgICBsaWdodDEwICA6ICAgbGlnaHRlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy10dXJxICksIDEwJSApLFxuICAgICAgICBsaWdodDUgICA6ICAgbGlnaHRlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy10dXJxICksIDUlICksXG5cbiAgICAgICAgYmFzZSAgICA6ICAgbWFwLWdldCggJGNvbG9ycywgZ2xvdy10dXJxICksXG5cbiAgICAgICAgZGFyazUgICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy10dXJxICksIDUlICksXG4gICAgICAgIGRhcmsxMCAgIDogICBkYXJrZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctdHVycSApLCAxMCUgKSxcbiAgICAgICAgZGFyazE1ICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy10dXJxICksIDE1JSApLFxuICAgICAgICBkYXJrMjAgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LXR1cnEgKSwgMjAlICksXG4gICAgICAgIFxuICAgICksXG5cbiAgICBnbG93LW5hdnk6ICggIFxuXG4gICAgICAgIGxpZ2h0MjAgIDogICBsaWdodGVuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LW5hdnkgKSwgMjAlICksXG4gICAgICAgIGxpZ2h0MTUgIDogICBsaWdodGVuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LW5hdnkgKSwgMTUlICksXG4gICAgICAgIGxpZ2h0MTAgIDogICBsaWdodGVuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LW5hdnkgKSwgMTAlICksXG4gICAgICAgIGxpZ2h0NSAgIDogICBsaWdodGVuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LW5hdnkgKSwgNSUgKSxcblxuICAgICAgICBiYXNlICAgIDogICBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LW5hdnkgKSxcblxuICAgICAgICBkYXJrNSAgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LW5hdnkgKSwgNSUgKSxcbiAgICAgICAgZGFyazEwICAgOiAgIGRhcmtlbiggbWFwLWdldCggJGNvbG9ycywgZ2xvdy1uYXZ5ICksIDEwJSApLFxuICAgICAgICBkYXJrMTUgICA6ICAgZGFya2VuKCBtYXAtZ2V0KCAkY29sb3JzLCBnbG93LW5hdnkgKSwgMTUlICksXG4gICAgICAgIGRhcmsyMCAgIDogICBkYXJrZW4oIG1hcC1nZXQoICRjb2xvcnMsIGdsb3ctbmF2eSApLCAyMCUgKSxcbiAgICAgICAgXG4gICAgKSxcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBIFNBU1NZIEdyYXlzY2FsZSBjb3VydGVzeSBvZiB0aGUgYXdlc29tZSBwZW9wbGUgYXQgU3Bhcmtib3guXG4gICAgLy8gVXNlZnVsIGZvciBhbnkgZGVzaWduIHN5c3RlbSFcbiAgICAvL1xuICAgIC8vIGh0dHBzOi8vc2Vlc3Bhcmtib3guY29tL2ZvdW5kcnkvc2Fzc3lfZ3JheXNjYWxlXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgZ3JheXNjYWxlOiAoXG4gICAgICAgIHJnYmFXaGl0ZSA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSksXG4gICAgICAgIHdoaXRlICAgOiAjZmZmZmZmLFxuICAgICAgICA5OSAgICAgIDogI2ZjZmNmYyxcbiAgICAgICAgOTggICAgICA6ICNmM2YzZjMsXG4gICAgICAgIDk1ICAgICAgOiAjRURFREVELFxuICAgICAgICA5MCAgICAgIDogI0U1RTVFNSwgXG4gICAgICAgIDg1ICAgICAgOiAjRDlEOUQ5LFxuICAgICAgICA4MCAgICAgIDogI0NDQ0NDQyxcbiAgICAgICAgNzUgICAgICA6ICNDMEMwQzAsIFxuICAgICAgICA3MCAgICAgIDogI0IwQjBCMCxcbiAgICAgICAgNjAgICAgICA6ICM5OTk5OTksXG4gICAgICAgIDUwICAgICAgOiAjODA4MDgwLFxuICAgICAgICA0NSAgICAgIDogIzcyNzI3MixcbiAgICAgICAgNDAgICAgICA6ICM2OTY5NjksIFxuICAgICAgICAzMCAgICAgIDogIzRENEQ0RCxcbiAgICAgICAgMjAgICAgICA6ICMzNjM2MzYsXG4gICAgICAgIDE1ICAgICAgOiAjMjYyNjI2LFxuICAgICAgICAxMCAgICAgIDogIzE3MTcxNyxcbiAgICAgICAgNSAgICAgICA6ICMwYTBhMGEsXG4gICAgICAgIGJsYWNrICAgOiAjMDAwMDAwLFxuXG4gICAgKVxuKTtcblxuXG4vKipcbiogSG9tZSBDYXRlZ29yeSBDb2xvcnNcbiovXG5cbiRxdWlja2x5LWNhdC1jb2xvcl9jb25maWcgOiAoXG4gICAgXG4gICAgZmVhdHVyZSAgICAgICAgIDogbWFwX2dldCggJGNhdGVnb3J5LWNvbG9ycywgc2VhICksXG4gICAgc25hcHNob3QgICAgICAgIDogbWFwX2dldCggJGNhdGVnb3J5LWNvbG9ycywgc2xhdGUgKSxcbiAgICBzY3JpYmJsaW5nICAgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBza3kgKSxcbiAgICBteS1vbGQtaG91c2UgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBjYWx5cHNvIClcblxuKTtcblxuLyoqXG4qIElzc3VlIENhdGVnb3J5IENvbG9yc1xuKi9cbiRpc3N1ZS1jYXQtY29sb3JfY29uZmlnIDogKFxuICAgIFxuICAgIC8vIFByaW1hcnlcbiAgICBtYXJpYW5pc3QgICAgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBlbmNoYXRlZCApLFxuICAgIHBhcnRpbmcgICAgICAgICA6IG1hcF9nZXQoICRjYXRlZ29yeS1jb2xvcnMsIG5lcHR1bmUgKSxcbiAgICBwcmVzaWRlbnRzICAgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBkcmFnb24gKSxcbiAgICBzcG9ydHMgICAgICAgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBwbHVtICksXG4gICAgcGVyY2VwdGlvbnMgICAgIDogbWFwX2dldCggJGNhdGVnb3J5LWNvbG9ycywgYnJ1aXNlICksXG4gICAgYWx1bW5pICAgICAgICAgIDogbWFwX2dldCggJGNhdGVnb3J5LWNvbG9ycywgY2hhcm0gKSxcblxuICAgIC8vIExlZ2FjeVxuICAgIGNoYXB0ZXIgICAgICAgICA6IG1hcF9nZXQoICRjYXRlZ29yeS1jb2xvcnMsIG1haG9nYW55ICksXG4gICAgZXhwZXJ0ICAgICAgICAgIDogbWFwX2dldCggJGNhdGVnb3J5LWNvbG9ycywgZ2FyZmllbGQgKSxcbiAgICBoaWRkZW4gICAgICAgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBtb3NzICksXG4gICAgZ29vZC13b3JrcyAgICAgIDogbWFwX2dldCggJGNhdGVnb3J5LWNvbG9ycywgYXBwbGUgKSxcbiAgICBib29rc2hlbGYgICAgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBjYXJpYmJlYW4gKSxcbiAgICBuby10YWcgICAgICAgICAgOiBtYXBfZ2V0KCAkY2F0ZWdvcnktY29sb3JzLCBtaW5lcmFsICksXG5cbik7IiwiLyoqXG4gKiBUeXBlXHRcdDpcdENvbmZpZ1xuICogR3JvdXBcdDpcdEdyaWRcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiBHbG9iYWwgR3JpZCBTZXR0aW5nc1xuICovXG5cbiRncmlkX2NvbmZpZyA6IChcblxuXHR3aWR0aC0tZnVsbFx0XHRcdFx0OiAxMDAlLFxuXHR3aWR0aC0tbFx0XHRcdFx0OiAxMjAwcHgsXG5cdHdpZHRoLS1zXHRcdFx0XHQ6IDEwMDBweCxcblx0d2lkdGgtLXBvc3RcdFx0XHRcdDogNzAwcHgsXG5cdGNvbnRhaW5lci13aWR0aC1kZXNrdG9wXHQ6IDkwJSxcblx0Y29udGFpbmVyLXdpZHRoLW1vYmlsZVx0OiA4NSUsXG5cbik7IiwiLyoqXG4gKiBUeXBlXHRcdDpcdENvbmZpZ1xuICogR3JvdXBcdDpcdFNoYWRvd3NcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4kc2hhZG93c19jb25maWcgOiAoXG5cblx0bWVkaWEtLXN1YnRsZSA6IChcblxuXHRcdGJhc2VcdFx0OiAwcHggMHB4IDdweCAxcHgsXG5cdFx0Y29sb3JcdFx0OiBncmF5c2NhbGUsXG5cdFx0dG9uZVx0XHQ6IDMwLFxuXHRcdG9wYWNpdHlcdFx0OiAuNSxcblxuXHQpLFxuXHRcblx0bWVnYS1tZW51IDogKFxuXG5cdFx0YmFzZVx0XHQ6IDBweCAxMHB4IDEwcHggMHB4LFxuXHRcdGNvbG9yXHRcdDogZ3JheXNjYWxlLFxuXHRcdHRvbmVcdFx0OiBibGFjayxcblx0XHRvcGFjaXR5XHRcdDogLjEsXG5cblx0KSxcblxuXHRtZWdhLW1lbnUtY3RhOihcblx0XHRcblx0XHRiYXNlXHRcdDogMnB4IDBweCAyMHB4IDE1cHgsXG5cdFx0Y29sb3JcdFx0OiBncmF5c2NhbGUsXG5cdFx0dG9uZVx0XHQ6IGJsYWNrLFxuXHRcdG9wYWNpdHlcdFx0OiAuMSxcblxuXHQpLFxuXG5cdG1lZ2EtbWVudS1saXN0Oihcblx0XHRcblx0XHRiYXNlXHRcdDogLTJweCAwcHggMjBweCAxNXB4LFxuXHRcdGNvbG9yXHRcdDogZ3JheXNjYWxlLFxuXHRcdHRvbmVcdFx0OiBibGFjayxcblx0XHRvcGFjaXR5XHRcdDogLjEsXG5cblx0KSxcblxuXHRcbik7IiwiLyoqXG4gKiBUeXBlXHRcdDpcdENvbmZpZ1xuICogR3JvdXBcdDpcdFNwYWNpbmdcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuJHNwYWNpbmdfY29uZmlnOiAoXG5cblx0dW5pdDogcHgsXG5cbik7XG5cblxuJHNwYWNpbmctdmFsdWVzX2NvbmZpZyA6IChcblxuXHQyeHNcdFx0Olx0Mixcblx0eHNcdFx0Olx0NCxcblx0c1x0XHQ6XHQ4LFxuXHRtXHRcdDpcdDE2LFxuXHRtbFx0XHQ6IFx0MjQsXG5cdGxcdFx0Olx0MzIsXG5cdGxtXHRcdDpcdDQ4LFxuXHR4bFx0XHQ6XHQ2NCxcblx0MnhsXHRcdDpcdDk2LFxuXHQzeGxcdFx0OiBcdDEyOCxcblx0NHhsXHRcdDogXHQxNjAsXG5cbik7XG5cbiRzcGFjaW5nLXNpZGVzOiAoXG5cblx0dG9wLFxuXHRyaWdodCxcblx0Ym90dG9tLFxuXHRsZWZ0LFxuXHRob3Jpem9udGFsLFxuXHR2ZXJ0aWNhbCxcblx0YWxsXG5cblxuKTsiLCIvKipcbiAqIFR5cGVcdFx0Olx0Q29uZmlnXG4gKiBHcm91cFx0Olx0VHJhbnNpdGlvbnNcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuJHRyYW5zaXRpb25zX2NvbmZpZzogKFxuXG5cdFxuXHRhY3Rpb24tYmFyOihcblx0XG5cdFx0cHJvcGVydGllczogdHJhbnNmb3JtLFxuXHQgXHRkdXJhdGlvbjogLjNzLFxuXHQgXHR0aW1pbmc6IGVhc2UtaW4tb3V0LFxuXG5cdCksXG5cblx0YnRuIDooXG5cblx0IFx0cHJvcGVydGllczogYmFja2dyb3VuZCxcblx0IFx0ZHVyYXRpb246IC4xNXMsXG5cdCBcdHRpbWluZzogZWFzZSxcblxuXHQpLFxuXG5cdGNhcmQ6IChcblx0XHRcblx0XHRwcm9wZXJ0aWVzOiBhbGwsXG5cdCBcdGR1cmF0aW9uOiAuMTVzLFxuXHQgXHR0aW1pbmc6IGVhc2UsXG5cblx0KSxcblxuXHRpY29uOiAoXG5cdFx0XG5cdFx0cHJvcGVydGllczogZmlsbCxcblx0IFx0ZHVyYXRpb246IC4xNXMsXG5cdCBcdHRpbWluZzogZWFzZSxcblxuXHQpLFxuXHRcblx0bGlrZS1jb3VudDogKFxuXHRcdFxuXHRcdHByb3BlcnRpZXM6IGNvbG9yLFxuXHQgXHRkdXJhdGlvbjogLjRzLFxuXHQgXHR0aW1pbmc6IGVhc2UsXG5cblx0KSxcblxuXHRsaW5rOiAoXG5cdFx0XG5cdFx0cHJvcGVydGllczogYWxsLFxuXHQgXHRkdXJhdGlvbjogLjE1cyxcblx0IFx0dGltaW5nOiBlYXNlLFxuXG5cdCksXG5cblx0Zm9ybTogKFxuXHRcdFxuXHRcdHByb3BlcnRpZXM6IGJhY2tncm91bmQsXG5cdCBcdGR1cmF0aW9uOiAuMTVzLFxuXHQgXHR0aW1pbmc6IGVhc2UsXG5cblx0KSxcblxuKTsiLCIvKipcbiAqIFR5cGVcdFx0Olx0Q29uZmlnXG4gKiBHcm91cFx0Olx0VHlwb2dyYXBoeVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cblxuLyoqXG4gKiBUaGUgY29yZSB0eXBlIHNldHRpbmdzIGZvciBvdXIgcHJvamVjdFxuICogQHR5cGUge1t0eXBlXX1cbiAqL1xuJHR5cGVfY29uZmlnIDogKFxuXG5cdHJvb3QtZm9udC1zaXplXHRcdDpcdDEwMCUsXHQvLyBzZXRzIHRoZSBiYXNlIGZvciBvdXIgZW50aXJlIHByb2plY3RcblxuXHRiYXNlLWZvbnQtc2l6ZVx0XHQ6XHQxcmVtLFx0Ly8gdXNlZCBmb3IgYmFzZSBib2R5XG5cdGJhc2UtZm9udC1zaXplLXB4XHQ6XHQxNiwgXHQvLyB1c2VkIGZvciBnZW5lcmF0aW5nIHB4IGZhbGxiYWNrcyBmb3Igb3VyIHJlbSB2YWx1ZXNcblx0YmFzZS1saW5lLWhlaWdodFx0Olx0MS41LFxuXG5cdHNjYWxlIDogKFxuXG5cdFx0ZGVza3RvcFx0OiAxLjI1MCxcblx0XHRtb2JpbGVcdDogMS4xNTAsXG5cblx0KVxuXG4pO1xuXG4vKipcbiAqIEEgY29uZmlndXJhdGlvbiBtYXAgdG8gc2V0IHVwIG91ciBmb250c1xuICovXG4kZm9udF9jb25maWcgOiAoXG5cblxuXHQvLyBDb25maWd1cmUgdGhlIGZvbnRcblx0Ly8gdXNlZCBmb3Igb3VyIHByb2plY3QncyBib2R5XG5cdGJvZHk6IChcblxuXHRcdGZhbWlseSBcdFx0OiAoIFwiQ2hyb25pY2xlIFRleHQgRzEgQVwiLCBcIkNocm9uaWNsZSBUZXh0IEcxIEJcIiApLFxuXHRcdGZhbGxiYWNrXHQ6ICggc2VyaWYgKSxcblx0XHRzdHlsZVx0XHQ6IG5vcm1hbCxcblxuXHRcdC8vIERlbGV0ZSB3ZWlnaHRzIHlvdSBkb24ndCBuZWVkXG5cdFx0d2VpZ2h0czogKFxuXG5cdFx0XHR0aGluIFx0XHQ6XHQxMDAsXG5cdFx0XHRleHRyYS1saWdodFx0Olx0MjAwLFxuXHRcdFx0bGlnaHRcdFx0Olx0MzAwLFxuXHRcdFx0cmVndWxhclx0XHQ6XHQ0MDAsXG5cdFx0XHRib2xkXHRcdDogXHQ3MDAsXG5cdFx0XG5cblx0XHQpXG5cblx0KSxcblxuXHQvLyBDb25maWd1cmUgdGhlIGZvbnRcblx0Ly8gdXNlZCBmb3Igb3VyIHByb2plY3QncyBib2R5XG5cdGJvZHktYm9sZDogKFxuXG5cdFx0ZmFtaWx5IFx0XHQ6ICggXCJDaHJvbmljbGUgRGlzcGxheSBBXCIsIFwiQ2hyb25pY2xlIERpc3BsYXkgQlwiICksXG5cdFx0ZmFsbGJhY2tcdDogKCBzZXJpZiApLFxuXHRcdHN0eWxlXHRcdDogaXRhbGljLFxuXG5cdFx0Ly8gRGVsZXRlIHdlaWdodHMgeW91IGRvbid0IG5lZWRcblx0XHR3ZWlnaHRzOiAoXG5cblx0XHRcdHRoaW4gXHRcdDpcdDEwMCxcblx0XHRcdGV4dHJhLWxpZ2h0XHQ6XHQyMDAsXG5cdFx0XHRsaWdodFx0XHQ6XHQzMDAsXG5cdFx0XHRyZWd1bGFyXHRcdDpcdDQwMCxcblx0XHRcdGJvbGRcdFx0Olx0NzAwLFxuXHRcdFxuXG5cdFx0KVxuXG5cdCksXG5cblx0Ly8gQ29uZmlndXJlIGZvbnQgb3B0aW9ucyBmb3IgYVxuXHQvLyB3aWRlciBzYW5zIHNlcmlmIGZvbnRcblx0d2lkZXItc2Fucy1zZXJpZjogKFxuXG5cdFx0ZmFtaWx5IFx0XHQ6ICggXCJXb3JrIFNhbnNcIiApLFxuXHRcdGZhbGxiYWNrXHQ6ICggc2Fucy1zZXJpZiApLFxuXHRcdHN0eWxlXHRcdDogbm9ybWFsLFxuXG5cblx0XHQvLyBEZWxldGUgd2VpZ2h0cyB5b3UgZG9uJ3QgbmVlZFxuXHRcdHdlaWdodHM6IChcblxuXHRcdFx0dGhpbiBcdFx0Olx0MTAwLFxuXHRcdFx0ZXh0cmEtbGlnaHRcdDpcdDIwMCxcblx0XHRcdGxpZ2h0XHRcdDpcdDMwMCxcblx0XHRcdHJlZ3VsYXJcdFx0Olx0NDAwLFxuXHRcdFx0bWVkaXVtXHRcdDpcdDUwMCxcblx0XHRcdHNlbWktYm9sZCBcdDpcdDYwMCxcblx0XHRcdGJvbGQgXHRcdDpcdDcwMCxcblx0XHRcdGV4dHJhLWJvbGRcdDpcdDgwMCxcblx0XHRcdGJsYWNrXHRcdDpcdDkwMCxcblxuXHRcdClcblxuXHQpLFxuXG5cdC8vIENvbmZpZ3VyZSBmb250IG9wdGlvbnMgZm9yIG91clxuXHQvLyBwcm9qZWN0J3MgaGVhZGluZ3Ncblx0aGVhZGluZy1oZWF2eTogKFxuXG5cdFx0ZmFtaWx5IFx0XHQ6ICggXCJDaGFtcGlvbiBIZWF2eXd0IEFcIixcIkNoYW1waW9uIEhlYXZ5d3QgQlwiICksXG5cdFx0ZmFsbGJhY2tcdDogKCBzYW5zLXNlcmlmICksXG5cdFx0c3R5bGVcdFx0OiBub3JtYWwsXG5cblxuXHRcdC8vIERlbGV0ZSB3ZWlnaHRzIHlvdSBkb24ndCBuZWVkXG5cdFx0d2VpZ2h0czogKFxuXG5cdFx0XHR0aGluIFx0XHQ6XHQxMDAsXG5cdFx0XHRleHRyYS1saWdodFx0Olx0MjAwLFxuXHRcdFx0bGlnaHRcdFx0Olx0MzAwLFxuXHRcdFx0cmVndWxhclx0XHQ6XHQ0MDAsXG5cdFx0XHRtZWRpdW1cdFx0Olx0NTAwLFxuXHRcdFx0c2VtaS1ib2xkIFx0Olx0NjAwLFxuXHRcdFx0Ym9sZCBcdFx0Olx0NzAwLFxuXHRcdFx0ZXh0cmEtYm9sZFx0Olx0ODAwLFxuXHRcdFx0YmxhY2tcdFx0Olx0OTAwLFxuXG5cdFx0KVxuXG5cblx0KSxcblxuXHQvLyBDb25maWd1cmUgZm9udCBvcHRpb25zIGZvciBvdXJcblx0Ly8gcHJvamVjdCdzIGhlYWRpbmdzXG5cdGhlYWRpbmctYmFudGFtOiAoXG5cblx0XHRmYW1pbHkgXHRcdDogKCBcIkNoYW1waW9uIEJhbnRhbXd0IEFcIiwgXCJDaGFtcGlvbiBCYW50YW13dCBCXCIgKSxcblx0XHRmYWxsYmFja1x0OiAoIHNhbnMtc2VyaWYgKSxcblx0XHRzdHlsZVx0XHQ6IG5vcm1hbCxcblxuXG5cdFx0Ly8gRGVsZXRlIHdlaWdodHMgeW91IGRvbid0IG5lZWRcblx0XHR3ZWlnaHRzOiAoXG5cblx0XHRcdHRoaW4gXHRcdDpcdDEwMCxcblx0XHRcdGV4dHJhLWxpZ2h0XHQ6XHQyMDAsXG5cdFx0XHRsaWdodFx0XHQ6XHQzMDAsXG5cdFx0XHRyZWd1bGFyXHRcdDpcdDQwMCxcblx0XHRcdG1lZGl1bVx0XHQ6XHQ1MDAsXG5cdFx0XHRzZW1pLWJvbGQgXHQ6XHQ2MDAsXG5cdFx0XHRib2xkIFx0XHQ6XHQ3MDAsXG5cdFx0XHRleHRyYS1ib2xkXHQ6XHQ4MDAsXG5cdFx0XHRibGFja1x0XHQ6XHQ5MDAsXG5cblx0XHQpXG5cblxuXHQpLFxuXG5cdC8vIENvbmZpZ3VyZSBmb250IG9wdGlvbnMgZm9yIG91clxuXHQvLyBwcm9qZWN0J3MgaGVhZGluZ3Ncblx0aGVhZGluZy1saWdodDogKFxuXG5cdFx0ZmFtaWx5IFx0XHQ6ICggXCJDaGFtcGlvbiBMaWdodHd0IEFcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEJcIiApLFxuXHRcdGZhbGxiYWNrXHQ6ICggc2Fucy1zZXJpZiApLFxuXHRcdHN0eWxlXHRcdDogbm9ybWFsLFxuXG5cblx0XHQvLyBEZWxldGUgd2VpZ2h0cyB5b3UgZG9uJ3QgbmVlZFxuXHRcdHdlaWdodHM6IChcblxuXHRcdFx0dGhpbiBcdFx0Olx0MTAwLFxuXHRcdFx0ZXh0cmEtbGlnaHRcdDpcdDIwMCxcblx0XHRcdGxpZ2h0XHRcdDpcdDMwMCxcblx0XHRcdHJlZ3VsYXJcdFx0Olx0NDAwLFxuXHRcdFx0bWVkaXVtXHRcdDpcdDUwMCxcblx0XHRcdHNlbWktYm9sZCBcdDpcdDYwMCxcblx0XHRcdGJvbGQgXHRcdDpcdDcwMCxcblx0XHRcdGV4dHJhLWJvbGRcdDpcdDgwMCxcblx0XHRcdGJsYWNrXHRcdDpcdDkwMCxcblxuXHRcdClcblxuXG5cdCksXG5cblx0aGVhZGluZy13ZWx0ZXJ3dDogKFxuXG5cdGZhbWlseSBcdFx0OiAoIFwiQ2hhbXBpb24gV2VsdGVyd3QgQVwiLCBcIkNoYW1waW9uIFdlbHRlcnd0IEJcIiwgXCJDaGFtcGlvbiBIVEYtV2VsdGVyd2VpZ2h0XCIgKSxcblx0ZmFsbGJhY2tcdDogKCBzYW5zLXNlcmlmICksXG5cdHN0eWxlXHRcdDogbm9ybWFsLFxuXG5cblx0Ly8gRGVsZXRlIHdlaWdodHMgeW91IGRvbid0IG5lZWRcblx0d2VpZ2h0czogKFxuXG5cdFx0dGhpbiBcdFx0Olx0MTAwLFxuXHRcdGV4dHJhLWxpZ2h0XHQ6XHQyMDAsXG5cdFx0bGlnaHRcdFx0Olx0MzAwLFxuXHRcdHJlZ3VsYXJcdFx0Olx0NDAwLFxuXHRcdG1lZGl1bVx0XHQ6XHQ1MDAsXG5cdFx0c2VtaS1ib2xkIFx0Olx0NjAwLFxuXHRcdGJvbGQgXHRcdDpcdDcwMCxcblx0XHRleHRyYS1ib2xkXHQ6XHQ4MDAsXG5cdFx0YmxhY2tcdFx0Olx0OTAwLFxuXG5cdClcblxuXG4pLFxuXG5cblxuXG4pOyIsIi8qKlxuICogVHlwZVx0XHQ6XHRDb25maWdcbiAqIEdyb3VwXHQ6XHRNYXggV2lkdGhzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbiRtYXgtd2lkdGhzX2NvbmZpZzogKFxuXG5cdDEwMCxcblx0MTUwLFxuXHQyMDAsXG5cdDI1MCxcblx0MzAwLFxuXHQzNTAsXG5cdDQwMCxcblx0NDUwLFxuXHQ1MDAsXG5cdDU1MCxcblx0NjAwLFxuXHQ2NTAsXG5cdDcwMCxcblx0ODAwLFxuXHQ5MDBcblxuKTsiLCIvKipcbiAqIFR5cGVcdFx0Olx0Q29uZmlnXG4gKiBHcm91cFx0Olx0Wi1pbmRleFxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuJHotaW5kZXhfY29uZmlnOihcblx0XG5cdGFib3ZlLW1vZGFsXHQ6IFx0XHQzMSxcblx0bW9kYWxcdFx0OiAgICAgICAzMCxcblx0YWJvdmUtbmF2XHQ6ICAgICAgIDIxLFxuXHRuYXZcdFx0XHQ6ICAgICAgIDIwLFxuXHRmcm9udFx0XHQ6ICAgIFx0MTAsXG5cdGJhc2VcdFx0OiAgICAgICAgMSxcblx0YmVsb3dcdFx0OiBcdCBcdC0xXG5cbik7IiwiLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogRnVuY3Rpb25zXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKlxuICogRmlsZSBJbXBvcnQgTGlzdFxuICogKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvL1xuXHQvLyBBbGwgZmlsZXMgYXJlIGltcG9ydGVkIGluIGFscGhhYmV0aWNhbCBvcmRlciB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZC5cblx0Ly9cblxuXHQvKipcblx0KiBGaXJzdCB3ZSBoYXZlIHRvIGltcG9ydCBvdXIgaGVscGVyIGZ1bmN0aW9uc1xuXHQqL1xuXG5cdFx0QGltcG9ydCAnX2YtaGVscGVycyc7XG5cblx0LyoqXG5cdCogTm93IHdlIGNhbiBpbXBvcnQgb3VyIHJlbWFpbmluZyBmdW5jdGlvbnNcblx0Ki9cblxuXHRcdEBpbXBvcnQgJ19mLWNvbG9ycyc7XG5cdFx0QGltcG9ydCAnX2YtcmFkaXVzJztcblx0XHRAaW1wb3J0ICdfZi1zcGFjaW5nJztcblx0XHRAaW1wb3J0ICdfZi10eXBvZ3JhcGh5Jztcblx0XHRAaW1wb3J0ICdfZi16LWluZGV4JztcbiIsIi8qKlxuICogVHlwZSAgIDogRnVuY3Rpb25cbiAqIEdyb3VwICA6IEhlbHBlcnNcbiAqIERlc2MgICA6IFVzZWZ1bCBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgdXRpbGl6ZWQgdGhyb3VnaG91dCBvdXIgcHJvamVjdCB0byBtYWtlIGxpZmUgZWFzaWVyLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGdldHRpbmcgY29uZmlndXJhdGlvbiB2YWx1ZXMgZnJvbSBtdWx0aS1sZXZlbCBuZXN0ZWQgc2FzcyBtYXBzLlxuICogVGhpcyBtYWtlcyBvdXIgbGlmZSBtdWNoIGVhc2llciB3aGVuIGdldHRpbmcgY29uZmlnIHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0gJG1hcCAgICAgIC0gVGhlIG1hcCB3ZSB3YW50IHRvIGdldCBvdXIgY29uZmlnIGZyb21cbiAqIEBwYXJhbSAka2V5cy4uLiAgLSBXZSBjYW4gdHJhdmVyc2Ugb3VyIG1hcCBieSB1c2luZyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LlxuICogQHJldHVybiAgICAgICAgICAtIFRoZSBmaW5hbCB2YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIGtleVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5cbi8vXG4vLyBAZXhhbXBsZSAtIFVzYWdlXG4vLyBcbi8vIGdldF9jb25maWcoICRzb21lX21hcCwgYnRuLCBjb2xvciApXG4vL1xuLy8gLT4gTG9va3MgaW4gJHNvbWVfbWFwIGZvciBgYnRuYFxuLy8gLT4gLT4gTG9va3MgaW4gYGJ0bmAgZm9yIGBjb2xvcmBcbi8vIC0+IC0+IC0+IFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBrZXkgYGNvbG9yYFxuXG5cbkBmdW5jdGlvbiBnZXRfY29uZmlnKCRtYXAsICRrZXlzLi4uKSB7XG4gIFxuICAkdmFsdWU6ICRtYXA7XG4gIFxuICAvKipcbiAgICogTG9vcCB0aHJvdWdoIGVhY2gga2V5IGluIHRoZSBzcGVjaWZpZWQgbGlzdC4uLnRoZSBpZGVhIGJlaW5nIHRoYXQgdGhlIGxvb3Agd2lsbFxuICAgKiBleGVjdXRlIHVudGlsIGl0IGNvbWVzIHRvIG91ciBmaW5hbCBcImtleVwiIGluIG91ciBrZXkgbGlzdCwgYW5kIHJldHVybiB0aGUgcmVzdWx0XG4gICAqIG9mIHRoYXQga2V5LlxuICAgKi9cblxuICBAZWFjaCAka2V5IGluICRrZXlzIHtcblxuICBcdC8vIEhhbmRsZSBlcnJvcnMgaWYgbm8ga2V5IGZvdW5kIGluIHNwZWNpZmllZCBtYXBcbiAgXHRAaWYgbm90IG1hcC1oYXMta2V5KCR2YWx1ZSwgJGtleSkge1xuICAgICAgXG4gICAgICAvLyBUaHJvdyBhbiBlcnJvci5cbiAgXHRcdEBlcnJvciBcIk5vIHZhbHVlIHdhcyBmb3VuZCBmb3IgdGhlIGtleSwgYCN7JGtleX1gLiBTZWUgbWFwIG91dHB1dCBmb3IgbGlzdCBvZiBhY2NlcHRlZCBrZXlzLiBgI3skbWFwfWBcIjtcbiAgICAgIFxuICBcdH0gQGVsc2Uge1xuICAgICAgXG4gICAgICAvLyBHZXQgdGhlIHJlc3VsdCBvZiB0aGF0IGtleVxuICAgICAgJHZhbHVlOiBtYXAtZ2V0KCR2YWx1ZSwgJGtleSk7XG4gICAgICBcbiAgICB9XG5cbiAgfVxuICBcbiAgQHJldHVybiAkdmFsdWU7XG5cbn1cblxuXG5cbi8qKlxuICogQSBoZWxwZXIgZnVuY3Rpb24gdG8gdGFrZSBhbnkgbnVtZXJpY2FsIHZhbHVlIGFuZFxuICogc3RyaXAgb3V0IHRoZSB1bml0IGFzc29jaWF0ZWQgd2l0aCBpdCAoIGV4LiBlbSwgcmVtLCBweCBldGMgKS5cbiAqIFRoaXMgaXMgdXNlZnVsIGR1cmluZyBjYWxjdWxhdGlvbnMgYW5kIGNvbnZlcnNpb25zIGV0Yy5cbiAqXG4gKiBAcGFyYW0gJG51bWJlciAtIEEgbnVtYmVyIHRoYXQgd2Ugd2FudCB0byByZW1vdmUgdGhlIHVuaXQgZnJvbVxuICogQHJldHVybiBBIHVuaXRsZXNzIG51bWJlclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5cbi8vXG4vLyBFeGFtcGxlIFVzYWdlXG4vL1xuLy8gc3RyaXAtdW5pdCggMTZweCApIFxuLy8gLT4gcmV0dXJucyB0aGUgdW5pdGxlc3MgbnVtYmVyIDE2XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcblxuICAvLyBNYWtlIHN1cmUgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIG51bWJlciBhbmQgdGhhdCBpdCBpcywgaW4gZmFjdCwgdW5pdGxlc3MhXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpID09ICdudW1iZXInIGFuZCBub3QgdW5pdGxlc3MoJG51bWJlcikge1xuICAgIFxuICAgIC8vIFN0cmlwIHRoZSB1bml0IGZyb20gdGhlIG51bWJlciBidXQga2VlcCB0aGUgXG4gICAgLy8gbnVtYmVyIHRoZSBzYW1lICBcbiAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcbiAgICBcbiAgfVxuICBcbiAgQHJldHVybiAkbnVtYmVyO1xufSIsIi8qKlxuICogVHlwZVx0XHQ6XHRGdW5jdGlvblxuICogR3JvdXBcdDpcdENvbG9yXG4gKiBEZXNjXHRcdDpcdEZ1bmN0aW9ucyB0byBoZWxwIG1ha2Ugd29ya2luZyB3aXRoIGNvbG9ycyBhIGJyZWV6ZSFcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyoqXG4gKiBBIGhlbHBlciBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgdXNlcyBhY3Jvc3MgdGhlIGVudGlyZSBwcm9qZWN0IGZvclxuICogZ2V0dGluZyBjb2xvciBhbmQgY29sb3IgdG9uZSB2YWx1ZXMgZnJvbSB0aGUgbWFpbiBjb2xvciBtYXAuXG4gKlxuICogQHBhcmFtICRjb2xvciBcdC0gYSBjb2xvciBpbiBvdXIgY29sb3Igc2FzcyBtYXAgaW4gMV9fc2V0dGluZ3NcbiAqIEBwYXJhbSAkdG9uZSAgXHQtIGEgcGFydGljdWxhciBjb2xvciB0b25lIHdlIHdhbnQgdG8gZ2V0ICggZGVmYXVsdHMgdG8gJ2Jhc2UnIClcbiAqIEByZXR1cm5cdFx0XHQtIFRoZSByZXN1bHRhbnQgY29sb3JcbiAqL1xuXG5cbi8vXG4vLyBAZXhhbXBsZSAtIFVzYWdlXG4vLyBcbi8vIGMoIHJlZCApXG4vLyAtPiByZXR1cm5zIHRoZSBiYXNlIHJlZCB2YWx1ZVxuLy8gXG4vLyBjKCByZWQsIGRhcms1IClcbi8vIC0+IHJldHVybnMgdGhlIGJhc2UgcmVkIHZhbHVlIGRhcmtlbmVkIDUlXG5cbkBmdW5jdGlvbiBjKCRjb2xvciwgJHRvbmU6ICdiYXNlJykge1xuXHRcblxuXHQvLyBJZiB0aGUgc3BlY2lmaWVkIGNvbG9yL3RvbmUgY29tYm8gZG9lcyBub3QgZXhpc3Rcblx0QGlmIG5vdCBtYXAtaGFzLWtleSgkY29sb3JfY29uZmlnLCAkY29sb3IpIHtcblx0XHRcdFxuXHRcdFx0Ly8gVGhyb3cgYW4gZXJyb3IuXG5cdFx0ICAgIEBlcnJvciBcIk5vIGNvbG9yIGZvdW5kIGZvciBgI3skY29sb3J9YCBhbmQgdG9uZSBgI3skdG9uZX1gIGluICRjb2xvcl9jb25maWcgbWFwLiBQcm9wZXJ0eSBvbWl0dGVkLlwiO1xuXG5cblx0fSBAZWxzZSB7XG5cdFx0XG5cdFx0LyoqXG5cdFx0ICogV2UgdXNlIGEgZGVlcCAgbWFwLWdldCggbWFwLWdldCAoKSkgdG8gcmV0cmlldmUgdGhlIGNvbG9yIGFuZCBzcGVjaWZpZWQgY29sb3IgdG9uZSApXG5cdFx0ICovXG5cdFx0QHJldHVybiBtYXAtZ2V0KCBtYXAtZ2V0KCRjb2xvcl9jb25maWcsICRjb2xvciksICR0b25lKVxuXG5cdH1cbn0iLCIvKipcbiAqIFR5cGUgICA6IEZ1bmN0aW9uXG4gKiBHcm91cCAgOiBSYWRpdXNcbiAqIERlc2MgICA6IEZ1bmN0aW9ucyBmb3IgZGVhbGluZyB3aXRoIGJvcmRlciByYWRpdXNcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqIEEgZnVuY3Rpb24gZm9yIGdldHRpbmcgYSB2YWx1ZSBmcm9tIHRoZSBib3JkZXIgcmFkaXVzIGNvbmZpZ3VyYXRpb24gbWFwLlxuICogQHBhcmFtICAkc2l6ZVx0LSBUaGUga2V5IHRvIGdldCBvdXIgdmFsdWUgZnJvbSBcbiAqIEByZXR1cm5cdFx0XHQtIFRoZSByZXR1cm5lZCB2YWx1ZSBmb3JtIG91ciBrZXlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuXG4vL1xuLy8gQGV4YW1wbGUgLSBVc2FnZVxuLy8gXG4vLyByYWRpdXMoIGJ0biApXG4vL1xuLy8gLT4gcmV0dXJucyB0aGUgYGJ0bmAgcmFkaXVzIHZhbHVlIGFzIGRlZmluZWQgaW4gdGhlIHJhZGl1cyBjb25maWcgbWFwXG5cblxuQGZ1bmN0aW9uIHJhZGl1cyggJHNpemUgKXtcdFxuXHRcblxuXHQvLyBJZiBvdXIgcmVxdWVzdGVkIHNpemUgZG9lc24ndCBleGlzdCBpbiB0aGUgbWFwXG5cdEBpZiBub3QgbWFwLWhhcy1rZXkoICRib3JkZXItcmFkaXVzX2NvbmZpZywgJHNpemUgKXtcblx0XHRcblx0XHQvLyBUaHJvdyBhbiBlcnJvci5cblx0XHRAZXJyb3IgXCJObyB2YWx1ZSBmb3VuZCBmb3IgdGhlIGtleSwgYCN7JHNpemV9YC4gVGhlIHJhZGl1cygpIGZ1bmN0aW9uIG9ubHkgYWNjZXB0cyB0aGUgZm9sbG93aW5nIHZhbHVlczogXCIgKyBcIiAje21hcC1rZXlzKCRzcGFjaW5nLXZhbHVlc19jb25maWcpfVwiO1xuXG5cdH1cblxuXHRAcmV0dXJuIG1hcC1nZXQoICRib3JkZXItcmFkaXVzX2NvbmZpZywgJHNpemUgKTtcblx0XG59IiwiLyoqXG4gKiBUeXBlXHRcdDpcdEZ1bmN0aW9uXG4gKiBHcm91cFx0Olx0U3BhY2luZ1xuICogRGVzY1x0XHQ6XHRGdW5jdGlvbnMgdGhhdCBoZWxwIHVzIHdvcmsgd2l0aCBvdXIgc3BhY2luZyBzY2FsZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIGZvciBnZXR0aW5nIGEgcHJlZGV0ZXJtaW5lZCB2YWx1ZSBmcm9tIHRoZSBzcGFjaW5nIGNvbmZpZ3VyYXRpb24gbWFwLlxuICogXG4gKiBAcGFyYW0gICRzaXplIFx0LSBUaGUgZ2V0IHRvIGdldCBvdXIgdmFsdWUgZnJvbVxuICogQHJldHVybiBcdFx0XHQtIGEgZmluYWwgc3BhY2luZyB2YWx1ZSB3aXRoIGEgdW5pdCBhdHRhY2hlZC5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuXG4gLy9cbiAvLyBAZXhhbXBsZSAtIFVzYWdlXG4gLy8gXG4gLy8gc3BhY2VyKCB4bCApXG4gLy9cbiAvLyAtPiByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgc3BhY2luZyBzaXplIGB4bGAgYXMgZGVmaW5lZCBpbiB0aGUgc3BhY2luZyBjb25maWcgbWFwXG5cblxuQGZ1bmN0aW9uIHNwYWNlciggJHNpemUgKXtcdFxuXHRcblx0Ly8gT2YgdGhlIHJlcXVlc3RlZCBzaXplIGRvZXNuJ3QgZXhpc3Rcblx0QGlmIG5vdCBtYXAtaGFzLWtleSggJHNwYWNpbmctdmFsdWVzX2NvbmZpZywgJHNpemUgKXtcblx0XHRcblx0XHQvLyBUaHJvdyBhbiBlcnJvci5cblx0XHRAZXJyb3IgXCJObyB2YWx1ZSBmb3VuZCBmb3IgdGhlIGtleSwgYCN7JHNpemV9YC4gVGhlIHNwYWNlcigpIGZ1bmN0aW9uIG9ubHkgYWNjZXB0cyB0aGUgZm9sbG93aW5nIHZhbHVlczogXCIgKyBcIiAje21hcC1rZXlzKCRzcGFjaW5nLXZhbHVlc19jb25maWcpfVwiO1xuXG5cdH1cblxuXHRAcmV0dXJuIG1hcF9nZXQoICRzcGFjaW5nLXZhbHVlc19jb25maWcsICRzaXplICkgKyBtYXBfZ2V0KCAkc3BhY2luZy1jb25maWcsIHVuaXQgKTtcblxufSIsIi8qKlxuICogVHlwZVx0XHQ6XHRGdW5jdGlvblxuICogR3JvdXBcdDpcdFR5cG9ncmFwaHlcbiAqIERlc2NcdFx0Olx0RnVuY3Rpb25zIHRoYXQgbWFrZSB3b3JraW5nIHdpdGggb3VyIHR5cG9ncmFwaHkgc2NhbGUgZWFzaWVyLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cblxuIC8qKlxuICAqIEEgZnVuY3Rpb24gdGhhdCBnZXRzIHR5cGVmYWNlIHN0YWNrIGluZm9ybWF0aW9uIGZyb20gb3VyIHR5cGUgY29uZmlndXJhdGlvbiBtYXAuXG4gICogXG4gICogQHBhcmFtICAkdHlwZVx0LSBUaGUga2V5IHRvIHJldHJlaXZlIG91ciB2YWx1ZXMgZnJvbS5cbiAgKiBAcmV0dXJuXHRcdFx0LSBUaGUgZmluYWwsIGZvcm1hdHRlZCBmb250IHN0YWNrIHRvIHJldHVybi4gIFxuICAqXG4gICogQHNpbmNlIDEuMC4wXG4gICovXG5cblxuICAvL1xuICAvLyBAZXhhbXBsZSAtIFVzYWdlXG4gIC8vIFxuICAvLyBnZXRfZm9udF9zdGFjayggYm9keSApXG4gIC8vXG4gIC8vIC0+IHJldHVybnMgdGhlIGZ1bGx5IGZvcm1lZCBmb250IHN0YWNrIChmb250IGZhbWlseSBhbmQgZmFsbGJhY2tzKSBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLCBgYm9keWBcblxuXG5AZnVuY3Rpb24gZ2V0X2ZvbnRfc3RhY2soICR0eXBlICl7XG5cblx0JF9mb250LWZhbWlseSBcdDogZ2V0X2NvbmZpZyggJGZvbnRfY29uZmlnLCAkdHlwZSwgZmFtaWx5ICk7XG5cdCRfZm9udC1mYWxsYmFjayA6IGdldF9jb25maWcoICRmb250X2NvbmZpZywgJHR5cGUsIGZhbGxiYWNrICk7XG5cblx0QHJldHVybiAkX2ZvbnQtZmFtaWx5LCAkX2ZvbnQtZmFsbGJhY2s7XG5cbn0iLCIvKipcbiAqIFR5cGUgICA6IEZ1bmN0aW9uXG4gKiBHcm91cCAgOiBaLUluZGV4XG4gKiBEZXNjICAgOiBGdW5jdGlvbnMgZm9yIGtlZXBpbmcgb3VyIHotaW5kZXhlcyBjb25zaXN0ZW50LlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4gLyoqXG4gICogQSBmdW5jdGlvbiB0aGF0IGdldHMgYSB6LWluZGV4IHZhbHVlIGZyb20gdGhlIHotaW5kZXggY29uZmlndXJhdGlvbiBtYXAuXG4gICogXG4gICogQHBhcmFtICAkei1pbmRleFx0LSBUaGUga2V5IHRvIHJldHJpZXZlIG91ciB2YWx1ZSBmcm9tLlxuICAqIEByZXR1cm5cdFx0XHRcdC0gVGhlIHJlc3VsdGFudCB6LWluZGV4LiBcbiAgKlxuICAqIEBzaW5jZSAxLjAuMFxuICAqL1xuIFxuXG4gLy9cbiAvLyBAZXhhbXBsZSAtIFVzYWdlXG4gLy8gXG4gLy8geiggbmF2IClcbiAvL1xuIC8vIC0+IHJldHVybnMgdGhlIHVuaXRsZXNzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBgbmF2YCBhcyBkZWZpbmVkIGluIHRoZSB6LWluZGV4IG1hcC5cblxuQGZ1bmN0aW9uIHooICR6LWluZGV4ICl7XHRcblxuXHQvLyBJZiB0aGUgcmVxdWVzdGVkIGtleSBkb2VzIG5vdCBleGlzdC5cblx0QGlmIG5vdCBtYXAtaGFzLWtleSggJHotaW5kZXhfY29uZmlnLCAkei1pbmRleCApe1xuXG5cdFx0Ly8gVGhyb3cgYW4gZXJyb3IuXG5cdFx0QGVycm9yIFwiTm8gdmFsdWUgZm91bmQgZm9yIHRoZSBrZXksIGAjeyR6LWluZGV4fWAuIFRoZSBgeigpYCBmdW5jdGlvbiBvbmx5IGFjY2VwdHMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6IFwiICsgXCIgI3ttYXAta2V5cygkei1pbmRleF9jb25maWcpfVwiO1xuXG5cdH1cblx0XG5cdC8vIEdldCBvdXIgcmVzdWx0aW5nIHZhbHVlXG5cdCR2YWx1ZTogbWFwLWdldCggJHotaW5kZXhfY29uZmlnLCAkei1pbmRleCApO1x0XG5cdFxuXHQvLyBDaGVjayB0byBzZWUgaWYgdGhlIHZhbHVlIGlzIHVuaXRsZXNzXG5cdEBpZiBub3QgdW5pdGxlc3MoICR2YWx1ZSApe1xuXHRcdFxuXHRcdC8vIGlmIGl0IGlzbid0LCBzdHJpcCB0aGUgdW5pdCBhbmQgdGhyb3cgYSB3YXJuaW5nLlxuXHRcdEB3YXJuIFwiVGhlIHJldHJpZXZlZCB6LWluZGV4IHZhbHVlIGhhcyBhIHVuaXQgYXR0YWNoZWQgdG8gaXQuIEl0IGlzIGJlaW5nIHN0cmlwcGVkIG91dCwgYnV0IHlvdSBzaG91bGQgcmVtb3ZlIHRoZSB1bml0IGZyb20gdGhlIHotaW5kZXggY29uZmlnIG1hcC4gTmV2ZXIgZGVmaW5lIHotaW5kZXggd2l0aCBhIHVuaXQuXCI7XG5cdFx0XG5cdFx0Ly8gU3RyaXAgdGhlIHVuaXQgYW5kIHNldCAkdmFsdWUgdG8gdGhlIG5ldyB1bml0bGVzcyBudW1iZXJcblx0XHQkdmFsdWU6IHN0cmlwX3VuaXQoICR2YWx1ZSApO1xuXHRcblx0fVxuXHRcblx0Ly8gUmV0dXJuIG91ciBmaW5hbCB1bml0bGVzcyB6LWluZGV4IHZhbHVlO1xuXHRAcmV0dXJuICR2YWx1ZTtcblxufSIsIi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC5cbiAqIEdyb3VwXHQ6IE1peGluc1xuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Ly9cblx0Ly8gQWxsIGZpbGVzIGFyZSBpbXBvcnRlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuXG5cdC8vXG5cdFxuXHRAaW1wb3J0ICdfbWl4LWFycm93Jztcblx0QGltcG9ydCAnX21peC1ib3JkZXJzJztcblx0QGltcG9ydCAnX21peC1icmVha3BvaW50cyc7XG5cdEBpbXBvcnQgJ19taXgtdGhlbWVzJztcblx0QGltcG9ydCAnX21peC1jb250YWluZXInO1xuXHRAaW1wb3J0ICdfbWl4LWNsZWFyZml4Jztcblx0QGltcG9ydCAnX21peC1vcGFjaXR5Jztcblx0QGltcG9ydCAnX21peC1zaGFkb3dzJztcblx0QGltcG9ydCAnX21peC1zcGFjaW5nJztcblx0QGltcG9ydCAnX21peC10cmFuc2l0aW9ucyc7XG5cdEBpbXBvcnQgJ19taXgtdHlwb2dyYXBoeSc7IiwiLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0QXJyb3dzXG4gKiBEZXNjXHRcdDpcdEFkZGluZyBhcnJvd3MgdG8gdGhpbmdzIGlzIHJlcGV0aXRpdmUuIFRoZXNlIG1peGlucyBhcmUgaGVyZSB0byBoZWxwIVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqIFRoZSBhY3Rpb24gYXJyb3cgYXBwZWFycyBvbiB2YXJpb3VzIGJ1dHRvbnMgYW5kIGNhcmRzLiBXZSBhcmVcbiAqIGJ1aWxkaW5nIGl0IGludG8gYSBtaXhpbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UuXG4gKlxuICogQHBhcmFtICRhcnJvdy1zdGFydC14LXBvc2l0aW9uXHQtIFRoZSBgWGAgc3RhcnRpbmcgYmFja2dyb3VuZCBwb3NpdGlvbiBmb3Igb3VyIGFycm93XG4gKiBAcGFyYW0gJHNpemVcdFx0XHRcdFx0XHQtIFRoZSBzaXplIG9mIHRoZSBhcnJvd1xuICogIFxuICogQHNpbmNlIDEuMC4wXG4gKi9cblxuLy9cbi8vIEBleGFtcGxlIC0gVXNhZ2Vcbi8vIFxuLy8gLnRlc3R7XG4vL1xuLy8gXHRcdEBpbmNsdWRlIGFjdGlvbi1hcnJvdyggNHB4ICkgXG4vL1xuLy8gfVxuLy9cbi8vIEBleGFtcGxlIC0gUmVzdWx0XG4vL1xuLy8gLnRlc3R7XG4vL1xuLy8gXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCggLi4uICk7XG4vLyBcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNHB4IGNlbnRlcjtcbi8vXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4vL1x0XHRiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbi8vIH1cbi8vXG4vLyAudGVzdDpob3Zlcntcbi8vXG4vLyBcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYyggNHB4ICsgNHB4ICkgY2VudGVyO1xuLy8gfVxuXG5cblxuQG1peGluIGFjdGlvbi1hcnJvdyggJHgtcG9zaXRpb246IDUwJSwgJHNpemU6IDMycHgsICR5LXBvc2l0aW9uLW9mZnNldDogMHB4LCAkY29sb3I6IGMoIGdyYXlzY2FsZSwgcmdiYVdoaXRlICkgKXtcblx0XG5cdC8vIFRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgb2Zmc2V0IGFuaW1hdGlvblxuXHQvLyBXaGVuIHRoZSBhcnJvdyBpcyBob3ZlcmVkXG5cdCRob3Zlci1vZmZzZXQ6IDRweDtcblx0XG5cdC8qKlxuXHQgKiBXZSBhcmUgZGlyZWN0bHkgZW1iZWRkaW5nIG91ciBhcnJvdyBTVkcgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1ha2UgYSBcblx0ICogSFRUUCBjYWxsIHRvIGdldCB0aGUgaWNvbi4gTm90ZSB0aGF0IHdlIGFyZSBlbmNvZGluZyBpdCwgYnV0IE5PVCBiYXNlIDY0XG5cdCAqIGVuY29kaW5nIGl0LiBCYXNlIDY0IHBlcmZvcm1zIHBvb3JseSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKlxuXHQgKiBAbm90ZSBUb29sIHVzZWQgdG8gZW5jb2RlOiBodHRwczovL3lva3NlbC5naXRodWIuaW8vdXJsLWVuY29kZXIvXG5cdCAqL1xuXHRcblx0Ly8gU2V0IG91ciBhcnJvdyBhbmQgYWxsb3cgaXRzIGNvbG9yIHRvIGJlIGNoYW5nZWQgYnkgaW50ZXJwb2xhdGluZyBhIGNvbG9yIHZhcmlhYmxlXG5cdCRhcnJvdyA6ICB1cmwoIFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIGlkPSdMYXllcl8xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgdmlld0JveD0nMCAwIDE1IDE1JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCAxNSAxNScgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgZmlsbD0nI3skY29sb3J9JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjM2RDZFNzAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBkPSdNODQsMC44TDg0LDAuOCBNLTM1MS44LDAuOCBMLTM1MS44LDAuOCcvJTNFJTNDcGF0aCBkPSdNNy42LDAuNkw1LjEsMy4ybDIuNiwyLjRIMHYzLjZoNy43bC0yLjYsMi40bDIuNSwyLjdMMTUsNy41TDcuNiwwLjZ6IE02LjcsMTEuOGw0LTMuN0gxLjJWNi44aDkuNWwtNC0zLjdsMC45LTAuOWw1LjcsNS4zIGwtNS43LDUuM0w2LjcsMTEuOHonLyUzRSUzQy9zdmclM0UlMEFcIiApO1xuXG5cblx0YmFja2dyb3VuZC1pbWFnZTogI3skYXJyb3d9O1xuXHRcblx0Ly8gWSBQb3NpdGlvbiB3aWxsIHVzdWFsbHkgYmUgY2VudGVyZWQsIHdob2NoIGlzIHdoeSB3ZSBzZXQgb3QgdG8gNTAlIGJ5IGRlZmF1bHQgYnV0IHdlIGFsbG93IHRoZSBwb3NpdGlvbmluZ1xuXHQvLyB0byBiZSBhbHRlcmVkIGJ5IGFuIHBmZnNldCB2YXJpYWJsZSBpZiBkZXNpcmVkIGZvciBzcGVjaWFsIGNhc2Ugc2NlbmFyaW9zXG5cdGJhY2tncm91bmQtcG9zaXRpb246ICR4LXBvc2l0aW9uIGNhbGMoIDUwJSArICN7JHktcG9zaXRpb24tb2Zmc2V0fTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6ICBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogJHNpemUgJHNpemU7XG5cdFxuXHQvLyBJbmNsdWRlIGEgaG92ZXIgYW5pbWF0aW9uIG9ubHkgb24gZGV2aWNlcyB0aGF0IG1pZ2h0IGhhdmUgYSBtb3VzZVxuXHRAaW5jbHVkZSBicmVha3BvaW50KCBtICl7XG5cblx0XHQmOmhvdmVye1xuXHRcdFx0XG5cdFx0XHQvLyBXZSBhcmUgc2ltcGx5IG9mZnNldHRpbmcgdGhlIHRoZSBhcnJvdyBwb3NpdGlvbiBhIHByZWRldGVybWluZWQgYW1vdW50IGJhc2Ugb24gdGhlXG5cdFx0XHQvLyBpbml0aWFsIHBvc2l0aW9uIG9mIHRoZSBhcnJvdywgdGhpcyB3aWxsIGdpdmUgYSBuaWNlIGxpdHRsZSBob3ZlciBlZmZlY3QuXG5cblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoICN7JHgtcG9zaXRpb259ICsgI3skaG92ZXItb2Zmc2V0fSApIGNhbGMoIDUwJSArICN7JHktcG9zaXRpb24tb2Zmc2V0fSApO1xuXG5cdFx0fVxuXG5cdH1cblxuXG5cblxufSIsIi8qKlxuICogVHlwZVx0XHQ6XHRNaXhpblxuICogR3JvdXBcdDpcdEJvcmRlcnNcbiAqIERlc2NcdFx0Olx0Qm9yZGVycyBjYW4gdmFyeSB3aWxkbHkgdGhyb3VnaG91dCBhIHByb2plY3QuIFRoZXNlIG1peGlucyBoZWxwIHVzIGtlZXAgdGhpbmdzIGNvbnNpc3RlbnQuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyoqXG4gKiBUaGlzIG1peGluIGFsbG93cyB1cyB0byBnZXQgYSBwcmVkZWZpbmVkIGJvcmRlciBmcm9tIG91ciBib3JkZXIgY29uZmlndXJhdGlvbiBmaWxlLlxuICogV2hlbiBuZWVkIGJlLCB3ZSBjYW4gZXZlbiBwYXNzIGluIGEgY29sb3IgdGhhdCBmYWxscyBvdXRzaWRlIG91ciBwcmltYXJ5IGNvbG9yIGNvbmZpZyBtYXAuXG4gKiBcbiAqIEBwYXJhbSAgJHR5cGUgICAgICAgICAgICAgICAgXHRUaGUgYm9yZGVyIHRvIHR5cGUgdG8gdXNlIGZyb20gb3VyIG1hcFxuICogQHBhcmFtICAkc2lkZTogICAgICAgICAgIFx0XHRUaGUgXCJzaWRlXCIgdGhlIGJvcmRlciBzaG91bGQgYmUgYXBwbGllZCB0b1xuICogQHBhcmFtICAkY3VzdG9tX2JvcmRlcl9jb2xvcjogXHRBIGNvbG9yIHdlIHBhc3MgaW4gdG8gb3VyIGJvcmRlclxuICogQHBhcmFtICAkcmFkaXVzICAgICAgICAgICAgICAgXHRUaGUgb3JkZXIgcmFkaXVzIHRvIGJlIHVzZWRcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKi9cblxuLy9cbi8vIEBleGFtcGxlIC0gVXNhZ2Vcbi8vIFxuLy8gLnRlc3R7XG4vL1x0XHRcbi8vIFx0XHRAaW5jbHVkZSBib3JkZXIoIGJ0biApO1xuLy9cdFx0LT4gVGhpcyB3aWxsIHJldHJpZXZlIGFsbCBkZWZhdWx0IHZhbHVlcyBhbmQgdXNlIGFueSBkZWZpbmVkIHZhbHVlcyBmb3IgYGJ0bmAgaW4gdGhlIGJvcmRlciBjb25maWcgbWFwXG4vL1xuLy8gfVxuLy9cbi8vIC50ZXN0e1xuLy9cbi8vIFx0XHRAaW5jbHVkZSBib3JkZXIoIGxpbmssIGJvdHRvbSApO1xuLy9cdFx0LT4gVGhpcyB3aWxsIGFwcGx5IGEgYGJvdHRvbWAgYm9yZGVyIHVzaW5nIGBsaW5rYCB2YWx1ZXMgZGVmaW5lZCBpbiB0aGUgYm9yZGVyIGNvbmZpZyBtYXAuXG4vL1xuLy8gfVxuXG5cbkBtaXhpbiBib3JkZXIoICR0eXBlLCAkc2lkZTogYWxsLCAkY3VzdG9tX2JvcmRlcl9jb2xvcjogJycsICRyYWRpdXMgOiAnZGVmYXVsdCcpIHtcblx0XG5cdC8vIFNldCBhIG51bGwgYm9yZGVyIGNvbG9yIHRvIHByZXZlbnQgZXJyb3JzXG5cdCRfYm9yZGVyLWNvbG9yOiAnJztcblx0XG5cdC8vIElmIGEgY3VzdG9tIGNvbG9yIGlzIGRlZmluZWRcblx0QGlmICRjdXN0b21fYm9yZGVyX2NvbG9yICE9ICcne1xuXHRcdFxuXHRcdC8vIFVzZSB0aGUgY3VzdG9tIGNvbG9yXG5cdFx0JF9ib3JkZXItY29sb3JcdDogJGN1c3RvbV9ib3JkZXJfY29sb3I7XG5cblx0fVxuXHRcblx0Ly8gT3RoZXJ3aXNlIHdlIHdpbGwgdXNlIG91ciBjb2xvciBkZWZpbmVkIGluICRib3JkZXJfY29uZmlnXG5cdEBlbHNle1xuXHRcdFxuXHRcdCRfYm9yZGVyLWNvbG9yXHQ6XHRjKCBnZXRfY29uZmlnKCAkYm9yZGVyX2NvbmZpZywgJHR5cGUsIGNvbG9yICksIGdldF9jb25maWcoICRib3JkZXJfY29uZmlnLCAkdHlwZSwgdG9uZSApICk7XG5cdFx0XG5cdH1cblx0XG5cblx0JF9ib3JkZXItd2lkdGhcdDpcdGdldF9jb25maWcoICRib3JkZXJfY29uZmlnLCAkdHlwZSwgd2lkdGggKTtcblx0JF9ib3JkZXItc3R5bGVcdDpcdGdldF9jb25maWcoICRib3JkZXJfY29uZmlnLCAkdHlwZSwgc3R5bGUgKTtcblx0JF9ib3JkZXItcmFkaXVzXHQ6XHRyYWRpdXMoICRyYWRpdXMgKTtcblx0XG5cdC8vIEJ5IGRlZmF1bHQsIHRoZSBib3JkZXIgZ2V0cyBhcHBsaWVkIHRvIGFsbCBzaWRlc1xuXHRAaWYoICRzaWRlID09IGFsbCApe1xuXG5cdFx0Ym9yZGVyOiAkX2JvcmRlci13aWR0aCAkX2JvcmRlci1zdHlsZSAkX2JvcmRlci1jb2xvcjtcblx0fVxuXHRcblx0Ly8gSWYgYW55dGhpbmcgb3RoZXIgdGhhbiBgYWxsYCBpcyBzcGVjaWZpZWQsIHdlIG5lZWQgdG8gYXBwbHkgb3VyIFxuXHQvLyBib3JkZXIgdG8gYSBzcGVjaWZpYyBzaWRlLlxuXHRAZWxzZXtcblxuXHRcdGJvcmRlci0jeyRzaWRlfTogJF9ib3JkZXItd2lkdGggJF9ib3JkZXItc3R5bGUgJF9ib3JkZXItY29sb3I7XG5cblx0fVxuXHRcblx0Ly8gRGVjYWxyaW5nIGltcG9ydGFudCB0byBmaXggbW9iaWxlIGRldmljZSBoaWphY2tpbmdcblx0Ym9yZGVyLXJhZGl1czogJF9ib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG5cbn0iLCIvKipcbiAqIFR5cGUgICA6IE1peGluXG4gKiBHcm91cCAgOiBCcmVha3BvaW50c1xuICogRGVzYyAgIDogTmVhdGx5IGVtcGxveSBicmVha3BvaW50cyB0aGF0IHdvcmsgd2l0aCBhIHByZWRlZmluZWQgc2l6aW5nIHN5c3RlbS5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqIFRoZSBicmVha3BvaW50IG1peGluIHRha2VzIG9ubHkgMSBwYXJhbWV0ZXIuXG4gKiBcbiAqIEBwYXJhbSAkc2l6ZSBUaGUgc2l6ZSB0byBmZXRjaCBmcm9tIG91ciBicmVha3BvaW50cyBjb25maWcgZmlsZVxuICovXG5cbi8vXG4vLyBAZXhhbXBsZSAtIFVzYWdlXG4vLyBcbi8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoIHhsICl7XG4vLyBcbi8vICAgIC0gU29tZSBjb2RlXG4vL1xuLy8gfVxuLy9cbi8vIC0tPiB0aGUgYWJvdmUgZXhhbXBsZSB3aWxsIHVzZSB0aGUgYHhsYCB2YWx1ZSBmcm9tIG91ciAkYnJlYWtwb2ludHNfY29uZmlnIGFzIGEgbWluLXdpZHRoIHRvIGFwcGx5IHRoZSBkZWZpbmVkIHN0eWxlcyB0by5cbi8vXG4vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCggJHNpemUgKSB7XG5cbiAgLy8gSWYgd2UgZGVjbGFyZSBcIm1vYmlsZSBvbmx5XCJcbiAgQGlmICRzaXplID09IG1vYmlsZS1vbmx5IHtcbiAgICBcbiAgICAvKipcbiAgICAgKiBBcHBseSBvdXIgZGVmaW5lZCBzdHlsZXMgYXQgYSBtYXgtd2lkdGggb3IgXCJtb2JpbGUtb25seVwiXG4gICAgICogV2UgYXJlIHN1YnRyYWN0aW5nIDEgZnJvbSB0aGUgYHNgIHZhbHVlIHJldHVybmVkIGZyb20gb3VyIGNvbmZpZ1xuICAgICAqIG1hcCBzbyB0aGVyZSBpcyBubyB1c2FnZSBjb25mbGljdCAgb3IgXCJvdmVybGFwIFwiaWYgd2UgYWxzbyB3YW50XG4gICAgICogdG8gdXNlIHRoZSBgc2Agc2l6ZSB3aXRoaW4gYSBub3JtYWwgXCJtaW4td2lkdGhcIiBtZWRpYSBxdWVyeS5cbiAgICAgKi9cbiAgICBAbWVkaWEgKG1heC13aWR0aDogZ2V0X2NvbmZpZyggJGJyZWFrcG9pbnRzX2NvbmZpZywgcyApIC0gMSkgeyBAY29udGVudDsgfVxuXG4gIH1cblxuICAvLyBMZXQncyBtYWtlIHN1cmUgd2UgaGF2ZSBhIHZhbHVlIGJlZm9yZSB3ZSB0cnkgYW5kIHVzZSBpdFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHNfY29uZmlnLCAkc2l6ZSl7XG4gIFxuICAgIC8vIEJ5IGRlZmF1bHQuLi5ldmVyeSBicmVha3BvaW50IHZhbHVlIHVzZXMgXCJtaW4td2lkdGhcIiBpbiBrZWVwaW5nIHdpdGggXG4gICAgLy8gYSBtb2JpbGUtZmlyc3QgYXBwcm9hY2guXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcF9nZXQoICRicmVha3BvaW50c19jb25maWcsICRzaXplICkgKSB7XG5cbiAgICAgIEBjb250ZW50OyBcbiAgICAgIFxuICAgIH1cblxuICB9XG5cbiAgLy9IYW5kbGUgRXJyb3JzIGlmIG5vIG1hdGNoaW5nIHZhbHVlIGZvdW5kIGluIG91ciBjb25maWcgbWFwLlxuICBAZWxzZSB7XG5cbiAgICBAd2FybiBcIk5vIHZhbHVlIGZvdW5kIGZvciwgYCN7JHNpemV9YCBpbiB0aGUgJGJyZWFrcG9pbnRzX2NvbmZpZyBtYXAuIEF2YWlsYWJsZSBicmVha3BvaW50cyBhcmU6XCJcblxuICAgICAgXCJtb2JpbGUtb25seSxcIisgXCIgI3ttYXAta2V5cygkYnJlYWtwb2ludHNfY29uZmlnKX1cIjtcblxuICB9XG5cbn0iLCIvKipcbiAqIFR5cGUgICA6IE1peGluXG4gKiBHcm91cCAgOiBUaGVtZVxuICogRGVzYyAgIDogQnVpbGQgbWl4aW5zIHRvIGF1dG8tZ2VuZXJhdGUgbXVsdGlwbGUgY2xhc3MgXCJ0aGVtZXNcIiB0byBiZSBhcHBsaWVkXG4gKiBhY3Jvc3Mgb3VyIHNpdGUgd2hlbiB3ZSBuZWVkIGR5bmFtaWMgY29sb3JpbmcgZm9yIGEgc3BlY2lmaWMgdXNlLWNhc2UuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogQ2FyZCBUaGVtZVxuICpcbiAqIFRoaXMgdGhlbWUgZ2VuZXJhdGVzIG1hbnkgZGlmZmVyZW50IGNhcmQgY29sb3JzIGJhc2VkIG9uXG4gKiB0aGUgdmFsdWVzIHBhc3NlZCBpbnRvIGl0LiBJdCBpcyBkZXNpZ25lZCBpdCBiZSB1c2VkIGluIGEgbG9vcCwgZ2VuZXJhdGluZyBcbiAqIGEgbmV3IGNsYXNzIG9uIGVhY2ggbG9vcCBpdGVyYXRpb24uXG4gKiBcbiAqIFRvIHNlZSB0aGlzIGluIGFjdGlvbiwgaGVhZCB0bzpcbiAqIGA1X21vbGVjdWxlcy9fbS1jYXJkLS1zdGFuZGFyZGBcbiAqIGFuZCBzZWUgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZSFcbiAqL1xuXG5AbWl4aW4gdGhlbWUtLWNhcmQoICRjYXRlZ29yeSwgJGNhdGVnb3J5LWNvbG9yICl7XG5cdFx0XG5cdCAubS1jYXJkLS10aGVtZS0tI3skY2F0ZWdvcnl9e1xuXHRcblx0XHQubS1jYXJkX19saW5re1xuXHRcdFx0XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY2F0ZWdvcnktY29sb3I7XG5cdFx0XHRcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbiggJGNhdGVnb3J5LWNvbG9yLCA1JSApO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Lm0tbWV0YV9fY2F0ZWdvcnksXG5cdFx0Lm0tdGl0bGUtZ3JvdXBfX3ByZXtcblxuXHRcdFx0Y29sb3I6IGMoIGdyYXlzY2FsZSwgMzAgKTtcblx0XHRcdFxuXHRcdH1cblxuXHRcdC5tLW1ldGFfX2NhdGVnb3J5OmhvdmVyLFxuXHRcdC5tLXRpdGxlLWdyb3VwX19wcmU6aG92ZXJ7XG5cdFx0XHRcblx0XHRcdGNvbG9yOiBjKCBncmF5c2NhbGUsIDIwICk7XG5cblx0XHR9XG4gIH1cblxufVxuXG4vKipcbiogVGhlbWUgZm9yIGFjY29yZGlvbnMsIGNoYW5nZXMgdGhlIGNvbG9yIG9mIHRoZSBoZWFkaW5nc1xuKiovXG5AbWl4aW4gdGhlbWUtLWNhbGxvdXQtYnJlYWtlciggJGNhdGVnb3J5LCAkY2F0ZWdvcnktY29sb3IgKSB7XG5cdC5vLWNhbGxvdXQtYnJlYWtlciB7XG5cdFx0LmZlYXR1cmVkLXZpZGVvLS0jeyRjYXRlZ29yeX17XG5cdFx0XHQuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIge1xuXHRcdFx0XHRjb2xvcjogJGNhdGVnb3J5LWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKipcbiogVGhlbWUgZm9yIEZhY3RzIGFuZCBGaWd1cmVzLCBjaGFuZ2VzIHRoZSBjb2xvciBvZiB0aGUgaGVhZGluZ3NcbioqL1xuQG1peGluIHRoZW1lLS1oaWdoLW1ldHJpY3MoICRjYXRlZ29yeSwgJGNhdGVnb3J5LWNvbG9yICkge1xuXHQuaGlnaE1ldHJpY3NfX2xpc3QtLWhpZ2hsaWdodC0tdGhlbWUtLSN7JGNhdGVnb3J5fXtcblx0XHRjb2xvcjogJGNhdGVnb3J5LWNvbG9yO1xuXHR9XG59XG5cbi8qKlxuKiBUaGVtZSBmb3IgYWNjb3JkaW9ucywgY2hhbmdlcyB0aGUgY29sb3Igb2YgdGhlIGhlYWRpbmdzXG4qKi9cbkBtaXhpbiB0aGVtZS0tYWNjb3JkaW9uKCAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciApIHtcblx0Lm8tYWNjb3JkaW9uLS10aGVtZS0tI3skY2F0ZWdvcnl9e1xuXHRcdC5vLWFjY29yZGlvbi0taXRlbSB7XG5cdFx0XHRjb2xvcjogJGNhdGVnb3J5LWNvbG9yO1xuXHRcdH1cbiAgICB9XG59XG5cbi8qKlxuKiBUaGVtZSBmb3IgcmVsYXRlZC1saW5rcywgY2hhbmdlcyB0aGUgY29sb3Igb2YgdGhlIGhlYWRpbmdzXG4qKi9cbkBtaXhpbiB0aGVtZS0tcmVsYXRlZC1saW5rcyggJGNhdGVnb3J5LCAkY2F0ZWdvcnktY29sb3IgKSB7XG5cdC5yZWxhdGVkLWxpbmtzX19oZWFkZXItLSN7JGNhdGVnb3J5fSB7XG5cdFx0Y29sb3I6ICRjYXRlZ29yeS1jb2xvcjtcblx0fVxufVxuXG4vKipcbiogVGhlbWUgZm9yIGJ1dHRvbnMsIGNoYW5nZXMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgYnV0dG9ucyB0byBhbHNvIGJlY29tZSBib3JkZXJlZCB3aXRoIGNvbG9yZWQgdGV4dCB3LyB3aGl0ZSBiYWNrZ3JvdW5kXG4qKi9cbkBtaXhpbiBidG4tLXNlY29uZGFyeS0tdGhlbWUoICAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciApIHtcblx0LmEtYnRuLS1zZWNvbmRhcnktLXRoZW1lLS0jeyRjYXRlZ29yeX17XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNhdGVnb3J5LWNvbG9yO1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICRjYXRlZ29yeS1jb2xvcjtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBidG4gKTtcblxuXHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdGNvbG9yOiAkY2F0ZWdvcnktY29sb3I7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gbGlzdC1vLW1hdGljLS10aGVtZSgkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvcikge1xuXHQubGlzdG9tYXRpY19fa2lja2VyLS10aGVtZS0tI3skY2F0ZWdvcnl9IHtcblx0XHRjb2xvcjogJGNhdGVnb3J5LWNvbG9yO1xuXHR9XG59XG5cbi8qKlxuICogSGVybyBDb3ZlciBUaGVtZVxuICpcbiAqIFRoaXMgdGhlbWUgZ2VuZXJhdGVzIG1hbnkgZGlmZmVyZW50IGhlcm8gY29sb3JzIGJhc2VkIG9uXG4gKiB0aGUgdmFsdWVzIHBhc3NlZCBpbnRvIGl0LiBJdCBpcyBkZXNpZ25lZCBpdCBiZSB1c2VkIGluIGEgbG9vcCwgZ2VuZXJhdGluZyBcbiAqIGEgbmV3IGNsYXNzIG9uIGVhY2ggbG9vcCBpdGVyYXRpb24uXG4gKiBcbiAqIFRvIHNlZSB0aGlzIGluIGFjdGlvbiwgaGVhZCB0bzpcbiAqIGA2X29yZ2FuaXNtcy9fby1oZXJvL19vLWhlcm8tLWNvdmVyLnNjc3NgXG4gKi9cblxuXG5AbWl4aW4gdGhlbWUtLWhlcm8tLWNvdmVyKCAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciApe1xuXG5cdC8vIGhlcm8tLWFydGljbGVcblx0Lm8taGVyby0tY292ZXIuby1oZXJvLS10aGVtZS0tI3skY2F0ZWdvcnl9e1xuXHRcdFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjYXRlZ29yeS1jb2xvcjtcblx0XHRAaW5jbHVkZSBib3JkZXIoIGFydGljbGUsIGJvdHRvbSwgZGFya2VuKCAkY2F0ZWdvcnktY29sb3IsIDUlICkgKTtcblxuXHR9XG5cbn0iLCIvKipcbiAqIFR5cGVcdFx0Olx0TWl4aW5cbiAqIEdyb3VwXHQ6XHRDb250YWluZXJcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqIFRoZSBDb250YWluZXIgbWl4aW4gZXh0ZW5kcyBvdXIgZGVmYXVsdCBjb250YWluZXIgdG8gaGVscCB3aXRoIGNvZGUtYmxvYXRcbiAqIHNpbmNlIGl0IHdpbGwgZ2V0IGFwcGxpZWQgdGhyb3VnaG91dCB0aGUgcHJvamVjdC4gSXQgYWxzbyBzZXRzIGEgbWF4LXdpZHRoXG4gKiB3aXRoaW4gdGhlIGRpdiBpdCBpcyBhcHBsaWVkIHRvIGJhc2VkIG9uIHRoZSByZXR1cm5lZCB2YWx1ZSBmcm9tIG91ciBncmlkIGNvbmZpZy5cbiAqL1xuQG1peGluIGNvbnRhaW5lciggJHNpemU6IGwgKXtcblx0XG5cdEBleHRlbmQgJWNvbnRhaW5lcjtcblx0bWF4LXdpZHRoOiBtYXBfZ2V0KCAkZ3JpZF9jb25maWcsIHdpZHRoLS0jeyRzaXplfSApO1xuXG59IiwiLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0Q2xlYXJmaXhcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiBTaW1wbGUgYW5kIHN0cmFpZ2h0Zm9yd2FyZC4gSXQgYWNjZXB0cyBubyBwYXJhbXMgYW5kXG4gKiBqdXN0IHBlcmZvcm1zIGEgc3RhbmRhcmQgY2xlYXJmaXggd2hlcmUgYXBwbGllZC5cbiAqL1xuXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG5cblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXJ7XG5cdFx0XG5cdFx0Y29udGVudDogXCIgXCI7XG4gIFx0XHRkaXNwbGF5OiB0YWJsZTtcblxuXHR9XG5cblx0JjphZnRlcntcblx0XHRjbGVhcjogYm90aDtcblx0fVxuXG59IiwiLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0T3BhY2l0eVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqIEEgc2ltcGxlIG1peGluIHRoYXQgbmljZWx5IGhhbmRsZXMgb3BhY2l0eSBhbmQgXG4gKiBwcm92aWRlcyBmYWxsYmFja3MgZm9yIElFLlxuICpcbiAqIEBwYXJhbSAkb3BhY2l0eSAtIHRha2VzIGFueSBkZWNpbWFsIG51bWJlciBiZXR3ZWVuIDEgYW5kIDAgKCBhZCBhbHNvIHRha2VzIHRoZSBudW1iZXJzIDEgYW5kIDAgKVxuICovXG5cbi8vXG4vLyBAZXhhbXBsZSAtIFVzYWdlXG4vL1xuLy8gQGluY2x1ZGUgb3BhY2l0eSguOCk7XG4vL1xuXG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eSkge1xuXHRcblx0JG9wYWNpdHktaWU6ICRvcGFjaXR5ICogMTAwO1xuXHRcblx0b3BhY2l0eTogJG9wYWNpdHk7XG4gIFx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PSRvcGFjaXR5LWllKTsgLy9JRThcblxufVxuXG5AbWl4aW4gb3ZlcmxheS1kYXJrLTgwIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjKCBnbG93LW5hdnkgKTtcbiAgICBAaW5jbHVkZSBvcGFjaXR5KC44KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59IiwiLyoqXG4gKiBUeXBlXHRcdDpcdE1peGluXG4gKiBHcm91cFx0Olx0U2hhZG93c1xuICogRGVzY1x0XHQ6XHRFYXNpbHkgYXBwbHkgYm94LXNoYWRvd3MgYmFzZWQgb24gZWxlbWVudCBjb25maWdzIGluIG91ciBjb25maWcgbWFwXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyoqXG4gKiBGZXRjaCBhIHNoYWRvdyBjb25maWd1cmF0aW9uIGZyb20gb3VyIGNvbmZpZyBtYXBcbiAqIGFuZCBhcHBseSBpdCB0byBhbnkgZWxlbWVudCBvZiBvdXIgY2hvb3NpbmcuXG4gKlxuICogQHBhcmFtXHQkdHlwZVx0LSBUaGUgY29uZmlnIHRvIGZldGNoIGZyb20gb3VyICRzaGFkb3dzX2NvbmZpZyBtYXAuXG4gKi9cblxuQG1peGluIHNoYWRvdyggJHR5cGUgKSB7XG5cblx0JF9zaGFkb3ctc2V0dGluZ3NcdDpcdGdldF9jb25maWcoICRzaGFkb3dzX2NvbmZpZywgJHR5cGUsIGJhc2UgKTtcblx0JF9zaGFkb3ctY29sb3JcdFx0Olx0YyggZ2V0X2NvbmZpZyggJHNoYWRvd3NfY29uZmlnLCAkdHlwZSwgY29sb3IgKSwgZ2V0X2NvbmZpZyggJHNoYWRvd3NfY29uZmlnLCAkdHlwZSwgdG9uZSApICk7XG5cdCRfc2hhZG93LW9wYWNpdHlcdDpcdGdldF9jb25maWcoICRzaGFkb3dzX2NvbmZpZywgJHR5cGUsIG9wYWNpdHkgKTtcblx0XG4gIFx0Ym94LXNoYWRvdzogJF9zaGFkb3ctc2V0dGluZ3MgcmdiYSggJF9zaGFkb3ctY29sb3IsICRfc2hhZG93LW9wYWNpdHkgKTtcblxufSIsIi8qKlxuICogVHlwZVx0XHQ6XHRNaXhpblxuICogR3JvdXBcdDpcdFNwYWNpbmdcbiAqIERlc2NcdFx0Olx0Q3JlYXRlIGEgc3lzdGVtYXRpYyB3YXkgdG8gaW1wbGVtZW50IHNwYWNpbmcgdGhyb3VnaG91dCBvdXIgc2l0ZSB0byBrZWVwXG4gKiB0aGUgZW50aXJlIGNvZGViYXNlIGxvY2tlZCBpbnRvIGEgdW5pZm9ybSBmcmFtZXdvcmsgb2YgcHJlLWRlZmluZWQgdmFsdWVzLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogVGhpcyBpcyBvbmUgYmFkYXNzIG1peGluIHRoYXQgdGFrZXMgY2FyZSBvZiBzZXR0aW5nIG1hcmdpbiBvciBwYWRkaW5nXG4gKiBpbiBhbnkgZGlyZWN0aW9uLCB3aXRoIGEgdmFsdWUgZmV0Y2hlZCBmcm9tIG91ciBzcGFjaW5nIGNvbmZpZy5cbiAqXG4gKiBAcGFyYW1cdCRwcm9wZXJ0eVx0LSBUaGUgcHJvcGVydHkgdG8gdXNlIGZvciBvdXIgc3BhY2VyXG4gKiBAcGFyYW1cdCRkaXJlY3Rpb25cdC0gVGhlIGRpcmVjdGlvbiB3ZSB3YW50IHRvIGFwcGx5IG91ciBzcGFjZXIgdG9cbiAqIEBwYXJhbVx0JHNpemVcdFx0LSBUaGUgc2l6ZSB0byBmZXRjaCBmcm9tIG91ciBjb25maWdcbiAqL1xuXG4vL1xuLy8gQGV4YW1wbGUgLSBVc2FnZVxuLy9cbi8vIC5zb21lLWVsZW1lbnR7XG4vLyBcbi8vXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYWxsLCB4bCApO1xuLy9cbi8vIH1cbi8vXG4vLyAtLT4gQ29tcGlsZXMgdG9cbi8vXG4vLyAuc29tZS1lbGVtZW50e1xuLy9cdFxuLy9cdFx0cGFkZGluZzogNjRweDsgXHRcbi8vXG4vLyB9XG4vL1xuXG5AbWl4aW4gc3BhY2VyKCAkcHJvcGVydHksICRkaXJlY3Rpb24sICRzaXplICl7XG5cdFxuXHQvKipcblx0ICogSGFuZGxlIHNldHRpbmcgb2Ygb3VyIHByb3BlcnR5IHR5cGUuIFRoaXMgJHByb3BlcnR5IHZhcmlhYmxlXG5cdCAqIHdpbGwgYmUgaW50ZXJwb2xhdGVkIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhpcyBtaXhpbi5cblx0ICovXG5cblx0Ly8gU2V0IFBhZGRpbmdcblx0QGlmKCAkcHJvcGVydHkgPT0gJ3AnICl7XG5cdFx0XG5cdFx0JHByb3BlcnR5OiBwYWRkaW5nO1xuXG5cdH1cblx0XG5cdC8vIFNldCBNYXJnaW5cblx0QGVsc2UgaWYoICRwcm9wZXJ0eSA9PSAnbScgKXtcblxuXHRcdCRwcm9wZXJ0eTogbWFyZ2luO1xuXG5cdH1cblx0XG5cdC8vIElmIG5vdCBgbWAgb3IgYHBgXG5cdEBlbHNlIHtcblx0XHRcblx0XHQvLyBUaHJvdyBhbiBlcnJvclxuXHRcdEBlcnJvciBcIlRoZSBgc3BhY2VyYCBtaXhpbiBvbmx5IGFjY2VwdHMgJHByb3BlcnR5IHZhbHVlcyBvZiBgbWAgYW5kIGBwYC4gWW91IGF0dGVtcHRlZCB0byB1c2U6IGAjeyRzaXplfWBcIjtcblxuXHR9XG5cblx0Ly8gSGFuZGxlIGFsbCBwb3NzaWJsZSBkaXJlY3Rpb25zXG5cdEBpZiggJGRpcmVjdGlvbiA9PSAnYWxsJyApe1xuXHRcdFxuXHRcdCN7JHByb3BlcnR5fSA6IHNwYWNlciggJHNpemUgKTtcblx0fVxuXG5cdC8vIEhvcml6b250YWxcblx0QGVsc2UgaWYoICRkaXJlY3Rpb24gPT0gJ3gnICl7XG5cblx0XHQjeyRwcm9wZXJ0eX0tcmlnaHRcdDogc3BhY2VyKCAkc2l6ZSApO1xuXHRcdCN7JHByb3BlcnR5fS1sZWZ0XHQ6IHNwYWNlciggJHNpemUgKTtcblxuXHR9XG5cdFxuXHQvLyBWZXJ0aWNhbFxuXHRAZWxzZSBpZiAoICRkaXJlY3Rpb24gPT0gJ3knICl7XG5cblx0XHQjeyRwcm9wZXJ0eX0tdG9wIFx0OiBzcGFjZXIoICRzaXplICk7XG5cdFx0I3skcHJvcGVydHl9LWJvdHRvbSA6IHNwYWNlciggJHNpemUgKTtcblxuXHR9XG5cdFxuXHQvLyBUb3Bcblx0QGVsc2UgaWYgKCAkZGlyZWN0aW9uID09ICd0JyApe1xuXG5cdFx0I3skcHJvcGVydHl9LXRvcCA6IHNwYWNlciggJHNpemUgKTtcblxuXHR9XG5cdFxuXHQvLyBSaWdodFxuXHRAZWxzZSBpZiAoICRkaXJlY3Rpb24gPT0gJ3InICl7XG5cblx0XHQjeyRwcm9wZXJ0eX0tcmlnaHQgOiBzcGFjZXIoICRzaXplICk7XG5cblx0fVxuXHRcblx0Ly8gQm90dG9tXG5cdEBlbHNlIGlmICggJGRpcmVjdGlvbiA9PSAnYicgKXtcblxuXHRcdCN7JHByb3BlcnR5fS1ib3R0b20gOiBzcGFjZXIoICRzaXplICk7XG5cblx0fVxuXHRcblx0Ly8gTGVmdFxuXHRAZWxzZSBpZiAoICRkaXJlY3Rpb24gPT0gJ2wnICl7XG5cblx0XHQjeyRwcm9wZXJ0eX0tbGVmdCA6IHNwYWNlciggJHNpemUgKTtcblxuXHR9XG5cblx0Ly8gSWYgYSB2YWxpZCBkaXJlY3Rpb24gd2FzIG5vdCBwYXNzZWRcblx0QGVsc2V7XG5cdFx0XG5cdFx0Ly8gVGhyb3cgYW4gZXJyb3Jcblx0XHRAZXJyb3IgXCJUaGUgYHNwYWNlcmAgbWl4aW4gb25seSBhY2NlcHRzICRkaXJlY3Rpb24gdmFsdWVzIG9mIHgsIHksIHQsIHIsIGIsIGFuZCBsLiBZb3UgYXR0ZW1wdGVkIHRvIHVzZTogYCN7JGRpcmVjdGlvbn1gXCI7XG5cblx0fVxuXG5cbn0iLCIvKipcbiAqIFR5cGVcdFx0Olx0TWl4aW5cbiAqIEdyb3VwXHQ6XHRUcmFuc2l0aW9uc1xuICogRGVzY1x0XHQ6XHRCdWlsZCB0cmFuc2l0aW9ucyBiYXNlZCBvbiBjb25maWdzIGZyb20gb3VyIHRyYW5zaXRpb24gbWFwXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyoqXG4gKiBHZXQgYW4gZWxlbWVudCB0byBmZXRjaCBmcm9tIG91ciAkdHJhbnNpdGlvbnNfY29uZmlnIG1hcCBhbmQgYXBwbHkgdGhlIFxuICogcmVzdWx0cyB0byB0aGUgZWxlbWVudCB3aGVyZSB0aGlzIG1peGluIGlzIGNhbGxlZFxuICogXG4gKiBAcGFyYW0gICRlbGVtZW50IFRoZSBlbGVtZW50IGNvbmZpZyB0byBmZXRjaCBmcm9tIG91ciBtYXBcbiAqL1xuQG1peGluIHRyYW5zaXRpb24oICRlbGVtZW50ICl7XG5cdFxuXHR0cmFuc2l0aW9uOiBnZXRfY29uZmlnKCAkdHJhbnNpdGlvbnNfY29uZmlnLCAkZWxlbWVudCwgcHJvcGVydGllcyApIGdldF9jb25maWcoICR0cmFuc2l0aW9uc19jb25maWcsICRlbGVtZW50LCBkdXJhdGlvbiApIGdldF9jb25maWcoICR0cmFuc2l0aW9uc19jb25maWcsICRlbGVtZW50LCB0aW1pbmcgKTtcblxufSIsIi8qKlxuICogVHlwZVx0XHQ6XHRNaXhpblxuICogR3JvdXBcdDpcdFR5cG9ncmFwaHlcbiAqIERlc2NcdFx0Olx0XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogR2V0IHRoZSBiYXNlIHNldHRpbmdzIGZvciBhIHR5cGVmYWNlIGZyb21cbiAqIG91ciBmb250IGNvbmZpZyBtYXAuXG4gKlxuICogQHBhcmFtXHQkdHlwZVx0dGhlIHR5cGVmYWNlIHRvIGdldCBmcm9tIG91ciBjb25maWdcbiAqIEBwYXJhbVx0JHdlaWdodFx0dGhlIGZvbnQtd2VpZ2h0IHRvIGZldGNoIGZyb20gdGhlIHR5cGVmYWNlIHdlIGNob3NlXG4gKi9cblxuQG1peGluIGZvbnQoICR0eXBlLCAkd2VpZ2h0OiAnJyApe1xuXG5cdC8vIFNldCBWYXJzXG5cdCRfZm9udC1mYW1pbHlcdDogZ2V0X2ZvbnRfc3RhY2soICR0eXBlICk7XG5cdCRfZm9udC1zdHlsZVx0OiBnZXRfY29uZmlnKCAkZm9udF9jb25maWcsICR0eXBlLCBzdHlsZSApO1xuXHQkX2ZvbnQtd2VpZ2h0XHQ6IG51bGw7IC8vIEJsYW5rIHZhcmlhYmxlIHRvIGJlIGRlZmluZWQgbGF0ZXJcblxuXHQvLyBJZiB3ZSBwYXNzZWQgaW4gYSB3ZWlnaHRcblx0QGlmKCAkd2VpZ2h0ICE9ICcnICl7XG5cdFx0XG5cdFx0Ly8gU2V0IGl0XG5cdFx0JF9mb250LXdlaWdodDogZ2V0X2NvbmZpZyggJGZvbnRfY29uZmlnLCAkdHlwZSwgd2VpZ2h0cywgJHdlaWdodCApO1xuXG5cdH1cblxuXHQvLyBJZiBub3QsIGluaGVyaXQgbGluZSB3ZWlnaHQgZnJvbSB0aGUgYm9keSBhcyBmYWxsYmFja1xuXHRAZWxzZSB7XG5cblx0XHQkX2ZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXG5cdH1cblx0XG5cdC8vIEZpbmFsbHkgb3V0cHV0IG91ciBmb250IHN0eWxlc1xuXHRmb250LWZhbWlseTogJF9mb250LWZhbWlseTtcblx0Zm9udC1zdHlsZTogJF9mb250LXN0eWxlO1xuXHRmb250LXdlaWdodDogJF9mb250LXdlaWdodDtcblxufVxuXG5cbi8qKlxuICogUHJvY2VzcyBhIFJFTSB2YWx1ZSBhbmQgcHJvdmlkZSBhIHBpeGVsIGZhbGxiYWNrXG4gKiBcbiAqIEBwYXJhbVx0JHNpemUgVGhlIGZvbnQgc2l6ZSB0byB3b3JrIHdpdGhcbiAqL1xuXG5AbWl4aW4gZm9udC1zaXplKCAkc2l6ZSApe1xuXG5cdC8vIE91ciBCYXNlIGZvbnQgc2l6ZSBpbiBwaXhlbHNcblx0JGJhc2UgOiBnZXRfY29uZmlnKCAkdHlwZV9jb25maWcsIGJhc2UtZm9udC1zaXplLXB4ICk7XG5cdCRfc2l6ZSA6IHN0cmlwLXVuaXQoICRzaXplICk7XG5cblx0Ly8gUm91bmQgdG8gdGhlIG5lYXJlc3Qgd2hvbGUgbnVtYmVyXG5cdGZvbnQtc2l6ZTogcm91bmQoICggJF9zaXplICogJGJhc2UgKSApICsgcHg7XG5cdGZvbnQtc2l6ZTogJHNpemU7XG5cbn1cblxuXG4vKipcbiAqIFRIRSBNT1RIRVIgT0YgQUxMIE1JWElOU1xuICpcbiAqIFRoaXMgaGFuZGxlcyBzaXppbmcgZm9udCBhY3Jvc3Mgb3VyIHR5cG9ncmFwaHkgc2NhbGUuXG4gKiBcbiAqIEBwYXJhbSAge1t0eXBlXX0gJHNpemUgW2Rlc2NyaXB0aW9uXVxuICogQHJldHVybiB7W3R5cGVdfSAgICAgICBbZGVzY3JpcHRpb25dXG4gKi9cbkBtaXhpbiBmb250LXNjYWxlKCAkc2l6ZSApe1xuXHRcblx0Ly8gRGVmaW5lIHRoZSBwb2ludCBhdCB3aGljaCB3ZSB3YW50IGFsbCBmb250cyB0b1xuXHQvLyBzY2FsZSBhY3Jvc3MgdGhlIGVudGlyZSBwcm9qZWN0XG5cdCRmb250LXNjYWxlLWJyZWFrcG9pbnQ6IHM7XG5cblx0Ly8gT3VyIEJhc2UgZm9udCBzaXplXG5cdCRiYXNlIDogZ2V0X2NvbmZpZyggJHR5cGVfY29uZmlnLCBiYXNlLWZvbnQtc2l6ZSApO1xuXG5cblx0LyoqXG5cdCAqIGBtc2Agb3IgTW9iaWxlIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBzbWFsbGlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG5cblx0JG1zIDogZ2V0X2NvbmZpZyggJHR5cGVfY29uZmlnLCBzY2FsZSwgbW9iaWxlICk7XG5cblxuXHQvKipcblx0ICogYGRzYCBvciBEZXNrdG9wIFNjYWxlLCBhcHBsaWVzIGEgZGlmZmVyZW50IFwiU2NhbGVcIiBhcyBkZWZpbmVkIGluIG91ciB0eXBlIGNvbmZpZ1xuXHQgKiBvbiBsYXJnZWlzaCBkZXZpY2VzLiBUaGlzIG1ha2VzIGFsbCBmb250cyBhY3Jvc3MgdGhlIHByb2plY3QgdG8gc2NhbGUgYXQgZXhhY3RseVxuXHQgKiB0aGUgc2FtZSByYXRlIGFuZCBieSBleGFjdGx5IHRoZSBzYW1lIGFtb3VudC5cblx0ICovXG5cdCRkcyA6IGdldF9jb25maWcoICR0eXBlX2NvbmZpZywgc2NhbGUsIGRlc2t0b3AgKTtcblx0XG5cdC8qKlxuXHQgKiBTdXBlciBUaW55XG5cdCAqL1xuXHRAaWYoICRzaXplID09IC0zICl7XG5cdFx0XG5cdFx0Ly8gV2UgaW52ZXJ0IG91ciBkZXNrdG9wIGFuZCBtb2JpbGUgc2NhbGUgd2hlbiB3ZSBnbyBuZWdhdGl2ZVxuXG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKCAkYmFzZSAvICRkcyAvICRkcyAvJGRzICk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkZm9udC1zY2FsZS1icmVha3BvaW50ICl7XG5cblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgLyAkbXMgLyAkbXMgLyRtcyApO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvKipcblx0ICogUmVhbGx5IFRpbnlcblx0ICovXG5cblx0QGlmKCAkc2l6ZSA9PSAtMiApe1xuXHRcdFxuXHRcdC8vIFdlIGludmVydCBvdXIgZGVza3RvcCBhbmQgbW9iaWxlIHNjYWxlIHdoZW4gd2UgZ28gbmVnYXRpdmVcblxuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgLyAkZHMgLyAkZHMgKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRmb250LXNjYWxlLWJyZWFrcG9pbnQgKXtcblxuXHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKCAkYmFzZSAvICRtcyAvICRtcyApO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvKipcblx0ICogRmluZSBQcmludFxuXHQgKi9cblx0XG5cdEBpZiggJHNpemUgPT0gLTEgKXtcblx0XHRcblx0XHQvLyBXZSBpbnZlcnQgb3VyIGRlc2t0b3AgYW5kIG1vYmlsZSBzY2FsZSB3aGVuIHdlIGdvIG5lZ2F0aXZlXG5cblx0XHRAaW5jbHVkZSBmb250LXNpemUoICRiYXNlIC8gJGRzICk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkZm9udC1zY2FsZS1icmVha3BvaW50ICl7XG5cblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgLyAkbXMgKTtcblxuXHRcdH1cblxuXHR9XG5cblx0LyoqXG5cdCAqIEJhc2UgYm9keSBjb3B5XG5cdCAqL1xuXHRAaWYoICRzaXplID09IDAgKXtcblxuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgKTtcblxuXHR9XG5cblxuXHQvKipcblx0ICogTGFyZ2UgYm9keSArIFNtYWxsIEhlYWRpbmdcblx0ICovXG5cdEBpZiggJHNpemUgPT0gMSApe1xuXG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKCAkYmFzZSAqICRtcyApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGZvbnQtc2NhbGUtYnJlYWtwb2ludCApe1xuXG5cdFx0XHRAaW5jbHVkZSBmb250LXNpemUoICRiYXNlICogJGRzICk7XG5cblx0XHR9XG5cblx0fVxuXG5cblx0LyoqXG5cdCAqIE1lZGl1bSBIZWFkaW5nXG5cdCAqL1xuXHRAaWYoICRzaXplID09IDIgKXtcblxuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgKiAkbXMgKiAkbXMgKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRmb250LXNjYWxlLWJyZWFrcG9pbnQgKXtcblxuXHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKCAkYmFzZSAqICRkcyAqICRkcyApO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvKipcblx0ICogTGFyZ2UgSGVhZGluZ1xuXHQgKi9cblx0QGlmKCAkc2l6ZSA9PSAzICl7XG5cblx0XHRAaW5jbHVkZSBmb250LXNpemUoICRiYXNlICogJG1zICogJG1zICogJG1zICk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkZm9udC1zY2FsZS1icmVha3BvaW50ICl7XG5cblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgKiAkZHMgKiAkZHMgKiAkZHMgKTtcblxuXHRcdH1cblxuXHR9XG5cblxuXHQvKipcblx0ICogWEwgSGVhZGluZ1xuXHQgKi9cblx0QGlmKCAkc2l6ZSA9PSA0ICl7XG5cblx0XHRAaW5jbHVkZSBmb250LXNpemUoICRiYXNlICogJG1zICogJG1zICogJG1zICogJG1zICk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkZm9udC1zY2FsZS1icmVha3BvaW50ICl7XG5cblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgKiAkZHMgKiAkZHMgKiAkZHMgKiAkZHMgKTtcblxuXHRcdH1cblxuXHR9XG5cblx0LyoqXG5cdCAqIFhYTCBIZWFkaW5nXG5cdCAqL1xuXHRAaWYoICRzaXplID09IDUgKXtcblxuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgKiAkbXMgKiAkbXMgKiAkbXMgKiAkbXMgKiAkbXMgKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRmb250LXNjYWxlLWJyZWFrcG9pbnQgKXtcblxuXHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKCAkYmFzZSAqICRkcyAqICRkcyAqICRkcyAqICRkcyAqICRkcyApO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvKipcblx0ICogWFhYTCBIZWFkaW5nXG5cdCAqL1xuXHRAaWYoICRzaXplID09IDYgKXtcblxuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgKiAkbXMgKiAkbXMgKiAkbXMgKiAkbXMgKiAkbXMgKiAkbXMgKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRmb250LXNjYWxlLWJyZWFrcG9pbnQgKXtcblxuXHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKCAkYmFzZSAqICRkcyAqICRkcyAqICRkcyAqICRkcyAqICRkcyAqICRkcyApO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvKipcblx0ICogWFhYWEwgSGVhZGluZ1xuXHQgKi9cblx0QGlmKCAkc2l6ZSA9PSA3ICl7XG5cblx0XHRAaW5jbHVkZSBmb250LXNpemUoICRiYXNlICogJG1zICogJG1zICogJG1zICogJG1zICogJG1zICogJG1zICogJG1zICk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkZm9udC1zY2FsZS1icmVha3BvaW50ICl7XG5cblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSggJGJhc2UgKiAkZHMgKiAkZHMgKiAkZHMgKiAkZHMgKiAkZHMgKiAkZHMgKiAkZHMgKTtcblxuXHRcdH1cblxuXHR9XG5cblx0LyoqXG5cdCAqIFhYWFhMIEhlYWRpbmdcblx0ICovXG5cdEBpZiggJHNpemUgPT0gOCApe1xuXG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKCAkYmFzZSAqICRtcyAqICRtcyAqICRtcyAqICRtcyAqICRtcyAqICRtcyAqICRtcyAqICRtcyApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGZvbnQtc2NhbGUtYnJlYWtwb2ludCApe1xuXG5cdFx0XHRAaW5jbHVkZSBmb250LXNpemUoICRiYXNlICogJGRzICogJGRzICogJGRzICogJGRzICogJGRzICogJGRzICogJGRzICogJGRzICk7XG5cblx0XHR9XG5cblx0fVxuXG59IiwiLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogRXh0ZW5kc1xuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Ly9cblx0Ly8gQWxsIGZpbGVzIGFyZSBpbXBvcnRlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuXG5cdC8vXG5cdFxuXHRAaW1wb3J0ICAnX2UtYmFja2dyb3VuZHMnO1xuXHRAaW1wb3J0ICAnX2UtY29udGFpbmVycyc7XG5cdEBpbXBvcnQgICdfZS1mbGV4Ym94Jztcblx0QGltcG9ydCAgJ19lLXBzZXVkbyc7XG5cdEBpbXBvcnQgICdfZS10eXBlJzsiLCIvKipcbiAqIFR5cGVcdFx0Olx0RXh0ZW5kc1xuICogR3JvdXBcdDpcdEJhY2tncm91bmRzXG4gKiBEZXNjXHRcdDpcdERlZmluZSBzaWxlbnQgY2xhc3NlcyBmb3IgY29tbW9ubHkgdXNlZCBiYWNrZ3JvdW5kIHByb3BlcnRpZXMuXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cblxuJWJnLS1jb3Zlcntcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuXG4lYmctLXBvcy0tY2VudGVye1xuXG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cbn1cblxuXG4lYmctLXBvcy0tYm90dG9tLWNlbnRlcntcblxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xuXG59XG5cblxuJWJnLS1wb3MtLXRvcC1sZWZ0e1xuXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGxlZnQ7XG5cbn0iLCIvKipcbiAqIFR5cGVcdFx0Olx0RXh0ZW5kc1xuICogR3JvdXBcdDpcdENvbnRhaW5lclxuICogRGVzY1x0XHQ6XHREZWZpbmUgYSBzaWxlbnQgY2xhc3MgdG8gdXNlIHdpdGggb3VyIGNvbnRhaW5lciBncmlkLlxuICogVGhpcyBrZWVwcyB1cyBmcm9tIGhhdmluZyB0byBkZWZpbmUgaXQgYWxsIG92ZXIgdGhlIHBsYWNlLlxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4lY29udGFpbmVye1xuXHRcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0d2lkdGg6IG1hcF9nZXQoICRncmlkX2NvbmZpZywgY29udGFpbmVyLXdpZHRoLW1vYmlsZSApO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIHMgKXtcblx0XHR3aWR0aDogbWFwX2dldCggJGdyaWRfY29uZmlnLCBjb250YWluZXItd2lkdGgtZGVza3RvcCApO1xuXHR9XG5cbn0iLCIvKipcbiAqIFR5cGVcdFx0Olx0RXh0ZW5kc1xuICogR3JvdXBcdDpcdEZsZXhib3hcbiAqIERlc2NcdFx0Olx0RGVmaW5lIHNpbGVudCBjbGFzc2VzIGZvciBmbGV4Ym94IHVzYWdlLlxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuJWZsZXgtLWNlbnRlci0tYWxse1xuXHRcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbn0iLCIvKipcbiAqIFR5cGVcdFx0Olx0RXh0ZW5kc1xuICogR3JvdXBcdDpcdFBzZXVkb1xuICogRGVzY1x0XHQ6XHREZWZpbmUgc2lsZW50IGNsYXNzZXMgZm9yIGVhc2llciBQc2V1ZG8gaW1wbGVtZW50YXRpb24uXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbiViZWZvcmUtLWNvdmVye1xuXHRcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3Jle1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRsZWZ0OiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdCAgICB3aWR0aDogMTAwJTtcblx0ICAgIHotaW5kZXg6IHooIGJhc2UgKTtcblx0fVxuXG59XG5cblxuJWFmdGVyLS1jb3Zlcntcblx0XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOmFmdGVye1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRsZWZ0OiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdCAgICB3aWR0aDogMTAwJTtcblx0ICAgIHotaW5kZXg6IHooIGJhc2UgKTtcblx0fVxuXHRcbn0iLCIvKipcbiAqIFR5cGVcdFx0Olx0RXh0ZW5kc1xuICogR3JvdXBcdDpcdFNtb290aFxuICogRGVzY1x0XHQ6XHREZWZpbmUgc2lsZW50IGNsYXNzZXMgZm9yIG1vZGlmeWluZyB0eXBvZ3JhcGh5LlxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuJXR5cGUtLXNtb290aHtcblx0XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMCwwLDAsMC4wMDQpO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG5cbn0iLCIvKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBMaWJyYXJpZXNcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vXG5cdC8vIEFsbCBmaWxlcyBhcmUgaW1wb3J0ZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLlxuXHQvL1xuXHRcblx0QGltcG9ydCAnX3Jlc2V0Jztcblx0QGltcG9ydCAnX2ZyZXNjby1saWdodGJveC9fZnJlc2NvLnNjc3MnO1xuXHRAaW1wb3J0ICdfc2xpY2stc2xpZGVyL19hYS1sb2FkZXInOyIsIi8qKlxuICogVHlwZSA6IExpYnJhcnlcbiAqIE5hbWUgOiBSZXNldFxuICogRGVzYzogV2UgdXNlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBtaW5pcmVzZXQuY3NzIC0gZ2l0aHViLmNvbS9qZ3RobXMvbWluaXJlc2V0LmNzc1xuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICpcbiAqIDIuIFNldCByb290IGZvbnQgc2l6ZVxuICpcbiAqIE5vdGUgdGhhdCBjaGFuZ2luZyB0aGUgZm9udC1zaXplIG9uIHRoZSBodG1sIGVsZW1lbnQgd2lsbCBhZmZlY3QgdGhlXG4gKiBlbnRpcmUgcHJvamVjdCBzaW5jZSBhbGwgZm9udHMgYXJlIGJlaW5nIHNpemVkIGluIHJlbXMgYmFzZWQgb25cbiAqIHRoZSBpbml0aWFsIHNpemUgb2YgdGhlIGh0bWwgZWxlbWVudC5cbiAqL1xuXG5odG1sIHtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogbWFwX2dldCggJHR5cGVfY29uZmlnLCByb290LWZvbnQtc2l6ZSApO1xufVxuXG4vKipcbiAqIFNldCBCb2R5IHRvIE92ZXJmbG93IEhpZGRlblxuICovXG5cbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cblxuLy8qISBtaW5pcmVzZXQuY3NzIHYwLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9qZ3RobXMvbWluaXJlc2V0LmNzcyAqL1xuaHRtbCxcbmJvZHksXG5wLFxub2wsXG51bCxcbmxpLFxuZGwsXG5kdCxcbmRkLFxuYmxvY2txdW90ZSxcbmZpZ3VyZSxcbmZpZWxkc2V0LFxubGVnZW5kLFxudGV4dGFyZWEsXG5wcmUsXG5pZnJhbWUsXG5ocixcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuYXtcbiAgY29sb3I6IHVuc2V0O1xuICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbn1cblxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b246Zm9jdXN7XG4gIG91dGxpbmU6bm9uZTtcbn1cblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5pbWcsXG5lbWJlZCxcbm9iamVjdCxcbmF1ZGlvLFxudmlkZW8ge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuaWZyYW1lLFxuYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn0iLCIvKiBib3gtc2l6aW5nICovXG4uZnItd2luZG93LCAuZnItd2luZG93IFtjbGFzc149XCJmci1cIl0sXG4uZnItb3ZlcmxheSwgLmZyLW92ZXJsYXkgW2NsYXNzXj1cImZyLVwiXSxcbi5mci1zcGlubmVyLCAuZnItc3Bpbm5lciBbY2xhc3NePVwiZnItXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmZyLXdpbmRvdyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBmb250LXNpemU6IDE2cHgvMjBweDtcbiAgLyogQ2hyb21lIGhhY2ssIHRoaXMgZml4ZXMgYSB2aXN1YWwgZ2xpdGNoIHdoZW4gcXVpY2tseSB0b2dnbGluZyBhIHZpZGVvICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpO1xufVxuXG4vKiB6LWluZGV4ICovXG4uZnItb3ZlcmxheSB7IHotaW5kZXg6ICA5OTk5ODsgfVxuLmZyLXdpbmRvdyB7ICB6LWluZGV4OiAgOTk5OTk7IH1cbi5mci1zcGlubmVyIHsgei1pbmRleDogMTAwMDAwOyB9XG5cblxuLyogb3ZlcmxheSAqL1xuLmZyLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5mci1vdmVybGF5LWJhY2tncm91bmQge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcblxuICBAaW5jbHVkZSBvcGFjaXR5KCAuOCApO1xufVxuXG4uZnItb3ZlcmxheS11aS1mdWxsY2xpY2sgLmZyLW92ZXJsYXktYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQ6ICMyOTI5Mjk7XG4gIEBpbmNsdWRlIG9wYWNpdHkoIC44NSApO1xufVxuXG5cbi8qIG1vYmlsZSB0b3VjaCBoYXMgcG9zaXRpb246YWJzb2x1dGUgdG8gYWxsb3cgem9vbWluZyAqL1xuLmZyLXdpbmRvdy5mci1tb2JpbGUtdG91Y2gsXG4uZnItb3ZlcmxheS5mci1tb2JpbGUtdG91Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5cbi8qIHNvbWUgcHJvcGVydGllcyBvbiB0aGUgd2luZG93IGFyZSB1c2VkIHRvIHRvZ2dsZSB0aGluZ3NcbiAqIGxpa2UgbWFyZ2luIGFuZCB0aGUgZnVsbGNsaWNrIG1vZGUsXG4gKiB3ZSByZXNldCB0aG9zZSBwcm9wZXJ0aWVzIGFmdGVyIG1lYXN1cmluZyB0aGVtXG4gKi9cbi5mci1tZWFzdXJlZCB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4uZnItYm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mci1wYWdlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZnItcGFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuXG4uZnItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZnItaG92ZXJpbmctY2xpY2thYmxlIC5mci1jb250YWluZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cblxuXG4vKlxuICAgcGFkZGluZzpcbiAgIHlvdXR1YmUgJiB2aW1lbyBhbHdheXMgaGF2ZSBidXR0b25zIG9uIHRoZSBvdXRzaWRlXG4gICBzaWRlIGJ1dHRvbiA9IDcyID0gNTQgKyAoMiAqIDkgbWFyZ2luKVxuICAgY2xvc2UgYnV0dG9uID0gNDhcbiovXG4vKiBwYWRkaW5nIHVpOmluc2lkZSAqL1xuLmZyLXVpLWluc2lkZSAuZnItY29udGFpbmVyIHsgcGFkZGluZzogMjBweCAyMHB4OyB9XG4uZnItdWktaW5zaWRlLmZyLW5vLXNpZGVzIC5mci1jb250YWluZXIgeyBwYWRkaW5nOiAyMHB4OyB9XG5cbi8qIHBhZGRpbmcgdWk6b3V0c2lkZSAqL1xuLmZyLXVpLW91dHNpZGUgLmZyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDIwcHggODJweDsgfVxuLmZyLXVpLW91dHNpZGUuZnItbm8tc2lkZXMgLmZyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDIwcHggNDhweDsgfVxuXG4vKiByZWR1Y2UgcGFkZGluZyBvbiBzbWFsbGVyIHNjcmVlbnMgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDcwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksXG4gICAgICAgYWxsIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgYW5kIChtYXgtaGVpZ2h0OiA3MDBweCkge1xuICAvKiBwYWRkaW5nIHVpOmluc2lkZSAqL1xuICAuZnItdWktaW5zaWRlIC5mci1jb250YWluZXIgeyBwYWRkaW5nOiAxMnB4IDEycHg7IH1cbiAgLmZyLXVpLWluc2lkZS5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHsgcGFkZGluZzogMTJweDsgfVxuXG4gIC8qIHBhZGRpbmcgdWk6b3V0c2lkZSAqL1xuICAuZnItdWktb3V0c2lkZSAuZnItY29udGFpbmVyIHsgcGFkZGluZzogMTJweCA3MnB4OyB9XG4gIC5mci11aS1vdXRzaWRlLmZyLW5vLXNpZGVzIC5mci1jb250YWluZXIgeyBwYWRkaW5nOiAxMnB4IDQ4cHg7IH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTAwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSxcbiAgICAgICBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBhbmQgKG1heC1oZWlnaHQ6IDUwMHB4KSB7XG4gIC8qIHBhZGRpbmcgdWk6aW5zaWRlICovXG4gIC5mci11aS1pbnNpZGUgLmZyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDBweCAwcHg7IH1cbiAgLmZyLXVpLWluc2lkZS5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHsgcGFkZGluZzogMHB4OyB9XG5cbiAgLyogcGFkZGluZyB1aTpvdXRzaWRlICovXG4gIC5mci11aS1vdXRzaWRlIC5mci1jb250YWluZXIgeyBwYWRkaW5nOiAwcHggNzJweDsgfVxuICAuZnItdWktb3V0c2lkZS5mci1uby1zaWRlcyAuZnItY29udGFpbmVyIHsgcGFkZGluZzogMHB4IDQ4cHg7IH1cbn1cblxuLyogcGFkZGluZyB1aTpmdWxsY2xpY2sgKi9cbi5mci11aS1mdWxsY2xpY2sgLmZyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDA7IH1cbi5mci11aS1mdWxsY2xpY2suZnItbm8tc2lkZXMgLmZyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDA7IH1cblxuLyogdmlkZW8gZnVsbGNsaWNrICovXG4uZnItdWktZnVsbGNsaWNrLmZyLXR5cGUtdmlkZW8gLmZyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDBweCA2MnB4OyB9XG4uZnItdWktZnVsbGNsaWNrLmZyLW5vLXNpZGVzLmZyLXR5cGUtdmlkZW8gLmZyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDQ4cHggMHB4OyB9XG5cbi8qIG92ZXJmbG93LXkgc2hvdWxkIGFsd2F5cyBoYXZlIDAgcGFkZGluZyB0b3AgYW5kIGJvdHRvbSAqL1xuLmZyLW92ZXJmbG93LXkgLmZyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwIWltcG9ydGFudDtcbn1cblxuLmZyLWNvbnRlbnR7XG4gIFxuICBAaW5jbHVkZSBib3JkZXIoIGxpZ2h0Ym94ICk7IFxuXG59XG5cblxuLmZyLWNvbnRlbnQsXG4uZnItY29udGVudC1iYWNrZ3JvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICAvKiBJRTExIGhhcyBhIDFweCBibHVyIGJ1ZyBvbiB0aGUgZWRnZXMgb2YgdGhlIGNhcHRpb24gKHVpOmluc2lkZSlcbiAgICAgZHVyaW5nIGFuaW1hdGlvbiB3aXRoIG92ZXJmbG93OmhpZGRlbiAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyogaW1nL2lmcmFtZS9lcnJvciAqL1xuLmZyLWNvbnRlbnQtZWxlbWVudCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZnItY29udGVudC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZDogIzEwMTAxMDtcbn1cblxuLmZyLWluZm8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogdGV4dDtcbiAgLW1vei11c2VyLXNlbGVjdDogdGV4dDtcbiAgLW1zLXVzZXItc2VsZWN0OiB0ZXh0O1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbn1cbi5mci1pbmZvLWJhY2tncm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgbGluZS1oZWlnaHQ6IDElO1xuICBmaWx0ZXI6IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG59XG4uZnItdWktaW5zaWRlIC5mci1pbmZvLWJhY2tncm91bmQge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApO1xuICBvcGFjaXR5OiAuODtcbiAgem9vbTogMTtcbn1cbi8qIHVpOm91dHNpZGUgaGFzIGEgc2xpZ2h0bHkgbGlnaHRlciBpbmZvIGJhY2tncm91bmQgdG8gYnJlYWsgdXAgZnJvbSBibGFjayBwYWdlIGJhY2tncm91bmRzICovXG4uZnItdWktb3V0c2lkZSAuZnItaW5mby1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZDogIzBkMGQwZDsgfVxuXG5cbi8qIGluZm8gYXQgdGhlIGJvdHRvbSBmb3IgdWk6aW5zaWRlICovXG4uZnItY29udGVudCAuZnItaW5mbyB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwO1xufVxuXG4uZnItaW5mby1wYWRkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjKCBncmF5c2NhbGUsIHdoaXRlICk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xufVxuLmZyLWNhcHRpb24ge1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZnItcG9zaXRpb24ge1xuICBjb2xvcjogI2IzYjNiMztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBsaW5lLWhlaWdodDogMjFweDtcbiAgb3BhY2l0eTogMC45OTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIHBvc2l0aW9ucyBub3Qgd2l0aGluIHRoZSBpbmZvIGJhclxuICAgZm9yIHVpOm91dHNpZGUvaW5zaWRlICovXG4uZnItcG9zaXRpb24tb3V0c2lkZSxcbi5mci1wb3NpdGlvbi1pbnNpZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbjogMTJweDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwwLDAsLjQpO1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogdGV4dDtcbiAgLW1vei11c2VyLXNlbGVjdDogdGV4dDtcbiAgLW1zLXVzZXItc2VsZWN0OiB0ZXh0O1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbn1cbi5mci1wb3NpdGlvbi1pbnNpZGUge1xuICBib3JkZXI6IDA7XG59XG5cbi5mci1wb3NpdGlvbi1iYWNrZ3JvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwZDBkMGQ7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT04MCk7XG4gIG9wYWNpdHk6IC44O1xuICB6b29tOiAxOyAvKiBvbGRJRSAqL1xufVxuLmZyLXBvc2l0aW9uLXRleHQgeyBjb2xvcjogI2IzYjNiMzsgfVxuLmZyLXBvc2l0aW9uLW91dHNpZGUgLmZyLXBvc2l0aW9uLXRleHQsXG4uZnItcG9zaXRpb24taW5zaWRlIC5mci1wb3NpdGlvbi10ZXh0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4zKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogZGlzcGxheSBpdCBmb3IgdGhlIG91dHNpZGUgdWksIGhpZGUgdGhlIGNhcHRpb24gaW5zaWRlICovXG4uZnItdWktb3V0c2lkZSAuZnItcG9zaXRpb24tb3V0c2lkZSB7IGRpc3BsYXk6IGJsb2NrOyB9XG4uZnItdWktb3V0c2lkZSAuZnItaW5mbyAuZnItcG9zaXRpb24geyBkaXNwbGF5OiBub25lOyB9XG5cbi5mci11aS1pbnNpZGUuZnItbm8tY2FwdGlvbiAuZnItcG9zaXRpb24taW5zaWRlIHsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogbGlua3MgKi9cbi5mci1pbmZvIGEsXG4uZnItaW5mbyBhOmhvdmVyIHtcbiAgY29sb3I6ICNjY2M7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uZnItaW5mbyBhOmhvdmVyIHsgY29sb3I6ICNlZWU7IH1cblxuLyogbm8tY2FwdGlvbiAqL1xuLmZyLXVpLW91dHNpZGUuZnItbm8tY2FwdGlvbiAuZnItaW5mbyB7IGRpc3BsYXk6IG5vbmU7IH1cbi5mci11aS1pbnNpZGUuZnItbm8tY2FwdGlvbiAuZnItY2FwdGlvbiB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vKiAtLS0gc3Ryb2tlICovXG4uZnItc3Ryb2tlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbn1cbi5mci1zdHJva2UtdmVydGljYWwgeyB3aWR0aDogMXB4OyBoZWlnaHQ6IDEwMCU7IH1cbi5mci1zdHJva2UtaG9yaXpvbnRhbCB7IHBhZGRpbmc6IDAgMXB4OyB9XG5cbi5mci1zdHJva2UtcmlnaHQgeyBsZWZ0OiBhdXRvOyByaWdodDogMDsgfVxuLmZyLXN0cm9rZS1ib3R0b20geyB0b3A6IGF1dG87IGJvdHRvbTogMDsgfVxuXG4uZnItc3Ryb2tlLWNvbG9yIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA4KTtcbn1cblxuLyogdGhlIHN0cm9rZSBpcyBicmlnaHRlciBpbnNpZGUgdGhlIGluZm8gYm94ICovXG4uZnItaW5mbyAuZnItc3Ryb2tlLWNvbG9yIHsgYmFja2dyb3VuZDogcmdiYSg4MCw4MCw4MCwuMyk7IH1cblxuLyogcmVtb3ZlIHRoZSBzdHJva2Ugd2hlbiBvdXRzaWRlIHVpIGhhcyBhIGNhcHRpb24gKi9cbi5mci11aS1vdXRzaWRlLmZyLWhhcy1jYXB0aW9uIC5mci1jb250ZW50IC5mci1zdHJva2UtYm90dG9tIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiByZW1vdmUgc3Ryb2tlIGFuZCBzaGFkb3cgd2hlbiB1aTpmdWxsY2xpY2sgKi9cbi5mci11aS1mdWxsY2xpY2sgLmZyLXN0cm9rZSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5mci11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQtYmFja2dyb3VuZCB7IGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLyogdGhlIGluZm8gYm94IG5ldmVyIGJhcyBhIHRvcCBzdHJva2UgKi9cbi5mci1pbmZvIC5mci1zdHJva2UtdG9wIHsgZGlzcGxheTogbm9uZTsgfVxuXG5cblxuLyogPCA+ICovXG4uZnItc2lkZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA1NHB4O1xuICBoZWlnaHQ6IDcycHg7XG4gIG1hcmdpbjogMCA5cHg7XG4gIG1hcmdpbi10b3A6IC0zNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB6b29tOiAxO1xufVxuLmZyLXNpZGUtcHJldmlvdXMgeyBsZWZ0OiAwOyB9XG4uZnItc2lkZS1uZXh0IHsgcmlnaHQ6IDA7IGxlZnQ6IGF1dG87IH1cblxuLmZyLXNpZGUtZGlzYWJsZWQgeyBjdXJzb3I6IGRlZmF1bHQ7IH1cbi5mci1zaWRlLWhpZGRlbiB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZnItc2lkZS1idXR0b24ge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLmZyLXNpZGUtYnV0dG9uLWJhY2tncm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwMTAxMDtcbn1cbi5mci1zaWRlLWJ1dHRvbi1pY29uIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgem9vbTogMTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi8qIHNtYWxsZXIgc2lkZSBidXR0b25zICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLFxuICAgICAgIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIGFuZCAobWF4LWhlaWdodDogNDE0cHgpIHtcbiAgLmZyLXNpZGUge1xuICAgIHdpZHRoOiA1NHB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXRvcDogLTMwcHg7XG4gIH1cbiAgLmZyLXNpZGUtYnV0dG9uIHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgbWFyZ2luOiAwIDNweDtcbiAgfVxufVxuXG5cbi8qIFggKi9cbi5mci1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmZyLWNsb3NlLWJhY2tncm91bmQsXG4uZnItY2xvc2UtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMnB4O1xuICBsZWZ0OiAxMnB4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIHdpZHRoOiAyNnB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLmZyLWNsb3NlLWJhY2tncm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG5cblxuXG5cbi8qIFRodW1ibmFpbHMgKi9cbi5mci10aHVtYm5haWxzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmZyLXRodW1ibmFpbHMtZGlzYWJsZWQgLmZyLXRodW1ibmFpbHMgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbi5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLXRodW1ibmFpbHMge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMiU7XG4gIG1pbi1oZWlnaHQ6IDc0cHg7XG4gIG1heC1oZWlnaHQ6IDE2MHB4O1xuICBib3R0b206IDA7XG59XG5cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAlO1xuICBtaW4td2lkdGg6IDc0cHg7XG4gIG1heC13aWR0aDogMTYwcHg7XG4gIGxlZnQ6IDA7XG59XG5cbi5mci10aHVtYm5haWxzLFxuLmZyLXRodW1ibmFpbHMgKiB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmZyLXRodW1ibmFpbHMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXdyYXBwZXIge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbn1cblxuLmZyLXRodW1ibmFpbHMtc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgem9vbTogMTtcbn1cblxuLmZyLXRodW1ibmFpbHMtc2xpZGVyLXNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZyLXRodW1ibmFpbHMtdGh1bWJzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5mci10aHVtYm5haWxzLXNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mci10aHVtYm5haWwtZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mci10aHVtYm5haWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHpvb206IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwIDEwcHg7XG59XG4uZnItbHRJRTkgLmZyLXRodW1ibmFpbCAqIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU2KDcpICovXG4gIHotaW5kZXg6IDE7XG4gIHpvb206IDE7XG59XG5cbi5mci10aHVtYm5haWwtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzE2MTYxNjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZTsgLyogSUU2KDcpICovXG4gIHotaW5kZXg6IDA7IC8qIElFOCAqL1xufVxuXG4uZnItdGh1bWJuYWlsLW92ZXJsYXkgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbi5mci10aHVtYm5haWwtYWN0aXZlIC5mci10aHVtYm5haWwtb3ZlcmxheSB7IGN1cnNvcjogZGVmYXVsdDsgfVxuLmZyLXRodW1ibmFpbC1vdmVybGF5LFxuLmZyLXRodW1ibmFpbC1vdmVybGF5LWJhY2tncm91bmQsXG4uZnItdGh1bWJuYWlsLW92ZXJsYXktYm9yZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5mci1sdElFOSAuZnItdGh1bWJuYWlsLW92ZXJsYXktYm9yZGVyIHsgYm9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7IH1cbi5mci10aHVtYm5haWwgLmZyLXRodW1ibmFpbC1pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTg1KTtcbiAgb3BhY2l0eTogLjg1O1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4uZnItdGh1bWJuYWlsOmhvdmVyIC5mci10aHVtYm5haWwtaW1hZ2UsXG4uZnItdGh1bWJuYWlsLWFjdGl2ZTpob3ZlciAuZnItdGh1bWJuYWlsLWltYWdlIHtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTk5KTtcbiAgb3BhY2l0eTogLjk5O1xufVxuLmZyLXRodW1ibmFpbC1hY3RpdmUgLmZyLXRodW1ibmFpbC1pbWFnZSxcbi5mci10aHVtYm5haWwtYWN0aXZlOmhvdmVyIC5mci10aHVtYm5haWwtaW1hZ2Uge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzUpO1xuICBvcGFjaXR5OiAuMzU7XG59XG4uZnItdGh1bWJuYWlsLWFjdGl2ZSB7IGN1cnNvcjogZGVmYXVsdDsgIH1cblxuLyogVGh1bWJuYWlscyBsb2FkaW5nICovXG4uZnItdGh1bWJuYWlsLWxvYWRpbmcsXG4uZnItdGh1bWJuYWlsLWxvYWRpbmctYmFja2dyb3VuZCxcbi5mci10aHVtYm5haWwtbG9hZGluZy1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uZnItdGh1bWJuYWlsLWxvYWRpbmctYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjE2MTY7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG9wYWNpdHk6IC44O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLyogdGhpcyBlbGVtZW50IGlzIHRoZXJlIGFzIGFuIGFsdGVybmF0aXZlIHRvIHB1dHRpbmcgdGhlIGxvYWRpbmcgaW1hZ2Ugb24gdGhlIGJhY2tncm91bmQgKi9cbi5mci10aHVtYm5haWwtbG9hZGluZy1pY29uIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBlcnJvciBvbiB0aHVtYm5haWwgKi9cbi5mci10aHVtYm5haWwtZXJyb3IgLmZyLXRodW1ibmFpbC1pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjAyMDIwO1xufVxuXG5cbi8qIFRodW1ibmFpbCA8ID4gKi9cbi5mci10aHVtYm5haWxzLXNpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMjhweDtcbiAgbWFyZ2luOiAwIDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyB7IG1hcmdpbi1sZWZ0OiAxMnB4OyB9XG4uZnItdGh1bWJuYWlscy1zaWRlLW5leHQgeyBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cblxuLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZSB7XG4gIGhlaWdodDogMjhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMTBweCAwO1xufVxuLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyB7IG1hcmdpbi10b3A6IDIwcHg7IH1cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCB7IG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xNHB4O1xuICBtYXJnaW4tbGVmdDogLTE0cHg7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApO1xuICBvcGFjaXR5OiAuODtcbiAgLW1vei10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW47XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b246aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tYmFja2dyb3VuZCB7IGJhY2tncm91bmQtY29sb3I6ICMzYjNiM2I7IH1cblxuLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgKiB7IGN1cnNvcjogZGVmYXVsdDsgfVxuLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQ6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tYmFja2dyb3VuZCB7IGJhY2tncm91bmQtY29sb3I6ICMzMzM7IH1cblxuLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIGhlaWdodDogNDJweDtcbiAgd2lkdGg6IDQycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyp0b3A6IC03cHg7XG4gIGxlZnQ6IC03cHg7Ki9cbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKiB2ZXJ0aWNhbCB0aHVtYm5haWxzICovXG4uZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLFxuLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtdGh1bWJzLFxuLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbC1mcmFtZSB7IGNsZWFyOiBib3RoOyB9XG5cbi8qIHVpOmZ1bGxjbGljayBoYXMgYSBkYXJrIHRodW1ibmFpbCBiYWNrZ3JvdW5kICovXG4uZnItd2luZG93LXVpLWZ1bGxjbGljayAuZnItdGh1bWJuYWlscyB7IGJhY2tncm91bmQ6ICMwOTA5MDk7IH1cblxuLyogcHV0IGEgc3Ryb2tlIG9uIHRoZSBjb25uZWN0aW5nIGNhcHRpb24qL1xuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2suZnItdGh1bWJuYWlscy1lbmFibGVkLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItaW5mbyAuZnItc3Ryb2tlLWJvdHRvbSB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gLyooeyBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTsgfSAqL1xuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2suZnItdGh1bWJuYWlscy1lbmFibGVkLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLWluZm8gLmZyLXN0cm9rZS1sZWZ0IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4vKiB0aHVtYm5haWwgc3BhY2luZyAgKi9cbi5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLXRodW1ibmFpbHMtdGh1bWJzIHsgcGFkZGluZzogMTJweCA1cHg7IH1cbi5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXRodW1icyB7IHBhZGRpbmc6IDVweCAxMnB4OyB9XG4uZnItdGh1bWJuYWlscy1tZWFzdXJlZCAuZnItdGh1bWJuYWlscy10aHVtYnMgeyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbi8qIGhvcml6b250YWwgKi9cbkBtZWRpYSBhbGwgYW5kIChtaW4taGVpZ2h0OiA3MDBweCkge1xuICAuZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzLXRodW1icyB7IHBhZGRpbmc6IDE2cHggOHB4OyB9XG4gIC5mci10aHVtYm5haWxzLWhvcml6b250YWwgLmZyLXRodW1ibmFpbHMtc2lkZSB7IG1hcmdpbjogMCA4cHg7IH1cbiAgLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzIHsgbWFyZ2luLWxlZnQ6IDE2cHg7IH1cbiAgLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQgeyBtYXJnaW4tcmlnaHQ6IDE2cHg7IH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4taGVpZ2h0OiA5ODBweCkge1xuICAuZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzLXRodW1icyB7IHBhZGRpbmc6IDIwcHggMTBweDsgfVxuICAuZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzLXNpZGUgeyBtYXJnaW46IDAgMTBweDsgfVxuICAuZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgeyBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAuZnItdGh1bWJuYWlscy1ob3Jpem9udGFsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCB7IG1hcmdpbi1yaWdodDogMjBweDsgfVxufVxuXG4vKiB2ZXJ0aWNhbCAqL1xuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXRodW1icyB7IHBhZGRpbmc6IDhweCAxNnB4OyB9XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUgeyBtYXJnaW46IDAgOHB4OyB9XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgeyBtYXJnaW4tdG9wOiAxNnB4OyB9XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCB7IG1hcmdpbi1ib3R0b206IDE2cHg7IH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDE4MDBweCkge1xuICAuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy10aHVtYnMgeyBwYWRkaW5nOiAxMHB4IDIwcHg7IH1cbiAgLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZSB7IG1hcmdpbjogMTBweCAwOyB9XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgeyBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCB7IG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbn1cblxuLyogaGlkZSB0aHVtYm5haWxzIG9uIHNtYWxsZXIgc2NyZWVuc1xuICAgdGhlIGpzIGFsd2F5cyBoaWRlcyB0aGVtIG9uIHRvdWNoIGJhc2VkIGRldmljZXNcbiovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLFxuICAgICAgIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIGFuZCAobWF4LWhlaWdodDogNTAwcHgpIHtcbiAgLmZyLXRodW1ibmFpbHMtaG9yaXpvbnRhbCAuZnItdGh1bWJuYWlscyB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzAwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSxcbiAgICAgICBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSBhbmQgKG1heC1oZWlnaHQ6IDQxNHB4KSB7XG4gIC5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cblxuLyogZm9yY2UgZnVsbENsaWNrOiB0cnVlXG4gICBhbmQgZm9yY2Ugb3ZlcmZsb3c6IGZhbHNlICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLFxuICAgICAgIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIGFuZCAobWF4LWhlaWdodDogNDE0cHgpIHtcbiAgLmZyLXBhZ2UgeyBtaW4td2lkdGg6IDEwMCU7IH0gLyogZnVsbGNsaWNrICovXG4gIC5mci1wYWdlIHsgbWluLWhlaWdodDogMTAwJTsgfSAvKiBvdmVyZmxvdzogZmFsc2UgKi9cbn1cblxuXG4vKiBzd2l0Y2ggYmV0d2VlbiB1aSBtb2Rlc1xuICAgd2UgZm9yY2UgZXZlcnl0aGluZyBub3QgaW4gdGhlIGN1cnJlbnQgVUkgbW9kZSB0byBoaWRlXG4qL1xuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLXNpZGUtbmV4dC1vdXRzaWRlLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLXNpZGUtcHJldmlvdXMtb3V0c2lkZSxcbi5mci13aW5kb3ctdWktZnVsbGNsaWNrIC5mci1jbG9zZS1vdXRzaWRlLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQgLmZyLXNpZGUtbmV4dCxcbi5mci13aW5kb3ctdWktZnVsbGNsaWNrIC5mci1jb250ZW50IC5mci1zaWRlLXByZXZpb3VzLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQgLmZyLWNsb3NlLFxuLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQgLmZyLWluZm8sXG5cbi5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItc2lkZS1uZXh0LWZ1bGxjbGljayxcbi5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItc2lkZS1wcmV2aW91cy1mdWxsY2xpY2ssXG4uZnItd2luZG93LXVpLW91dHNpZGUgLmZyLWNsb3NlLWZ1bGxjbGljayxcbi5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItY29udGVudCAuZnItc2lkZS1uZXh0LFxuLmZyLXdpbmRvdy11aS1vdXRzaWRlIC5mci1jb250ZW50IC5mci1zaWRlLXByZXZpb3VzLFxuLmZyLXdpbmRvdy11aS1vdXRzaWRlIC5mci1jb250ZW50IC5mci1jbG9zZSxcbi5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItY29udGVudCAuZnItaW5mbyxcblxuLmZyLXdpbmRvdy11aS1pbnNpZGUgLmZyLXBhZ2UgPiAuZnItaW5mbyxcbi5mci13aW5kb3ctdWktaW5zaWRlIC5mci1zaWRlLW5leHQtZnVsbGNsaWNrLFxuLmZyLXdpbmRvdy11aS1pbnNpZGUgLmZyLXNpZGUtcHJldmlvdXMtZnVsbGNsaWNrLFxuLmZyLXdpbmRvdy11aS1pbnNpZGUgLmZyLWNsb3NlLWZ1bGxjbGljayxcbi5mci13aW5kb3ctdWktaW5zaWRlIC5mci1zaWRlLW5leHQtb3V0c2lkZSxcbi5mci13aW5kb3ctdWktaW5zaWRlIC5mci1zaWRlLXByZXZpb3VzLW91dHNpZGUsXG4uZnItd2luZG93LXVpLWluc2lkZSAuZnItY2xvc2Utb3V0c2lkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuXG4vKiBzb21lIHVpIGVsZW1lbnRzIGNhbiBiZSB0b2dnbGVkIG9uIG1vdXNlbW92ZS5cbiAgIGZpbHRlcjphbHBoYShvcGFjaXR5KSBpcyBidWdnZWQgc28gd2UgdXNlIGRpc3BsYXkgaW4gb2xkSUVcbiovXG4uZnItdG9nZ2xlLXVpIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC4zcztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG59XG4uZnItdmlzaWJsZS1mdWxsY2xpY2stdWkgLmZyLWJveCA+IC5mci10b2dnbGUtdWksXG4uZnItdmlzaWJsZS1pbnNpZGUtdWkgLmZyLXVpLWluc2lkZSAuZnItdG9nZ2xlLXVpIHsgb3BhY2l0eTogMTsgfVxuXG4uZnItaGlkZGVuLWZ1bGxjbGljay11aSAuZnItYm94ID4gLmZyLXRvZ2dsZS11aSxcbi5mci1oaWRkZW4taW5zaWRlLXVpIC5mci11aS1pbnNpZGUgLmZyLXRvZ2dsZS11aSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xufVxuLmZyLWx0SUU5LmZyLWhpZGRlbi1mdWxsY2xpY2stdWkgLmZyLWJveCA+IC5mci10b2dnbGUtdWksXG4uZnItbHRJRTkuZnItaGlkZGVuLWluc2lkZS11aSAuZnItdWktaW5zaWRlIC5mci10b2dnbGUtdWkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIFNwaW5uZXIgKi9cbi5mci1zcGlubmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogNTJweDtcbiAgaGVpZ2h0OiA1MnB4O1xuICBiYWNrZ3JvdW5kOiAjMTAxMDEwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE2LDE2LDE2LC44NSk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbi5mci1zcGlubmVyIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDY0JTtcbiAgd2lkdGg6IDY0JTtcbiAgbWFyZ2luLWxlZnQ6IDE4JTtcbiAgbWFyZ2luLXRvcDogMTglO1xuICBvcGFjaXR5OiAxO1xuICAtd2Via2l0LWFuaW1hdGlvbjogZnJlc2NvLTEyIDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbjogICAgICAgICBmcmVzY28tMTIgMS4ycyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbn1cblxuLmZyLXNwaW5uZXIgZGl2OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAycHg7XG4gIGhlaWdodDogOHB4O1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKDAsMCwwLDApOyAvKiBmaXhlcyByZW5kZXJpbmcgaW4gRmlyZWZveCAqL1xufVxuXG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi0xIHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xLjFzOyBhbmltYXRpb24tZGVsYXk6IC0xLjFzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi0yIHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xLjBzOyBhbmltYXRpb24tZGVsYXk6IC0xLjBzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi0zIHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjlzOyBhbmltYXRpb24tZGVsYXk6IC0wLjlzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi00IHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDEyMGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTIwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjhzOyBhbmltYXRpb24tZGVsYXk6IC0wLjhzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi01IHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE1MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTUwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTUwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjdzOyBhbmltYXRpb24tZGVsYXk6IC0wLjdzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi02IHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjZzOyBhbmltYXRpb24tZGVsYXk6IC0wLjZzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi02IHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjZzOyBhbmltYXRpb24tZGVsYXk6IC0wLjZzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi03IHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDIxMGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjEwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMjEwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjVzOyBhbmltYXRpb24tZGVsYXk6IC0wLjVzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi04IHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDI0MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjQwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMjQwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjRzOyBhbmltYXRpb24tZGVsYXk6IC0wLjRzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi05IHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjNzOyBhbmltYXRpb24tZGVsYXk6IC0wLjNzOyB9XG4uZnItc3Bpbm5lciBkaXYuZnItc3Bpbi0xMCB7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzMDBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDMwMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDMwMGRlZyk7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4yczsgYW5pbWF0aW9uLWRlbGF5OiAtMC4yczsgfVxuLmZyLXNwaW5uZXIgZGl2LmZyLXNwaW4tMTEgeyAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMzBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzMzBkZWcpOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMXM7IGFuaW1hdGlvbi1kZWxheTogLTAuMXM7IH1cbi5mci1zcGlubmVyIGRpdi5mci1zcGluLTEyIHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDBzOyBhbmltYXRpb24tZGVsYXk6IDBzOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmcmVzY28tMTIge1xuICAwJSAgIHsgb3BhY2l0eTogMTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMDsgfVxufVxuQGtleWZyYW1lcyBmcmVzY28tMTIge1xuICAwJSAgIHsgb3BhY2l0eTogMTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMDsgfVxufVxuXG4vKiBUaHVtYm5haWwgc3Bpbm5lciAqL1xuLmZyLXRodW1ibmFpbC1zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuLmZyLXRodW1ibmFpbC1zcGlubmVyLXNwaW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDhweCAwIDAgOHB4O1xuICB0ZXh0LWluZGVudDogLTk5OTllbTtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNmZmY7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmci10aHVtYm5haWwtc3BpbiAxLjFzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBmci10aHVtYm5haWwtc3BpbiAxLjFzIGluZmluaXRlIGxpbmVhcjtcblxufVxuLmZyLXRodW1ibmFpbC1zcGlubmVyLXNwaW4sXG4uZnItdGh1bWJuYWlsLXNwaW5uZXItc3BpbjphZnRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBmci10aHVtYm5haWwtc3BpbiB7XG4gIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuQGtleWZyYW1lcyBmci10aHVtYm5haWwtc3BpbiB7XG4gIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG5cbi8qIEVycm9yICovXG4uZnItZXJyb3Ige1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2EzNDM0O1xuICB3aWR0aDogMTYwcHg7XG4gIGhlaWdodDogMTYwcHg7XG59XG5cbi5mci1lcnJvci1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTIxcHg7XG4gIG1hcmdpbi10b3A6IC0yMXB4O1xufVxuXG5cbi8qIHNraW46ICdmcmVzY28nICovXG5cbi8qIFNwcml0ZSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWNsb3NlLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1lcnJvci1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvZnJlc2NvLXNwcml0ZS5zdmcnKTtcbn1cbi8qIGZhbGxiYWNrIHBuZyBzcHJpdGUgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLWNsb3NlLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItZXJyb3ItaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ZyZXNjby1zcHJpdGUucG5nJyk7XG59XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWVycm9yLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTEyNnB4OyB9XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWNvbnRlbnQtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQ6ICMxMDEwMTA7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLDAsMCwuNCk7XG59XG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNvbnRlbnQtYmFja2dyb3VuZCB7IGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLyogdGh1bWJuYWlsIHNoYWRvdyAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItdGh1bWJuYWlsLXdyYXBwZXIgeyBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwgMCwgMCwgLjMpOyB9XG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWwtYWN0aXZlIC5mci10aHVtYm5haWwtd3JhcHBlciB7IGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAuMSk7IH1cblxuXG4vKiA8ID4gKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXNpZGUtYnV0dG9uLWJhY2tncm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItc2lkZS1wcmV2aW91cyAuZnItc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xM3B4IC0xNHB4OyB9XG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTNweCAtMTRweDsgfVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLXByZXZpb3VzOmhvdmVyIC5mci1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEzcHggLTExNHB4OyB9XG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLW5leHQ6aG92ZXIgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTNweCAtMTE0cHg7IH1cblxuLyogdHJhbnNpdGlvbiAocG5nKSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLWhvdmVyaW5nLXByZXZpb3VzIC5mci1zaWRlLXByZXZpb3VzIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcuZnItbW9iaWxlLXRvdWNoIC5mci1zaWRlLXByZXZpb3VzIC5mci1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEzcHggLTExNHB4OyB9XG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItaG92ZXJpbmctbmV4dCAuZnItc2lkZS1uZXh0IC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcuZnItbW9iaWxlLXRvdWNoIC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTNweCAtMTE0cHg7IH1cblxuLyogZGlzYWJsZWQgc3RhdGUgKHBuZykgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLXByZXZpb3VzLmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItaG92ZXJpbmctcHJldmlvdXMgLmZyLXNpZGUtcHJldmlvdXMuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLXByZXZpb3VzLmZyLXNpZGUtZGlzYWJsZWQ6aG92ZXIgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTNweCAtMjE0cHg7IH1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1ob3ZlcmluZy1uZXh0IC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZDpob3ZlciAuZnItc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05M3B4IC0yMTRweDsgfVxuXG4vKiB0cmFuc2l0aW9uIChzdmcpICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItc2lkZS1wcmV2aW91cyAuZnItc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xM3B4IC0xMTRweDsgfVxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXNpZGUtbmV4dCAuZnItc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05M3B4IC0xMTRweDsgfVxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXNpZGUtYnV0dG9uLWljb24geyBvcGFjaXR5OiAuNTsgfVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItc2lkZTpob3ZlciAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1ob3ZlcmluZy1wcmV2aW91cyAuZnItc2lkZS1wcmV2aW91cyAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1ob3ZlcmluZy1uZXh0IC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24geyBvcGFjaXR5OiAxOyB9XG5cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnLmZyLW1vYmlsZS10b3VjaCAuZnItc2lkZSAuZnItc2lkZS1idXR0b24taWNvbiB7IG9wYWNpdHk6IC44OyB9ICAvKiB0b3VjaCBhbHdheXMgYWN0aXZlIGJ1dCBhdCBsb3dlciBvcGFjaXR5ICovXG5cbi8qIGRpc2FibGVkIChzdmcpICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1ob3ZlcmluZy1wcmV2aW91cyAuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1ob3ZlcmluZy1uZXh0IC5mci1zaWRlLWRpc2FibGVkIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXNpZGUtZGlzYWJsZWQ6aG92ZXIgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2Zy5mci1tb2JpbGUtdG91Y2ggLmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24geyBvcGFjaXR5OiAuMjsgfSAvKiBUT0RPOiBtYWtlIHN1cmUgdGhpcyB3b3JrcyAqL1xuXG4vKiBoaWRlIGZvciB1aTppbnNpZGUvZnVsbGNsaWNrLCBvbmx5IGZvciB0aGUgaW1hZ2UgdHlwZSAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktaW5zaWRlIC5mci10eXBlLWltYWdlIC5mci1zaWRlLWRpc2FibGVkIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktZnVsbGNsaWNrLmZyLXNob3dpbmctdHlwZS1pbWFnZSAuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLyogPCA+IHJlc3BvbnNpdmUgKi9cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksXG4gICAgICAgYWxsIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgYW5kIChtYXgtaGVpZ2h0OiA0MTRweCkge1xuICAuZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLXByZXZpb3VzIC5mci1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zMDBweDsgfVxuICAuZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzAwcHg7IH1cblxuICAuZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLXByZXZpb3VzOmhvdmVyIC5mci1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zNjBweDsgfVxuICAuZnItd2luZG93LXNraW4tZnJlc2NvIC5mci1zaWRlLW5leHQ6aG92ZXIgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzYwcHg7IH1cblxuICAvKiB0cmFuc2l0aW9uIChwbmcpICovXG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1ob3ZlcmluZy1wcmV2aW91cyAuZnItc2lkZS1wcmV2aW91cyAuZnItc2lkZS1idXR0b24taWNvbixcbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcuZnItbW9iaWxlLXRvdWNoIC5mci1zaWRlLXByZXZpb3VzIC5mci1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zNjBweDsgfVxuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItaG92ZXJpbmctbmV4dCAuZnItc2lkZS1uZXh0IC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2Zy5mci1tb2JpbGUtdG91Y2ggLmZyLXNpZGUtbmV4dCAuZnItc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0zNjBweDsgfVxuXG4gIC8qIHRyYW5zaXRpb24gKHN2ZykgKi9cbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXNpZGUtcHJldmlvdXMgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM2MHB4OyB9XG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1zaWRlLW5leHQgLmZyLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzYwcHg7IH1cblxuICAvKiBkaXNhYmxlZCBzdGF0ZSAocG5nKSAqL1xuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItc2lkZS1wcmV2aW91cy5mci1zaWRlLWRpc2FibGVkIC5mci1zaWRlLWJ1dHRvbi1pY29uLFxuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItaG92ZXJpbmctcHJldmlvdXMgLmZyLXNpZGUtcHJldmlvdXMuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXNpZGUtcHJldmlvdXMuZnItc2lkZS1kaXNhYmxlZDpob3ZlciAuZnItc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDIwcHg7IH1cblxuICAuZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItc2lkZS1uZXh0LmZyLXNpZGUtZGlzYWJsZWQgLmZyLXNpZGUtYnV0dG9uLWljb24sXG4gIC5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci1ob3ZlcmluZy1uZXh0IC5mci1zaWRlLW5leHQuZnItc2lkZS1kaXNhYmxlZCAuZnItc2lkZS1idXR0b24taWNvbixcbiAgLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXNpZGUtbmV4dC5mci1zaWRlLWRpc2FibGVkOmhvdmVyIC5mci1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTQyMHB4OyB9XG59XG5cbi8qIFggKi9cbi8qIGNvbG9ycyAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktb3V0c2lkZSAuZnItY2xvc2UtYmFja2dyb3VuZCB7IGJhY2tncm91bmQtY29sb3I6ICMzNjM2MzY7IH1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItd2luZG93LXVpLW91dHNpZGUgLmZyLWNsb3NlOmhvdmVyIC5mci1jbG9zZS1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjogIzQzNDM0MzsgfVxuXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXdpbmRvdy11aS1pbnNpZGUgLmZyLWNsb3NlLWJhY2tncm91bmQsXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXdpbmRvdy11aS1mdWxsY2xpY2sgLmZyLWNsb3NlLWJhY2tncm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxMzEzOyBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApOyBvcGFjaXR5OiAuODsgfVxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci13aW5kb3ctdWktaW5zaWRlIC5mci1jbG9zZTpob3ZlciAuZnItY2xvc2UtYmFja2dyb3VuZCxcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItd2luZG93LXVpLWZ1bGxjbGljayAuZnItY2xvc2U6aG92ZXIgLmZyLWNsb3NlLWJhY2tncm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkxOTE5OyB9XG5cbi8qIC0gaW1hZ2UgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWNsb3NlIC5mci1jbG9zZS1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2OHB4IC04cHg7fVxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItY2xvc2U6aG92ZXIgLmZyLWNsb3NlLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjEwcHggLThweDsgfVxuXG4vKiAtIHRyYW5zaXRpb24gKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci1jbG9zZSAuZnItY2xvc2UtaWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMTBweCAtOHB4O1xuICBvcGFjaXR5OiAuODtcbn1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLWNsb3NlOmhvdmVyIC5mci1jbG9zZS1pY29uIHsgb3BhY2l0eTogMTsgfVxuLyogaU9TIDguNC4xIGJ1Zzogd2hlbiBvcGFjaXR5IGNoYW5nZXMgaXQnbGwgcmVxdWlyZSAyIHRhcHNcbiAgIGZvcmNlIGEgc2luZ2xlIG9wYWNpdHkgdG8gZml4IHRoaXNcbiovXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2Zy5mci1tb2JpbGUtdG91Y2ggLmZyLWNsb3NlIC5mci1jbG9zZS1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1tb2JpbGUtdG91Y2ggLmZyLWNsb3NlOmhvdmVyIC5mci1jbG9zZS1pY29uIHsgb3BhY2l0eTogMTsgfVxuXG4vKiBUaHVtYm5haWxzICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWwtd3JhcHBlciB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMDtcbn1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbC13cmFwcGVyIHsgYm94LXNoYWRvdzogMCAwIDNweCByZ2JhKDAsIDAsIDAsIC4zKTsgfVxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItdGh1bWJuYWlsLWFjdGl2ZSAuZnItdGh1bWJuYWlsLXdyYXBwZXIgeyBib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgLjEpOyB9XG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWwtd3JhcHBlciB7XG4gIGJveC1zaGFkb3c6IDAgLTFweCA0cHggcmdiYSgwLCAwLCAwLCAuMyk7XG59XG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWwtb3ZlcmxheS1ib3JkZXIge1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4wOCk7IC8qIHNob3VsZCByZW1haW4gcmdiYSAqL1xufVxuLyogbm8gaW5uZXIgYm9yZGVyIG9uIGFjdGl2ZSB0aHVtYm5haWwgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbC1hY3RpdmUgLmZyLXRodW1ibmFpbC1vdmVybGF5LWJvcmRlcixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28gLmZyLXRodW1ibmFpbC1hY3RpdmU6aG92ZXIgLmZyLXRodW1ibmFpbC1vdmVybGF5LWJvcmRlciB7IGJvcmRlcjogMHB4OyB9XG5cbi8qIFRodW1ibmFpbHMgPCA+ICovXG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjdweCAtNDlweDt9XG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXM6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDlweCAtNDlweDsgfVxuLmZyLXdpbmRvdy1za2luLWZyZXNjbyAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjdweCAtOTFweDt9XG4uZnItd2luZG93LXNraW4tZnJlc2NvIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dDpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOXB4IC05MXB4OyB9XG4vKiB2ZXJ0aWNhbCBeICh1cC9kb3duKSBhZGp1c3RtZW50cyAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yOTNweCAtNDlweDt9XG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91czpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMzNXB4IC00OXB4OyB9XG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0IC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjkzcHggLTkxcHg7fVxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dDpob3ZlciAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMzNXB4IC05MXB4OyB9XG5cbi8qIFRodW1ibmFpbHMgPCA+IHRyYW5zaXRpb24gKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci10aHVtYm5haWxzLXNpZGUgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1pbjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLWluO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLWluO1xuICBvcGFjaXR5OiAuODtcbn1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTY3cHggLTQ5cHg7IH1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0IC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOXB4IC05MXB4OyB9XG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlOmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24geyBvcGFjaXR5OiAxOyB9XG4vKiB2ZXJ0aWNhbCBeICh1cC9kb3duKSBhZGp1c3RtZW50cyAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2Zy5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjkzcHggLTQ5cHg7IH1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0IC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24sXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLXN2Zy5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMzVweCAtOTFweDsgfVxuXG4vKiBsb3dlciBvcGFjaXR5IG9uIGRpc2FibGVkIHN0YXRlcyAqL1xuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZSAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCxcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItc3ZnIC5mci10aHVtYm5haWxzLXNpZGU6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgeyBvcGFjaXR5OiAuNTsgfVxuXG4vKiBsb3dlciBvcGFjaXR5IElFIDwgOSB1c2luZyBpbWFnZXMgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXMgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbixcbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtcHJldmlvdXM6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNTFweCAtNDlweDtcbn1cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcgLmZyLXRodW1ibmFpbHMtc2lkZS1uZXh0OmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjUxcHggLTkxcHg7XG59XG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWJhY2tncm91bmQsXG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2ZyAuZnItdGh1bWJuYWlscy1zaWRlOmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWJhY2tncm91bmQge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xufVxuLyogdmVydGljYWwgXiAodXAvZG93bikgYWRqdXN0bWVudHMgKi9cbi5mci13aW5kb3ctc2tpbi1mcmVzY28uZnItbm8tc3ZnLmZyLXRodW1ibmFpbHMtdmVydGljYWwgLmZyLXRodW1ibmFpbHMtc2lkZS1wcmV2aW91cyAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLXByZXZpb3VzOmhvdmVyIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWRpc2FibGVkIC5mci10aHVtYm5haWxzLXNpZGUtYnV0dG9uLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzc3cHggLTQ5cHg7XG59XG4uZnItd2luZG93LXNraW4tZnJlc2NvLmZyLW5vLXN2Zy5mci10aHVtYm5haWxzLXZlcnRpY2FsIC5mci10aHVtYm5haWxzLXNpZGUtbmV4dCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1kaXNhYmxlZCAuZnItdGh1bWJuYWlscy1zaWRlLWJ1dHRvbi1pY29uLFxuLmZyLXdpbmRvdy1za2luLWZyZXNjby5mci1uby1zdmcuZnItdGh1bWJuYWlscy12ZXJ0aWNhbCAuZnItdGh1bWJuYWlscy1zaWRlLW5leHQ6aG92ZXIgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24tZGlzYWJsZWQgLmZyLXRodW1ibmFpbHMtc2lkZS1idXR0b24taWNvbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNzdweCAtOTFweDtcbn1cbiIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuXG4vLyBTbGljayBpY29uIGVudGl0eSBjb2RlcyBvdXRwdXRzIHRoZSBmb2xsb3dpbmdcbi8vIFwiXFwyMTkwXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpBcIlxuLy8gXCJcXDIxOTJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKGklwiXG4vLyBcIlxcMjAyMlwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oCiXCJcblxuJHNsaWNrLWZvbnQtcGF0aDogXCIuLi9mb250cy9cIiAhZGVmYXVsdDtcbiRzbGljay1mb250LWZhbWlseTogXCJzbGlja1wiICFkZWZhdWx0O1xuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi4uL1wiICFkZWZhdWx0O1xuJHNsaWNrLWFycm93LWNvbG9yOiBjKHJlZCkgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yOiBjKGJsdWUpICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvci1hY3RpdmU6ICRzbGljay1kb3QtY29sb3IgIWRlZmF1bHQ7XG4kc2xpY2stcHJldi1jaGFyYWN0ZXI6IFwiXFwyMTkwXCIgIWRlZmF1bHQ7XG4kc2xpY2stbmV4dC1jaGFyYWN0ZXI6IFwiXFwyMTkyXCIgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNoYXJhY3RlcjogXCJcXDIwMjJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3Qtc2l6ZTogOHB4ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktZGVmYXVsdDogMC43NSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW9uLWhvdmVyOiAxICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTogMC4yNSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIHNsaWNrLWltYWdlLXVybCgkdXJsKSB7XG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhpbWFnZS11cmwpIHtcbiAgICAgICAgQHJldHVybiBpbWFnZS11cmwoJHVybCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB1cmwoJHNsaWNrLWxvYWRlci1wYXRoICsgICdpbWFnZXMvJyArICR1cmwpO1xuICAgIH1cbn1cblxuQGZ1bmN0aW9uIHNsaWNrLWZvbnQtdXJsKCR1cmwpIHtcbiAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGZvbnQtdXJsKSB7XG4gICAgICAgIEByZXR1cm4gZm9udC11cmwoJHVybCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiB1cmwoJHNsaWNrLWZvbnQtcGF0aCArICR1cmwpO1xuICAgIH1cbn1cblxuLyogU2xpZGVyICovXG5cbi5zbGljay1saXN0IHtcbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiBzbGljay1pbWFnZS11cmwoXCJhamF4LWxvYWRlci5naWZcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgfVxufVxuXG4vKiBJY29ucyAqL1xuQGlmICRzbGljay1mb250LWZhbWlseSA9PSBcInNsaWNrXCIge1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICAgICAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90XCIpO1xuICAgICAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnN2ZyNzbGlja1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB9XG59XG5cbi8qIEFycm93cyAqL1xuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgZm9udC1zaXplOiAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDEyNiU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI2JSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjYlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI2JSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB6LWluZGV4OiB6KG5hdik7XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiAkc2xpY2stYXJyb3ctY29sb3I7XG4gICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCBsaW5rICk7XG4gICAgfVxufVxuXG4uc2xpY2stcHJldiB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0yNXB4O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiAyNXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGxlZnQ6IC0yNXB4O1xuICAgICAgICByaWdodDogYXV0bztcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkc2xpY2stbmV4dC1jaGFyYWN0ZXI7XG4gICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIERvdHMgKi9cblxuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtNTFweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxlZnQ6IC0zMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgc3BhY2VyKCBwLCBhbGwsIHMgKTtcbiAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1kb3QtY2hhcmFjdGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJHNsaWNrLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNsaWNrLWRvdC1zaXplO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNsaWNrLWRvdC1jb2xvcjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAgICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiggbGluayApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC5cbiAqIEdyb3VwXHQ6IExheW91dFxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Ly9cblx0Ly8gQWxsIGZpbGVzIGFyZSBpbXBvcnRlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuXG5cdC8vXG5cdFxuXHRAaW1wb3J0ICdfbC1odG1sJztcblx0QGltcG9ydCAnX2wtYm9keSc7XG5cdEBpbXBvcnQgJ19sLWdyaWQnOyIsIi8qKlxuICogVHlwZVx0OiBMYXlvdXRcbiAqIE5hbWVcdDogSFRNTFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSFRNTCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKlxuICogSFRNTCDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKlxuICovXG5cbmh0bWx7XG5cdFxuXHRoZWlnaHQ6IDEwMCU7XG5cbn0iLCIvKipcbiAqIFR5cGVcdDogTGF5b3V0XG4gKiBOYW1lXHQ6IEJvZHlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEJvZHkg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdCRiZy1jb2xvci0tZGVmYXVsdDogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXHQkYm9keS1jb2xvci0tZGVmYXVsdDogYyggZ3JheXNjYWxlLCAyMCApO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKlxuICogQm9keSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKlxuICovXG5cblx0LyoqXG5cdCAqIEZvciBvdXIgYm9keSB3ZSBvbmx5IG5lZWQgdG8gZGVmaW5lIGEgZmV3IHNpbXBsZSB0aGluZ3MgYWxsIHJldm9sdmluZ1xuXHQgKiBhcm91bmQgdHlwZWZhY2Ugc2V0dXAgZm9yIG91ciBwcm9qZWN0LlxuXHQgKi9cblxuXHRib2R5e1xuXHRcdFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvci0tZGVmYXVsdDtcblx0XHRjb2xvcjogJGJvZHktY29sb3ItLWRlZmF1bHQ7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGxpbmUtaGVpZ2h0OiBtYXBfZ2V0KCAkdHlwZV9jb25maWcsIGJhc2UtbGluZS1oZWlnaHQgKTtcblx0XHRcblx0XHRAaW5jbHVkZSBmb250KCBib2R5LCByZWd1bGFyICk7XG5cdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggMCApO1xuXHRcdFxuXHR9IiwiLyoqXG4gKiBUeXBlXHQ6IExheW91dFxuICogTmFtZVx0OiBHcmlkXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogT3VyIEdyaWQgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIEJvb3RzdHJhcCdzIGdyaWQhXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKipcbiAqIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4ubC1jb250YWluZXJ7XG5cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAmOm5vdChbY2xhc3MqPVwibC1jb250YWluZXItLW1heFwiXSl7XG5cbiAgICBtYXgtd2lkdGg6MTAwJTtcblxuICB9XG5cbn1cblxuLmwtY29udGFpbmVyLS1tYXgtLWx7XG5cbiAgbWF4LXdpZHRoOiBtYXBfZ2V0KCAkZ3JpZF9jb25maWcsIHdpZHRoLS1sICk7XG5cbn1cblxuLmwtY29udGFpbmVyLS1tYXgtLXN7XG4gIFxuICAgIG1heC13aWR0aDogbWFwX2dldCggJGdyaWRfY29uZmlnLCB3aWR0aC0tcyApO1xuXG59XG5cblxuLmwtY29udGFpbmVyLS13aWR0aHtcblxuICB3aWR0aDogbWFwX2dldCggJGdyaWRfY29uZmlnLCBjb250YWluZXItd2lkdGgtbW9iaWxlICk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCggcyApe1xuXG4gIFx0d2lkdGg6IG1hcF9nZXQoICRncmlkX2NvbmZpZywgY29udGFpbmVyLXdpZHRoLWRlc2t0b3AgKTtcblxuICB9XG5cbn1cblxuLmwtY29udGFpbmVyLWZsdWlkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn0iLCIvKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBBdG9tc1xuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Ly9cblx0Ly8gQWxsIGZpbGVzIGFyZSBpbXBvcnRlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuXG5cdC8vXG5cdFxuXHRAaW1wb3J0ICAnX2EtYmxvY2txdW90ZSc7XG5cdEBpbXBvcnQgICdfYS1idG4nO1xuXHRAaW1wb3J0ICAnX2EtZHJvcGRvd24nO1xuXHRAaW1wb3J0ICAnX2EtZm9ybS1jb250cm9sJztcblx0QGltcG9ydCAgJ19hLWljb24nO1xuXHRAaW1wb3J0ICAnX2EtaW1nJztcblx0QGltcG9ydCAgJ19hLWxhYmVsJztcblx0QGltcG9ydCAgJ19hLWxpbmsnO1xuXHRAaW1wb3J0ICAnX2EtbG9nbyc7XG5cdEBpbXBvcnQgICdfYS1wcm9ncmVzcyc7XG5cdEBpbXBvcnQgICdfYS10eXBlLS1ib2R5Jztcblx0QGltcG9ydCAgJ19hLXR5cGUtLWhlYWRpbmcnOyIsIi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IEJsb2NrcXVvdGVcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuIC8qKlxuICAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgKiBCbG9ja3F1b3RlIOKAoiBTZXR0aW5nc1xuICAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgKi9cblxuICBcdC8vIEJhc2VcbiAgXHQkYmxvY2txdW90ZV9fYmctY29sb3ItLWhvdmVyXHRcdDogYyggZ3JheXNjYWxlLCA5OCApO1xuXG4gIFx0Ly8gVHdpdHRlciBibHVlISBOZXZlciBkZWZpbmUgY29sb3JzIGxpa2UgdGhpcyBhbnl3aGVyZSBlbHNlISBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIVxuICBcdC8vIFNob3VsZCBiZSBtb3ZlZCB0byBjb25maWcgaW4gdGhlIG5lYXIgZnV0dXJlIVxuICBcdCRibG9ja3F1b3RlX19ib3JkZXItLWNvbG9yLS1ob3Zlclx0OiAjMTk5N0YwOyAgXHRcblxuICBcdC8vIFR3aXR0ZXIgaWNvblxuICBcdCRibG9ja3F1b3RlX19pY29uLS1jb2xvclx0XHQ6ICRibG9ja3F1b3RlX19ib3JkZXItLWNvbG9yLS1ob3ZlcjtcbiAgXHQkYmxvY2txdW90ZV9faWNvblx0XHRcdFx0OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIGlkPSdMYXllcl8xJyBkYXRhLW5hbWU9J0xheWVyIDEnIGZpbGw9JyN7JGJsb2NrcXVvdGVfX2ljb24tLWNvbG9yfScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjIgMjInJTNFJTNDcGF0aCBkPSdNMTEsMUExMCwxMCwwLDEsMCwyMSwxMSwxMCwxMCwwLDAsMCwxMSwxWm01LjA1LDhhNi44LDYuOCwwLDAsMS0xMC40Nyw2LDQuNzksNC43OSwwLDAsMCwzLjU0LTEsMi4zOSwyLjM5LDAsMCwxLTIuMjMtMS42NiwyLjQ1LDIuNDUsMCwwLDAsMS4wOCwwQTIuMzksMi4zOSwwLDAsMSw2LjA1LDEwYTIuMzMsMi4zMywwLDAsMCwxLjA4LjMsMi40MSwyLjQxLDAsMCwxLS43NC0zLjIsNi44MSw2LjgxLDAsMCwwLDQuOTQsMi41MSwyLjQsMi40LDAsMCwxLDQuMDgtMi4xOSw0LjUyLDQuNTIsMCwwLDAsMS41Mi0uNTgsMi40MiwyLjQyLDAsMCwxLTEuMDYsMS4zMyw0Ljg2LDQuODYsMCwwLDAsMS4zOC0uMzhBNC44OCw0Ljg4LDAsMCwxLDE2LjA1LDlaJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICBcdCRibG9ja3F1b3RlX19pY29uLS1zaXplXHRcdFx0OiAyNXB4O1xuICBcdCRibG9ja3F1b3RlX19pY29uLS10b3Atb2Zmc2V0XHQ6IDk4JTtcbiAgXHQkYmxvY2txdW90ZV9faWNvbi0tbGVmdC1vZmZzZXRcdDogOTMlO1xuXG5cbiAgXHQvLyBUZXh0XG4gIFx0JGJsb2NrcXVvdGVfX3R3ZWV0LXRleHRcdFx0XHRcdDogXCJUd2VldCBUaGlzXCI7XG4gIFx0JGJsb2NrcXVvdGVfX3R3ZWV0LXRleHQtLWNvbG9yXHRcdDogYyggZ3JheXNjYWxlLCA1MCApO1xuICBcdCRibG9ja3F1b3RlX190d2VldC0tcmlnaHQtb2Zmc2V0XHQ6IDQ2cHg7XHRcbiAgXHQkYmxvY2txdW90ZV9fdHdlZXQtLWJvdHRvbS1vZmZzZXRcdDogOXB4O1xuXG4gLyoqXG4gICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqIEJsb2NrcXVvdGUg4oCiIENsYXNzIERlZmluaXRpb25zXG4gICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqL1xuXG5cdGJsb2NrcXVvdGV7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cblx0XHRAaW5jbHVkZSBib3JkZXIoIGJsb2NrcXVvdGUsIGJvdHRvbSwgdHJhbnNwYXJlbnQgKTtcblxuXHRcdC8vIFdlIGFyZSBpbmhlcml0aW5nIGFueXRoaW5nIGZvbnQtcmVsYXRlZCBzdHlsZXMgZGVjbGFyZWQgaW4gdGhlIGJvZHlcblx0XHQvLyBleGNlcHQgZm9yIHRoZSBzaXplLiBXZSBhcmUgc2V0dGluZyB0aGF0IGluZGVwZW5kZW50bHkgYmVsb3cuXG5cdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggMyApO1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCB5LCBtICk7XG5cblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHQsIGwgKTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHgsIGwgKTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIGIsIGxtICk7XG5cblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBsaW5rICk7XG5cdFx0XG5cdFx0Ly8gU2V0IHVwIG91ciBwc2V1ZG8gZWxlbWVudFxuXHRcdEBleHRlbmQgJWJlZm9yZS0tY292ZXI7XG5cblx0fVxuXG5cdC8vIFRoZSBiZWZvcmUgZWxlbWVudCB3aWxsIGJlIHVzZWQgdG8gaG91c2UgdGhlIHR3ZWV0IGljb25cblx0YmxvY2txdW90ZTpiZWZvcmV7XG5cblx0XHRiYWNrZ3JvdW5kLWltYWdlOiAkYmxvY2txdW90ZV9faWNvbjtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkYmxvY2txdW90ZV9faWNvbi0tdG9wLW9mZnNldCAkYmxvY2txdW90ZV9faWNvbi0tbGVmdC1vZmZzZXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAkYmxvY2txdW90ZV9faWNvbi0tc2l6ZSAkYmxvY2txdW90ZV9faWNvbi0tc2l6ZTtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG5cdH1cblxuXHQvLyBUaGUgYWZ0ZXIgZWxlbWVudCB3aWxsIGNvbnRhaW4gdGhlIHR3ZWV0IHRleHRcblx0YmxvY2txdW90ZTphZnRlcntcblxuXHRcdGNvbG9yOiAkYmxvY2txdW90ZV9fdHdlZXQtdGV4dC0tY29sb3I7XG5cdFx0cmlnaHQ6ICRibG9ja3F1b3RlX190d2VldC0tcmlnaHQtb2Zmc2V0O1xuXHRcdGNvbnRlbnQ6ICRibG9ja3F1b3RlX190d2VldC10ZXh0O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3R0b206ICRibG9ja3F1b3RlX190d2VldC0tYm90dG9tLW9mZnNldDtcblx0XHRAaW5jbHVkZSBmb250LXNjYWxlKCAwICk7XG5cblx0fVxuXG5cblx0Ly8gV2hlbiBob3ZlcmVkIG9uIGxhcmdpc2ggZGV2aWNlc1xuXHRibG9ja3F1b3RlOmhvdmVye1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzKXtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsb2NrcXVvdGVfX2JnLWNvbG9yLS1ob3Zlcjtcblx0XHRcdGJvcmRlci1jb2xvcjogJGJsb2NrcXVvdGVfX2JvcmRlci0tY29sb3ItLWhvdmVyO1xuXHRcdFxuXHRcdH1cblx0fSIsIi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IEJ1dHRvblxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQnV0dG9uIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0XG5cdC8qKlxuXHQgKiBWYXJpYW50OiBwcmltYXJ5XG5cdCAqL1xuXG5cdCRidG4tLXByaW1hcnlfX2JnXHRcdFx0XHQ6IHJnYmEoIGMoIGdyYXlzY2FsZSwgd2hpdGUgKSwgMCApO1xuXHQkYnRuLS1wcmltYXJ5X19iZy0taG92ZXJcdFx0OiByZ2JhKCBjKCBncmF5c2NhbGUsIHdoaXRlICksIC4xICk7XG5cdCRidG4tLXByaW1hcnlfX2JnLS1hY3RpdmVcdFx0OiByZ2JhKCBjKCBncmF5c2NhbGUsIHdoaXRlICksIC4yICk7XG5cdCRidG4tLXByaW1hcnlfX2NvbG9yXHRcdFx0OiBjKCBncmF5c2NhbGUsIHdoaXRlICk7XG5cdCRidG4tLXByaW1hcnlfX2xldHRlci1zcGFjaW5nXHQ6IDVweDtcblx0JGJ0bi0tcHJpbWFyeV9fYXJyb3cteC1vZmZzZXRcdDogMjBweDtcblxuXHQvKipcblx0ICogVGhpcyBpcyBvbmUgb2YgdGhlIG9ubHkgdGltZXMgcGFkZGluZyBzaG91bGQgYmVcblx0ICogZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBzcGFjaW5nIGNvbmZpZyBmaWxlLiBXZSBoYXZlIGN1c3RvbSBwYWRkaW5nc1xuXHQgKiBoZXJlIHRvIHByb3Blcmx5IGFkanVzdCBwYWRkaW5nIGZvciBsaW5lIGhlaWdodCBhbmQgdG8gbWFrZVxuXHQgKiBzdXJlIG91ciBidXR0b25zIGxvb2sgcGVyZmVjdCFcblx0ICovXG5cblx0JGJ0bi0tcHJpbWFyeV9fcGFkZGluZzogMThweCAzMnB4IDE2cHggNzJweDtcblx0XG5cblx0LyoqXG5cdCAqIFZhcmlhbnQ6IHNlY29uZGFyeVxuXHQgKi9cblx0XG5cdCRidG4tLXNlY29uZGFyeV9fYmdcdFx0XHRcdFx0OiBjKCByZWQgKTtcblx0JGJ0bi0tc2Vjb25kYXJ5X19iZy0taG92ZXJcdFx0XHQ6IGMoIHJlZCwgZGFyazUgKTtcblx0JGJ0bi0tc2Vjb25kYXJ5X19iZy0tYWN0aXZlXHRcdFx0OiBjKCByZWQsIGRhcmsxMCApO1xuXHQkYnRuLS1zZWNvbmRhcnlfX2NvbG9yXHRcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgd2hpdGUgKTtcblx0JGJ0bi0tc2Vjb25kYXJ5X19sZXR0ZXItc3BhY2luZ1x0XHQ6IDJweDtcblxuXHQvKipcblx0ICogVGhpcyBpcyBvbmUgb2YgdGhlIG9ubHkgdGltZXMgcGFkZGluZyBzaG91bGQgYmVcblx0ICogZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBzcGFjaW5nIGNvbmZpZyBmaWxlLiBXZSBoYXZlIGN1c3RvbSBwYWRkaW5nc1xuXHQgKiBoZXJlIHRvIHByb3Blcmx5IGFkanVzdCBwYWRkaW5nIGZvciBsaW5lIGhlaWdodCBhbmQgdG8gbWFrZVxuXHQgKiBzdXJlIG91ciBidXR0b25zIGxvb2sgcGVyZmVjdCFcblx0ICovXG5cdCRidG4tLXNlY29uZGFyeV9fcGFkZGluZzogMTBweCAxOHB4IDdweCAxOHB4O1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBCdXR0b24g4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0LyoqXG5cdCAqIEFsbCBCdXR0b25zXG5cdCAqL1xuXHQuYS1idG57XG5cdFx0XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblx0XHRAZXh0ZW5kICV0eXBlLS1zbW9vdGg7XG5cdFx0QGluY2x1ZGUgZm9udCggJ2hlYWRpbmctaGVhdnknLCByZWd1bGFyICk7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggYnRuICk7XG5cblx0fVxuXG5cdC8qKlxuXHQgKiBWYXJpYW50XHQ6IHByaW1hcnlcblx0ICovXG5cdC5hLWJ0bi0tcHJpbWFyeXtcblx0XHRcblx0XHRjb2xvcjogJGJ0bi0tcHJpbWFyeV9fY29sb3I7XG5cdFx0bGV0dGVyLXNwYWNpbmc6ICRidG4tLXByaW1hcnlfX2xldHRlci1zcGFjaW5nO1xuXHRcdHBhZGRpbmc6ICRidG4tLXByaW1hcnlfX3BhZGRpbmc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0QGluY2x1ZGUgYWN0aW9uLWFycm93KCAkYnRuLS1wcmltYXJ5X19hcnJvdy14LW9mZnNldCApO1xuXHRcdEBpbmNsdWRlIGJvcmRlciggYnRuLS1wcmltYXJ5ICk7XG5cdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggMCApO1xuXG5cdFx0Jjpob3Zlcntcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRidG4tLXByaW1hcnlfX2JnLS1ob3Zlcjtcblx0XHR9XG5cblx0XHQmOmFjdGl2ZXtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRidG4tLXByaW1hcnlfX2JnLS1hY3RpdmU7XG5cdFx0fVxuXG5cdH1cblxuXHQvKipcblx0ICogVmFyaWFudFx0OiBzZWNvbmRhcnlcblx0ICovXG5cdC5hLWJ0bi0tc2Vjb25kYXJ5e1xuXHRcdFxuXHRcdGJhY2tncm91bmQ6ICRidG4tLXNlY29uZGFyeV9fYmc7XG5cdFx0Y29sb3I6ICRidG4tLXNlY29uZGFyeV9fY29sb3I7XG5cdFx0bGV0dGVyLXNwYWNpbmc6ICRidG4tLXNlY29uZGFyeV9fbGV0dGVyLXNwYWNpbmc7XG5cdFx0cGFkZGluZzogJGJ0bi0tc2Vjb25kYXJ5X19wYWRkaW5nO1xuXHRcdC8vR2l2ZSB0aGVtIHJpZ2h0IG1hcmdpblxuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgciwgbSApO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIC0xICk7XG5cblx0XHQmOmhvdmVye1xuXHRcdFx0XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYnRuLS1zZWNvbmRhcnlfX2JnLS1ob3ZlcjtcblxuXHRcdH1cblx0XHRcblx0XHQmOmFjdGl2ZXtcblx0XHRcdFxuXHRcdFx0YmFja2dyb3VuZDogJGJ0bi0tc2Vjb25kYXJ5X19iZy0tYWN0aXZlO1xuXHRcdFx0XHRcblx0XHR9XG5cblx0fVxuXG5AZWFjaCAkY2F0ZWdvcnksXG4kY2F0ZWdvcnktY29sb3IgaW4gJGlzc3VlLWNhdC1jb2xvcl9jb25maWcge1xuXG4gICAgQGluY2x1ZGUgYnRuLS1zZWNvbmRhcnktLXRoZW1lKCRjYXRlZ29yeSwgJGNhdGVnb3J5LWNvbG9yKTtcblxufSIsIi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IERyb3Bkb3duXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRHJvcGRvd24g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXG5cdFxuXHQkZHJvcGRvd24tYXJyb3ctLWxpZ2h0LS1jb2xvcjogYyhibHVlKTtcblx0JGRyb3Bkb3duLWFycm93LS1kYXJrLS1jb2xvcjogYyhnbG93LXR1cnEpO1xuXHRcblxuXHQvKipcblx0ICogV2UgYXJlIGRpcmVjdGx5IGVtYmVkZGluZyBvdXIgY2FyZXQgU1ZHIGhlcmUgc28gd2UgZG9uJ3QgaGF2ZSB0byBtYWtlIGEgXG5cdCAqIEhUVFAgY2FsbCB0byBnZXQgdGhlIGljb24uIE5vdGUgdGhhdCB3ZSBhcmUgZW5jb2RpbmcgaXQsIGJ1dCBOT1QgYmFzZSA2NFxuXHQgKiBlbmNvZGluZyBpdC4gQmFzZSA2NCBwZXJmb3JtcyBwb29ybHkgaW4gdGhpcyBzY2VuYXJpby5cblx0ICpcblx0ICogVGhlIGNvbG9yIGlzIGludGVycG9sYXRlZCBpbnRvIHRoZSBlbWJlZCBmcm9tIHRoZSB2YXJpYWJsZXMgZGVjbGFyZWQgYWJvdmUuXG5cdCAqXG5cdCAqIEBub3RlIFRvb2wgdXNlZCB0byBlbmNvZGU6IGh0dHBzOi8veW9rc2VsLmdpdGh1Yi5pby91cmwtZW5jb2Rlci9cblx0ICovXG5cblx0ICRkcm9wZG93bl9faWNvbi0tbGlnaHQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgaWQ9J0xheWVyXzEnIGRhdGEtbmFtZT0nTGF5ZXIgMScgZmlsbD0nJTIzeyRkcm9wZG93bi1hcnJvdy0tbGlnaHQtLWNvbG9yfScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjIgMjInJTNFJTNDdGl0bGUlM0VhcnJvdy1zJTNDL3RpdGxlJTNFJTNDcG9seWdvbiBwb2ludHM9JzIuODMgNC43OCAxLjA0IDYuNDQgMTEuMDQgMTcuMiAyMS4wNCA2LjQ0IDE5LjI1IDQuNzggMTEuMDQgMTMuNjEgMi44MyA0Ljc4Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXG5cdCAkZHJvcGRvd25fX2ljb24tLWRhcms6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgaWQ9J0xheWVyXzEnIGRhdGEtbmFtZT0nTGF5ZXIgMScgZmlsbD0nJTIzeyRkcm9wZG93bi1hcnJvdy0tZGFyay0tY29sb3J9JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMiAyMiclM0UlM0N0aXRsZSUzRWFycm93LXMlM0MvdGl0bGUlM0UlM0Nwb2x5Z29uIHBvaW50cz0nMi44MyA0Ljc4IDEuMDQgNi40NCAxMS4wNCAxNy4yIDIxLjA0IDYuNDQgMTkuMjUgNC43OCAxMS4wNCAxMy42MSAyLjgzIDQuNzgnLyUzRSUzQy9zdmclM0VcIik7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBEcm9wZG93biDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFx0XG5cdFx0XG5cdC8qKlxuXHQgKiBEcm9wZG93biDigKIgQmFzZVxuXHQgKi9cblx0LmEtZHJvcGRvd257XG5cdFx0XG5cdFx0Ym9yZGVyLXJhZGl1czogcmFkaXVzKCBkZWZhdWx0ICk7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XG5cdFx0LyoqXG5cdFx0ICogV2UgZG9uJ3QgdHlwaWNhbGx5IGRlZmluZSBmb250IG91dHNpZGUgb2YgdGhlIHR5cGUtc3BlY2lmaWMgc2NzcyBmaWxlcyxcblx0XHQgKiBidXQgaW4gdGhpcyBjYXNlIDxzZWxlY3Q+IGlzbid0IHBpY2tpbmcgdXAgb3VyIGRlZmF1bHQgZm9udCBzdHlsZXMsIHNvXG5cdFx0ICogd2Ugd2lsbCBkZWZpbmUgdGhlbSBoZXJlLlxuXHRcdCAqL1xuXHRcdEBpbmNsdWRlIGZvbnQoIGJvZHksIHJlZ3VsYXIgKTtcblx0XHRAaW5jbHVkZSBmb250LXNjYWxlKCAwICk7XG5cblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIGwsIGwgKTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIHMgKTtcblxuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGZvcm0gKTtcblxuXHRcdCY6Zm9jdXN7XG5cdFx0XHRcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHR9XG5cdH1cblx0XG5cdC5hLWRyb3Bkb3duOm5vdCggLmEtZHJvcGRvd24tLWZhbmN5ICl7XG5cdFx0XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCByLCBsICk7XG5cblx0fVxuXG5cdFxuXHQvKipcblx0ICogRHJvcGRvd24gVmFyaWF0aW9uIOKAoiBGYW5jeVxuXHQgKi9cblxuXHQuYS1kcm9wZG93bi0tZmFuY3l7XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5MCUgY2VudGVyO1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCByLCAyeGwgKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEcm9wZG93biBUaGVtZSDigKIgTGlnaHRcblx0ICovXG5cdC5tLWZvcm0ubS1mb3JtLS1maWVsZHMtLWxpZ2h0IC5hLWRyb3Bkb3due1xuXHRcdFxuXHRcdGJhY2tncm91bmQtY29sb3I6IGMoIGdyYXlzY2FsZSwgd2hpdGUgKTtcblx0XHRcblx0XHQvKipcblx0XHQgKiBXZSBuZWVkIHRvIHNwZWNpZnkgb3VyIGRyb3Bkb3duIGljb24gZm9yIGNhdGVnb3JpZXNcblx0XHQgKiBzcGVjaWZpY2FsbHkgZm9yIHRoZSBcImxpZ2h0XCIgdGhlbWUuXG5cdFx0ICovXG5cdFx0Ji5hLWRyb3Bkb3duLS1mYW5jeXtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6ICN7JGRyb3Bkb3duX19pY29uLS1saWdodH07XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcntcblx0XHRcdFxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogYyggZ3JheXNjYWxlLCA5MCApO1xuXHRcdH1cblxuXHR9XG5cblx0LyoqXG5cdCAqIERyb3Bkb3duIFRoZW1lIOKAoiBEYXJrXG5cdCAqL1xuXHQubS1mb3JtLm0tZm9ybS0tZmllbGRzLS1kYXJrIC5hLWRyb3Bkb3due1xuXHRcdFxuXHRcdGJhY2tncm91bmQtY29sb3I6IGMoIGdsb3ctbmF2eSwgbGlnaHQxMCApO1xuXHRcdGNvbG9yOiBjKCBncmF5c2NhbGUsIHdoaXRlICk7XG5cdFx0XG5cdFx0LyoqXG5cdFx0ICogV2UgbmVlZCB0byBzcGVjaWZ5IG91ciBkcm9wZG93biBpY29uIGZvciBjYXRlZ29yaWVzXG5cdFx0ICogc3BlY2lmaWNhbGx5IGZvciB0aGUgXCJkYXJrXCIgdGhlbWUuXG5cdFx0ICovXG5cdFx0Ji5hLWRyb3Bkb3duLS1mYW5jeXtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6ICN7JGRyb3Bkb3duX19pY29uLS1kYXJrfTtcblx0XHR9XG5cblx0XHQmOmhvdmVye1xuXHRcdFx0XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBjKCBnbG93LW5hdnksIGxpZ2h0NSApO1xuXHRcdH1cblxuXHR9XG5cbiIsIi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IEZvcm0gQ29udHJvbFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZvcm0gQ29udHJvbCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdFxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRm9ybSBDb250cm9sIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdFxuXHQvKipcblx0ICogRm9ybSBjb250cm9sIHNob3VsZCBiZSBhZGRlZCB0byBhbGwgZm9ybSBpbnB1dCBmaWVsZHMgdG9cblx0ICogY29udHJvbCB0aGVpciBzdHlsaW5nIGZyb20gb25lIGNlbnRyYWwgbG9jYXRpb24uXG5cdCAqL1xuXG5cdC5hLWZvcm0tY29udHJvbHtcdFxuXG5cdFx0Ym9yZGVyOm5vbmU7XG5cdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggZm9ybSApO1xuXG5cdFx0Jjpmb2N1c3tcblx0XHRcdFxuXHRcdFx0b3V0bGluZTogbm9uZTtcblxuXHRcdH1cblxuXHR9XG5cblxuXHQuYS1mb3JtLWNvbnRyb2w6bm90KC5hLWZvcm0tY29udHJvbC0tbGFyZ2Upe1xuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeCwgbSApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgcyApO1xuXG5cdH1cblxuXHQuYS1mb3JtLWNvbnRyb2wtLWxhcmdle1xuXHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIGFsbCwgbSApO1xuXG5cdH1cblxuXG5cdHRleHRhcmVhLmEtZm9ybS1jb250cm9se1xuXHRcdFxuXHRcdGhlaWdodDogMTAwJTtcblx0XHRtaW4taGVpZ2h0OiAxNTBweDtcblxuXHR9IiwiLyoqXG4gKiBUeXBlXHQ6IEF0b21cbiAqIE5hbWVcdDogSWNvblxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEljb24g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQvLyBJY29uIEZpbGxcblx0JGljb25fX2ZpbGwtLWRlZmF1bHRcdDogYyggZ3JheXNjYWxlLCBibGFjayApO1xuXHQkaWNvbl9fZmlsbC0taW52ZXJ0XHRcdDogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXG5cdC8vIEljb24gU2l6aW5nXG5cdCRpY29uX19zaXplLS1sYXJnZVx0XHRcdDogNjRweDtcblx0JGljb25fX3NpemUtLW1lZGl1bVx0XHRcdDogMzJweDtcblx0JGljb25fX3NpemUtLXNtYWxsXHRcdFx0OiAyMHB4O1xuXHQkaWNvbl9fc2l6ZS0teC1zbWFsbFx0XHQ6IDEzcHg7XG5cdFxuXHQvLyBIZWFkZXIgTG9nb1xuXHQkaWNvbl9faGVpZ2h0LS1oZWFkZXItbG9nb1x0OiA4NHB4O1xuXHQkaWNvbl9fd2lkdGgtLWhlYWRlci1sb2dvXHQ6IDI5M3B4O1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSWNvbiDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdFxuXHQvLyBTdGFuZGFyZCBJY29uc1xuXHQuYS1pY29ue1xuXHRcdFxuXHRcdGZpbGw6ICRpY29uX19maWxsLS1kZWZhdWx0O1xuXHRcdHNoYXBlLXJlbmRlcmluZzogZ2VvbWV0cmljUHJlY2lzaW9uO1xuXG5cdH1cblx0XG5cdC8vIEludmVydGVkIEljb25zXG5cdC5hLWljb24tLWludmVydGVke1xuXHRcdFxuXHRcdGZpbGw6ICRpY29uX19maWxsLS1pbnZlcnQ7XG5cdFx0c2hhcGUtcmVuZGVyaW5nOiBnZW9tZXRyaWNQcmVjaXNpb247XG5cblx0fVxuXHRcblx0LmEtaWNvbi0tbHtcblx0XHRcblx0XHRoZWlnaHQ6ICRpY29uX19zaXplLS1sYXJnZTtcblx0XHR3aWR0aDogJGljb25fX3NpemUtLWxhcmdlO1xuXG5cdH1cblxuXHQuYS1pY29uLS1te1xuXHRcdFxuXHRcdGhlaWdodDogJGljb25fX3NpemUtLW1lZGl1bTtcblx0XHR3aWR0aDogJGljb25fX3NpemUtLW1lZGl1bTtcblxuXHR9XG5cblx0LmEtaWNvbi0tc3tcblx0XHRcblx0XHRoZWlnaHQ6ICRpY29uX19zaXplLS1zbWFsbDtcblx0XHR3aWR0aDogJGljb25fX3NpemUtLXNtYWxsO1xuXHRcdFxuXHR9XG5cblx0LmEtaWNvbi0teHN7XG5cdFx0XG5cdFx0aGVpZ2h0OiAkaWNvbl9fc2l6ZS0teC1zbWFsbDtcblx0XHR3aWR0aDogJGljb25fX3NpemUtLXgtc21hbGw7XG5cdFx0XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBTcGVjaWZpY2FsbHkgdXNlZCBmb3IgdGhlIFVEIE1hZyBMb2dvIGluIHRoZSBoZWFkZXIuIFNob3VsZCBub3QgYmUgdXNlZCBhbnl3aGVyZSBlbHNlLlxuXHQgKi9cblxuXHQuYS1pY29uLS1oZWFkZXItbG9nb3tcblxuXHRcdGhlaWdodDogJGljb25fX2hlaWdodC0taGVhZGVyLWxvZ287XG5cdFx0d2lkdGg6ICRpY29uX193aWR0aC0taGVhZGVyLWxvZ287XG5cdFx0XG5cdH0iLCIvKipcbiAqIFR5cGVcdDogQXRvbVxuICogTmFtZVx0OiBJbWFnZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSW1hZ2Ug4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0Ly8gQ2VydGFpbiBpbWFnZXMgaGF2ZSBhIG5pY2Ugc2hhZG93IGVmZmVjdCBhcm91bmQgdGhlbSxcblx0Ly8gZ2l2aW5nIHRoZW0gc29tZSBkZXB0aC5cblx0LmEtaW1nLS1oYXMtc2hhZG93e1xuXG5cdFx0QGluY2x1ZGUgc2hhZG93KCBtZWRpYS0tc3VidGxlICk7XG5cdFx0XG5cdH0iLCIvKipcbiAqIFR5cGVcdDogQXRvbVxuICogTmFtZVx0OiBMYWJlbFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExhYmVsIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdCIsIi8qKlxuICogVHlwZVx0OiBBdG9tXG4gKiBOYW1lXHQ6IExpbmtcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBMaW5rIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQkbGlua19fY29sb3I6IHJlZDtcblx0JGxpbmtfX2NvbG9yLS1ob3ZlcjogYyggJGxpbmtfX2NvbG9yLCBkYXJrNSApO1xuXHQkbGlua19fYm9yZGVyLWNvbG9yOiAkbGlua19fY29sb3ItLWhvdmVyO1xuXG5cblxuLyoqXG4qICoqKioqKioqKioqKioqKioqKioqKioqKipcbiogTGluayDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiogKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cblx0XG5cdC8qKlxuXHQgKiBTdGFuZGFyZCB0ZXh0IGh5cGVybGlua3Ncblx0ICpcblx0ICogV2Ugd2lsbCBuZWVkIHRvIGFkZCBhIGNsYXNzIHRvIHVzZSB0aGVzZSB0aHJvdWdob3V0IHRoZSBzaXRlLCBidXQgb24gcG9zdCBwYWdlc1xuXHQgKiAoTWFnIEFydGljbGUsIE15IE9sZCBIb3VzZSwgZXRjKSwgY2xhc3NsZXNzIGh5cGVybGlua3Mgd2lsbCBwaWNrIHVwIHRoaXMgXG5cdCAqIHN0eWxpbmcgYXV0b21hZ2ljYWxseSBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBhIGJ1dHRvbiFcblx0ICovXG5cdFxuXHQuYS1saW5rLFxuXHQuby1wb3N0X19jb250YWluZXIgYTpub3QoLmEtYnRuKSwgLm8tY29sbGVjdGlvbi0tY29udGVudF9faXRlbSBhOm5vdCguYS1idG4pe1xuXG5cdFx0Y29sb3I6IGMoICRsaW5rX19jb2xvciApO1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCBiLCAyeHMgKTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBsaW5rICk7XG5cdFx0QGluY2x1ZGUgYm9yZGVyKCBsaW5rLCBib3R0b20sIHRyYW5zcGFyZW50ICk7XG5cblx0XHQmOmhvdmVye1xuXHRcdFx0XG5cdFx0XHRib3JkZXItY29sb3I6ICRsaW5rX19ib3JkZXItY29sb3I7XG5cdFx0XHRjb2xvcjogJGxpbmtfX2NvbG9yLS1ob3ZlcjtcblxuXHRcdH1cblxuXHR9IiwiLyoqXG4gKiBUeXBlXHQ6IEF0b21cbiAqIE5hbWVcdDogTG9nb1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExvZ28g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQkbG9nb19fbWF4LXdpZHRoXHQ6IDI1MHB4O1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTG9nbyDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdC8vIFVEIE1hZ2F6aW5lIGxvZ29cblx0LmEtbG9nb3tcblxuXHRcdG1heC13aWR0aDogJGxvZ29fX21heC13aWR0aDtcblxuXHR9IiwiLyoqXG4gKiBUeXBlIDogQXRvbVxuICogTmFtZSA6IFByb2dyZXNzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogUHJvZ3Jlc3Mg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbiAgXG4gICRwcm9ncmVzcy1iYXJfX2hlaWdodC0tbGFyZ2lzaCAgOiAxMHB4O1xuICAkcHJvZ3Jlc3MtYmFyX19oZWlnaHQtLXNtYWxsaXNoIDogNXB4O1xuICAkcHJvZ3Jlc3MtYmFyX19jb2xvciAgICAgICAgICAgIDogYyggcmVkICk7XG4gICRwcm9ncmVzcy1iYXJfX2NvbG9yLS1lbmQgICAgICAgOiBjKCBibHVlICk7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFByb2dyZXNzIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICpcbiAqIE5vdGU6IFRoZSBwcm9ncmVzcyBiYXIgd2lsbCBhbHdheXMgYXBwZWFyXG4gKiBpbnNpZGUgb2YgYC5tLWFjdGlvbi1iYXJgLCBzbyB0aGUgdGhlIHRvcFxuICogYW5kIGJvdHRvbSBwb3NpdGlvbmluZyB3aWxsIGJlIGhhbmRsZWQgaW4gdGhlXG4gKiBgLm0tYWN0aW9uLWJhcmAgcGFydGlhbCBmaWxlXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4gIFxuICAuYS1wcm9ncmVzcyB7XG4gICAgXG4gICAgaGVpZ2h0OiAkcHJvZ3Jlc3MtYmFyX19oZWlnaHQtLXNtYWxsaXNoO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IHooIGFib3ZlLW5hdiApO1xuXG4gICAgLyogUmVzZXQgdGhlIGFwcGVhcmFuY2UgKi9cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIFxuICAgIC8qKlxuICAgICAqIEZpeGVzIGZvciBzcGVjaWZpYyBicm93c2Vyc1xuICAgICAqL1xuXG4gICAgLy8gR2V0IHJpZCBvZiB0aGUgZGVmYXVsdCBib3JkZXIgaW4gRmlyZWZveC9PcGVyYS5cbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAvL1Byb2dyZXNzIGJhciBjb250YWluZXIgZm9yIEZpcmVmb3gvSUUxMCtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIC8vUHJvZ3Jlc3MgYmFyIHZhbHVlIGZvciBJRTEwK1xuICAgIGNvbG9yOiAkcHJvZ3Jlc3MtYmFyX19jb2xvcjtcbiAgICBcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCBtICl7XG4gICAgICBcbiAgICAgIGhlaWdodDogJHByb2dyZXNzLWJhcl9faGVpZ2h0LS1sYXJnaXNoO1xuXG4gICAgfVxuXG4gIH1cblxuICAvLyBUcmFuc3BhcmVudCBieSBEZWZhdWx0XG4gIC5hLXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG5cbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICB9XG5cbiAgLy8gQXMgaXQgZmlsbHMsIGl0IHdpbGwgZmlsbCB3aXRoIHRoZSBjb2xvciB3ZSBnaXZlIGl0IGJlbG93XG4gIC5hLXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle1xuXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCB0byByaWdodCwgJHByb2dyZXNzLWJhcl9fY29sb3IsICRwcm9ncmVzcy1iYXJfX2NvbG9yLS1lbmQgKTtcblxuICB9XG4gIFxuICAuYS1wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7XG5cbiAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCB0byByaWdodCwgJHByb2dyZXNzLWJhcl9fY29sb3IsICRwcm9ncmVzcy1iYXJfX2NvbG9yLS1lbmQgKTtcbiAgICAgXG4gIH1cblxuICAvLyBJRSAxMVxuICAuYS1wcm9ncmVzczo6LW1zLWZpbGx7XG5cbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIHRvIHJpZ2h0LCAkcHJvZ3Jlc3MtYmFyX19jb2xvciwgJHByb2dyZXNzLWJhcl9fY29sb3ItLWVuZCApO1xuICAgIFxuIH0iLCIvKipcbiAqIFR5cGVcdDogQXRvbVxuICogTmFtZVx0OiBCb2R5IENvcHlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBCb2R5IENvcHkg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdCRib2R5X19sZXR0ZXItc3BhY2luZ1x0OiAuNXB4O1xuXHQkYm9keV9fbGluZS1oZWlnaHRcdFx0OiAxLjg7XG5cblx0XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBCb2R5IENvcHkg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdFtjbGFzcyo9XCJhLWJvZHlcIl17XG5cblx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0XHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuXHR9XG5cblx0LmEtYm9keS0tbGFyZ2UsXG5cdC5vLXBvc3RfX2NvbnRlbnQgcHtcblx0XHRcblx0XHRsaW5lLWhlaWdodDogJGJvZHlfX2xpbmUtaGVpZ2h0O1xuXHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIDEgKTtcblx0XHRcblx0fVxuXG5cdC5hLWJvZHl7XG5cblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0fVxuXG5cdC5hLWJvZHktLXNtYWxse1xuXG5cdFx0bGV0dGVyLXNwYWNpbmc6ICRib2R5X19sZXR0ZXItc3BhY2luZztcblx0XHRAaW5jbHVkZSBmb250LXNjYWxlKCAtMSApO1xuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogQXRvbVxuICogTmFtZVx0OiBIZWFkaW5nXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXHRcblxuXHQvKipcblx0ICogQWxsIEhlYWRpbmdzXG5cdCAqL1xuXG5cdFtjbGFzcyo9XCJhLWhlYWRpbmdcIl17XG5cdFx0XHRcblx0XHRAZXh0ZW5kICV0eXBlLS1zbW9vdGg7XG5cblx0fVxuXG5cblx0LyoqXG5cdCAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHQgKiBIZWFkaW5ncyDigKIgU2V0dGluZ3Ncblx0ICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdCAqL1xuXHRcdFxuXHRcdC8vIENoYW1waW9uIEhlYXZ5d2VpZ2h0XG5cdFx0JGhlYXZ5LXhsLS1sZXR0ZXItc3BhY2luZ1x0OiAxMHB4O1xuXHRcdCRoZWF2eS1sLS1sZXR0ZXItc3BhY2luZ1x0OiAxMHB4O1xuXHRcdCRoZWF2eS1tLS1sZXR0ZXItc3BhY2luZ1x0OiA1cHg7XG5cdFx0JGhlYXZ5LXMtLWxldHRlci1zcGFjaW5nXHQ6IDNweDtcblx0XHQkaGVhdnkteHMtLWxldHRlci1zcGFjaW5nXHQ6IDJweDtcblxuXHRcdC8vQ2hhbXBpb24gQmFudGFtd2VpZ2h0XG5cdFx0JGJhbnRhbS14bC0tbGV0dGVyLXNwYWNpbmdcdDogM3B4O1xuXHRcdCRiYW50YW0teGwtLWxpbmUtaGVpZ2h0XHRcdDogMS4xO1xuXG5cdFx0JGJhbnRhbS1sLS1sZXR0ZXItc3BhY2luZ1x0OiAzcHg7XG5cdFx0JGJhbnRhbS1tLS1sZXR0ZXItc3BhY2luZ1x0OiAzcHg7XG5cblx0XHQvLyBDaGFtcGlvbiBMaWdodHdlaWdodFxuXHRcdCRsaWdodC14eGwtLWxldHRlci1zcGFjaW5nXHQ6IDNweDtcblx0XHQkbGlnaHQteHhsLS1saW5lLWhlaWdodFx0XHQ6IDEuMjtcblxuXHRcdCRsaWdodC14bC0tbGV0dGVyLXNwYWNpbmdcdDogM3B4O1xuXHRcdCRsaWdodC1sLS1sZXR0ZXItc3BhY2luZ1x0OiAzcHg7XG5cblx0XHQkbGlnaHQtbS0tbGV0dGVyLXNwYWNpbmdcdDogMXB4O1xuXHRcdCRsaWdodC1tLS1saW5lLWhlaWdodFx0XHQ6IDEuMjtcblx0XHRcblx0XHQkbGlnaHQtcy0tbGV0dGVyLXNwYWNpbmdcdDogMXB4O1xuXG5cdC8qKlxuXHQgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICogSGVhZGluZyDigKIgQ2hhbXBpb24gSGVhdnl3ZWlnaHQg4oCiIENsYXNzIERlZmluaXRpb25zXG5cdCAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHQgKi9cblxuXHRcdFtjbGFzcyo9XCJhLWhlYWRpbmctLWhlYXZ5XCJde1xuXHRcdFx0XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0QGluY2x1ZGUgZm9udCggJ2hlYWRpbmctaGVhdnknLCByZWd1bGFyICk7XG5cblx0XHR9XG5cblxuXG5cdFx0LmEtaGVhZGluZy0taGVhdnktLXhse1xuXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogJGhlYXZ5LXhsLS1sZXR0ZXItc3BhY2luZztcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIDUgKTtcblxuXHRcdH1cblxuXHRcdC5hLWhlYWRpbmctLWhlYXZ5LS1se1xuXHRcdFx0XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogJGhlYXZ5LWwtLWxldHRlci1zcGFjaW5nO1xuXHRcdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggMyApO1xuXG5cdFx0fVxuXG5cdFx0LmEtaGVhZGluZy0taGVhdnktLW17XG5cdFx0XHRcblx0XHRcdGxldHRlci1zcGFjaW5nOiAkaGVhdnktbS0tbGV0dGVyLXNwYWNpbmc7XG5cdFx0XHRAaW5jbHVkZSBmb250LXNjYWxlKCAwICk7XG5cblx0XHR9XG5cblx0XHQuYS1oZWFkaW5nLS1oZWF2eS0tc3tcblx0XHRcdFxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6ICRoZWF2eS1zLS1sZXR0ZXItc3BhY2luZztcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIC0xICk7XG5cblx0XHR9XG5cblx0XHQuYS1oZWFkaW5nLS1oZWF2eS0teHN7XG5cdFx0XHRcblx0XHRcdGxldHRlci1zcGFjaW5nOiAkaGVhdnkteHMtLWxldHRlci1zcGFjaW5nO1xuXHRcdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggLTMgKTtcblxuXHRcdH1cblx0XG5cdC8qKlxuXHQgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICogSGVhZGluZyDigKIgQ2hhbXBpb24gQmFudGFtIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuXHQgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICovXG5cblx0XHRbY2xhc3MqPVwiYS1oZWFkaW5nLS1iYW50YW1cIl0sXG5cdFx0Lm8tcG9zdF9fY29udGVudCBoMntcblx0XHRcdFxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdEBpbmNsdWRlIGZvbnQoICdoZWFkaW5nLWJhbnRhbScsIHJlZ3VsYXIgKTtcblxuXHRcdH1cblxuXG5cdFx0LmEtaGVhZGluZy0tYmFudGFtLS14bHtcblx0XHRcdFxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6ICRiYW50YW0teGwtLWxldHRlci1zcGFjaW5nO1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRiYW50YW0teGwtLWxpbmUtaGVpZ2h0O1xuXHRcdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggNyApO1xuXG5cdFx0fVxuXG5cdFx0LmEtaGVhZGluZy0tYmFudGFtLS1se1xuXHRcdFx0XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogJGJhbnRhbS1sLS1sZXR0ZXItc3BhY2luZztcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIDYgKTtcblxuXHRcdH1cblxuXHRcdC5hLWhlYWRpbmctLWJhbnRhbS0tbSxcblx0XHQuby1wb3N0X19jb250ZW50IGgye1xuXHRcdFx0XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogJGJhbnRhbS1tLS1sZXR0ZXItc3BhY2luZztcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIDQgKTtcblxuXHRcdH1cblxuXHQvKipcblx0ICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdCAqIEhlYWRpbmcg4oCiIENoYW1waW9uIExpZ2h0IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuXHQgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0ICovXG5cblx0XHRbY2xhc3MqPVwiYS1oZWFkaW5nLS1saWdodFwiXXtcblxuXHRcdFx0QGluY2x1ZGUgZm9udCggJ2hlYWRpbmctbGlnaHQnLCByZWd1bGFyICk7XG5cblx0XHR9XG5cblxuXHRcdC5hLWhlYWRpbmctLWxpZ2h0LS14eGx7XG5cdFx0XHRcblx0XHRcdGxldHRlci1zcGFjaW5nOiAkbGlnaHQteHhsLS1sZXR0ZXItc3BhY2luZztcblx0XHRcdGxpbmUtaGVpZ2h0OiAkbGlnaHQteHhsLS1saW5lLWhlaWdodDtcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIDYgKTtcblxuXHRcdH1cblxuXHRcdC5hLWhlYWRpbmctLWxpZ2h0LS14bHtcblx0XHRcdFxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6ICRsaWdodC14bC0tbGV0dGVyLXNwYWNpbmc7XG5cdFx0XHRAaW5jbHVkZSBmb250LXNjYWxlKCA0ICkgO1xuXG5cdFx0fVxuXG5cdFx0LmEtaGVhZGluZy0tbGlnaHQtLWx7XG5cdFx0XHRcblx0XHRcdGxldHRlci1zcGFjaW5nOiAkbGlnaHQtbC0tbGV0dGVyLXNwYWNpbmc7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggMiApO1xuXG5cdFx0fVxuXG5cdFx0LmEtaGVhZGluZy0tbGlnaHQtLW17XG5cdFx0XHRcblx0XHRcdGxldHRlci1zcGFjaW5nOiAkbGlnaHQtbS0tbGV0dGVyLXNwYWNpbmc7XG5cdFx0XHRsaW5lLWhlaWdodDogJGxpZ2h0LW0tLWxpbmUtaGVpZ2h0O1xuXHRcdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggMSApO1xuXG5cdFx0fVxuXG5cdFx0LmEtaGVhZGluZy0tbGlnaHQtLXN7XG5cdFx0XHRcblx0XHRcdGxldHRlci1zcGFjaW5nOiAkbGlnaHQtcy0tbGV0dGVyLXNwYWNpbmc7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0QGluY2x1ZGUgZm9udC1zY2FsZSggMCApO1xuXG5cdFx0fSIsIi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC5cbiAqIEdyb3VwXHQ6IE1vbGVjdWxlc1xuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Ly9cblx0Ly8gQWxsIGZpbGVzIGFyZSBpbXBvcnRlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuXG5cdC8vXG5cdFxuXHRAaW1wb3J0ICdfbS1iZy12aWRlbyc7XG5cdEBpbXBvcnQgJ19tLWNhcmQtLW15LW9sZC1ob3VzZSc7XG5cdEBpbXBvcnQgJ19tLWNhcmQtLXN0YW5kYXJkJztcblx0QGltcG9ydCAnX20tY3RhJztcblx0QGltcG9ydCAnX20tY3RhLS1mb290ZXInO1xuXHRAaW1wb3J0ICdfbS1lbWJlZCc7XG5cdEBpbXBvcnQgJ19tLWZvb3Rub3RlJztcblx0QGltcG9ydCAnX20tZm9ybXMnO1xuXHRAaW1wb3J0ICdfbS1pY29uLWdyb3VwJztcblx0QGltcG9ydCAnX20taW1hZ2UtZ3JvdXAnO1xuXHRAaW1wb3J0ICdfbS1pbmxpbmUtZ3JvdXAnO1xuXHRAaW1wb3J0ICdfbS1pc2xhbmQnO1xuXHRAaW1wb3J0ICdfbS1sZWdhbC1iYXInO1xuXHRAaW1wb3J0ICdfbS1saWtlJztcblx0QGltcG9ydCAnX20tbGluay1saXN0Jztcblx0QGltcG9ydCAnX20tbWVudSc7XG5cdEBpbXBvcnQgJ19tLW1ldGEnO1xuXHRAaW1wb3J0ICdfbS1uYXYtLW1vYmlsZS9fYWEtbG9hZGVyJztcblx0QGltcG9ydCAnX20tb3JnLWluZm8nO1xuXHRAaW1wb3J0ICdfbS1wYWdpbmF0aW9uJztcblx0QGltcG9ydCAnX20tc2VhcmNoLWJhcic7XG5cdEBpbXBvcnQgJ19tLXN1bW1hcnknO1xuXHRAaW1wb3J0ICdfbS10aXRsZS1ncm91cCc7XG5cdEBpbXBvcnQgJ19tLXRpdGxlLWdyb3VwLS1ib3gnOyIsIi8qKlxuICogVHlwZSA6IE1vbGVjdWxlc1xuICogTmFtZSA6IEJhY2tncm91bmQgVmlkZW9cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBCYWNrZ3JvdW5kIFZpZGVvIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBCYWNrZ3JvdW5kIFZpZGVvIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuICBcbi8qXG4gKiBBdXRvcGxheSBkb2VzIG5vdCBjdXJyZW50bHkgd29yayBhY3Jvc3MgdGhlIGJvYXJkXG4gKiBvbiBtb2JpbGUgZGV2aWNlcy4gQmVjYXVzZSBvZiB0aGlzLCBoaWRlIHRoZSB2aWRlbyBcbiAqIGNvbnRhaW5lciBpbiB0aGVzZSBjYXNlcy5cbiAqIFxuICogRm9yIG5vbi1tb2JpbGUgZGV2aWNlcyAobWF4LXdpZHRoOiAxMDQwcHggY3VycmVudGx5ICdsJyksXG4gKiB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBiYWNrZ3JvdW5kLWltYWdlIHNvIGl0IGRvZXNuJ3Qgc2hvd1xuICogYmVmb3JlIHRoZSB2aWRlbyBsb2Fkcy5cbiAqIFxuICogSUUgLyBFZGdlIEZpeGVzOlxuICogIC0gYCotd2lkdGhgIGluc3RlYWQgb2YgYCotZGV2aWNlLXdpZHRoYCBhcyBpdCBtaXNiZWhhdmVzXG4gKiAgLSBgcG9zaXRpb246IGFic29sdXRlYCBmb3IgcG9zaXRpb25hbCB2YWx1ZXMgdG8gYmUgdXNlZFxuICovXG5cbiogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4ubS1iZy12aWRlb19fY29udGFpbmVyIHtcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0Ym90dG9tOiAwO1xuXHRyaWdodDogMDtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1xuXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cblx0fVxuXG59XG5cbi5tLWJnLXZpZGVvIHsgXG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1xuXG5cdFx0aGVpZ2h0OiAzMDAlOyBcblx0XHR0b3A6IC0xMDAlOyBcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0fVxuXG59XG5cbi5tLWJnLXZpZGVvLFxuLm0tYmctdmlkZW8gaWZyYW1lIHtcblxuXHRkaXNwbGF5OiBub25lOyAvLyBkb24ndCBkaXNwbGF5IGlmIG9uIG1vYmlsZVxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0ei1pbmRleDogLTE7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gQmxvY2sgYWxsIHVzZXIgY2xpY2tzXG5cblx0fVxuXG59XG5cbiIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBNeSBPbGQgSG91c2UgQ2FyZCBcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNeSBPbGQgSG91c2UgQ2FyZCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTXkgT2xkIEhvdXNlIENhcmQg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcbi5tLWNhcmQtLW15LW9sZC1ob3VzZXtcblx0XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIHhsICk7XG5cdEBpbmNsdWRlIHNwYWNlciggcCwgeCwgbCApO1xuXHRAZXh0ZW5kICViZy0tY292ZXI7XG5cdEBleHRlbmQgJWZsZXgtLWNlbnRlci0tYWxsO1xuXG59XG5cblxuLm0tY2FyZC0tbXktb2xkLWhvdXNlX19iZ3tcblx0XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIGMoZ3JheXNjYWxlLCBibGFjaykgLCAuNSk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxpbmsgKTtcblxufVxuXG5cbi5tLWNhcmQtLW15LW9sZC1ob3VzZTpob3ZlciAubS1jYXJkLS1teS1vbGQtaG91c2VfX2Jne1xuXG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIG1hcF9nZXQoICRxdWlja2x5LWNhdC1jb2xvcl9jb25maWcsIG15LW9sZC1ob3VzZSApLCAuNyk7XG5cbn0iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogQ2FyZFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENhcmQg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vIENhcmQgQmFzZSBTZXR0aW5nc1xuXHQkY2FyZC0tc3RhbmRhcmQtLXN0YWNrZWRfX21heC13aWR0aFx0OiA0MDBweDtcblx0JGNhcmQtLXN0YW5kYXJkX19iZ1x0XHRcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgOTUgKTtcblx0JGNhcmQtLXN0YW5kYXJkX19icmVha3BvaW50XHRcdFx0OiBzO1xuXG5cdC8vIENhcmQgQ29udGVudCBTZXR0aW5nc1xuXHQkY2FyZC0tc3RhbmRhcmRfX2NvbnRlbnRfX21heC13aWR0aFx0OiA0MDBweDtcblx0XG5cdC8vIENhcmQgTGluayBTZXR0aW5nc1xuXHQkY2FyZC0tc3RhbmRhcmRfX2xpbmtfX3dpZHRoXHRcdDogNTBweDtcblx0XG5cdC8vIENhcmQgR2xvYmFsIEltYWdlIFNldHRpbmdzXG5cdCRjYXJkLS1zdGFuZGFyZF9faW1nLS1ob3Zlcl9fb3BhY2l0eTogLjg7IFxuXG5cdC8vIENhcmQgSW5saW5lIEltYWdlIFNldHRpbmdzXG5cdCRjYXJkLS1zdGFuZGFyZC0taW5saW5lX19pbWctb2Zmc2V0XHQ6IC03NXB4O1xuXHQkY2FyZC0tc3RhbmRhcmQtLWlubGluZV9faW1nLXNpemVcdDogMjAwcHg7XG5cdFxuXHQvLyBDYXJkIFRpdGxlIFNldHRpbmdzXG5cdCRjYXJkLS1zdGFuZGFyZF9fdGl0bGVfX2NvbG9yXHRcdDogYyggZ3JheXNjYWxlLCAxMCApO1xuXHQkY2FyZC0tc3RhbmRhcmRfX3RpdGxlX19jb2xvci0taG92ZXI6IGMoIGdyYXlzY2FsZSwgMzAgKTtcblx0JGNhcmQtLXN0YW5kYXJkX190aXRsZV9fbGluZS1oZWlnaHRcdDogMS41O1xuXHRcblx0Ly8gQ2FyZCBTdWJ0aXRsZSBTZXR0aW5nc1xuXHQkY2FyZC0tc3RhbmRhcmRfX3N1Yl9fY29sb3JcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgNDAgKTtcblxuXHQvLyBDYXJkIEljb24gU2V0dGluZ3Ncblx0JGNhcmQtLXN0YW5kYXJkX19pY29uX19maWxsXHRcdFx0OiBjKCBncmF5c2NhbGUsIDMwICk7XG5cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENhcmQg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Lm0tY2FyZC0tc3RhbmRhcmR7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC0tc3RhbmRhcmRfX2JnO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRtYXgtd2lkdGg6ICRjYXJkLS1zdGFuZGFyZC0tc3RhY2tlZF9fbWF4LXdpZHRoO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNhcmQtLXN0YW5kYXJkX19icmVha3BvaW50ICl7XG5cdFx0XHRcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRtYXJnaW46IHVuc2V0O1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0fVxuXHRcdFxuXHRcdFxuXHRcdC8vIFNldCB0cmFuc2l0aW9uIGZvciBhbGwgY2FyZCBsaW5rIGVsZW1lbnRzXG5cdFx0YSxcblx0XHQubS10aXRsZS1ncm91cF9fcHJlLFxuXHRcdC5tLXRpdGxlLWdyb3VwX190aXRsZXtcdFxuXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBjYXJkICk7XG5cblx0XHR9XG5cblx0fVxuXG5cdC8qKlxuXHQgKiBDYXJkIOKAoiBXcmFwcGVyc1xuXHQgKi9cblxuXHRcdC5tLWNhcmQtLXN0YW5kYXJkID4gLm0tY2FyZF9fbWVkaWF7XG5cblx0XHRcdGZsZXg6IDEgMCBhdXRvO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRAaW5jbHVkZSBvcGFjaXR5KCAxICk7XG5cdFx0XHRcblx0XHRcdCY6aG92ZXJ7XG5cblx0XHRcdFx0QGluY2x1ZGUgb3BhY2l0eSggJGNhcmQtLXN0YW5kYXJkX19pbWctLWhvdmVyX19vcGFjaXR5ICk7XG5cblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNhcmQtLXN0YW5kYXJkX19icmVha3BvaW50ICl7XG5cdFx0XHRcdFxuXHRcdFx0XHRoZWlnaHQ6ICRjYXJkLS1zdGFuZGFyZC0taW5saW5lX19pbWctc2l6ZTtcblx0XHRcdFx0d2lkdGg6ICRjYXJkLS1zdGFuZGFyZC0taW5saW5lX19pbWctc2l6ZTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Ly8gQ29udGVudCBXcmFwcGVyXG5cdFx0Lm0tY2FyZC0tc3RhbmRhcmQgPiAubS1jYXJkX19jb250ZW50e1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC0tc3RhbmRhcmRfX2JnO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRmbGV4OiAwIDEgMTAwJTtcblx0XHRcdGhlaWdodDogJGNhcmQtLXN0YW5kYXJkLS1pbmxpbmVfX2ltZy1zaXplO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ei1pbmRleDogeiggZnJvbnQgKTtcblxuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCBtbCApO1xuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB4LCBtbCApO1xuXG5cdFx0fVxuXG5cdFx0Ly8gTGluayBXcmFwcGVyXG5cdFx0Lm0tY2FyZC0tc3RhbmRhcmQgPiAubS1jYXJkX19saW5re1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRmbGV4OiAwIDAgJGNhcmQtLXN0YW5kYXJkX19saW5rX193aWR0aDtcblx0XHRcdFxuXHRcdFx0QGluY2x1ZGUgYWN0aW9uLWFycm93KCk7XG5cblx0XHR9XG5cblxuXG5cdC8qKlxuXHQgKiBDYXJkIOKAoiBJbm5lciBDb250ZW50XG5cdCAqL1xuXG5cdFx0Lm0tY2FyZC0tc3RhbmRhcmQgLm0tdGl0bGUtZ3JvdXB7XG5cblx0XHRcdG1heC13aWR0aDogJGNhcmQtLXN0YW5kYXJkX19jb250ZW50X19tYXgtd2lkdGg7XG5cdFx0XHRcblx0XHR9XG5cblx0XHQubS1jYXJkLS1zdGFuZGFyZCAubS10aXRsZS1ncm91cF9fdGl0bGV7XG5cdFx0XHRcblx0XHRcdGNvbG9yOiAkY2FyZC0tc3RhbmRhcmRfX3RpdGxlX19jb2xvcjtcblx0XHRcdGxpbmUtaGVpZ2h0OiAkY2FyZC0tc3RhbmRhcmRfX3RpdGxlX19saW5lLWhlaWdodDtcblxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XG5cdFx0XHRcdGNvbG9yOiAkY2FyZC0tc3RhbmRhcmRfX3RpdGxlX19jb2xvci0taG92ZXI7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdC5tLWNhcmQtLXN0YW5kYXJkIC5tLXRpdGxlLWdyb3VwX19zdWIsXG5cdFx0Lm0tY2FyZC0tc3RhbmRhcmQgLm0tbWV0YV9faXRlbXtcblx0XHRcdFxuXHRcdFx0Y29sb3I6ICRjYXJkLS1zdGFuZGFyZF9fc3ViX19jb2xvcjtcblxuXHRcdH1cblxuXHRcdC5tLWNhcmQtLXN0YW5kYXJkIC5tLW1ldGFfX2ljb24gPiBzdmd7XG5cdFx0XHRcblx0XHRcdGZpbGw6ICRjYXJkLS1zdGFuZGFyZF9faWNvbl9fZmlsbDtcblxuXHRcdH1cblxuXHRcdC8vIENhcmQgSW1hZ2Vcblx0XHQubS1jYXJkLS1zdGFuZGFyZCAubS1jYXJkX19pbWd7XG5cblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bGVmdDogMCU7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHotaW5kZXg6IHooIGJhc2UgKTtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNhcmQtLXN0YW5kYXJkX19icmVha3BvaW50ICl7XG5cdFx0XHRcdFxuXHRcdFx0XHRsZWZ0OiAkY2FyZC0tc3RhbmRhcmQtLWlubGluZV9faW1nLW9mZnNldDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblxuXHRcdFx0fVxuXG5cdFx0fVxuXHRcblx0LyoqXG5cdCAqIENhcmQg4oCiIFRoZW1lc1xuXHQgKi9cblxuXHRcdC8qKlxuXHRcdCAqIFdlIGFyZSB1c2luZyBhIGN1c3RvbSBtaXhpbiB0byBnZW5lcmF0ZSBkaWZmZXJlbnQgY2FyZCB0aGVtZSBjbGFzc2VzIGF1dG9tYWdpY2FsbHkuXG5cdFx0ICogVGhlc2Ugd2lsbCBhdXRvbWF0ZSBjYXJkIGNvbG9yaW5nIGJhc2VkIG9uIHRoZSBjYXJkIGNhdGVnb3J5LlxuXHRcdCAqL1xuXG5cdFx0Ly8gUXVpY2tseSBDYXRlZ29yeSBDb2xvcnNcblx0XHRAZWFjaCAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciBpbiAkcXVpY2tseS1jYXQtY29sb3JfY29uZmlnIHtcblxuXHRcdFx0QGluY2x1ZGUgdGhlbWUtLWNhcmQoICRjYXRlZ29yeSwgJGNhdGVnb3J5LWNvbG9yICk7XG5cblx0XHR9XG5cblx0XHQvLyBJc3N1ZSBDYXRlZ29yeSBDb2xvcnNcblx0XHRAZWFjaCAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciBpbiAkaXNzdWUtY2F0LWNvbG9yX2NvbmZpZyB7XG5cblx0XHRcdEBpbmNsdWRlIHRoZW1lLS1jYXJkKCAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciApO1xuXG5cdFx0fSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBDVEFcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDVEEg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vQmFja2dyb3VuZFxuXHQkY3RhX19iZy0tY29sb3JcdFx0OiBjKCBibHVlICk7XG5cdCRjdGFfX2JnLS1pbWdcdFx0OiB1cmwoICcuLi9pbWFnZXMvYmFja2dyb3VuZC1ibHVlZGlhZ29uYWxzLnBuZycgKTtcblx0XG5cdC8vVGl0bGVcblx0JGN0YV9fdGl0bGUtLWNvbG9yXHQ6IGMoIGdsb3ctdHVycSApO1xuXHQkY3RhX190aXRsZS0tbWF4LS1zXHQ6IDcwMHB4O1xuXHQkY3RhX190aXRsZS0tbWF4LS1sXHQ6IDYwMHB4O1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ1RBIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cblx0Lm0tY3Rhe1xuXHRcdFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjdGFfX2JnLS1jb2xvcjtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiAkY3RhX19iZy0taW1nO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogdW5zZXQ7XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0fVxuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgeGwgKTtcblx0XHRcblx0XHRAZXh0ZW5kICViZy0tcG9zLS10b3AtbGVmdDtcblxuXHRcdC8vIFRlbXAgZm9yIHRlc3RpbmcgLSB3aWxsIHJlbW92ZSBhZnRlclxuXHRcdC8vIGNsaWVudCBhcHByb3ZlcyByZWd1bGFyIG9yIGFsdC5cblx0XHQmLi0tYWx0e1xuXHRcdFx0XG5cdFx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIGwgKTtcblxuXHRcdH1cblxuXHR9XG5cdFxuXHQubS1jdGFfX2NvbnRhaW5lcntcblxuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1x0XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdH1cblxuXHR9XG5cdFxuXG5cdC8vIEhhbmRsZSB0aGUgQ1RBIGNvbHVtbiB0aGF0IGNvbnRhaW5zIHRoZSB0ZXh0XG5cdC5tLWN0YV9fY29sdW1uOm50aC1vZi10eXBlKDEpe1xuXHRcdFxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIGIsIGwgKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdG1hcmdpbjogdW5zZXQ7XG5cdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0fVxuXG5cdH1cblx0XG5cdC8vIEhhbmRsZSB0aGUgQ1RBIGNvbHVtbiB0aGF0IGNvbnRhaW5zIHRoZSBidXR0b25cblx0Lm0tY3RhX19jb2x1bW46bnRoLW9mLXR5cGUoMil7XG5cblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcdFxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0fVxuXG5cdH1cblxuXHRcblx0Lm0tY3RhX190aXRsZXtcblx0XHRcblx0XHRjb2xvcjogJGN0YV9fdGl0bGUtLWNvbG9yO1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHRtYXgtd2lkdGg6ICRjdGFfX3RpdGxlLS1tYXgtLXM7XG5cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiAkY3RhX190aXRsZS0tbWF4LS1sO1xuXHRcdH1cblxuXHR9XG5cblxuXHQubS1jdGFfX2FjdGlvbntcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblxuXHR9IiwiLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IEZvb3RlciBDVEFcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGb290ZXIgQ1RBIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvL0JhY2tncm91bmRcblx0JGZvb3Rlci1jdGFfX2JnLS1jb2xvclx0XHQ6IHJnYmEoIGMoIGdyYXlzY2FsZSwgYmxhY2sgKSwgLjYgKTtcblx0XG5cdC8vVGl0bGVcblx0JGZvb3Rlci1jdGFfX21heC13aWR0aFx0XHQ6IDcwMHB4O1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRm9vdGVyIENUQSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbiAubS1jdGEtLWZvb3RlcntcblxuIFx0ZGlzcGxheTogYmxvY2s7XG4gXHR3aWR0aDogMTAwJTtcblxuIFx0QGluY2x1ZGUgc3BhY2VyKCBtLCB0LCBtbCApO1xuXG4gfVxuXG4gLm0tY3RhLS1mb290ZXJfX3dyYXBwZXJ7XG5cbiBcdGRpc3BsYXk6IGZsZXg7XG4gXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gXHRAaW5jbHVkZSBicmVha3BvaW50KCB4bCApe1xuXG4gXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiBcdH1cblxuIH1cblxuXG4vKipcbiAqIEZvb3RlciBDVEEg4oCiIExpc3QgSXRlbVxuICovXG4gLm0tY3RhLS1mb290ZXJfX2l0ZW17XG5cbiBcdGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItY3RhX19iZy0tY29sb3I7XG4gXHRmbGV4OiBhdXRvO1xuXG4gXHRAaW5jbHVkZSBzcGFjZXIoIG0gLCBiLCBtICk7XG4gXHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBsaW5rICk7XG4gXHRcbiBcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIHhsICl7XG5cbiBcdFx0bWFyZ2luLWJvdHRvbTowO1xuXG4gXHR9XG5cbiB9XG5cbiAubS1jdGEtLWZvb3Rlcl9faXRlbTpob3ZlcntcblxuIFx0QGluY2x1ZGUgb3BhY2l0eSggMSApO1xuXG4gfVxuXG4vLyBUaGUgc2Vjb25kICYgdGhpcmQgaXRlbSB3aWxsIGdldCB0aGUgc2FtZSBzdHlsZVxuLm0tY3RhLS1mb290ZXJfX2l0ZW06bm90KDpmaXJzdC1jaGlsZCl7XG5cblxuXHQvKipcblx0ICogSGVyZSB3ZSBhcmUganVzdCBzZXR0aW5nIGEgZGlmZmVyZW50IHggcG9zaXRpb24gZm9yIHRoZSBhcnJvd1xuXHQgKiBvbiBkaWZmZXJlbnQgZGV2aWNlIHNpemVzXG5cdCAqL1xuIFx0QGluY2x1ZGUgYWN0aW9uLWFycm93KCA5NSUgKTtcblxuIFx0QGluY2x1ZGUgYnJlYWtwb2ludCggeGwgKXtcblxuIFx0XHRAaW5jbHVkZSBhY3Rpb24tYXJyb3coIDg1JSApO1xuXG5cbiBcdH1cblxuXG4gfVxuXG5cbiAubS1jdGEtLWZvb3Rlcl9faXRlbTpmaXJzdC1jaGlsZHtcblxuIFx0LyoqXG4gXHQgKiBIZXJlIHdlIGFyZSBqdXN0IHNldHRpbmcgYSBkaWZmZXJlbnQgeCBwb3NpdGlvbiBmb3IgdGhlIGFycm93XG4gXHQgKiBvbiBkaWZmZXJlbnQgZGV2aWNlIHNpemVzXG4gXHQgKi9cblxuIFx0QGluY2x1ZGUgYWN0aW9uLWFycm93KCA5NSUgKTtcblxuIFx0QGluY2x1ZGUgYnJlYWtwb2ludCggeGwgKXtcblxuIFx0XHRAaW5jbHVkZSBhY3Rpb24tYXJyb3coIDk1JSApO1xuXG4gXHR9XG5cbiB9XG5cbiAvKipcbiAgKiBGb290ZXIgQ1RBIOKAoiBMaW5rXG4gICovXG5cbi5tLWN0YS0tZm9vdGVyX19saW5re1xuXG4gXHRjb2xvcjogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuIFx0ZGlzcGxheTogYmxvY2s7XG5cbiBcdEBpbmNsdWRlIHNwYWNlciggcCAsIHQsIGwgKTtcbiBcdEBpbmNsdWRlIHNwYWNlciggcCAsIGIsIG1sICk7XG4gXHRAaW5jbHVkZSBzcGFjZXIoIHAgLCByLCBtbCApO1xuIFx0QGluY2x1ZGUgc3BhY2VyKCBwICwgbCwgbWwgKTtcbiBcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxpbmsgKTtcblxuIFx0QGluY2x1ZGUgYnJlYWtwb2ludCggeGwgKXtcblxuIFx0XHRwYWRkaW5nLWxlZnQ6MDtcbiBcdFx0cGFkZGluZy1yaWdodDogMDtcbiBcdFx0QGluY2x1ZGUgc3BhY2VyKCBtICwgciwgbWwgKTtcbiBcdFx0QGluY2x1ZGUgc3BhY2VyKCBtICwgbCwgbWwgKTtcblxuIFx0fVxuXG5cbiB9XG5cbiAubS1jdGEtLWZvb3Rlcl9fbGluazpob3ZlcntcblxuIFx0Y29sb3I6IGMoIGdsb3ctdHVycSApO1xuXG4gfSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBFbWJlZFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEVtYmVkIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0JGVtYmVkX19wYWRkaW5nLS1ib3R0b21cdDogNTYuMjUlO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRW1iZWQg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdC5tLWVtYmVke1xuXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFxuXHR9XG5cblx0Lm0tZW1iZWQgaWZyYW1le1xuXHRcdFxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0fSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBGb290bm90ZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZvb3Rub3RlIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0JGZvb3Rub3RlX19iZ1x0XHRcdDogYyggZ3JheXNjYWxlLCA5NSApO1xuXHQkZm9vdG5vdGVfX29mZnNldC0tcmlnaHQ6IC0zNTBweDtcblx0JGZvb3Rub3RlX19tYXgtd2lkdGhcdDogMzAwcHg7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGb290bm90ZSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQubS1mb290bm90ZXtcblx0XHRcdFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRmb290bm90ZV9fYmc7XG5cblx0XHQvLyBXaGVuIHRoZSBmb290bm90ZSBjb2xsYXBzZXMsIGl0IGRpc3BsYXlzXG5cdFx0Ly8gYXMgYSBibG9jayBiZWxvdyB0aGUgY29udGVudFxuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCB0LCB4bCApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYWxsLCBsICk7XG5cdFx0XG5cdFx0Ly8gT24gbGFyZ2VyIHNjcmVlbiBzaXplcywgdGhlIGZvb3Rub3RlIGlzIGRpc3BsYXllZCBvZmYgdG8gdGhlXG5cdFx0Ly8gcmlnaHQgb2YgdGhlIGNvbnRlbnQuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggMnhsICl7XG5cdFx0XHRcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRyaWdodDogJGZvb3Rub3RlX19vZmZzZXQtLXJpZ2h0O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bWF4LXdpZHRoOiAkZm9vdG5vdGVfX21heC13aWR0aDtcblxuXHRcdH1cblxuXHR9XG5cblx0Lm0tZm9vdG5vdGUgcHtcblx0XHRcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogRm9ybVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZvcm0g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vIExpZ2h0IEZvcm1zXG5cdCRmb3JtLS1saWdodF9fYmdcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgd2hpdGUgKTtcblx0JGZvcm0tLWxpZ2h0X19iZy0tZm9jdXNcdFx0OiBjKCBncmF5c2NhbGUsIDk4ICk7XG5cblx0Ly8gRGFyayBGb3Jtc1xuXHQkZm9ybS0tZGFya19fY29sb3JcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgd2hpdGUgKTtcblx0JGZvcm0tLWRhcmtfX2JnXHRcdFx0XHQ6IGMoIGdsb3ctbmF2eSApO1xuXHQkZm9ybS0tZGFya19fYmctLWZvY3VzXHRcdDogYyggZ2xvdy1uYXZ5ICk7XG5cdCRmb3JtLS1kYXJrX19ib3JkZXItLWNvbG9yXHQ6IGMoIGdsb3ctdHVycSApO1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGb3JtIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC5tLWZvcm0tLWZpZWxkcy0tbGlnaHQgLmEtZm9ybS1jb250cm9se1xuXHRcdFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRmb3JtLS1saWdodF9fYmc7XG5cdFx0Ly8gRm9yY2VzIGlPUyB0byBub3Qgcm91bmQgY29ybmVyc1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7IFxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHQmOmZvY3Vze1xuXHRcdFx0XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS0tbGlnaHRfX2JnLS1mb2N1cztcblxuXHRcdH1cblxuXHR9XG5cblx0Lm0tZm9ybS0tZmllbGRzLS1kYXJrIC5hLWZvcm0tY29udHJvbHtcblx0XHRcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS0tZGFya19fYmc7XG5cdFx0Y29sb3I6ICRmb3JtLS1kYXJrX19jb2xvcjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZm9ybS0tZGFya19fYm9yZGVyLS1jb2xvcjtcblx0XHQvLyBGb3JjZXMgaU9TIHRvIG5vdCByb3VuZCBjb3JuZXJzXG5cdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDsgXG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdCY6Zm9jdXN7XG5cdFx0XHRcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRmb3JtLS1kYXJrX19iZy0tZm9jdXM7XG5cblx0XHR9XG5cblx0fVxuXG5cblx0Lm0tZm9ybS0tbGFiZWwtLWxpZ2h0IGxhYmVse1xuXHRcblx0XHRjb2xvcjogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXG5cdH1cblxuXG5cdC5tLWZvcm1fX2dyb3Vwe1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCB0LCBsICk7XG5cblx0fVxuXG5cblx0Lm0tZm9ybV9fZ3JvdXAgLmEtY2hlY2tib3ggaW5wdXQsXG5cdC5tLWZvcm1fX2dyb3VwIC5hLXJhZGlvIGlucHV0e1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCByLCBzICk7XG5cblx0fSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBJY29uIEdyb3VwXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSWNvbiBHcm91cCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0JGljb24tZ3JvdXBfX2ljb25fX2ZpbGxcdFx0XHQ6IGMoIGdsb3ctdHVycSApO1xuXHQkaWNvbi1ncm91cF9faWNvbl9fZmlsbC0taG92ZXJcdDogYyggZ2xvdy10dXJxLCBkYXJrMTAgKTtcblx0XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBJY29uIEdyb3VwIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC5tLWljb24tZ3JvdXAgLm0taWNvbi1ncm91cF9faWNvbjpub3QoIDpsYXN0LWNoaWxkICl7XG5cdFx0XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCByLCB4cyApO1xuXG5cdH1cblx0XG5cdC5tLWljb24tZ3JvdXBfX2ljb24gLmEtaWNvbntcblx0XHRcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRcdGZpbGw6ICRpY29uLWdyb3VwX19pY29uX19maWxsO1xuXHRcdFxuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGljb24gKTtcblxuXHR9XG5cblx0XG5cdC8qKlxuXHQgKiBDb2xvclxuXHQgKi9cblx0XG5cdC5tLWljb24tZ3JvdXA6bm90KC5tLWljb24tZ3JvdXAtLWFjdGlvbikgLmEtaWNvbntcblx0XHRcblx0XHRmaWxsOiAkaWNvbi1ncm91cF9faWNvbl9fZmlsbDtcblx0XHRcblx0fVxuXG5cdC5tLWljb24tZ3JvdXA6bm90KC5tLWljb24tZ3JvdXAtLWFjdGlvbikgLm0taWNvbi1ncm91cF9faWNvbjpob3ZlciAuYS1pY29ue1xuXHRcdFxuXHRcdGZpbGw6ICRpY29uLWdyb3VwX19pY29uX19maWxsLS1ob3ZlcjtcblxuXHR9XG5cblxuXHQvKipcblx0ICogVmFyaWF0aW9uIOKAoiBBY3Rpb25cblx0ICovXG5cdFxuXHQubS1pY29uLWdyb3VwLS1hY3Rpb257XG5cdFx0XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFxuXHRcblx0fVxuXHRcblx0Lm0taWNvbi1ncm91cC0tYWN0aW9uIC5tLWljb24tZ3JvdXBfX2ljb257XG5cdFx0XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgcyApO1xuXHRcdFxuXHR9XG5cblx0Lm0taWNvbi1ncm91cC0tYWN0aW9uIC5hLWljb257XG5cblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHIsIG1sICk7XG5cblxuXHR9XG5cblx0Lm0taWNvbi1ncm91cC0tYWN0aW9uIC5tLWljb24tZ3JvdXBfX2ljb24gLmEtaWNvbntcblx0XHRcblx0XHRmaWxsOiBjKCByZWQgKTtcblx0XHRcblx0fVxuXG5cdC5tLWljb24tZ3JvdXAtLWFjdGlvbiAubS1pY29uLWdyb3VwX19pY29uOmhvdmVyIC5hLWljb257XG5cdFx0XG5cdFx0ZmlsbDogYyggcmVkLCBkYXJrNSApO1xuXG5cdH1cblxuXG5cdC8qKlxuXHQgKiBWYXJpYXRpb24g4oCiIFdpdGggVGV4dFxuXHQgKi9cblx0XG5cdC5tLWljb24tZ3JvdXBfX3RleHR7XG5cdFx0XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggbGluayApO1xuXG5cdH1cblxuXHQubS1pY29uLWdyb3VwX19pY29uOmhvdmVyIC5tLWljb24tZ3JvdXBfX3RleHR7XG5cdFx0XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAycHggKTtcblxuXHR9IiwiXG4ubS1pbWFnZS1ncm91cHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vLyBJZiBvdXIgaW1hZ2UgZ3JvdXAgaXMgYSBsaW5rXG5hLm0taW1hZ2UtZ3JvdXAgLm0taW1hZ2UtZ3JvdXBfX2ltZyxcbmEubS1pbWFnZS1ncm91cCAubS1pbWFnZS1ncm91cF9fdGl0bGV7XG5cdFxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxpbmsgKTtcblxufVxuXG5hLm0taW1hZ2UtZ3JvdXAgLm0taW1hZ2UtZ3JvdXBfX2ltZ3tcblx0XG5cdEBpbmNsdWRlIHNoYWRvdyggbWVkaWEtLXN1YnRsZSApO1xuXG59XG5cbmEubS1pbWFnZS1ncm91cDpob3Zlcntcblx0XG5cdC5tLWltYWdlLWdyb3VwX19pbWcsXG5cdC5tLWltYWdlLWdyb3VwX190aXRsZXtcblx0XHRAaW5jbHVkZSBvcGFjaXR5KCAuODUgKTtcblx0fVxuXG59XG5cblxuLm0taW1hZ2UtZ3JvdXBfX2ltZ3tcblx0XG5cdEBpbmNsdWRlIHNwYWNlcihtLCBiLCBtKTtcblxufSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBJbmxpbmUgR3JvdXBcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBJbmxpbmUgR3JvdXAg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHRcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIElubGluZSBHcm91cCDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvKipcblx0ICogSW5saW5lIEdyb3VwIOKAoiBCYXNlXG5cdCAqL1xuXHRcblx0Lm0taW5saW5lLWdyb3Vwe1xuXHRcdFxuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XG5cdH1cblx0XG5cblx0Lm0taW5saW5lLWdyb3VwLFxuXHQubS1pbmxpbmUtZ3JvdXBfX2dyb3Vwe1xuXHRcdFxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0QGV4dGVuZCAlZmxleC0tY2VudGVyLS1hbGw7XG5cblx0fVxuXHRcblx0Lm0taW5saW5lLWdyb3VwX19ncm91cHtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIGIsIG0gKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFYWNoIHN1YiBncm91cCBpdGVtIGFuZCBlYWNoIGNoaWxkIG9mIGEgc3ViLWdyb3VwIGl0ZW1cblx0ICogbmVlZHMgcmlnaHQgbWFyZ2luLCBFWENFUFQgZm9yIHRoZSBsYXN0IGl0ZW0gaW4gZWFjaCBvZiB0aG9zZSBncm91cHMuXG5cdCAqL1xuXHQubS1pbmxpbmUtZ3JvdXBfX2dyb3VwOm5vdCggOmxhc3QtY2hpbGQgKSxcblx0Lm0taW5saW5lLWdyb3VwX19ncm91cCA+ICo6bm90KCA6bGFzdC1jaGlsZCApe1xuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgciwgbSApO1xuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogSXNsYW5kXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSXNsYW5kIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvLyBCYXNpYyBTZXR0aW5nc1xuXHQkaXNsYW5kLS1kZWZhdWx0X19jb2xvclx0XHQ6IGMoIGdyYXlzY2FsZSwgd2hpdGUgKTtcblx0JGlzbGFuZF9fb3ZlcmxheV9fYmctY29sb3JcdDogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXG5cdC8vIFZhcmlhdGlvbnNcblx0JGlzbGFuZC0tYmx1ZV9fYmdcdFx0XHQ6IGMoIGJsdWUgKTtcblx0JGlzbGFuZC0tbmF2eV9fYmdcdFx0XHQ6IGMoIGdsb3ctbmF2eSApO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSXNsYW5kIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQubS1pc2xhbmR7XG5cdFx0XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCAzeGwgKTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHgsIGwgKTtcblxuXHR9XG5cblx0Lm0taXNsYW5kOm5vdCgubS1pc2xhbmQtLWhhcy1iZyl7XG5cblx0XHRjb2xvcjogJGlzbGFuZC0tZGVmYXVsdF9fY29sb3I7XG5cblx0fVxuXG5cblx0Lm0taXNsYW5kLm0taXNsYW5kLS1oYXMtYmd7XG5cblx0XHQmOmJlZm9yZXtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRpc2xhbmRfX292ZXJsYXlfX2JnLWNvbG9yO1xuXHRcdFx0QGluY2x1ZGUgb3BhY2l0eSguOCk7XG5cdFx0fVxuXG5cdFx0QGV4dGVuZCAlYmVmb3JlLS1jb3Zlcjtcblx0XHRAZXh0ZW5kICViZy0tY292ZXI7XG5cdFx0QGV4dGVuZCAlYmctLXBvcy0tY2VudGVyO1xuXG5cdH1cblxuXG5cdC5tLWlzbGFuZC0tYmx1ZXtcblx0XHRcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaXNsYW5kLS1ibHVlX19iZztcblxuXHR9XG5cblx0Lm0taXNsYW5kLS1uYXZ5e1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGlzbGFuZC0tbmF2eV9fYmc7XG5cblx0fSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBMZWdhbCBCYXJcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBMZWdhbCBCYXIg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQkbGVnYWwtYmFyX19iZ1x0OiBjKCBnbG93LW5hdnkgKTtcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExlZ2FsIEJhciDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQubS1sZWdhbC1iYXJ7XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGxlZ2FsLWJhcl9fYmc7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgbCApO1xuXG5cdH1cblxuXHQubS1sZWdhbC1iYXJfX2NvbnRhaW5lcntcblx0XHRcdFxuXHRcdEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogTGlrZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExpa2Ug4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cblx0Ly8gVW5saWtlZCBTdGF0ZVxuXHQkbGlrZS0tdW5saWtlZC0tYmctY29sb3ItLWhvdmVyXHRcdDogYyggZ3JheXNjYWxlLCA5MCApO1xuXHQkbGlrZV9faWNvbi0tdW5saWtlZC1jb2xvclx0XHRcdDogYyggZ3JheXNjYWxlLCA4MCApOyBcblx0JGxpa2VfX2NvdW50LS11bmxpa2VkLWNvbG9yXHRcdFx0OiBjKCBncmF5c2NhbGUsIDcwICk7XG5cblx0Ly9MaWtlZCBTdGF0ZVxuXHQkbGlrZV9faWNvbi0tbGlrZWQtY29sb3JcdDogYyggZ2xvdy1yZWQgKTsgXG5cdCRsaWtlX19jb3VudC0tbGlrZWQtY29sb3JcdDogYyggZ3JheXNjYWxlLCA1MCApO1xuXG5cdC8vIEFuaW1hdGlvblxuXHQkbGlrZS0tYW5pbWF0aW9uLWR1cmF0aW9uXHRcdDogLjVzO1xuXHQkbGlrZS0tYW5pbWF0aW9uLXRpbWluZ1x0XHRcdDogZWFzZS1pbi1vdXQ7XG5cdCRsaWtlLS1hbmltYXRpb24tLXNjYWxlLWRvd25cdDogLjc1O1xuXHQkbGlrZS0tYW5pbWF0aW9uLS1zY2FsZS11cFx0XHQ6IDEuMztcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIExpa2Ug4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0LyoqXG5cdCAqIExpa2Ug4oCiIEJhc2Vcblx0ICovXG5cblx0Lm0tbGlrZXtcblx0XHRcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIGFsbCwgcyApO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxpbmsgKVxuXG5cdH1cblxuXG5cdC8qKlxuXHQgKiBMaWtlIOKAoiBVbmxpa2VkXG5cdCAqL1xuXG5cdC5tLWxpa2U6bm90KC5tLWxpa2UtLWlzLWxpa2VkKXtcblx0XHRcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XG5cdFx0Ly8gT25seSBhcHBseSBob3ZlciBzdGF0ZXMgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggcyApe1xuXHRcdFxuXHRcdFx0Jjpob3ZlcntcblxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlrZS0tdW5saWtlZC0tYmctY29sb3ItLWhvdmVyO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cdC5tLWxpa2VfX2NvdW50e1xuXG5cdFx0Y29sb3I6ICRsaWtlX19jb3VudC0tdW5saWtlZC1jb2xvcjtcblxuXHR9XG5cdFxuXHQubS1saWtlIC5hLWljb257XG5cdFx0XG5cdFx0ZmlsbDogJGxpa2VfX2ljb24tLXVubGlrZWQtY29sb3I7XG5cdFx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHIsIHMgKTtcblxuXHR9XG5cblx0LyoqXG5cdCAqIExpa2Ug4oCiIExpa2VkXG5cdCAqL1xuXG5cdFxuXHRcblx0Lm0tbGlrZS0taXMtbGlrZWQgLmEtaWNvbntcblx0XHRcblx0XHRmaWxsOiAkbGlrZV9faWNvbi0tbGlrZWQtY29sb3I7XG5cblx0fVxuXHRcdFxuXHQubS1saWtlLS1pcy1saWtlZCAubS1saWtlX19jb3VudHtcblxuXHRcdGNvbG9yOiAkbGlrZV9fY291bnQtLWxpa2VkLWNvbG9yO1xuXG5cdH1cblxuXHRcdFxuXHQvKipcblx0ICogTGlrZSDigKIgQW5pbWF0aW9uXG5cdCAqL1xuXHRcblx0Lm0tbGlrZS4tLWlzLWFuaW1hdGluZyAuYS1pY29ue1xuXHRcdFxuXHRcdGFuaW1hdGlvbjogaGVhcnRiZWF0O1xuXHRcdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRsaWtlLS1hbmltYXRpb24tdGltaW5nO1xuXHRcdGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAkbGlrZS0tYW5pbWF0aW9uLWR1cmF0aW9uO1xuXHRcdFxuXHRcdEBrZXlmcmFtZXMgaGVhcnRiZWF0XG5cdFx0e1xuXHRcdFx0MCVcblx0XHRcdHtcblx0XHRcdFx0dHJhbnNmb3JtOiBzY2FsZSggMSApO1xuXHRcdFx0fVxuXHRcdFx0MjAlXG5cdFx0XHR7XG5cdFx0XHRcdHRyYW5zZm9ybTogc2NhbGUoICRsaWtlLS1hbmltYXRpb24tLXNjYWxlLWRvd24gKTtcblx0XHRcdH1cblx0XHRcdDUwJVxuXHRcdFx0e1xuXHRcdFx0XHR0cmFuc2Zvcm06IHNjYWxlKCAkbGlrZS0tYW5pbWF0aW9uLS1zY2FsZS11cCApO1xuXHRcdFx0fVxuXHRcdFx0MTAwJVxuXHRcdFx0e1xuXHRcdFx0XHRmaWxsOiAkbGlrZV9faWNvbi0tbGlrZWQtY29sb3I7XG5cdFx0XHRcdHRyYW5zZm9ybTogc2NhbGUoIDEgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC5tLWxpa2UuLS1pcy1hbmltYXRpbmcgLm0tbGlrZV9fY291bnR7XG5cdFx0XG5cdFx0Y29sb3I6ICRsaWtlX19jb3VudC0tbGlrZWQtY29sb3I7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggbGlrZS1jb3VudCApO1xuXG5cdH0iLCJcbi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBMaW5rIExpc3RcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBMaW5rIExpc3Qg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vIEdsb2JhbFxuXHQkbGluay1saXN0X19pY29uX19vZmZzZXRcdFx0OiAycHg7XHRcblxuXHQvLyBDb2xvciBUaGVtZXNcblx0JGxpbmstbGlzdC0tbGlnaHRfX2NvbG9yXHRcdDogYyggZ2xvdy10dXJxICk7XG5cdCRsaW5rLWxpc3QtLWxpZ2h0X19jb2xvci0taG92ZXJcdDogYyggZ2xvdy10dXJxLCBkYXJrMTAgKTtcblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTGluayBMaXN0IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQvKipcblx0ICogR2xvYmFsbHkgYXBwbGllZFxuXHQgKi9cblxuXHRcdC5tLWxpbmstbGlzdF9faXRlbV9fYW5jaG9ye1xuXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBsaW5rICk7XG5cblx0XHR9XG5cblx0XHQvLyBXaGVuIHVzaW5nIGljb25zIHdpdGggbGluayBsaXN0c1xuXHRcdC5tLWxpbmstbGlzdF9faXRlbSAuYS1pY29ue1xuXHRcdFx0XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0b3A6ICRsaW5rLWxpc3RfX2ljb25fX29mZnNldDtcblx0XHRcdEBpbmNsdWRlIHNwYWNlciggbSwgciwgcyApO1xuXG5cdFx0fVxuXG5cblx0LyoqXG5cdCAqIFZhcmlhdGlvbiDigKIgSW5saW5lXG5cdCAqL1xuXG5cdFx0Lm0tbGluay1saXN0LS1pbmxpbmUgLm0tbGluay1saXN0X19pdGVte1xuXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggeHMgKXtcblxuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdH1cblx0XHRcdFxuXHRcdH1cblxuXHRcdC5tLWxpbmstbGlzdC0taW5saW5lIC5tLWxpbmstbGlzdF9faXRlbV9fYW5jaG9ye1xuXHRcdFx0XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeCwgbWwgKTtcblx0XHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgbSApO1xuXG5cdFx0fVxuXG5cblx0LyoqXG5cdCAqIFZhcmlhdGlvbiDigKIgU3RhY2tlZFxuXHQgKi9cblxuXHRcdC5tLWxpbmstbGlzdC0tc3RhY2tlZCAubS1saW5rLWxpc3RfX2l0ZW17XG5cdFx0XHRcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCBiLCB4cyApO1xuXG5cdFx0fVxuXG5cdFx0Lm0tbGluay1saXN0LS1zdGFja2VkIC5tLWxpbmstbGlzdF9faXRlbV9fYW5jaG9ye1xuXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHR9XG5cdFxuXHQvKipcblx0ICogVmFyaWF0aW9uIOKAoiBTaWRlIGJ5IFNpZGVcblx0ICovXG5cdFxuXHRcdC5tLWxpbmstbGlzdC0tc2lkZS1ieS1zaWRle1xuXHRcdFx0XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0bWF4LXdpZHRoOiAzMDBweDtcblxuXHRcdH1cblxuXHRcdC5tLWxpbmstbGlzdC0tc2lkZS1ieS1zaWRlIC5tLWxpbmstbGlzdF9faXRlbXtcblx0XHRcdFxuXHRcdFx0ZmxleDogMSAxIDUwJTtcblx0XHRcdC1tcy1mbGV4OiAwIDAgNTAlOyAvKiBuZWVkZWQgZm9yIElFIDExICovXG5cdFx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIGIsIHMgKTtcblxuXHRcdH1cblxuXHQvKipcblx0ICogQ29sb3IgVGhlbWUg4oCiIExpZ2h0XG5cdCAqL1xuXG5cdFx0Lm0tbGluay1saXN0LS1saWdodCAubS1saW5rLWxpc3RfX2l0ZW1fX2FuY2hvcntcblx0XHRcdFxuXHRcdFx0Y29sb3I6ICRsaW5rLWxpc3QtLWxpZ2h0X19jb2xvcjtcdFxuXHRcdFx0XG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcblx0XHRcdFx0Y29sb3I6ICRsaW5rLWxpc3QtLWxpZ2h0X19jb2xvci0taG92ZXI7XG5cblx0XHRcdH1cblxuXHRcdH0iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogTWVudVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lbnUg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0Ly8gUHJpbWFyeVxuXHQkbWVudS0tcHJpbWFyeV9fY29sb3JcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgMjAgKTtcdFxuXG5cdC8vIFNlY29uZGFyeVxuXHQkbWVudS0tc2Vjb25kYXJ5X19jb2xvclx0XHRcdDogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXHQkbWVudS0tc2Vjb25kYXJ5X19jb2xvci0taG92ZXJcdDogYyggZ2xvdy10dXJxICk7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZW51IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQubS1tZW51e1xuXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdH1cblxuXHQvKipcblx0ICogVmFyaWF0aW9uIOKAoiBQcmltYXJ5XG5cdCAqL1xuXHRcdC5tLW1lbnUtLXByaW1hcnkgLm0tbWVudV9faXRlbV9fYW5jaG9ye1xuXG5cdFx0XHQvLyBDdXN0b20gYm90dG9tIHBhZGRpbmcgdG8gZXh0ZW5kIHRoZSBhbmNob3IgQkdcblx0XHRcdC8vIGFsbCB0aGUgd2F5IHRvIHRoZSBib3R0b20gb2YgdGhlIGNvbnRhaW5lciBzbyB0aGF0XG5cdFx0XHQvLyBpdCBmbG93cyBpbnRvIHRoZSBtZWdhIG1lbnVcblx0XHRcdHBhZGRpbmctYm90dG9tOiA0OHB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0Ly8gU3BlY2lmeSBjb2xvciBoZXJlIGZvciBJRSBjb21wYXRpYmlsaXR5XG5cdFx0XHRjb2xvcjogJG1lbnUtLXByaW1hcnlfX2NvbG9yO1xuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB4LCBtICk7XG5cdFx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHQsIGwgKTtcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxpbmsgKTtcblxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XG5cdFx0XHRcdGNvbG9yOiBjKCBibHVlICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblx0XG5cdC8qKlxuXHQgKiBWYXJpYXRpb24g4oCiIFNlY29uZGFyeVxuXHQgKi9cblx0XHQubS1tZW51LS1zZWNvbmRhcnkgLm0tbWVudV9faXRlbV9fYW5jaG9ye1xuXHRcdFx0XG5cdFx0XHRjb2xvcjogJG1lbnUtLXNlY29uZGFyeV9fY29sb3I7XG5cdFx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIGFsbCwgcyApO1xuXHRcdFx0XG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcblx0XHRcdFx0Y29sb3I6ICRtZW51LS1zZWNvbmRhcnlfX2NvbG9yLS1ob3ZlcjtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Lm0tbWVudS0tc2Vjb25kYXJ5IC5tLW1lbnVfX2l0ZW17XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIHNwYWNlciggbSwgeCwgbSApO1xuXHRcdFx0XG5cdFx0fSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBNZXRhXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWV0YSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdCRtZXRhLS1pbmxpbmVfX2ljb25fX29mZnNldFx0OiAxcHg7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZXRhIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8qKlxuXHQgKiBWYXJpYXRpb24g4oCiIElubGluZVxuXHQgKi9cblx0Lm0tbWV0YS0taW5saW5lIC5tLW1ldGFfX2l0ZW06bm90KDpsYXN0LWNoaWxkKXtcblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHIsIHhzICk7XG5cblx0fVxuXG5cdC5tLW1ldGEtLWlubGluZSAubS1tZXRhX19pY29ue1xuXHRcdFxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6ICRtZXRhLS1pbmxpbmVfX2ljb25fX29mZnNldDtcblxuXHR9IiwiLyoqXG4gKiBOYW1lXHRcdDogTG9hZGVyXG4gKiBEZXNjXHRcdDogSGFuZGxlcyBpbXBvcnRpbmcvbG9hZGluZyBvZiBhbGwgcGFydGlhbCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLlxuICogR3JvdXBcdDogTW9iaWxlIE5hdlxuICogXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4vKipcbiAqICoqKioqKioqKioqKioqKipcbiAqIEZpbGUgSW1wb3J0IExpc3RcbiAqICoqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Ly9cblx0Ly8gQWxsIGZpbGVzIGFyZSBpbXBvcnRlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuXG5cdC8vXG5cdFxuXHRAaW1wb3J0ICdfbS1uYXYtLW1vYmlsZV9faWNvbnMnO1xuXHRAaW1wb3J0ICdfbS1uYXYtLW1vYmlsZSc7IiwiQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiAnbGluZWNvbnMnO1xuXHRzcmM6dXJsKCcuLi9mb250cy9saW5lY29ucy5lb3QnKTtcblx0c3JjOnVybCgnLi4vZm9udHMvbGluZWNvbnMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0XHR1cmwoJy4uL2ZvbnRzL2xpbmVjb25zLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJy4uL2ZvbnRzL2xpbmVjb25zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHR1cmwoJy4uL2ZvbnRzL2xpbmVjb25zLnN2ZyNsaW5lY29ucycpIGZvcm1hdCgnc3ZnJyk7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmljb246YmVmb3JlIHtcblx0Zm9udC1mYW1pbHk6ICdsaW5lY29ucyc7XG5cdHNwZWFrOiBub25lO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luLXJpZ2h0OiAwLjZlbTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG4uaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlMDMyXCI7XG59XG4uaWNvbi1hcnJvdy1sZWZ0LTI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGUwMzRcIjtcbn1cbi5pY29uLWFycm93LWxlZnQtMzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTAzNlwiO1xufVxuLmljb24tYXJyb3ctbGVmdC00OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlMDM4XCI7XG59XG4uaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTAzNVwiO1xufVxuLmljb24tYXJyb3ctcmlnaHQtMjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTAzN1wiO1xufVxuLmljb24tYXJyb3ctcmlnaHQtMzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTAzOVwiO1xufVxuLmljb24tYXJyb3ctcmlnaHQtNDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTAzM1wiO1xufVxuXG4uaWNvbi13b3JsZDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTAyZlwiO1xufVxuIiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1vYmlsZSBOYXZpZ2F0aW9uXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTW9iaWxlIE5hdmlnYXRpb24g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHRcbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNb2JpbGUgTmF2aWdhdGlvbiDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogTW9iaWxlIOKAoiBCYXNlXG4gKi9cblxuLm0tbW9iaWxlLW5hdiB7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogYyggZ3JheXNjYWxlLCA5NSApO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7IC8qIHdlIGNhbid0IHVzZSBmaXhlZCBoZXJlIDooICovXG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDE7XG5cdHdpZHRoOiAzMDBweDtcblx0aGVpZ2h0OiAxMDB2aDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG59XG5cbi8vIFRoaXMgaXMgdXNlZCB0byBjb2xvciB0aGUgc3BhY2UgYmVsb3dcbi8vIHRoZSBpbmZvIHNlY3Rpb24gd2hlbiBcbi8vIFtkZXZpY2VIZWlnaHQgPiBtZW51SGVpZ2h0ID09IHRydWVdXG4vLyBJdCBuZWVkcyB0byBiZSAhaW1wb3J0YW50IHRvIG92ZXJyaWRlIG0tbW9iaWxlX19sZXZlbFxuLm0tbW9iaWxlLW5hdl9fYmcge1xuXG5cdGJhY2tncm91bmQtY29sb3I6IGMoIGdsb3ctbmF2eSApICFpbXBvcnRhbnQ7XG5cbn1cblxuLm0tbW9iaWxlX19sZXZlbCB7XG5cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiBjKCBncmF5c2NhbGUsIDk1ICk7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG5cdHotaW5kZXg6IDE7XG5cbn1cblxuLm0tbW9iaWxlX19sZXZlbDo6YWZ0ZXIge1xuXG5cdHotaW5kZXg6IC0xO1xuXG59XG5cbi5vLXNpdGVfX2NvbnRhaW5lcixcbi5tLW1vYmlsZV9fbGV2ZWwge1xuXG5cdHRyYW5zaXRpb246IGFsbCAwLjVzO1xuXG59XG5cbi8qKlxuICogTW9iaWxlIOKAoiBPdmVybGF5XG4gKi9cblxuLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZV9fb3ZlcmxheSB7XG5cblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcblxufVxuXG4ubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlX19vdmVybGF5Lm0tbW9iaWxlX19sZXZlbDo6YmVmb3JlIHtcblxuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0b3BhY2l0eTogMTtcblxufVxuXG4vKipcbiAqIEN1cnJlbnRseSBPcGVuIExldmVsXG4gKi9cbiAubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlLS1vcGVue1xuXG5cdGhlaWdodDogMTAwJTtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cbiB9XG5cbi8qKlxuICogTW9iaWxlIOKAoiBGaXJzdCBMZXZlbFxuICovXG4ubS1tb2JpbGUtbmF2ID4gLm0tbW9iaWxlX19sZXZlbCxcbi5tLW1vYmlsZS1uYXYgPiAubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlLS1vcGVuLFxuLm0tbW9iaWxlLW5hdi5tLW1vYmlsZS1uYXZfX292ZXJsYXAgPiAubS1tb2JpbGVfX2xldmVsLFxuLm0tbW9iaWxlLW5hdi5tLW1vYmlsZS1uYXZfX292ZXJsYXAgPiAubS1tb2JpbGVfX2xldmVsLm0tbW9iaWxlLS1vcGVuIHtcblxuXHRib3gtc2hhZG93OiBub25lO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXG59XG5cbi8qKlxuICogTW9iaWxlIOKAoiBNZW51IENvdmVyXG4gKi9cbi5tLW1vYmlsZV9fY292ZXIgLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZS0tb3BlbiB7XG5cblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxufVxuXG4ubS1tb2JpbGVfX2NvdmVyIC5tLW1vYmlsZV9fbGV2ZWwubS1tb2JpbGUtLW9wZW4gPiAubS1tb2JpbGVfX3BhbmVsID4gLm0tbW9iaWxlX19wYW5lbF9faXRlbSA+IC5tLW1vYmlsZV9fbGV2ZWw6bm90KC5tLW1vYmlsZS0tb3Blbikge1xuXG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG5cbn1cblxuLyoqXG4gKiBNb2JpbGUg4oCiIGB1bGAgUGFuZWxcbiAqL1xuLm0tbW9iaWxlLW5hdiAubS1tb2JpbGVfX3BhbmVsIHtcblxuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdGJhY2tncm91bmQtY29sb3I6IGMoIGdyYXlzY2FsZSwgOTUgKTtcblxufVxuXG4vKipcbiAqIE1vYmlsZSDigKIgSGVhZGluZ1xuICovXG4ubS1tb2JpbGUtbmF2IGgyIHtcblxuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDFlbTtcblx0Y29sb3I6IHJnYmEoIDAsIDAsIDAsIDAuNykgO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBjKCBncmF5c2NhbGUsIDk1ICk7XG5cbn1cblxuLyoqXG4gKiBNb2JpbGUg4oCiIGBsaWAgUGFuZWwgSXRlbVxuICovXG4ubS1tb2JpbGUtbmF2IC5tLW1vYmlsZV9fcGFuZWwgLm0tbW9iaWxlX19wYW5lbF9faXRlbTo6YmVmb3JlIHtcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAxMHB4O1xuXHR6LWluZGV4OiAwOyBcblx0Y29sb3I6IGMoIGJsdWUgKTtcblx0bGluZS1oZWlnaHQ6IDQ7XG5cbn1cblxuLm0tbW9iaWxlX19wYW5lbF9faXRlbS5tLW1vYmlsZV9fcGFuZWxfX2l0ZW0tLWJsdWV7XG5cdFxuXHRiYWNrZ3JvdW5kLWNvbG9yOiBjKGJsdWUpO1xuXG59XG5cblxuLm0tbW9iaWxlX19wYW5lbF9faXRlbS5tLW1vYmlsZV9fcGFuZWxfX2l0ZW0tLWJsdWUgPiAubS1tb2JpbGVfX3BhbmVsX19pdGVtX19saW5re1xuXHRcblx0Y29sb3I6IGMoIGdsb3ctdHVycSApO1xuXG59XG5cbi8qKlxuICogTW9iaWxlIOKAoiBgYWAgTGluayBJdGVtXG4gKi9cbi5tLW1vYmlsZS1uYXYgLm0tbW9iaWxlX19wYW5lbCAubS1tb2JpbGVfX3BhbmVsX19pdGVtID4gLm0tbW9iaWxlX19wYW5lbF9faXRlbV9fbGluayB7XG5cblx0ZGlzcGxheTogYmxvY2s7XG5cdG91dGxpbmU6IG5vbmU7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcywgYm94LXNoYWRvdyAwLjNzO1xuXG5cdEBpbmNsdWRlIHNwYWNlciggcCwgeCwgbCApO1xuXHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIG0gKTtcblxufVxuXG4vKipcbiAqIE1vYmlsZSDigKIgQmFjayBCdXR0b25cbiAqL1xuLm0tbW9iaWxlX19iYWNrIHtcblxuXHRiYWNrZ3JvdW5kOiBjKCBncmF5c2NhbGUsIDgwICk7XG5cdG91dGxpbmU6IG5vbmU7XG5cdGNvbG9yOiBjKCBncmF5c2NhbGUsIDMwICk7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7XG5cblx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCBtICk7XG5cdEBpbmNsdWRlIHNwYWNlciggcCwgeCwgbWwgKTtcblxufVxuXG4ubS1tb2JpbGVfX2JhY2s6OmFmdGVyIHtcblxuXHRmb250LWZhbWlseTogJ2xpbmVjb25zJztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRjb250ZW50OiBcIlxcZTAzOFwiO1xuXHRsZWZ0OiAxMHB4O1xuXHRmb250LXNpemU6IDFlbTtcblx0Y29sb3I6IHJnYmEoIDAsIDAsIDAsIDAuMyApO1xuXG59XG5cbi5tLW1vYmlsZS1uYXYgLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZV9fb3ZlcmxheSA+IC5tLW1vYmlsZV9fYmFjayxcbi5tLW1vYmlsZS1uYXYgLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZV9fb3ZlcmxheSA+IC5tLW1vYmlsZV9fYmFjazo6YWZ0ZXIge1xuXG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRcbn1cblxuXG4vKipcbiAqIE1vYmlsZSBPcmcgSW5mb1xuICovXG5cbi5tLW1vYmlsZV9faW5mb3tcblx0XG5cdGJhY2tncm91bmQtY29sb3I6IGMoIGdsb3ctbmF2eSApO1xuXHRAaW5jbHVkZSBzcGFjZXIoIHAsIGFsbCwgbCApO1xuXG59XG5cbi5tLW1vYmlsZV9faW5mbyAubS1saW5rLWxpc3RfX2l0ZW0gLmEtaWNvbntcblx0XG5cdHBvc2l0aW9uOiB1bnNldDtcblxufSIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBPcmcgSW5mb1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE9yZyBJbmZvIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0JG9yZy1pbmZvX19pY29uX19maWxsXHQ6IGMoIGdsb3ctdHVycSApO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogT3JnIEluZm8g4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0Lm0tb3JnLWluZm9fX2NvbnRhY3QgLmEtaWNvbntcblx0XHRcblx0XHQvL0hhbmRsZSBvdXIgaWNvbnMgdG8gdGhlIGxlZnQgb2Ygb3VyIGNvbnRhY3QgaW5mb1xuXHRcdGZpbGw6ICRvcmctaW5mb19faWNvbl9fZmlsbDtcblxuXHR9IiwiLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IFBhZ2luYXRpb25cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBQYWdpbmF0aW9uIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbiAkcGFnaW5hdGlvbl9fYXJyb3dfX2NvbG9yICAgICAgICAgIDogYyggcmVkICk7XG4gJHBhZ2luYXRpb25fX2l0ZW1fX3NpemUgICAgICAgICAgICA6IDUwcHg7XG4gJHBhZ2luYXRpb25fX2l0ZW1fX2JnICAgICAgICAgICAgICA6IGMoIGdyYXlzY2FsZSwgOTUgKTtcbiAkcGFnaW5hdGlvbl9faXRlbV9fYmctLWN1cnJlbnQgICAgIDogYyggYmx1ZSApO1xuICRwYWdpbmF0aW9uX19pdGVtX19jb2xvci0tY3VycmVudCAgOiBjKCBncmF5c2NhbGUsIHdoaXRlICk7XG5cbiAvKipcbiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgKiBQYWdpbmF0aW9uIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqL1xuICAgICBcbiAgICAgLm0tcGFnaW5hdGlvbntcblxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87O1xuXG4gICAgIH1cblxuICAgICAubS1wYWdpbmF0aW9uX19pdGVtLFxuICAgICAubS1wYWdpbmF0aW9uX19pdGVtX19saW5re1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAwIDAgJHBhZ2luYXRpb25fX2l0ZW1fX3NpemU7XG4gICAgICAgIGhlaWdodDogJHBhZ2luYXRpb25fX2l0ZW1fX3NpemU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICB9XG4gICAgIFxuXG4gICAgIC8qKlxuICAgICAgKiBXZSB3aWxsIGFwcGx5IHRoZXNlIHRvIGV2ZXJ5IGl0ZW0sIGJ1dCB3ZSBkb24ndCB3YW50IHRoZVxuICAgICAgKiByYW5nZSB0byBhcHBlYXIgY2xpY2thYmxlLCBzbyB3ZSB3aWxsIE5PVCBhcHBseSB0aGVcbiAgICAgICogaG92ZXIgc3R5bGVzIHRvIHRoZSByYW5nZSA6KVxuICAgICAgKi9cbiAgICAgLm0tcGFnaW5hdGlvbl9faXRlbTpub3QoLm0tcGFnaW5hdGlvbl9faXRlbS0tcmFuZ2Upe1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSggLjUgKTtcbiAgICAgICAgfVxuXG4gICAgIH1cbiAgICAgXG4gICAgIC8vIEdpdmUgc3BhY2UgdG8gZXZlcnkgaXRlbSBidXQgdGhlIGxhc3Qgb25lXG4gICAgIC5tLXBhZ2luYXRpb25fX2l0ZW06bm90KDpsYXN0LWNoaWxkKXtcbiAgICAgICAgIEBpbmNsdWRlIHNwYWNlciggbSwgciwgcyApO1xuICAgICB9XG5cbiAgICBcbiAgICAgLm0tcGFnaW5hdGlvbl9faXRlbS0tYXJyb3d7XG4gICAgICAgICBjb2xvcjogJHBhZ2luYXRpb25fX2Fycm93X19jb2xvcjtcbiAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICB9XG5cbiAgICAgXG4gICAgIC5tLXBhZ2luYXRpb25fX2l0ZW0tLW51bWJlcjpub3QoLm0tcGFnaW5hdGlvbl9faXRlbS0tY3VycmVudCksXG4gICAgIC5tLXBhZ2luYXRpb25fX2l0ZW0tLWFycm93e1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uX19pdGVtX19iZztcblxuICAgICB9XG5cbiAgICAgLy8gIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc2V0IG9mIHBhZ2VzXG4gICAgIC5tLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnR7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb25fX2l0ZW1fX2JnLS1jdXJyZW50O1xuICAgICAgICBjb2xvcjogJHBhZ2luYXRpb25fX2l0ZW1fX2NvbG9yLS1jdXJyZW50O1xuXG4gICAgIH1cblxuICAgICBcbiAgICAgLm0tcGFnaW5hdGlvbl9faXRlbS0tcmFuZ2V7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgIH0iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogU2VhcmNoIEJhclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNlYXJjaCBCYXIg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vIEJhc2Vcblx0JHNlYXJjaC1iYXJfX2ljb24tLXdpZHRoOlx0NDBweDtcblxuXHQvLyBMaWdodCBUaGVtZVxuXHQkc2VhcmNoLWJhci0tbGlnaHRfX2ljb24tLWJnLWNvbG9yXHRcdDogYyggcmVkICk7XG5cdCRzZWFyY2gtYmFyLS1saWdodF9faWNvbi0tY29sb3JcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgd2hpdGUgKTtcblx0JHNlYXJjaC1iYXItLWxpZ2h0X19pY29uLS1jb2xvci0taG92ZXJcdDogYyggcmVkLCBkYXJrNSApO1xuXHQkc2VhcmNoLWJhci0tbGlnaHRfX2ljb24tLWNvbG9yLS1mb2N1c1x0OiBjKCByZWQsIGRhcmsxMCApO1xuXG5cdC8vIERhcmsgVGhlbWVcblx0JHNlYXJjaC1iYXItLWRhcmtfX2ljb24tLWJnLWNvbG9yXHRcdDogYyggZ2xvdy1uYXZ5ICk7XG5cdCRzZWFyY2gtYmFyLS1kYXJrX19pY29uLS1jb2xvclx0XHRcdDogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXHQkc2VhcmNoLWJhci0tZGFya19faWNvbi0tY29sb3ItLWhvdmVyXHQ6IGMoIGdsb3ctdHVycSApO1xuXHRcblx0Ly8gTGFyZ2UgVmFyaWF0aW9uXG5cdCRzZWFyY2gtYmFyLS1sYXJnZV9faWNvbi0td2lkdGhcdDogNjBweDtcblx0JHNlYXJjaC1iYXItLWxhcmdlX19pY29uLS1zaXplXHQ6IDIzcHg7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTZWFyY2ggQmFyIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8qKlxuXHQgKiBTZWFyY2ggQmFyIOKAoiBCYXNlXG5cdCAqL1xuXHQubS1zZWFyY2gtYmFyIC5tLWZvcm1fX2dyb3Vwe1xuXHRcdFxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XG5cdH1cblxuXHQubS1zZWFyY2gtYmFyX19zdWJtaXR7XG5cdFx0XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleDogMCAwICRzZWFyY2gtYmFyX19pY29uLS13aWR0aDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0Jjpmb2N1c3tcblx0XHRcdFxuXHRcdFx0b3V0bGluZTpub25lO1xuXG5cdFx0fVxuXG5cdH1cblxuXG5cdC8qKlxuXHQgKiBTZWFyY2ggQmFyIOKAoiBMaWdodCBUaGVtZVxuXHQgKi9cblx0Lm0tc2VhcmNoLWJhci5tLWZvcm0tLWZpZWxkcy0tbGlnaHQgLm0tc2VhcmNoLWJhcl9fc3VibWl0e1xuXHRcdFxuXHRcdGJhY2tncm91bmQ6ICRzZWFyY2gtYmFyLS1saWdodF9faWNvbi0tYmctY29sb3I7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggZm9ybSApO1xuXHRcdFxuXHRcdD4gLmEtaWNvbntcblx0XHRcdFxuXHRcdFx0ZmlsbDogJHNlYXJjaC1iYXItLWxpZ2h0X19pY29uLS1jb2xvcjtcblxuXHRcdH1cblx0XHRcblxuXHRcdCY6aG92ZXJ7XG5cdFx0XHRcblx0XHRcdGJhY2tncm91bmQ6ICRzZWFyY2gtYmFyLS1saWdodF9faWNvbi0tY29sb3ItLWhvdmVyO1xuXG5cdFx0fVxuXG5cdFx0Jjpmb2N1c3tcblx0XHRcdFxuXHRcdFx0YmFja2dyb3VuZDogJHNlYXJjaC1iYXItLWxpZ2h0X19pY29uLS1jb2xvci0tZm9jdXM7XG5cblx0XHR9XG5cblx0fVxuXG5cdC8qKlxuXHQgKiBTZWFyY2ggQmFyIOKAoiBEYXJrIFRoZW1lXG5cdCAqL1xuXHQubS1zZWFyY2gtYmFyLm0tZm9ybS0tZmllbGRzLS1kYXJrIC5tLXNlYXJjaC1iYXJfX3N1Ym1pdHtcblx0XHRcblx0XHRiYWNrZ3JvdW5kOiAkc2VhcmNoLWJhci0tZGFya19faWNvbi0tYmctY29sb3I7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggZm9ybSApO1xuXHRcdFxuXHRcdD4gLmEtaWNvbntcblx0XHRcdFxuXHRcdFx0ZmlsbDogJHNlYXJjaC1iYXItLWRhcmtfX2ljb24tLWNvbG9yO1xuXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XG5cdFx0XHRcdGZpbGw6ICRzZWFyY2gtYmFyLS1kYXJrX19pY29uLS1jb2xvci0taG92ZXI7XG5cblx0XHRcdH1cblxuXHRcdH1cblx0XHRcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWFyY2ggQmFyIOKAoiBMYXJnZVxuXHQgKi9cblx0Lm0tc2VhcmNoLWJhciAuYS1mb3JtLWNvbnRyb2wtLWxhcmdlICsgLm0tc2VhcmNoLWJhcl9fc3VibWl0e1xuXHRcdFxuXHRcdGZsZXg6IDAgMCAkc2VhcmNoLWJhci0tbGFyZ2VfX2ljb24tLXdpZHRoO1xuXHRcdFxuXHRcdC5hLWljb24tc3tcblx0XHRcdFxuXHRcdFx0aGVpZ2h0OiAkc2VhcmNoLWJhci0tbGFyZ2VfX2ljb24tLXNpemU7XG5cdFx0XHR3aWR0aDogJHNlYXJjaC1iYXItLWxhcmdlX19pY29uLS1zaXplO1xuXG5cdFx0fVxuXG5cdH1cbiIsIi8qKlxuICogVHlwZVx0OiBNb2xlY3VsZVxuICogTmFtZVx0OiBTdW1tYXJ5XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3VtbWFyeSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdCRzdW1tYXJ5X19iZy1jb2xvclx0OiBjKCBncmF5c2NhbGUsIDkwICk7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTdW1tYXJ5IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC5tLXN1bW1hcnl7XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHN1bW1hcnlfX2JnLWNvbG9yO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYWxsLCBsbSApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgYiwgbG0gKTtcblxuXHR9XG4iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogVGl0bGUgR3JvdXBcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBUaXRsZSBHcm91cCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdFxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVGl0bGUgR3JvdXAg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdC5tLXRpdGxlLWdyb3Vwe1xuXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdH1cblxuXHQubS10aXRsZS1ncm91cF9fc3Vie1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCB0LCB4cyApO1xuXG5cdH1cblxuXHQubS10aXRsZS1ncm91cCAubS1tZXRhLS1pbmxpbmV7XG5cblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHQsIHhzICk7XG5cdFx0XG5cdH1cblxuXHQubS10aXRsZS1ncm91cF9fYWN0aW9ue1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCB0LCBtICk7XG5cblx0fVxuXG5cdC5tLXRpdGxlLWdyb3VwX19jb250ZW50e1xuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgdCwgcyApO1xuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogTW9sZWN1bGVcbiAqIE5hbWVcdDogVGl0bGUgR3JvdXAgQm94XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVGl0bGUgR3JvdXAgQm94IOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvLyBHbG9iYWxcblx0JHRpdGxlLWdyb3VwLWJveF9fY29sb3JcdFx0XHRcdFx0OiBjKCBncmF5c2NhbGUsIHdoaXRlICk7XG5cdFxuXHQvLyBVcHBlciBTZWN0aW9uXG5cdCR0aXRsZS1ncm91cC1ib3hfX3VwcGVyX19iZ1x0XHRcdFx0OiByZ2JhKCBjKCBncmF5c2NhbGUsIGJsYWNrICksIC42ICk7XG5cdFxuXHQvLyBMb3dlciBTZWN0aW9uXG5cdCR0aXRsZS1ncm91cC1ib3hfX2xvd2VyX19iZ1x0XHRcdFx0OiByZ2JhKCBjKCBnbG93LXJlZCApLCAuNyApO1xuXHQkdGl0bGUtZ3JvdXAtYm94X19sb3dlcl9fYmctLWhvdmVyXHRcdDogcmdiYSggYyggZ2xvdy1yZWQgKSwgLjggKTtcblx0JHRpdGxlLWdyb3VwLWJveF9fbG93ZXJfX2xldHRlci1zcGFjaW5nXHQ6IDNweDtcblx0XG5cdC8vIENhbGwgdG8gYWN0aW9uXG5cdCR0aXRsZS1ncm91cC1ib3hfX2N0YV9fb2Zmc2V0XHRcdFx0OiAyNHB4O1xuXHQkdGl0bGUtZ3JvdXAtYm94X19hcnJvd19fb2Zmc2V0XHRcdFx0OiAwcHg7XG5cdFxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVGl0bGUgR3JvdXAgQm94IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC5tLXRpdGxlLWdyb3VwLS1ib3h7XG5cdFx0XHRcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHotaW5kZXg6IHooYmFzZSk7XG5cdFx0XHRAaW5jbHVkZSBib3JkZXIoIHRpdGxlLWdyb3VwLWJveCApO1xuXG5cblx0fVxuXG5cdC5tLXRpdGxlLWdyb3VwLS1ib3hfX3VwcGVyLFxuXHQubS10aXRsZS1ncm91cC0tYm94X19sb3dlcntcblx0XHRcblx0XHRjb2xvcjogJHRpdGxlLWdyb3VwLWJveF9fY29sb3I7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCBtICk7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB4LCBsIClcblxuXHR9XG5cblxuXHQubS10aXRsZS1ncm91cC0tYm94X19sb3dlcixcblx0Lm0tdGl0bGUtZ3JvdXAtLWJveF9fY3Rhe1xuXHRcdFxuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGJ0biApO1xuXG5cdH1cblxuXG5cdC5tLXRpdGxlLWdyb3VwLS1ib3hfX2N0YXtcblx0XHRcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdCAgICBsZWZ0OiAkdGl0bGUtZ3JvdXAtYm94X19jdGFfX29mZnNldDtcblxuXHR9XG5cblx0Lm0tdGl0bGUtZ3JvdXAtLWJveF9fdXBwZXJ7XG5cdFx0XG5cdFx0YmFja2dyb3VuZDogJHRpdGxlLWdyb3VwLWJveF9fdXBwZXJfX2JnO1xuXG5cdH1cblxuXHQubS10aXRsZS1ncm91cC0tYm94X19sb3dlcntcblx0XHRcblx0XHRiYWNrZ3JvdW5kOiAkdGl0bGUtZ3JvdXAtYm94X19sb3dlcl9fYmc7XHRcblx0XHRsZXR0ZXItc3BhY2luZzogJHRpdGxlLWdyb3VwLWJveF9fbG93ZXJfX2xldHRlci1zcGFjaW5nO1xuXHRcdEBpbmNsdWRlIGJvcmRlciggdGl0bGUtZ3JvdXAtYm94LCB0b3AgKTtcblxuXG5cdFx0Jjpob3ZlcntcblxuXHRcdFx0YmFja2dyb3VuZDogJHRpdGxlLWdyb3VwLWJveF9fbG93ZXJfX2JnLS1ob3ZlcjtcblxuXHRcdH1cblxuXHR9XG5cblx0Lm0tdGl0bGUtZ3JvdXAtLWJveF9fY3Rhe1xuXHRcdFxuXHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGFjdGlvbi1hcnJvdyggJHRpdGxlLWdyb3VwLWJveF9fYXJyb3dfX29mZnNldCApO1xuXHRcdEBpbmNsdWRlIGZvbnQtc2NhbGUoIC0xICk7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCBtICk7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB4LCBsbSApO1xuXG5cdH0iLCIvKipcbiAqIE5hbWVcdFx0OiBMb2FkZXJcbiAqIERlc2NcdFx0OiBIYW5kbGVzIGltcG9ydGluZy9sb2FkaW5nIG9mIGFsbCBwYXJ0aWFsIGZpbGVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gKiBHcm91cFx0OiBPcmdhbmlzbXNcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vXG5cdC8vIEFsbCBmaWxlcyBhcmUgaW1wb3J0ZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLlxuXHQvL1xuXHRcblx0QGltcG9ydCAnX28tYWNjb3JkaW9uJztcblx0QGltcG9ydCAnX28tYWN0aW9uLWJhcic7XG5cdEBpbXBvcnQgJ19vLWFwdGx5Jztcblx0QGltcG9ydCAnX28tY2FsbG91dC1icmVha2VyJztcblx0QGltcG9ydCAnX28tY29sbGVjdGlvbi0tY2FyZHMnO1xuXHRAaW1wb3J0ICdfby1jb2xsZWN0aW9uLS1jb250ZW50Jztcblx0QGltcG9ydCAnX28tY29sbGVjdGlvbi0taW1hZ2VzJztcblx0QGltcG9ydCAnX28tY29sbGVjdGlvbi0taXNsYW5kcyc7XG5cdEBpbXBvcnQgJ19vLWNvbGxlY3Rpb24tLW15LW9sZC1ob3VzZSc7XG5cdEBpbXBvcnQgJ19vLWNvbnZlcnNhdGlvbic7XG5cdEBpbXBvcnQgJ19vLWZhY3RzLWZpZ3VyZXMnO1xuXHRAaW1wb3J0ICdfby1mZWF0dXJlZC10ZXh0LWJyZWFrZXInO1xuXHRAaW1wb3J0ICdfby1maWx0ZXItYmFyJztcblx0QGltcG9ydCAnX28tZm9vdGVyJztcblx0QGltcG9ydCAnX28tZ3JpZC1nYWxsZXJ5Jztcblx0QGltcG9ydCAnX28taGVhZGVyJztcblx0QGltcG9ydCAnX28taGVyby9fYWEtbG9hZGVyJztcblx0QGltcG9ydCAnX28tbGlzdC1vLW1hdGljJztcblx0QGltcG9ydCAnX28tbWVnYS9fYWEtbG9hZGVyJztcblx0QGltcG9ydCAnX28tcG9zdCc7XG5cdEBpbXBvcnQgJ19vLW9yZy1oaWdobGlnaHQnO1xuXHRAaW1wb3J0ICdfby1yZWxhdGVkLWxpbmtzJztcblx0QGltcG9ydCAnX28tc2l0ZSc7XG5cdEBpbXBvcnQgJ19vLXV0aWxpdHktYmFyJzsiLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogQWNjb3JkaW9uXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIFRvZGQgTG91cGVcbiAqL1xuXG4uby1hY2NvcmRpb24ge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG5cbiAgICAuby1hY2NvcmRpb24tLWl0ZW0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgIHRyYW5zaXRpb246IDAuNHM7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZWVlO1xuICAgICAgICBAaW5jbHVkZSBmb250KCdoZWFkaW5nLXdlbHRlcnd0JywgJ21lZGl1bScpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciwgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAmLmFycm93X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgJi5hcnJvd19faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm8tYWNjb3JkaW9uLS1wYW5lbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBAaW5jbHVkZSBmb250KCdib2R5Jyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE4cHg7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udCgnaGVhZGluZy1iYW50YW0nLCAncmVndWxhcicpO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuQGVhY2ggJGNhdGVnb3J5LFxuJGNhdGVnb3J5LWNvbG9yIGluICRpc3N1ZS1jYXQtY29sb3JfY29uZmlnIHtcblxuICAgIEBpbmNsdWRlIHRoZW1lLS1hY2NvcmRpb24oJGNhdGVnb3J5LCAkY2F0ZWdvcnktY29sb3IpO1xuXG59IiwiLyoqXG4gKiBUeXBlXHQ6IE1vbGVjdWxlXG4gKiBOYW1lXHQ6IEFjdGlvbiBCYXJcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBBY3Rpb24gQmFyIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXHRcblx0XG5cdC8vIEJhc2Vcblx0JGFjdGlvbi1iYXItLWJyZWFrcG9pbnRcdDogbTtcblx0JGFjdGlvbi1iYXItLWJnLWNvbG9yXHQ6IGMoIGdyYXlzY2FsZSwgOTUgKTtcblx0XG5cdC8vVGl0bGUgXG5cdC8vIE5vdGUgLSBvZmZzZXRzIGJhc2VkIG9uIGAuYS1wcm9ncmVzcy1iYXJgXG5cdFx0XG5cdC8vIFRoaXMgbnVtYmVyIHNob3VsZCBlcXVhbCB0aGUgcHJvZ3Jlc3MgYmFyIGhlaWdodCBhdCBzbWFsbGlzaCBzaXplXG5cdCRhY3Rpb24tYmFyLS10b3Atb2Zmc2V0LS1zbWFsbGlzaDogNXB4O1xuXG5cdC8vIFRoaXMgbnVtYmVyIHNob3VsZCBlcXVhbCB0aGUgcHJvZ3Jlc3MgYmFyIGhlaWdodCBhdCBsYXJnaXNoIHNpemVcblx0JGFjdGlvbi1iYXJfX3Byb2dyZXNzLS1ib3R0b20tb2Zmc2V0LS1sYXJnaXNoOiAtMTBweDtcblxuXHQvLyBUaXRsZVxuXHQkYWN0aW9uLWJhcl9fdGl0bGUtLWJyZWFrcG9pbnQtLWhpZGVcdFx0OiBtO1xuXHQkYWN0aW9uLWJhcl9fdGl0bGUtLW92ZXJmbG93LXRocmVzaG9sZFx0XHQ6IDI1MHB4O1xuXHQkYWN0aW9uLWJhcl9fdGl0bGUtLWZsZXgtb2Zmc2V0LS1sYXJnaXNoXHQ6IDYwJTtcblxuXHQvLyBJY29uXG5cdCRhY3Rpb24tYmFyX19pY29uLS1maWxsOiBjKGJsdWUpO1xuXHRcblx0Ly8gSG92ZXJcblx0JGFjdGlvbi1iYXItLWhvdmVyX19pY29uLS1vZmZzZXQ6IC0zcHg7XG5cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEFjdGlvbiBCYXIg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cblx0LyoqXG5cdCAqIEFjdGlvbiBCYXIg4oCiIEJhc2Vcblx0ICovXG5cdC5vLWFjdGlvbi1iYXJ7XG5cblx0XHRiYWNrZ3JvdW5kOiAkYWN0aW9uLWJhci0tYmctY29sb3I7XG5cblx0XHQvKipcblx0XHQgKiBEZWZpbmluZyBwYWRkaW5nIGhlcmUgaW5zdGVhZCBvZiBpbiBzcGFjZXIoKSBiZWNhdXNlIG9mIHRoZSB1bmlxdWUgYW5kIHNwZWNpZmljIHZhbHVlLlxuXHRcdCAqIFRoaXMgbnVtYmVyIHNob3VsZCBlcXVhbCB0aGUgcHJvZ3Jlc3MgYmFyIGhlaWdodCBhdCBsYXJnaXNoIHNpemUuXG5cdFx0ICovXG5cblx0XHRwYWRkaW5nLXRvcDogJGFjdGlvbi1iYXItLXRvcC1vZmZzZXQtLXNtYWxsaXNoO1xuXG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDowO1xuXG5cdFx0Ly8gT3VyIHN0YXJ0aW5nIHRyYW5zZm9ybSBwb2ludCAoaGlkZGVuIGFib3ZlIHRoZSBzY3JlZW4pXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMHB4LCAtODBweCwgMHB4KTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR6LWluZGV4OiB6KCBhYm92ZS1uYXYgKTtcblx0XHRcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBhY3Rpb24tYmFyICk7XG5cdFx0XG5cdFx0Ly8gVGhlIG1pbiBicmVha3BvaW50IGZvciBsYXJnaXNoIHN0eWxlc1xuXHRcdC8vIFRoaXMgaXMgd2hlcmUgdGhlIHByb2dyZXNzIGJhciBjaGFuZ2VzIGZyb20gYm90dG9tIHRvIHRvcFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRhY3Rpb24tYmFyLS1icmVha3BvaW50ICl7XHRcblx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdH1cblxuXHR9XG5cdFxuXHRcblx0Lm8tYWN0aW9uLWJhcl9fY29udGFpbmVye1xuXHRcdFxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRAaW5jbHVkZSBjb250YWluZXIoKTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIG0gKTtcblx0XHRcblxuXHR9XG5cdFxuXHQvKipcblx0ICogQWN0aW9uIEJhciDigKIgVmlzaWJsZVxuXHQgKlxuXHQgKiBDbGFzcyBhZGRlZCB2aWEgSlNcblx0ICovXG5cdC5vLWFjdGlvbi1iYXItLXZpc2libGV7XG5cdFx0XG5cdFx0Ly8gUHVsbCB0aGUgYWN0aW9uIGJhciBkb3duICYgc3RpY2sgdG8gdG9wIG9mIHNjcmVlblx0XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMHB4LCAwcHgsIDBweCk7XG5cblx0fVxuXG5cdC8qKlxuXHQgKiBBY3Rpb24gQmFyIOKAoiBCYWNrXG5cdCAqL1xuXHQuby1hY3Rpb24tYmFyX19iYWNre1xuXHRcdFxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblxuXHR9XG5cdFxuXHQvLyBIb3ZlciBTdGF0ZVxuXHQuby1hY3Rpb24tYmFyX19iYWNrOmhvdmVyIC5vLWFjdGlvbi1iYXJfX2JhY2tfX2ljb257XG5cdFx0XG5cdFx0Ly8gT25seSBhcHBseSBob3ZlciBzdGF0ZXMgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggcyApe1xuXHRcdFxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAkYWN0aW9uLWJhci0taG92ZXJfX2ljb24tLW9mZnNldCApIHJvdGF0ZSggOTBkZWcgKTtcblx0XHR9XG5cblx0fVxuXG5cdC5vLWFjdGlvbi1iYXJfX2JhY2tfX2ljb257XG5cblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0ZmlsbDogJGFjdGlvbi1iYXJfX2ljb24tLWZpbGw7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSByb3RhdGUoOTBkZWcpIDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XG5cblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHIsIG0gKTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBsaW5rICk7XG5cdH1cblxuXHQuby1hY3Rpb24tYmFyX19iYWNrX190ZXh0e1xuXHRcdFxuXHRcdGRpc3BsYXk6bm9uZTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XG5cdFx0Ly8gSGlkZSB0aGUgdGV4dCBiZWxvdyB0aGlzIGJyZWFrcG9pbnRcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHhzKXtcblxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0fVxuXG5cdH1cblx0XG5cdFxuXHQvKipcblx0ICogQWN0aW9uIEJhciDigKIgVGl0bGVcblx0ICovXG5cdC5vLWFjdGlvbi1iYXJfX3RpdGxle1xuXHRcdFxuXHRcdC8vIE1ha2Ugc3VyZSB0aGUgdGl0bGUgdGFrZXMgdXAgbm8gc3BhY2Ugb24gc21hbGxpc2ggZGV2aWNlc1xuXHRcdGZsZXg6IDAgMCAwcHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdHdpZHRoOiAkYWN0aW9uLWJhci0tdGl0bGUtLW92ZXJmbG93LXRocmVzaG9sZDtcblx0XHRcblx0XHQvKipcblx0XHQgKiBXZSB3YW50IHRvIHZpc3VhbGx5IGhpZGUgdGhlIHRpdGxlIG9uIHNtYWxsaXNoIGRldmljZXNcblx0XHQgKiBidXQgd2UgZG8gbm90IHdhbnQgdG8gZGlzcGxheSBub25lLCBiZWNhdXNlIHdlIHN0aWxsIHdhbnRcblx0XHQgKiB0aGUgdGl0bGUgdG8gdGFrZSB1cCBzcGFjZSBpbiBvcmRlciB0byBrZWVwIHNwYWNpbmcgY29ycmVjdFxuXHRcdCAqIGZvciB0aGUgb3RoZXIgaXRlbXMuXG5cdFx0ICovXG5cdFx0QGluY2x1ZGUgb3BhY2l0eSggMCApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeCwgbSApO1xuXHRcdFx0XG5cdFx0Ly8gSGlkZSB0aGUgYWN0aW9uIGJhciBiZWxvdyB0aGlzIHBvaW50XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGFjdGlvbi1iYXJfX3RpdGxlLS1icmVha3BvaW50LS1oaWRlICl7XG5cdFx0XHRcblx0XHRcdC8vIFNldCBkZWZhdWx0IGxhcmdpc2ggYmVoYXZpb3IgJiBzcGFjaW5nXG5cdFx0XHRmbGV4OiAwIDAgJGFjdGlvbi1iYXJfX3RpdGxlLS1mbGV4LW9mZnNldC0tbGFyZ2lzaDtcblx0XHRcdEBpbmNsdWRlIG9wYWNpdHkoIDEgKTtcblxuXHRcdH1cblxuXHR9XG5cdFxuXHQvKipcblx0ICogQWN0aW9uIEJhciDigKIgQWN0aW9uc1xuXHQgKlxuXHQgKiBUaGlzIHdyYXBwZXIgY29udGFpbnMgbGlraW5nIGFuZCBzaGFyaW5nXG5cdCAqL1xuXHQuby1hY3Rpb24tYmFyX19hY3Rpb25ze1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRAZXh0ZW5kICVmbGV4LS1jZW50ZXItLWFsbDtcblxuXHR9XG5cblx0XG5cblx0XG5cdC8qKlxuXHQgKiBBY3Rpb24gQmFyIOKAoiBMaWtlc1xuXHQgKi9cblx0XG5cdC5vLWFjdGlvbi1iYXIgLm0tbGlrZXtcblxuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgciwgcyApO1xuXG5cdH1cblxuXHRcblx0LyoqXG5cdCAqIEFjdGlvbiBCYXIg4oCiIFByb2dyZXNzXG5cdCAqL1xuXHRcblx0Lm8tYWN0aW9uLWJhciAuYS1wcm9ncmVzc3tcblx0XHRcblx0XHQvLyBTdGlja3MgdG8gdG9wIG9uIHNtYWxsaXNoIGRldmljZXNcblx0XHRib3R0b206IHVuc2V0O1xuXHRcdHRvcDowO1xuXHRcdFxuXHRcdC8vIFN0aWNrcyBiZWxvdyBgLm8tYWN0aW9uLWJhcmAgb24gbGFyZ2lzaCBkZXZpY2VzXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGFjdGlvbi1iYXItLWJyZWFrcG9pbnQgKXtcblx0XHRcdC8vIFRoZSBoZWlnaHQgb2YgdGhlIHByb2dyZXNzIGJhclxuXHRcdFx0Ym90dG9tOiAkYWN0aW9uLWJhcl9fcHJvZ3Jlc3MtLWJvdHRvbS1vZmZzZXQtLWxhcmdpc2g7XG5cdFx0XHR0b3A6IHVuc2V0O1xuXHRcdH1cblxuXHR9IiwiLm8tYXB0bHkge1xuXG5cdCBAaW5jbHVkZSBzcGFjZXIoIHAsIGIsIDJ4bCApO1xuXG5cdC5jX2F3cF93cmFwcGVyIHtcblxuXHRcdCBwYWRkaW5nOiAwJTtcblxuXHR9XG5cbn1cblxuLm8tYXB0bHlfX2NvbnRhaW5lciB7XG5cblx0IEBpbmNsdWRlIGNvbnRhaW5lciggcG9zdCApO1xuXG59XG4iLCIuby1jYWxsb3V0LWJyZWFrZXIge1xuICAgIC5mZWF0dXJlZC12aWRlbyB7IFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICAgIHBhZGRpbmc6IDg1cHggMTVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICB3aWR0aDogOTl2dztcbiAgICAgIGxlZnQ6IGNhbGMoLTUwdncgKyA1MCUpO1xuICB9IFxuXG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0peyBcbiAgICAuZmVhdHVyZWQtdmlkZW8geyBcbiAgICAgIHBhZGRpbmc6IDYwcHg7XG4gICAgfSBcbiAgfSAgICAgXG5cbiAgLmZlYXR1cmVkLXZpZGVvOmFmdGVyIHsgXG4gICAgICBjb250ZW50OiBcIlwiOyBcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG4gICAgICB0b3A6IDA7IFxuICAgICAgcmlnaHQ6IDA7IFxuICAgICAgYm90dG9tOiAwOyBcbiAgICAgIGxlZnQ6IDA7IFxuICAgICAgZGlzcGxheTogZmxleDsgXG4gICAgICB3aWR0aDogMTAwJTsgXG4gICAgICBoZWlnaHQ6IDEwMCU7IFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvMC9fMjAxOS9pbWFnZXMvZ3JhcGhpY3MvYmFja2dyb3VuZC1ncmF5Tm9pc2UucG5nXCIpOyAgICAgXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcDsgXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IFxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQteDogbm8tcmVwZWF0OyBcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0LXk6IG5vLXJlcGVhdDtcbiAgfSBcblxuICAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIHsgXG4gICAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgXG4gICAgICBtYXJnaW46IGF1dG87XG4gIH0gXG5cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSl7IFxuICAgIC5mZWF0dXJlZC12aWRlbyAuZmVhdHVyZWQtdmlkZW9fX2lubmVyICB7IFxuICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7IFxuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfSBcblxuICAgIC5mZWF0dXJlZC12aWRlbyAuZmVhdHVyZWQtdmlkZW9fX2lubmVyLXJldmVyc2UgIHsgXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgfSBcbiAgfSAgICAgXG5cbiAgLmZlYXR1cmVkLXZpZGVvX19pbm5lciAuZmVhdHVyZWQtdmlkZW9fX2xlZnQtY29udGFpbmVyICB7IFxuICAgICAgei1pbmRleDogMTsgXG4gICAgICB3aWR0aDogMTAwJTtcbiAgfSBcblxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXsgXG4gICAgLmZlYXR1cmVkLXZpZGVvIC5mZWF0dXJlZC12aWRlb19fbGVmdC1jb250YWluZXIgIHsgXG4gICAgICB3aWR0aDogNDUlOyBcbiAgICAgIHBhZGRpbmc6IDA7IFxuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH0gXG4gIH0gICAgIFxuXG4gIC5mZWF0dXJlZC12aWRlb19faW5uZXIgLmZlYXR1cmVkLXZpZGVvX19jb250ZW50ICB7IFxuICAgICAgei1pbmRleDogMTA7IFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICAgIGNvbG9yOiAjMTcxYjQ4OyBcbiAgICAgIHdpZHRoOiAxMDAlOyBcbiAgICAgIHBhZGRpbmctdG9wOiAzMHB4OyBcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICB9IFxuXG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0peyBcbiAgICAuZmVhdHVyZWQtdmlkZW8gLmZlYXR1cmVkLXZpZGVvX19jb250ZW50ICB7IFxuICAgICAgd2lkdGg6ICAzNSU7XG4gICAgICBwYWRkaW5nOiAgMDsgXG4gICAgICBtYXJnaW46ICBhdXRvO1xuICAgIH0gXG4gIH0gICAgIFxuXG4gIC52aWRlby1jb250YWluZXIgeyBcbiAgICAgIHdpZHRoOiAxMDAlOyBcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgICBoZWlnaHQ6IDEwMCU7IFxuICAgICAgbWFyZ2luOiAxNXB4IDA7IFxuICAgICAgbWluLWhlaWdodDogNDB2dztcbiAgfSBcblxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgIC52aWRlby1jb250YWluZXIgeyBcbiAgICAgIG1pbi1oZWlnaHQ6IDM4NXB4O1xuICAgIH0gXG4gIH0gICAgIFxuXG4gIC5jYW1wYWlnbi1sb2NrdXAgeyBcbiAgICAgIGRpc3BsYXk6IGZsZXg7IFxuICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyBcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9IFxuXG4gIC52aWRlby1jb250YWluZXIgPiBpZnJhbWUgIHsgXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IFxuICAgICAgdG9wOiAwOyBcbiAgICAgIGJvdHRvbTogMDsgXG4gICAgICBsZWZ0OiAwOyBcbiAgICAgIHdpZHRoOiAxMDAlOyBcbiAgICAgIGhlaWdodDogMTAwJTsgXG4gICAgICBib3JkZXI6IDA7IFxuICAgICAgbWluLWhlaWdodDogNDB2dztcbiAgfSBcblxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgIC52aWRlby1jb250YWluZXIgPiBpZnJhbWUgIHsgXG4gICAgICBtaW4taGVpZ2h0OiAzODVweDtcbiAgICB9IFxuICB9ICAgICBcblxuXG4gIC5jYW1wYWlnbi1sb2NrdXBfX2tpY2tlciB7IFxuICAgICAgZm9udC1mYW1pbHk6IENoYW1waW9uIFdlbHRlcnd0IEEsQ2hhbXBpb24gV2VsdGVyd3QgQixDaGFtcGlvbiBIVEYtV2VsdGVyd2VpZ2h0LHNhbnMtc2VyaWY7IFxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgXG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7IFxuICAgICAgZm9udC1zaXplOiAuODc1cmVtOyBcbiAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7IFxuICAgICAgbGluZS1oZWlnaHQ6IDE7IFxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfSBcblxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXsgXG4gICAgLmNhbXBhaWduLWxvY2t1cF9fa2lja2VyIHsgXG4gICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICB9IFxuICB9ICAgICBcblxuICAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIC5mZWF0dXJlZC12aWRlb19fY29udGVudCAuY2FtcGFpZ24tbG9ja3VwX19raWNrZXIgIHsgXG4gICAgICBmb250LXNpemU6IHJlbSgxNCk7IFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsgXG4gICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgfSBcblxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgIC5mZWF0dXJlZC12aWRlb19faW5uZXIgLmZlYXR1cmVkLXZpZGVvX19jb250ZW50IC5jYW1wYWlnbi1sb2NrdXBfX2tpY2tlciAgeyBcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE3KTsgXG4gICAgICBsZXR0ZXItc3BhY2luZzogMi40M3B4OyBcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIH0gXG4gIH0gICAgIFxuXG5cbiAgLmNhbXBhaWduLWxvY2t1cF9faGVhZGluZyB7IFxuICAgICAgdGV4dC10cmFuc2Zvcm06ICB1cHBlcmNhc2U7IFxuICAgICAgd29yZC13cmFwOiAgYnJlYWstd29yZDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk5vdG8gU2VyaWZcIixIZWFkaW5nIEEsSGVhZGluZyBCLENocm9uaWNsZSBEaXNwbGF5IEEsQ2hyb25pY2xlIERpc3BsYXkgQixzZXJpZjsgXG4gICAgICBmb250LXdlaWdodDogOTAwOyBcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfSBcblxuICAuY2FtcGFpZ24tbG9ja3VwX19oZWFkaW5nLS1tZWRpdW0geyBcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk5vdG8gU2VyaWZcIixIZWFkaW5nIEEsSGVhZGluZyBCLENocm9uaWNsZSBEaXNwbGF5IEEsQ2hyb25pY2xlIERpc3BsYXkgQixzZXJpZjsgXG4gICAgICBmb250LXdlaWdodDogNzAwOyBcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgXG4gICAgICBmb250LXNpemU6IDEuNzVyZW07IFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMjsgXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9IFxuXG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0peyBcbiAgICAuY2FtcGFpZ24tbG9ja3VwX19oZWFkaW5nLS1tZWRpdW0geyBcbiAgICAgIGZvbnQtc2l6ZTogMi44MTI1cmVtO1xuICAgIH0gXG4gIH0gICAgIFxuXG4gIC5mZWF0dXJlZC12aWRlb19faW5uZXIgLmZlYXR1cmVkLXZpZGVvX19jb250ZW50IC5jYW1wYWlnbi1sb2NrdXBfX2hlYWRpbmcgIHsgXG4gICAgICBmb250LXNpemU6IHJlbSgyNSk7IFxuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7IFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IC45NHB4OyBcbiAgICAgIG1hcmdpbjogMzBweCAwO1xuICB9IFxuXG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKXsgXG4gICAgLmZlYXR1cmVkLXZpZGVvX19pbm5lciAuZmVhdHVyZWQtdmlkZW9fX2NvbnRlbnQgLmNhbXBhaWduLWxvY2t1cF9faGVhZGluZyAgeyBcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDQ1KTsgXG4gICAgICBsaW5lLWhlaWdodDogNTVweDsgXG4gICAgICBsZXR0ZXItc3BhY2luZzogMS43NXB4O1xuICAgIH0gXG4gIH0gICAgIFxuXG4gIC5jYW1wYWlnbi1sb2NrdXBfX2JvZHkgeyBcbiAgICAgIGZvbnQtZmFtaWx5OiBXb3JrIFNhbnMsc2Fucy1zZXJpZjsgXG4gICAgICBmb250LXdlaWdodDogNDAwOyBcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfSBcblxuICAuZmVhdHVyZWQtdmlkZW9fX2lubmVyIC5mZWF0dXJlZC12aWRlb19fY29udGVudCAuY2FtcGFpZ24tbG9ja3VwX19ib2R5ICB7IFxuICAgICAgZm9udC1zaXplOiByZW0oMTYpOyBcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OyBcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuNnB4O1xuICB9IFxuXG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKXsgXG4gICAgLmZlYXR1cmVkLXZpZGVvX19pbm5lciAuZmVhdHVyZWQtdmlkZW9fX2NvbnRlbnQgLmNhbXBhaWduLWxvY2t1cF9fYm9keSAgeyBcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTsgXG4gICAgICBsaW5lLWhlaWdodDogMzZweDsgXG4gICAgICBsZXR0ZXItc3BhY2luZzogLjhweDtcbiAgICB9XG4gIH1cblxuICAuZmVhdHVyZWQtdmlkZW8gLmEtYnRuLS1zZWNvbmRhcnkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5mZWF0dXJlZC1jYWxsb3V0X19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQGVhY2ggJGNhdGVnb3J5LFxuJGNhdGVnb3J5LWNvbG9yIGluICRpc3N1ZS1jYXQtY29sb3JfY29uZmlnIHtcblxuICAgIEBpbmNsdWRlIHRoZW1lLS1jYWxsb3V0LWJyZWFrZXIoJGNhdGVnb3J5LCAkY2F0ZWdvcnktY29sb3IpO1xuXG59IiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IENvbGxlY3Rpb24g4oCiIENhcmRzXG4gKiBEZXNjIDogUHJvcGVybHkgZGlzcGxheSBhIGNvbGxlY3Rpb24gb3IgXCJncmlkXCIgb2YgY2FyZHNcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2xsZWN0aW9uIOKAoiBDYXJkcyDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0JGNvbGxlY3Rpb24tLWNhcmRzX19icmVha3BvaW50XHQ6IHhsO1xuXHQkY29sbGVjdGlvbi0tY2FyZHNfX2l0ZW0tb2Zmc2V0XHQ6IDE2cHg7XG5cdFxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29sbGVjdGlvbiDigKIgQ2FyZHMg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8qKlxuXHQgKiBDb2xsZWN0aW9uIOKAoiBDYXJkcyDigKIgQmFzZVxuXHQgKi9cblx0Lm8tY29sbGVjdGlvbi0tY2FyZHN7XG5cdFx0XG5cdFx0Ly8gRG9uJ3QgbGV0IGNhcmRzIHdyYXAgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNvbGxlY3Rpb24tLWNhcmRzX19icmVha3BvaW50ICl7XG5cblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XG5cdFx0fVxuXG5cdH1cblx0XG5cdFxuXHQvKipcblx0ICogQ29sbGVjdGlvbiDigKIgQ2FyZHMg4oCiIEVhY2ggQ2FyZCBpdGVtXG5cdCAqL1xuXHQuby1jb2xsZWN0aW9uLS1jYXJkc19faXRlbXtcblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIGIsIGwgKTtcblx0XHRcblx0XHQvLyBBcHBseSB0byBjb2xsZWN0aW9uIGl0ZW1zIGFib3ZlIGEgZGVmaW5lZCBzY3JlZW4gc2l6ZVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRjb2xsZWN0aW9uLS1jYXJkc19fYnJlYWtwb2ludCApe1xuXHRcdFx0XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFdlIGhhdmUgdG8gZGVmaW5lIGEgY3VzdG9tIG9mZnNldCBoZXJlIHRvIHByb3Blcmx5IGFsaWduIG91clxuXHRcdFx0ICogY2FyZHMgd2l0aGluIG91ciBncmlkLiBJZiBDYXJkIHNpemVzIGNoYW5nZSwgdGhlIG9mZnNldCB3aWxsXG5cdFx0XHQgKiBhbHNvIGhhdmUgdG8gY2hhbmdlLlxuXHRcdFx0ICovXG5cdCAgXHRcdGZsZXgtYmFzaXM6IGNhbGMoIDUwJSAtICN7JGNvbGxlY3Rpb24tLWNhcmRzX19pdGVtLW9mZnNldH0gKTsgICBcblx0ICBcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ICBcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdFx0XG5cdFx0XHQvLyBBcHBseSBjZXJ0YWluIHN0eWxlcyB0byBcIm9kZFwiIG51bWJlcmVkIGl0ZW1zIHdpdGhpbiBvdXIgY29sbGVjdGlvblxuXHRcdFx0JjpudGgtY2hpbGQoIG9kZCApe1xuXHRcdFx0XHRcblx0XHRcdFx0Ly8gR2l2ZSB0aGVtIHJpZ2h0IG1hcmdpblx0XHRcdFx0XG5cdFx0XHRcdEBpbmNsdWRlIHNwYWNlciggbSwgciwgbCApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fSIsIi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBDb2xsZWN0aW9uIOKAoiBDb250ZW50XG4gKiBEZXNjIDogUHJvcGVybHkgZGlzcGxheSBhIGNvbGxlY3Rpb24gb3IgXCJncmlkXCIgb2YgY29udGVudFxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBVREFZVE9OXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2xsZWN0aW9uIOKAoiBDb250ZW50IOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQkY29sbGVjdGlvbi0tY29udGVudF9fYnJlYWtwb2ludFx0OiB4bDtcblx0JGNvbGxlY3Rpb24tLWNvbnRlbnRfX2l0ZW0tb2Zmc2V0XHQ6IDE2cHg7XG5cdCRjb2xsZWN0aW9uLS1jb250ZW50X19pdGVtLS1md19fYmdcdDogYyggZ3JheXNjYWxlLCA4MCApO1xuXHRcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbGxlY3Rpb24g4oCiIENvbnRlbnQg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8qKlxuXHQgKiBDb2xsZWN0aW9uIOKAoiBDb250ZW50IOKAoiBCYXNlXG5cdCAqL1xuXHQuby1jb2xsZWN0aW9uLS1jb250ZW50e1xuXHRcdFxuXHRcdC8vIERvbid0IGxldCBjb250ZW50IHdyYXAgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNvbGxlY3Rpb24tLWNvbnRlbnRfX2JyZWFrcG9pbnQgKXtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcblx0XHR9XG5cblx0fVxuXHRcblx0XG5cdC8qKlxuXHQgKiBDb2xsZWN0aW9uIOKAoiBDb250ZW50IOKAoiBFYWNoIENvbnRlbnQgaXRlbVxuXHQgKi9cblx0Lm8tY29sbGVjdGlvbi0tY29udGVudF9faXRlbXtcblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIGIsIGwgKTtcblx0XHRcblx0XHQvLyBBcHBseSB0byBjb2xsZWN0aW9uIGl0ZW1zIGFib3ZlIGEgZGVmaW5lZCBzY3JlZW4gc2l6ZVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRjb2xsZWN0aW9uLS1jb250ZW50X19icmVha3BvaW50ICl7XG5cdFx0XHRcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogV2UgaGF2ZSB0byBkZWZpbmUgYSBjdXN0b20gb2Zmc2V0IGhlcmUgdG8gcHJvcGVybHkgYWxpZ24gb3VyXG5cdFx0XHQgKiBjb250ZW50IHdpdGhpbiBvdXIgZ3JpZC4gSWYgQ29udGVudCBzaXplcyBjaGFuZ2UsIHRoZSBvZmZzZXQgd2lsbFxuXHRcdFx0ICogYWxzbyBoYXZlIHRvIGNoYW5nZS5cblx0XHRcdCAqL1xuXHQgIFx0XHRmbGV4LWJhc2lzOiBjYWxjKCA1MCUgLSAjeyRjb2xsZWN0aW9uLS1jb250ZW50X19pdGVtLW9mZnNldH0gKTsgICBcblx0ICBcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ICBcdFx0XG5cdFx0XHRcdFx0XG5cdFx0XHQvLyBBcHBseSBjZXJ0YWluIHN0eWxlcyB0byBcIm9kZFwiIG51bWJlcmVkIGl0ZW1zIHdpdGhpbiBvdXIgY29sbGVjdGlvblxuXHRcdFx0JjpudGgtY2hpbGQoIG9kZCApe1xuXHRcdFx0XHRcblx0XHRcdFx0Ly8gR2l2ZSB0aGVtIHJpZ2h0IG1hcmdpblx0XHRcdFx0XG5cdFx0XHRcdEBpbmNsdWRlIHNwYWNlciggbSwgciwgbCApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cdC5vLWNvbGxlY3Rpb24tLWNvbnRlbnRfX2l0ZW0tLWZ3IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sbGVjdGlvbi0tY29udGVudF9faXRlbS0tZndfX2JnO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgYiwgbCApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgdCwgbCApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYiwgbCApO1xuXG5cdH1cblxuXHQvKipcblx0KiBDb2xsZWN0aW9uIENvbnRlbnQgRWFjaCBDb250ZW50IEl0ZW0gQ29udGVudFxuXHQqL1xuXHQuby1jb2xsZWN0aW9uLS1jb250ZW50X19pdGVtLS1jb250ZW50IHtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHQsIGwgKTtcblxuXHR9XG5cblx0Ly8gRGVmYXVsdCBCb2R5IENvcHlcblx0Lm8tY29sbGVjdGlvbi0tY29udGVudF9faXRlbSBwe1xuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgYiwgbCApO1xuXG5cdH1cblxuXHRcbiIsIi5vLWNvbGxlY3Rpb24tLWltYWdlc3tcblx0XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtd3JhcDogd3JhcDtcblxufVxuXG4uby1jb2xsZWN0aW9uLS1pbWFnZXMtLWNlbnRlcntcblx0XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XG59XG5cbi5vLWNvbGxlY3Rpb24tLWltYWdlcyA+ICp7XG5cblx0QGluY2x1ZGUgc3BhY2VyKCBwLCBhbGwsIGwgKTtcblxufVxuXG5cblxuLm8tY29sbGVjdGlvbi0taW1hZ2VzLS0zID4gKntcblx0XG5cdGZsZXg6IDEgMCAxMDAlO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggcyApe1xuXG5cdFx0ZmxleDogMSAwIDUwJTtcblx0XHRtYXgtd2lkdGg6IDUwJTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcblx0XHRcblx0XHRmbGV4OiAxIDAgMzMuMzMlO1xuXHRcdG1heC13aWR0aDogMzMuMzMlO1xuXG5cdH1cblxufVxuXG5cblxuLm8tY29sbGVjdGlvbi0taW1hZ2VzLS00e1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm8tY29sbGVjdGlvbi0taW1hZ2VzLS00ID4gKntcblx0XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG0gKXtcblx0XHRmbGV4OiAwIDAgMzMuMzMlO1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuXHRcblx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1xuXG5cdCBcdGZsZXg6IDEgMCAyNSU7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG5cbn0iLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogQ29sbGVjdGlvbiDigKIgSXNsYW5kc1xuICogRGVzYyA6IEdyb3VwIHRvZ2V0aGVyIGlzbGFuZHMgYW5kIGRpc3BsYXkgdGhlbSBpbiBhIHVuaXF1ZSB3YXlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2xsZWN0aW9uIOKAoiBJc2xhbmRzIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQkY29sbGVjdGlvbi0taXNsYW5kcy0tYnJlYWtwb2ludFx0OiBtO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2xsZWN0aW9uIOKAoiBJc2xhbmRzIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdC8qKlxuXHQgKiBDb2xsZWN0aW9uIOKAoiBJc2xhbmRzIOKAoiBCYXNlXG5cdCAqL1xuXHQuby1jb2xsZWN0aW9uLS1pc2xhbmRze1xuXHRcdFxuXHRcdC8vIEhhbmRsZSBpc2xhbmRzIGFib3ZlIGEgZGVmaW5lZCBzY3JlZW4gc2l6ZVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRjb2xsZWN0aW9uLS1pc2xhbmRzLS1icmVha3BvaW50ICl7XG5cdFx0XHRcblx0XHRcdGRpc3BsYXk6ZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRmbGV4LXdyYXA6IG5vLXdyYXA7XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIGJvcmRlciggaXNsYW5kLS1mZWF0dXJlLCB0b3AgKTtcblxuXHRcdH1cblxuXHR9XG5cdFxuXHQvKipcblx0ICogQ29sbGVjdGlvbiDigKIgSXNsYW5kcyDigKIgRWFjaCBJc2xhbmQgSXRlbVxuXHQgKi9cblxuXHQuby1jb2xsZWN0aW9uLS1pc2xhbmRzIC5tLWlzbGFuZHtcblx0XHRcblx0XHQvKipcblx0XHQgKiBQdWxsIGluIG91ciBhcnRpY2xlIGJvcmRlciB3aXRoIGEgY3VzdG9tIGNvbG9yIHdoZW4gaXNsYW5kcyBjb2xsYXBzZVxuXHRcdCAqIGRvd24gdG8gZnVsbC13aWR0aCBibG9ja3MuXG5cdFx0ICovXG5cdFx0QGluY2x1ZGUgYm9yZGVyKCBhcnRpY2xlLCBib3R0b20sIG1hcF9nZXQoICRxdWlja2x5LWNhdC1jb2xvcl9jb25maWcsIGZlYXR1cmUgKSApO1xuXHRcdFxuXHRcdC8qKlxuXHRcdCAqIEFib3ZlIGEgZGVmaW5lZCBzY3JlZW4gc2l6ZSwgd2Ugd2FudCB0byB1bnNldCB0b3AgYW5kIGJvdHRvbSBib3JkZXJzXG5cdFx0ICogc28gdGhlIGFib3ZlIHJ1bGUgdGFrZXMgZWZmZWN0IGFuZCBpcyBub3QgYWZmZWN0ZWQgYnkgYW55IG90aGVyIGJvcmRlclxuXHRcdCAqIGRlZmluaXRpb25zLlxuXHRcdCAqL1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNvbGxlY3Rpb24tLWlzbGFuZHMtLWJyZWFrcG9pbnQgKXtcblx0XHRcdFxuXHRcdFx0Ym9yZGVyLWJvdHRvbTogdW5zZXQ7XG5cdFx0XHRib3JkZXItdG9wOiB1bnNldDtcblxuXHRcdH1cblxuXHR9XG5cdFxuXHQvKipcblx0ICogQ29sbGVjdGlvbiDigKIgSXNsYW5kcyDigKIgQ29sdW1uXG5cdCAqL1xuXHRcblx0Lm8tY29sbGVjdGlvbi0taXNsYW5kc19fY29sdW1ue1xuXHRcdFx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNvbGxlY3Rpb24tLWlzbGFuZHMtLWJyZWFrcG9pbnQgKXtcblxuXHRcdFx0YWxpZ24tc2VsZjogc3RyZXRjaDtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRcblx0XHR9XG5cblx0fVxuXG5cdFxuXHQvKipcblx0ICogTGVmdC1oYW5kIENvbHVtblxuXHQgKiBcblx0ICogVGhlcmUgc2hvdWxkIHRydWx5IGV2ZXIgYmUgMSBpc2xhbmQgaW5zaWRlIG9mIHRoZSBsZWZ0IGNvbHVtbi4gVGhpcyB3aWxsXG5cdCAqIGFsbG93IHRoZSBpc2xhbmQgdG8gZmxleCB0byB0aGUgaGVpZ2h0IG9mIDEgb3IgMiBpc2xhbmRzIGluIHRoZSByaWdodC1oYW5kIFxuXHQgKiBjb2x1bW4uXG5cdCAqL1xuXHQuby1jb2xsZWN0aW9uLS1pc2xhbmRzX19jb2x1bW46bnRoLW9mLXR5cGUoMSl7XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGNvbGxlY3Rpb24tLWlzbGFuZHMtLWJyZWFrcG9pbnQgKXtcblx0XHRcdFxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdEBpbmNsdWRlIGJvcmRlciggaXNsYW5kLS1mZWF0dXJlLCByaWdodCApO1xuXHRcdFx0XG5cdFx0XHQvLyBDaGFuZ2UgdGhlIGNvbnRlbnQgaW4gdGhlIGlzbGFuZCBmcm9tIGxlZnQtYWxpZ25lZCB0byBjZW50ZXJlZC5cblx0XHRcdD4gLm0taXNsYW5ke1xuXHRcdFx0XHRcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcdFxuXHRcdFx0XHRmbGV4OiAxO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0dGV4dC1hbGlnbjp1bnNldDtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxuXHRcblx0LyoqXG5cdCAqIFJpZ2h0LWhhbmQgQ29sdW1uXG5cdCAqIFxuXHQgKiBUaGUgcmlnaHQgY2FuIGNvbHVtbiBjYW4gaG9sZCBlaXRoZXIgMSBvciAyIElzbGFuZHMgd2l0aGluIGl0LFxuXHQgKiBidXQgc2hvdWxkIG5ldmVyIGhvbGQgYW55IG1vcmUgdGhhbiAyLlxuXHQgKi9cblx0Lm8tY29sbGVjdGlvbi0taXNsYW5kc19fY29sdW1uOm50aC1vZi10eXBlKDIpe1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRjb2xsZWN0aW9uLS1pc2xhbmRzLS1icmVha3BvaW50ICl7XG5cblx0XHRcdC5tLWlzbGFuZDpudGgtb2YtdHlwZSgyKXtcblxuXHRcdFx0XHRAaW5jbHVkZSBib3JkZXIoIGlzbGFuZC0tZmVhdHVyZSwgdG9wICk7XG5cdFx0XHRcdFxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH0iLCIvKipcbiAqIFR5cGUgOiBPcmdhbmlzbVxuICogTmFtZSA6IENvbGxlY3Rpb24g4oCiIE15IE9sZCBIb3VzZVxuICogRGVzYyA6IFByb3Blcmx5IGRpc3BsYXkgYSBjb2xsZWN0aW9uIG9yIFwiZ3JpZFwiIG9mIGNhcmRzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29sbGVjdGlvbiDigKIgTXkgT2xkIEhvdXNlIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4gIFxuICBcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbGxlY3Rpb24g4oCiIE15IE9sZCBIb3VzZSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuICBcbiAgLyoqXG4gICAqIENvbGxlY3Rpb24g4oCiIE15IE9sZCBIb3VzZSDigKIgQmFzZVxuICAgKi9cbiAgLm8tY29sbGVjdGlvbi0tbXktb2xkLWhvdXNle1xuICAgIFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICBcbiAgXG4gIC5vLWNvbGxlY3Rpb24tLW15LW9sZC1ob3VzZSAubS1jYXJkLS1teS1vbGQtaG91c2V7XG4gICAgXG4gICAgbWluLXdpZHRoOiAzNTBweDtcblxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24g4oCiIE15IE9sZCBIb3VzZSDigKIgRWFjaCBDYXJkIGl0ZW1cbiAgICovXG4gIC5vLWNvbGxlY3Rpb24tLW15LW9sZC1ob3VzZV9faXRlbXtcbiAgICBcbiAgICBmbGV4OiAwIDAgMzMuMzMlO1xuICAgIHBhZGRpbmc6ICAyMHB4O1xuICAgIFxuXG4gIH0iLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogQ29udmVyc2F0aW9uXG4gKiBEZXNjIDogQSB3cmFwcGVyIGZvciBwb3N0IGNvbW1lbnRzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29udmVyc2F0aW9uIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHRcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbnZlcnNhdGlvbiDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQuby1jb252ZXJzYXRpb257XG5cdFx0XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCAyeGwgKTtcblxuXHR9XG5cblx0Lm8tY29udmVyc2F0aW9uX19jb250YWluZXJ7XG5cdFx0XG5cdFx0QGluY2x1ZGUgY29udGFpbmVyKCBwb3N0ICk7XG5cblx0fSIsIlxuLm8tZmFjdHMtZmlndXJlcyB7XG4gIFxuICAuY29udGFpbmVye1xuICAgIGZsZXg6IDAgMCAxMDAlOyBcbiAgICBtYXgtd2lkdGg6IDEwMCU7IFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07IFxuICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcblxuICAgIEBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pe1xuICAgICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07IFxuICAgICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgICB9XG4gICAgQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXtcbiAgICAgIGZsZXg6IDAgMCA3NSU7IFxuICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7IFxuICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTsgXG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07IFxuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG5cbiAgcGFkZGluZy10b3A6IDkwcHg7IFxuICBwYWRkaW5nLWJvdHRvbTogOTBweDtcblxuICBAbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pe1xuICAgIHBhZGRpbmctdG9wOiAxMzBweDsgXG4gICAgcGFkZGluZy1ib3R0b206IDEzMHB4O1xuICB9XG5cbiAgLmhpZ2hNZXRyaWNzX190aXRsZSAgeyBcbiAgICBmb250LWZhbWlseTogQ2hhbXBpb24gV2VsdGVyd3QgQSxDaGFtcGlvbiBXZWx0ZXJ3dCBCLENoYW1waW9uIEhURi1XZWx0ZXJ3ZWlnaHQsc2Fucy1zZXJpZjsgXG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgXG4gICAgZm9udC1zdHlsZTogbm9ybWFsOyBcbiAgICBmb250LXNpemU6IDMuNzVyZW07IFxuICAgIGxpbmUtaGVpZ2h0OiAxLjI7IFxuICAgIGxldHRlci1zcGFjaW5nOiAxLjRweDsgXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyBcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuXG4gICAgQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXtcbiAgICAgIGZvbnQtc2l6ZTogNC41cmVtOyBcbiAgICAgIGxpbmUtaGVpZ2h0OiAuODsgXG4gICAgICBsZXR0ZXItc3BhY2luZzogMnB4OyBcbiAgICAgIG1hcmdpbi1ib3R0b206IDEyMHB4O1xuICAgIH1cbiAgfSBcbiAgdWwgeyBcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IFxuICAgIG1hcmdpbi10b3A6IDA7IFxuICAgIG1hcmdpbi1ib3R0b206IDA7IFxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfSBcbiAgLmhpZ2hNZXRyaWNzX19tZXRyaWNzLS1saXN0ICB7IFxuICAgIGRpc3BsYXk6IGZsZXg7IFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyBcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyBcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAubWV0cmljc19fdGhyZWUtY2FyZHMgIHsgXG4gICAgICAgIGZsZXg6IDAgMCAxMDAlOyBcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyBcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTsgXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTsgXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICAgICAgICBAbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKXtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTsgXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgICAgICAgfSBcbiAgICAgICAgQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXtcbiAgICAgICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlOyBcbiAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTsgXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9IFxuICAgIH0gXG5cbiAgICAubWV0cmljc19fd3JhcHBlciAgeyBcbiAgICAgICAgd2lkdGg6IDEwMCU7IFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyBcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pe1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cblxuICAgIH0gXG4gICAgLm1ldHJpY3NfX3dyYXBwZXI6bGFzdC1jaGlsZCAgeyBcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfSBcblxuICAgIC5oaWdoTWV0cmljc19fbGlzdC0taGlnaGxpZ2h0ICB7IFxuICAgICAgICBmb250LWZhbWlseTogTGFiZWwgQSxMYWJlbCBCLENoYW1waW9uIExpZ2h0d3QgQSxDaGFtcGlvbiBMaWdodHd0IEIsQ2hhbXBpb24gSFRGLUxpZ2h0d2VpZ2h0LHNhbnMtc2VyaWY7IFxuICAgICAgICBmb250LXdlaWdodDogMzAwOyBcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyBcbiAgICAgICAgZm9udC1zaXplOiAyLjc1cmVtOyBcbiAgICAgICAgbGluZS1oZWlnaHQ6IC45OyBcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgICAgICBAbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMy43NXJlbTsgXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IC45OyBcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICB9XG4gICAgfSBcblxuICAgIC5oaWdoTWV0cmljc19fbGlzdC0tdGV4dCAgeyBcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiTm90byBTZXJpZlwiLEhlYWRpbmcgQSxIZWFkaW5nIEIsQ2hyb25pY2xlIERpc3BsYXkgQSxDaHJvbmljbGUgRGlzcGxheSBCLHNlcmlmOyBcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgXG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgXG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTsgXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IFxuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjZweDsgXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgXG4gICAgICAgIG1heC13aWR0aDogMjAwcHg7IFxuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICBAbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07IFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IFxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuOHB4OyBcbiAgICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICB9XG4gICAgfSBcbiAgfSBcblxuICAuYS1idG4tLXNlY29uZGFyeSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59ICAgXG5cbiAgQGVhY2ggJGNhdGVnb3J5LFxuJGNhdGVnb3J5LWNvbG9yIGluICRpc3N1ZS1jYXQtY29sb3JfY29uZmlnIHtcblxuICAgIEBpbmNsdWRlIHRoZW1lLS1oaWdoLW1ldHJpY3MoJGNhdGVnb3J5LCAkY2F0ZWdvcnktY29sb3IpO1xuXG59ICAiLCIuby1mZWF0dXJlLXRleHQtYnJlYWtlciB7XG5cbi5idG5fX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLmJ0bl9fY2Fyb3VzZWwtYXJyb3cge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzFiNDg7XG4gIGJvcmRlcjogMDsgfVxuICAuYnRuX19jYXJvdXNlbC1hcnJvdy0tbGVmdCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOyB9XG4gIC5idG5fX2Nhcm91c2VsLWFycm93OmhvdmVyLCAuYnRuX19jYXJvdXNlbC1hcnJvdzpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzEyMDBkYTsgfVxuXG5hLmJ0bi5idG4tcmVkLCBhLmJ0bi5idG4tYmx1ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5idG4ge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZm9udDogaW5oZXJpdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogaW5oZXJpdDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFwiTGFiZWwgQVwiLCBcIkxhYmVsIEJcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEFcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEJcIiwgXCJDaGFtcGlvbiBIVEYtTGlnaHR3ZWlnaHRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGhlaWdodDogNjBweDtcbiAgbWFyZ2luOiAxNXB4IDA7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlMDAxOTtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmJ0biB7XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTsgfSB9XG4gIC5idG46aG92ZXIsIC5idG46Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNTAwMTY7IH1cbiAgLmJ0bi5idG4tcmVkIHtcbiAgICBmb250LWZhbWlseTogXCJXb3JrIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBsaW5lYXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlMDAxOTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2VlMDAxOTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuYnRuLmJ0bi1yZWQge1xuICAgICAgICB3aWR0aDogMTc1cHg7IH0gfVxuICAgIC5idG4uYnRuLXJlZDpob3ZlciwgLmJ0bi5idG4tcmVkOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMjAwZGE7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMTIwMGRhOyB9XG4gICAgLmJ0bi5idG4tcmVkLmJ0bi1vdXRsaW5lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2VlMDAxOTsgfVxuICAgICAgLmJ0bi5idG4tcmVkLmJ0bi1vdXRsaW5lOmhvdmVyLCAuYnRuLmJ0bi1yZWQuYnRuLW91dGxpbmU6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWUwMDE5O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZWUwMDE5OyB9XG4gIC5idG4uYnRuLWJsdWUge1xuICAgIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIwMGRhO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMTIwMGRhOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5idG4uYnRuLWJsdWUge1xuICAgICAgICB3aWR0aDogMTc1cHg7IH0gfVxuICAgIC5idG4uYnRuLWJsdWUuYnRuLW91dGxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMTIwMGRhOyB9XG4gICAgLmJ0bi5idG4tYmx1ZTpob3ZlciwgLmJ0bi5idG4tYmx1ZTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWUwMDE5O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2VlMDAxOTsgfVxuXG4uY3RhX19zb2NpYWwtbGlua3Mge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmN0YV9fc29jaWFsLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7IH0gfVxuXG4uY3RhX19zb2NpYWwtbGlua3MtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMTVweDsgfVxuICAuY3RhX19zb2NpYWwtbGlua3MtY29udGFpbmVyOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uY3RhX19zb2NpYWwtbGluayB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGZpbGw7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZWUwMDE5O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3V0bGluZTogMDsgfVxuICAuY3RhX19zb2NpYWwtbGlua19kYXJrIC5zb2NpYWwtaWNvbiB7XG4gICAgZmlsbDogYmxhY2s7IH1cbiAgLmN0YV9fc29jaWFsLWxpbmtfbGlnaHQgLnNvY2lhbC1pY29uIHtcbiAgICBmaWxsOiB3aGl0ZTsgfVxuICAuY3RhX19zb2NpYWwtbGluazpob3ZlciwgLmN0YV9fc29jaWFsLWxpbms6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZTAwMTk7IH1cbiAgICAuY3RhX19zb2NpYWwtbGluazpob3ZlciAuc29jaWFsLWljb24sIC5jdGFfX3NvY2lhbC1saW5rOmZvY3VzIC5zb2NpYWwtaWNvbiB7XG4gICAgICBmaWxsOiB3aGl0ZTsgfVxuXG4uc29jaWFsLWljb24ge1xuICB3aWR0aDogMTJweDtcbiAgZmlsbDogYmxhY2s7IH1cblxuLmN0YV9fc3RhbmRhcmQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LWZhbWlseTogXCJXb3JrIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE4NzU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiAwO1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogIzEyMDBkYTtcbiAgb3V0bGluZTogMDsgfVxuICAuY3RhX19zdGFuZGFyZDpob3ZlciwgLmN0YV9fc3RhbmRhcmQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjQzLCAyNTUsIDAuMik7IH1cbiAgICAuY3RhX19zdGFuZGFyZDpob3ZlciAuY3RhX19hcnJvdywgLmN0YV9fc3RhbmRhcmQ6Zm9jdXMgLmN0YV9fYXJyb3cge1xuICAgICAgZmlsbDogIzE3MWI0ODsgfVxuXG4uY3RhX19zdGFuZGFyZF9pbnZvbHZlIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgZm9udC1mYW1pbHk6IFwiV29yayBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xODc1O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogMDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiAjMTIwMGRhO1xuICBvdXRsaW5lOiAwOyB9XG4gIC5jdGFfX3N0YW5kYXJkX2ludm9sdmU6aG92ZXIsIC5jdGFfX3N0YW5kYXJkX2ludm9sdmU6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpOyB9XG4gICAgLmN0YV9fc3RhbmRhcmRfaW52b2x2ZTpob3ZlciAuY3RhX19hcnJvdywgLmN0YV9fc3RhbmRhcmRfaW52b2x2ZTphY3RpdmUgLmN0YV9fYXJyb3cge1xuICAgICAgZmlsbDogIzE3MWI0ODsgfVxuXG4uY3RhX19jb3B5IHtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMCk7IH1cblxuLmhpZ2hsaWdodF9fc3RhbmRhcmQge1xuICBmb250LWZhbWlseTogXCJXb3JrIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE4NzU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogIzEyMDBkYTsgfVxuXG4uY3RhX19mZWF0dXJlZCB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3JkZXItY29sb3IsIGNvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmN0YV9fZmVhdHVyZWQge1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDsgfSB9XG4gIC5jdGFfX2ZlYXR1cmVkLS1saWdodCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGNvbG9yOiAjMTIwMGRhOyB9XG4gICAgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0OmhvdmVyLCAuY3RhX19mZWF0dXJlZC0tbGlnaHQ6Zm9jdXMge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogIzAwZjNmZjtcbiAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC4yKTsgfVxuICAgICAgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0OmhvdmVyIC5jdGFfX2Fycm93LCAuY3RhX19mZWF0dXJlZC0tbGlnaHQ6Zm9jdXMgLmN0YV9fYXJyb3cge1xuICAgICAgICBmaWxsOiAjMTcxYjQ4OyB9XG4gIC5jdGFfX2ZlYXR1cmVkLS1saWdodC1hY3RpdmUge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzAwZjNmZjtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpOyB9XG4gICAgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0LWFjdGl2ZSAuY3RhX19hcnJvdyB7XG4gICAgICBmaWxsOiAjMTcxYjQ4OyB9XG4gICAgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0LWFjdGl2ZTpob3ZlciwgLmN0YV9fZmVhdHVyZWQtLWxpZ2h0LWFjdGl2ZTpmb2N1cyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuICAgICAgYm9yZGVyLXdpZHRoOiAycHg7IH1cbiAgLmN0YV9fZmVhdHVyZWQtLWRhcmsge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzEyMDBkYTtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAuY3RhX19mZWF0dXJlZC0tZGFyazpob3ZlciwgLmN0YV9fZmVhdHVyZWQtLWRhcms6Zm9jdXMge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogIzAwZjNmZjtcbiAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNDMsIDI1NSwgMC4yKTsgfVxuICAgICAgLmN0YV9fZmVhdHVyZWQtLWRhcms6aG92ZXIgLmN0YV9fYXJyb3csIC5jdGFfX2ZlYXR1cmVkLS1kYXJrOmZvY3VzIC5jdGFfX2Fycm93IHtcbiAgICAgICAgZmlsbDogIzE3MWI0ODsgfVxuXG4uY3RhX19iYXNpYyB7XG4gIGNvbG9yOiAjMWUxZTExO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIG91dGxpbmU6IDA7IH1cbiAgLmN0YV9fYmFzaWM6aG92ZXIsIC5jdGFfX2Jhc2ljOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwLjIpOyB9XG4gICAgLmN0YV9fYmFzaWM6aG92ZXIgLmN0YV9fYmFzaWMtY29weSwgLmN0YV9fYmFzaWM6Zm9jdXMgLmN0YV9fYmFzaWMtY29weSB7XG4gICAgICBjb2xvcjogIzFlMWUxMTsgfVxuXG4uY3RhX19zZWNvbmRhcnktbmF2IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC5jdGFfX3NlY29uZGFyeS1uYXY6aG92ZXIsIC5jdGFfX3NlY29uZGFyeS1uYXY6Zm9jdXMge1xuICAgIGNvbG9yOiAjMDBmM2ZmOyB9XG5cbi5jdGFfX3NpZGUtbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBjb2xvcjogIzFlMWUxMTsgfVxuXG4uY3RhX19zZWNvbmRhcnktbmF2LS1jb3B5IHtcbiAgZm9udC1mYW1pbHk6IFwiV29yayBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xODc1O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7IH1cblxuLmN0YV9fYmFzaWMtY29weSB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG4gIC5jdGFfX2Jhc2ljLWNvcHk6aG92ZXIsIC5jdGFfX2Jhc2ljLWNvcHk6Zm9jdXMge1xuICAgIGNvbG9yOiAjMWUxZTExOyB9XG5cbi5jdGFfX2ZlYXR1cmVkLWNvcHkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI0MywgMjU1LCAwKTsgfVxuXG4uY3RhX19hcnJvdyB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGZpbGw7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMTBweDtcbiAgZmlsbDogIzAwZjNmZjsgfVxuXG4uY3RhX19hcnJvdy0tZXh0ZXJuYWwge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7IH1cblxuLmN0YV9fYXJyb3ctLWZvbGRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOyB9XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICBzZWxlY3Rvci1tYXgtdHlwZSAqL1xuLmN0YV9fYXJyb3ctbmF2IHN2ZyB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuXG4uY3RhX19maWx0ZXItY2hhcmFjdGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiTGFiZWwgQVwiLCBcIkxhYmVsIEJcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEFcIiwgXCJDaGFtcGlvbiBMaWdodHd0IEJcIiwgXCJDaGFtcGlvbiBIVEYtTGlnaHR3ZWlnaHRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogNHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyMjksIDIyOSwgMjI5LCAwKTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvcmRlci1jb2xvciwgY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM3NTc1NzU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG4gIC5jdGFfX2ZpbHRlci1jaGFyYWN0ZXI6aG92ZXIsIC5jdGFfX2ZpbHRlci1jaGFyYWN0ZXI6Zm9jdXMge1xuICAgIGNvbG9yOiAjZWUwMDE5OyB9XG4gIC5jdGFfX2ZpbHRlci1jaGFyYWN0ZXI6YWN0aXZlIHtcbiAgICBjb2xvcjogI2VlMDAxOTtcbiAgICBib3JkZXItY29sb3I6ICNlNWU1ZTU7IH1cblxuLmFycm93LWljb24ge1xuICB3aWR0aDogMTVweDtcbiAgbWF4LXdpZHRoOiAxNXB4OyB9XG5cbi5hcnJvdyB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZm9udC1mYW1pbHk6IFwiV29yayBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiAyLjAycHg7XG4gIHRyYW5zaXRpb246IGFsbCBlYXNlIC41czsgfVxuICAuYXJyb3cgLmN0YV9fYXJyb3cge1xuICAgIHBhZGRpbmc6IDAgMCAwIDEwcHg7XG4gICAgbWFyZ2luLXRvcDogLTRweDsgfVxuICAgIC5hcnJvdyAuY3RhX19hcnJvdyAuYXJyb3ctaWNvbiB7XG4gICAgICBmaWxsOiAjZWUwMDE5O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzOyB9XG4gIC5hcnJvdzpob3ZlciB7XG4gICAgY29sb3I6ICNlZTAwMTk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYXJyb3c6aG92ZXIgLmFycm93LWljb24ge1xuICAgICAgZmlsbDogIzAyMDBkMTsgfVxuXG4uY3RhX19jYW1wYWlnbiB7XG4gIGZvbnQtZmFtaWx5OiBcIldvcmsgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgY29sb3I6ICMwMjAwZDE7XG4gIGxldHRlci1zcGFjaW5nOiAxLjc1cHg7IH1cbiAgLmN0YV9fY2FtcGFpZ24gLmN0YV9fY29weSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmODAyMjg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAwIDAgNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMTNweDsgfVxuICAuY3RhX19jYW1wYWlnbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3RhX19jYW1wYWlnbjpob3ZlciAuY3RhX19jb3B5IHtcbiAgICAgIGNvbG9yOiAjZjgwMjI4OyB9XG5cbi5jdGFfX3NvY2lhbC1saW5rcyB7XG4gIGZvbnQtZmFtaWx5OiBcIkNoYW1waW9uIEhURi1MaWdodHdlaWdodFwiOyB9XG5cbi5mZWF0VGV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZmVhdFRleHQuZmVhdFRleHRfX3RleHQtLWRhcmsgcCxcbiAgLmZlYXRUZXh0LmZlYXRUZXh0X190ZXh0LS1kYXJrIGgyIHtcbiAgICBjb2xvcjogIzE3MWI0ODsgfVxuICAuZmVhdFRleHQuZmVhdFRleHRfX3RleHQtLWxpZ2h0IHAsXG4gIC5mZWF0VGV4dC5mZWF0VGV4dF9fdGV4dC0tbGlnaHQgaDIge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAuZmVhdFRleHQgYTpub3QoW2NsYXNzXSkge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAjZjgwMjI4OyB9XG4gICAgLmZlYXRUZXh0IGE6bm90KFtjbGFzc10pOmhvdmVyLCAuZmVhdFRleHQgYTpub3QoW2NsYXNzXSk6dmlzaXRlZCwgLmZlYXRUZXh0IGE6bm90KFtjbGFzc10pOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogI2Y4MDIyODsgfVxuICAuZmVhdFRleHQgLmZlYXRUZXh0X19iZ0ltZy0tcGxhaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvMC9fMjAxOS9pbWFnZXMvZ3JhcGhpY3MvYmFja2dyb3VuZC1mZWF0VGV4dDEucG5nXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fYmdJbWctLXBsYWluU3RyaXBlcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi8wL18yMDE5L2ltYWdlcy9ncmFwaGljcy9iYWNrZ3JvdW5kLWZlYXRUZXh0MS5wbmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2JnSW1nLS1wbGFpblN0cmlwZXM6YWZ0ZXIge1xuICAgICAgY29udGVudDogdXJsKFwiLzAvXzIwMTkvaW1hZ2VzL2dyYXBoaWNzL2dyYXBoaWMtZGlhZ0xpbmVzLnBuZ1wiKTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtNTBweDtcbiAgICAgIGxlZnQ6IC02NXB4O1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gICAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19iZ0ltZy0tcGxhaW5TdHJpcGVzOmFmdGVyIHtcbiAgICAgICAgICB0b3A6IC01cHg7XG4gICAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cbiAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fYmdJbWctLWRpYWdvbmFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLzAvXzIwMTkvaW1hZ2VzL2dyYXBoaWNzL2JhY2tncm91bmQtYmx1ZURpYWdvbmFscy5wbmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAmLmZlYXRUZXh0X19vdmVybGF5OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBvdmVybGF5LWRhcmstODA7XG4gICAgfVxuICB9XG4gIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMjA7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMCAwIDc1JTtcbiAgICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkgYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIgaDIsXG4gICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIgcCB7XG4gICAgICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgICAgIG1heC13aWR0aDogODMuMzMzMzMlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyIGgyLFxuICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciBwIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIgcCB7XG4gICAgICBmb250LWZhbWlseTogXCJXb3JrIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIgaDIsIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lciBoMiAqIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk5vdG8gU2VyaWZcIiwgXCJIZWFkaW5nIEFcIiwgXCJIZWFkaW5nIEJcIiwgXCJDaHJvbmljbGUgRGlzcGxheSBBXCIsIFwiQ2hyb25pY2xlIERpc3BsYXkgQlwiLCBzZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLXNtYWxsIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1zbWFsbCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE0MHB4O1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfSB9XG4gICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tc21hbGwgaDIgcCwgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLXNtYWxsIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1zbWFsbCBoMiBwLCAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tc21hbGwgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAzLjc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuOTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAyLjNweDsgfSB9XG4gICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tc21hbGwgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODc1O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC42cHg7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1zbWFsbCBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuOXB4OyB9IH1cbiAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tbGFyZ2Uge1xuICAgICAgcGFkZGluZy10b3A6IDk1cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogOTVweDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tbGFyZ2Uge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMDBweDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7IH0gfVxuICAgICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLWxhcmdlIGgyIHAsIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1sYXJnZSBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuMXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAgICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4uc3BhY2luZy0tbGFyZ2UgaDIgcCwgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLnNwYWNpbmctLWxhcmdlIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy4xMjVyZW07XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMS45cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9IH1cbiAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1sYXJnZSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44NzU7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi5zcGFjaW5nLS1sYXJnZSBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS45OyB9IH1cbiAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4tdy1zdHJpcGVzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxNDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi13LXN0cmlwZXMge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxNjBweDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7IH0gfVxuICAgICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLXctc3RyaXBlcyBoMiBwLCAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4tdy1zdHJpcGVzIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1wbGFpbi13LXN0cmlwZXMgaDIgcCwgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLXctc3RyaXBlcyBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDMuNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDIuM3B4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsgfSB9XG4gICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctcGxhaW4tdy1zdHJpcGVzIHAge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjdweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuOTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICAgICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLXBsYWluLXctc3RyaXBlcyBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS45OyB9IH1cbiAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctZGlhZ29uYWwge1xuICAgICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTVweDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctZGlhZ29uYWwge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNzBweDsgfSB9XG4gICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jb250ZW50LS1jb250YWluZXIuYmctZGlhZ29uYWwgaDIgcCwgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLWRpYWdvbmFsIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjE4NzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjFweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgICAgICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY29udGVudC0tY29udGFpbmVyLmJnLWRpYWdvbmFsIGgyIHAsIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1kaWFnb25hbCBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDMuNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDIuM3B4OyB9IH1cbiAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1kaWFnb25hbCBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44NzU7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2NvbnRlbnQtLWNvbnRhaW5lci5iZy1kaWFnb25hbCBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OyB9IH1cbiAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY3RhLS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuZmVhdFRleHQgLmZlYXRUZXh0X19jdGEtLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2N0YS0tY29udGFpbmVyIGxpIHtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5mZWF0VGV4dCAuZmVhdFRleHRfX2N0YS0tY29udGFpbmVyIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDQ1cHg7IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmZlYXRUZXh0IC5mZWF0VGV4dF9fY3RhLS1jb250YWluZXIgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDQ1cHg7IH0gfVxuXG4gfSIsIi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBGaWx0ZXIgQmFyXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRmlsdGVyIEJhciDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdCRmaWx0ZXItYmFyLS1iZy1jb2xvcjogYyggZ2xvdy1uYXZ5ICk7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGaWx0ZXIgQmFyIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8qKlxuXHQgKiBGaWx0ZXIgQmFyIOKAoiBCYXNlXG5cdCAqL1xuXHQuby1maWx0ZXItYmFye1xuXHRcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsdGVyLWJhci0tYmctY29sb3I7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCBiLCB4cyApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgdCwgbSApO1xuXHRcblx0fVxuXG5cdC5vLWZpbHRlci1iYXJfX2NvbnRhaW5lcntcblx0XHRcblx0XHRAaW5jbHVkZSBjb250YWluZXIoKTtcblxuXHR9XG4iLCJcbi50aGUtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNzJkZWcsIzAwMCAyJSwjMTcxYjQ4IDMwJSlcbn1cblxuLnRoZS1mb290ZXIgYWRkcmVzcyB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4udGhlLWZvb3Rlcl9fd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiAxMDUwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweFxufVxuXG5AbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIHtcbiAgICAudGhlLWZvb3Rlcl9fd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOjkwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4XG4gICAgfVxufVxuXG4udGhlLWZvb3Rlcl9fYWRkcmVzcywudGhlLWZvb3Rlcl9fY3RhcywudGhlLWZvb3Rlcl9fZmVhdHVyZWQtY3RhcyB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtXG59XG5cbkBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAudGhlLWZvb3Rlcl9fYWRkcmVzcywudGhlLWZvb3Rlcl9fY3RhcywudGhlLWZvb3Rlcl9fZmVhdHVyZWQtY3RhcyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6LjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogLjkzNzVyZW1cbiAgICB9XG59XG5cbkBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2MjVlbSkge1xuICAgIC50aGUtZm9vdGVyX19hZGRyZXNzLC50aGUtZm9vdGVyX19jdGFzLC50aGUtZm9vdGVyX19mZWF0dXJlZC1jdGFzIHtcbiAgICAgICAgZmxleDowIDAgMjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtXG4gICAgfVxufVxuXG5AbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjI1ZW0pIGFuZCAobWluLXdpZHRoOjQ4ZW0pIHtcbiAgICAudGhlLWZvb3Rlcl9fYWRkcmVzcywudGhlLWZvb3Rlcl9fY3RhcywudGhlLWZvb3Rlcl9fZmVhdHVyZWQtY3RhcyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6LjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogLjkzNzVyZW1cbiAgICB9XG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzLC50aGUtZm9vdGVyX19jdGFzIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4XG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzIC5saXN0X19saW5rIC5jdGFfX2Jhc2ljIC5jdGFfX2Jhc2ljLWNvcHksLnRoZS1mb290ZXJfX2N0YXMgLmxpc3RfX2xpbmsgLmN0YV9fYmFzaWMgLmN0YV9fYmFzaWMtY29weSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZy1sZWZ0OiAxcHhcbn1cblxuQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLnRoZS1mb290ZXJfX2FkZHJlc3MsLnRoZS1mb290ZXJfX2N0YXMge1xuICAgICAgICBtYXJnaW4tdG9wOjBcbiAgICB9XG59XG5cbi50aGUtZm9vdGVyX19pbWFnZV9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmVcbn1cblxuQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLnRoZS1mb290ZXJfX2ltYWdlX2NvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6MCAwIDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIFxuICAgIH1cbn1cblxuQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSBhbmQgKG1pbi13aWR0aDo0OGVtKSB7XG4gICAgLnRoZS1mb290ZXJfX2ltYWdlX2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6LjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogLjkzNzVyZW1cbiAgICB9XG59XG5cbi50aGUtZm9vdGVyX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtZmFtaWx5OiBvYmplY3QtZml0XFw6Y292ZXI7XG4gICAgb2JqZWN0LWZpdDogY292ZXJcbn1cblxuLmZvb3Rlci1sb2dvIHtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBmaWxsO1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBmaWxsOiAjZmZmXG59XG5cbi5mb290ZXItbG9nbzpmb2N1cywuZm9vdGVyLWxvZ286aG92ZXIge1xuICAgIGZpbGw6ICMwMGYzZmZcbn1cblxuLnRoZS1mb290ZXJfX2FkZHJlc3Mge1xuICAgIGZvbnQtZmFtaWx5OiBXb3JrIFNhbnM7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIFxufVxuXG4udGhlLWZvb3Rlcl9fYWRkcmVzcyBwIHtcbiAgICBmb250LXdlaWdodDogNDAwXG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzIGEsLnRoZS1mb290ZXJfX2FkZHJlc3Mgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNTAwXG59XG5cblxuXG4udGhlLWZvb3Rlcl9fZmVhdHVyZWQtY3RhcyAubGlzdF9fbGluay1saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4XG59XG5cbi50aGUtZm9vdGVyX19ob21lLWN0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG91dGxpbmU6IDBcbn1cblxuLnRoZS1mb290ZXJfX2hvbWUtY3RhOmZvY3VzIC5mb290ZXItbG9nbywudGhlLWZvb3Rlcl9faG9tZS1jdGE6aG92ZXIgLmZvb3Rlci1sb2dvIHtcbiAgICBmaWxsOiAjMDBmM2ZmXG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzLW1ldGEge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweFxufVxuXG4uZm9vdGVyX19hbmNob3Ige1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzFiNDg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogaHNsYSgwLDAlLDU5JSwuMik7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMnB4XG59XG5cbi5mb290ZXJfX2FuY2hvci1uYXYge1xuICAgIG1heC13aWR0aDogMTA1MHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXBcbn1cblxuLmZvb3Rlcl9fYW5jaG9yLWxpc3Qge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgICBjb2x1bW4tY291bnQ6IDJcbn1cblxuQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mb290ZXJfX2FuY2hvci1saXN0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDouOTM3NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbVxuICAgIH1cbn1cblxuQG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSB7XG4gICAgLmZvb3Rlcl9fYW5jaG9yLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwXG4gICAgfVxufVxuXG4uZm9vdGVyX19hbmNob3ItbGluayB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1mYW1pbHk6IENoYW1waW9uIExpZ2h0d3QgQSxDaGFtcGlvbiBMaWdodHd0IEI7XG4gICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4yNXM7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgb3V0bGluZTogMFxufVxuXG5AbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmZvb3Rlcl9fYW5jaG9yLWxpbmsge1xuICAgICAgICBmb250LXNpemU6MXJlbVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fYW5jaG9yLWxpbms6Zm9jdXMsLmZvb3Rlcl9fYW5jaG9yLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMDBmM2ZmXG59XG5cbi50aGUtZm9vdGVyX19hZGRyZXNzLWN0YSB7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4yNXM7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XG4gICAgb3V0bGluZTogMFxufVxuXG4udGhlLWZvb3Rlcl9fYWRkcmVzcy1jdGE6Zm9jdXMsLnRoZS1mb290ZXJfX2FkZHJlc3MtY3RhOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwZjNmZlxufVxuXG5cblxuXG4uY3RhX19mZWF0dXJlZCwuaGlnaGxpZ2h0X19zdGFuZGFyZCB7XG4gICAgZm9udC1mYW1pbHk6IFdvcmsgU2FucztcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMFxufVxuXG4uY3RhX19mZWF0dXJlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvcmRlci1jb2xvcixjb2xvcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlblxufVxuXG5AbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmN0YV9fZmVhdHVyZWQge1xuICAgICAgICBtYXgtd2lkdGg6MzAwcHhcbiAgICB9XG59XG5cblxuXG4ubGlzdF9fbGluay1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHhcbn1cblxuLmxpc3RfX2xpbmsge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcbn1cblxuLmxpc3RfX2xpbmssLmxpc3RfX2xpbmsgLmN0YV9fYmFzaWMge1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLGJvcmRlci1jb2xvclxufVxuXG4ubGlzdF9fbGluayAuY3RhX19iYXNpYyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM3NTc1NzVcbn1cblxuLmxpc3RfX2xpbmsgLmN0YV9fYmFzaWM6Zm9jdXMgLmN0YV9fYmFzaWMtY29weSwubGlzdF9fbGluayAuY3RhX19iYXNpYzpob3ZlciAuY3RhX19iYXNpYy1jb3B5IHtcbiAgICBjb2xvcjogIzAwZjNmZlxufVxuXG4ubGlzdF9fbGluazpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMFxufVxuXG4ubGlzdF9fbGluazpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwXG59XG5cbi5saXN0X19saW5rLWN0YSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgYm9yZGVyOiAwXG59XG5cblxuXG4uY3RhX19mZWF0dXJlZC0tbGlnaHQge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZTVlNWU1O1xuICAgIGNvbG9yOiAjMTIwMGRhXG59XG5cbi5jdGFfX2ZlYXR1cmVkLS1saWdodDpmb2N1cywuY3RhX19mZWF0dXJlZC0tbGlnaHQ6aG92ZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBmM2ZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwyNDMsMjU1LC4yKVxufVxuXG4uY3RhX19mZWF0dXJlZC0tbGlnaHQ6Zm9jdXMgLmN0YV9fYXJyb3csLmN0YV9fZmVhdHVyZWQtLWxpZ2h0OmhvdmVyIC5jdGFfX2Fycm93IHtcbiAgICBmaWxsOiAjMTcxYjQ4XG59XG5cbi5jdGFfX2ZlYXR1cmVkLS1kYXJrIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzEyMDBkYTtcbiAgICBjb2xvcjogI2ZmZlxufVxuXG4uY3RhX19mZWF0dXJlZC0tZGFyazpmb2N1cywuY3RhX19mZWF0dXJlZC0tZGFyazpob3ZlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMGYzZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDI0MywyNTUsLjIpXG59XG5cbi5jdGFfX2ZlYXR1cmVkLS1kYXJrOmZvY3VzIC5jdGFfX2Fycm93LC5jdGFfX2ZlYXR1cmVkLS1kYXJrOmhvdmVyIC5jdGFfX2Fycm93IHtcbiAgICBmaWxsOiAjMTcxYjQ4XG59XG5cblxuXG4uY3RhX19zb2NpYWwtbGluayB7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4yNXM7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcixmaWxsO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWUwMDE5O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG91dGxpbmU6IDBcbn1cblxuLmN0YV9fc29jaWFsLWxpbmstcmVkIHtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLGZpbGw7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNDRTExNDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0NFMTE0MTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvdXRsaW5lOiAwXG59XG5cbi5jdGFfX3NvY2lhbC1saW5rLWFjdGlvbi1iYXIge1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsZmlsbDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdiN2I3YjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvdXRsaW5lOiAwXG59XG5cbi5jdGFfX3NvY2lhbC1saW5rX2RhcmsgLnNvY2lhbC1pY29uIHtcbiAgICBmaWxsOiAjMDAwXG59XG5cbi5jdGFfX3NvY2lhbC1saW5rX2xpZ2h0IC5zb2NpYWwtaWNvbiB7XG4gICAgZmlsbDogI2ZmZlxufVxuXG4uY3RhX19zb2NpYWwtbGluazpmb2N1cywuY3RhX19zb2NpYWwtbGluazpob3ZlciwuY3RhX19zb2NpYWwtbGluay1hY3Rpb24tYmFyOmZvY3VzLC5jdGFfX3NvY2lhbC1saW5rLWFjdGlvbi1iYXI6aG92ZXIgIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWUwMDE5XG59XG5cbi5jdGFfX3NvY2lhbC1saW5rLXJlZDpmb2N1cywuY3RhX19zb2NpYWwtbGluay1yZWQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZcbn1cblxuLmN0YV9fc29jaWFsLWxpbms6Zm9jdXMgLnNvY2lhbC1pY29uLC5jdGFfX3NvY2lhbC1saW5rOmhvdmVyIC5zb2NpYWwtaWNvbiwuY3RhX19zb2NpYWwtbGluay1hY3Rpb24tYmFyOmZvY3VzIC5zb2NpYWwtaWNvbiwuY3RhX19zb2NpYWwtbGluay1hY3Rpb24tYmFyOmhvdmVyIC5zb2NpYWwtaWNvbiAge1xuICAgIGZpbGw6ICNmZmZcbn1cblxuLmN0YV9fc29jaWFsLWxpbmstcmVkOmZvY3VzLC5jdGFfX3NvY2lhbC1saW5rLXJlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZlxufVxuXG4uY3RhX19zb2NpYWwtbGluay1yZWQ6Zm9jdXMgLnNvY2lhbC1pY29uLC5jdGFfX3NvY2lhbC1saW5rLXJlZDpob3ZlciAuc29jaWFsLWljb24gIHtcbiAgICBmaWxsOiAjMDAwXG59XG5cbi5zb2NpYWwtaWNvbiB7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgZmlsbDogIzAwMFxufVxuLmFycm93LWljb24ge1xuICB3aWR0aDogMTVweDtcbiAgbWF4LXdpZHRoOiAxNXB4O1xufVxuXG4uYWNjZXNzLWhpZGRlbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGJvcmRlcjogMFxufVxuXG4uY3RhX19mZWF0dXJlZC1jb3B5IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMjQzLDI1NSwwKVxufVxuXG4uY3RhX19hcnJvdywuY3RhX19mZWF0dXJlZC1jb3B5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMTBweFxufVxuXG5cbi5jdGFfX2Fycm93IHtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBmaWxsO1xuICAgIGZpbGw6ICMwMGYzZmZcbn1cblxuLmN0YV9fYXJyb3ctLWV4dGVybmFsIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlclxufVxuXG4uY3RhX19hcnJvdy1uYXYgc3ZnIHtcbiAgICBtYXgtd2lkdGg6IG5vbmVcbn1cblxuLmN0YV9fc29jaWFsLWxpbmtzLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4XG59XG5cbi5jdGFfX3NvY2lhbC1saW5rcy1jb250YWluZXI6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwXG59IiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IEdyaWQgR2FsbGVyeVxuICogRGVzYyA6IEEgZ3JpZCBvZiBpbWFnZXMgdXNlZCBmb3IgZGlzcGxheWluZyBhIHNpbXBsZSBpbWFnZSBnYWxsZXJ5LlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEdyaWQgR2FsbGVyeSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4gXHQvLyBQb3N0IEdyaWQgU2V0dGluZ3NcbiBcdCRncmlkLWdhbGxlcnktaXRlbS1zaXplLS1zbWFsbGlzaFx0XHQ6IDQ5JTtcbiBcdCRncmlkLWdhbGxlcnktbWFyZ2luLW9mZnNldC0tc21hbGxpc2hcdDogMSU7XG5cbiBcdCRncmlkLWdhbGxlcnktaXRlbS1zaXplLS1sYXJnaXNoXHRcdDogMzIlO1xuIFx0JGdyaWQtZ2FsbGVyeS1tYXJnaW4tb2Zmc2V0LS1sYXJnaXNoXHQ6IDEuMzMlO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogR3JpZCBHYWxsZXJ5IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbiBcbiAuby1ncmlkLWdhbGxlcnl7XG5cbiBcdEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuIFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB0LCAyeGwgKTtcblxuIH1cblxuIC5vLWdyaWQtZ2FsbGVyeV9fY29udGFpbmVye1xuIFx0XG4gXHRcbiBcdGRpc3BsYXk6IGZsZXg7XG4gXHRmbGV4LXdyYXA6IHdyYXA7XG4gXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiBcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gXHRtYXJnaW4tcmlnaHQ6IC0kZ3JpZC1nYWxsZXJ5LW1hcmdpbi1vZmZzZXQtLXNtYWxsaXNoO1xuXG4gXHRAaW5jbHVkZSBicmVha3BvaW50KCBzICl7XG4gXHRcdFxuIFx0XHRtYXJnaW4tcmlnaHQ6IC0kZ3JpZC1nYWxsZXJ5LW1hcmdpbi1vZmZzZXQtLWxhcmdpc2g7XG5cbiBcdH1cblxuIH1cblxuIC5vLWdyaWQtZ2FsbGVyeV9faXRlbXtcbiBcdFxuIFx0ZmxleDogMSAwICRncmlkLWdhbGxlcnktaXRlbS1zaXplLS1zbWFsbGlzaDtcbiBcdG1heC13aWR0aDogNzAwcHg7XG4gXHRtYXJnaW4tcmlnaHQ6ICRncmlkLWdhbGxlcnktbWFyZ2luLW9mZnNldC0tc21hbGxpc2g7XG4gXHRtYXJnaW4tYm90dG9tOiAkZ3JpZC1nYWxsZXJ5LW1hcmdpbi1vZmZzZXQtLXNtYWxsaXNoO1xuIFx0b3ZlcmZsb3c6aGlkZGVuO1xuIFx0XG4gXHRAaW5jbHVkZSB0cmFuc2l0aW9uKGxpbmspO1xuXG4gXHRAaW5jbHVkZSBicmVha3BvaW50KCBzICl7XG4gXHRcdFxuIFx0XHRmbGV4OiAxIDAgJGdyaWQtZ2FsbGVyeS1pdGVtLXNpemUtLWxhcmdpc2g7XG4gXHRcdG1hcmdpbi1yaWdodDogJGdyaWQtZ2FsbGVyeS1tYXJnaW4tb2Zmc2V0LS1sYXJnaXNoO1xuIFx0XHRtYXJnaW4tYm90dG9tOiAkZ3JpZC1nYWxsZXJ5LW1hcmdpbi1vZmZzZXQtLWxhcmdpc2g7XG5cbiBcdH1cbiBcdFxuXG4gfVxuIFxuIC5vLWdyaWQtZ2FsbGVyeV9faXRlbTpob3ZlcntcbiBcdFxuIFx0QGluY2x1ZGUgb3BhY2l0eSguODUpO1xuXG4gfVxuXG4gLm8tZ3JpZC1nYWxsZXJ5X19pbWd7XG4gXHRcbiBcdGRpc3BsYXk6IGluaGVyaXQ7XG4gXHRtYXJnaW46IDA7XG4gXHR3aWR0aDogMTAwJTtcblxuIH0iLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogSGVhZGVyXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVhZGVyIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQkaGVhZGVyLS1iZy1jb2xvclx0XHRcdDogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXHQkaGVhZGVyX19sb2dvLS1ob3Zlci1jb2xvclx0OiBjKCBncmF5c2NhbGUsIDMwICk7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZWFkZXIg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcdFxuXHQvKipcblx0ICogSGVhZGVyIOKAoiBCYXNlXG5cdCAqL1xuXHQuby1oZWFkZXJ7XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci0tYmctY29sb3I7XG5cblx0XHQvLyBNdXN0IGJlIHNldCBmb3IgbWVnYSBtZW51IHRvIHByb3Blcmx5IHBvc2l0aW9uXHRcdFxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHR9XG5cdFxuXHQvKipcblx0ICogSGVhZGVyIOKAoiBDb250YWluZXJcblx0ICovXG5cdC5vLWhlYWRlcl9fY29udGFpbmVye1xuXHRcdFxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgdCwgbSApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYiwgcyApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1xuXHRcdFx0XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgbSApO1xuXHRcdH1cblx0fVxuXHRcblx0LyoqXG5cdCAqIEhlYWRlciDigKIgSWNvblxuXHQgKi9cblx0Lm8taGVhZGVyX19sb2dve1xuXG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0fVxuXG5cdC5vLWhlYWRlcl9fbG9nbyAuYS1pY29ue1xuXHRcdFxuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxpbmsgKTtcblxuXHR9XG5cblx0Lm8taGVhZGVyX19sb2dvOmhvdmVyIC5hLWljb257XG5cdFx0XG5cdFx0ZmlsbDogJGhlYWRlcl9fbG9nby0taG92ZXItY29sb3I7XG5cblx0fVxuXHRcblxuXHQvKipcblx0ICogSGVhZGVyIERlc2t0b3AgTmF2aWdhdGlvblxuXHQgKi9cblx0XG5cdC5vLWhlYWRlcl9fbmF2LS1kZXNrdG9we1xuXG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG5cdH1cblxuXG5cdC8qKlxuXHQgKiBIZWFkZXIg4oCiIE1vYmlsZSBOYXZpZ2F0aW9uXG5cdCAqL1xuXG5cdCAuby1oZWFkZXJfX25hdi0tbW9iaWxle1xuXHRcdFxuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDRweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcblxuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFxuXHRcdH1cblxuXHQgfVxuXG5cblx0IC5vLWhlYWRlcl9fbmF2LS1tb2JpbGUgLmEtaWNvbntcblx0XHRcdFxuXHRcdFx0ZmlsbDogYyggZ2xvdy10dXJxICk7XG5cblx0IH1cbiIsIi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgcmVsYXRpbmcgdG8gSGVyb2VzXG4gKiBHcm91cFx0OiBIZXJvXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKlxuICogRmlsZSBJbXBvcnQgTGlzdFxuICogKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvL1xuXHQvLyBBbGwgZmlsZXMgYXJlIGltcG9ydGVkIGluIGFscGhhYmV0aWNhbCBvcmRlciB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZC5cblx0Ly9cblx0XG5cdEBpbXBvcnQgJ19vLWhlcm8nO1xuXHRAaW1wb3J0ICdfby1oZXJvLS1jb3Zlcic7XG5cdEBpbXBvcnQgJ19vLWhlcm8tLW9mZnNldCc7XG5cdEBpbXBvcnQgJ19vLWhlcm8tLWlzc3VlJztcblx0QGltcG9ydCAnX28taGVyby0tc2ltcGxlJzsiLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogSGVyb1xuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEhlcm8g4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQkaGVyby0tYmctY29sb3I6IGMoIGdyYXlzY2FsZSwgOTAgKTtcblx0XG5cdC8vIFRhbGwgdmFyaWF0aW9uXG5cdCRoZXJvLS10YWxsLS1taW4taGVpZ2h0OiA2NXZoO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0LyoqXG5cdCAqIEJhc2Vcblx0ICovXG5cdC5vLWhlcm97XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGhlcm8tLWJnLWNvbG9yO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBWYXJpYXRpb24g4oCiIFRhbGxcblx0ICovXG5cdC5vLWhlcm8tLXRhbGx7XG5cdFx0XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRtaW4taGVpZ2h0OiAkaGVyby0tdGFsbC0tbWluLWhlaWdodDtcblxuXHR9IiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IEhlcm8gQ292ZXJcbiAqIERlc2MgOiBDZW50ZXJlZCBDb250ZW50IHdpdGggQkcgSW1hZ2VzIHRoYXQgQ292ZXJcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZXJvIENvdmVyIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZXJvIENvdmVyIOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC5vLWhlcm8tLWNvdmVye1xuXHRcdFxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgM3hsICk7XG5cdFx0QGV4dGVuZCAlYmctLWNvdmVyO1xuXHRcdEBleHRlbmQgJWJnLS1wb3MtLWNlbnRlcjtcblx0XHRcblx0XHQ+IC5vLWhlcm9fX2NvbnRhaW5lcntcblx0XHRcdFxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuXHRcdFx0QGV4dGVuZCAlZmxleC0tY2VudGVyLS1hbGw7XG5cblx0XHR9XG5cdFx0XG5cdH1cblxuXHQvKipcblx0ICogSGVybyBDb3ZlciDigKIgVGhlbWVzXG5cdCAqXG5cdCAqIFVzZSBhIG1peGluIHRvIGJ1aWxkIGRpZmZlcmVudCBjb3ZlciBoZXJvIHRoZW1lcy5cblx0ICogVGhlc2Ugd2lsbCBhdXRvbWF0ZSBoZXJvIGNvbG9yaW5nIGZvciBzaW5nbGUgcG9zdCBwYWdlc1xuXHQgKiBiYXNlZCBvbiB0aGUgcG9zdCBjYXRlZ29yeS5cblx0ICpcblx0ICogTk9URTogVGhlc2UgdGhlbWVzIHdpbGwgb25seSBhcHBseSB0byBgLm8taGVyby0tY292ZXJgIGhlcm8gdHlwZXMuXG5cdCAqL1xuXG5cdC8vIFF1aWNrbHkgQ2F0ZWdvcnkgQ29sb3JzXG5cdEBlYWNoICRjYXRlZ29yeSwgJGNhdGVnb3J5LWNvbG9yIGluICRxdWlja2x5LWNhdC1jb2xvcl9jb25maWcge1xuXG5cdFx0QGluY2x1ZGUgdGhlbWUtLWhlcm8tLWNvdmVyKCAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciApO1xuXG5cdH1cblxuXHQvLyBJc3N1ZSBDYXRlZ29yeSBDb2xvcnNcblx0QGVhY2ggJGNhdGVnb3J5LCAkY2F0ZWdvcnktY29sb3IgaW4gJGlzc3VlLWNhdC1jb2xvcl9jb25maWcge1xuXG5cdFx0QGluY2x1ZGUgdGhlbWUtLWhlcm8tLWNvdmVyKCAkY2F0ZWdvcnksICRjYXRlZ29yeS1jb2xvciApO1xuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogSGVybyBPZmZzZXRcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBIZXJvIE9mZnNldCDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0JGhlcm8tLW9mZnNldC0tYnJlYWtwb2ludFx0XHRcdDogbDtcblx0JGhlcm8tLW9mZnNldF9faW1nLWhlaWdodC0tc21hbGxpc2hcdDogMzUwcHg7XG5cdCRoZXJvLS1vZmZzZXRfX2ltZy13aWR0aC0tbGFyZ2lzaFx0OiA2MDBweDtcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEhlcm8gT2Zmc2V0IOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQvKipcblx0ICogQmFzZVxuXHQgKi9cblx0Lm8taGVyby0tb2Zmc2V0e1xuXHRcdFxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcdFx0XG5cdFx0XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkaGVyby0tb2Zmc2V0LS1icmVha3BvaW50ICl7XG5cblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBpbml0aWFsO1xuXG5cdFx0fVxuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBIZXJvIE9mZnNldCDigKIgSW1hZ2Vcblx0ICovXG5cdC5vLWhlcm8tLW9mZnNldCAuby1oZXJvX19pbWd7XG5cdFx0XG5cdFx0ZmxleDogMCAxICRoZXJvLS1vZmZzZXRfX2ltZy1oZWlnaHQtLXNtYWxsaXNoO1xuXHRcdEBleHRlbmQgJWJnLS1jb3Zlcjtcblx0XHRAZXh0ZW5kICViZy0tcG9zLS1jZW50ZXI7XG5cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRoZXJvLS1vZmZzZXQtLWJyZWFrcG9pbnQgKXtcblx0XHRcdGZsZXg6IDAgMSAkaGVyby0tb2Zmc2V0X19pbWctd2lkdGgtLWxhcmdpc2g7XG5cdFx0fVxuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBIZXJvIE9mZnNldCDigKIgQ29udGVudFxuXHQgKi9cblx0Lm8taGVyby0tb2Zmc2V0IC5vLWhlcm9fX2NvbnRlbnR7XG5cdFx0XG5cdFx0ZmxleDogMTtcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeCwgbCApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgeSwgeGwgKTtcblxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGhlcm8tLW9mZnNldC0tYnJlYWtwb2ludCApe1xuXHRcdFx0XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB4LCB4bCApO1xuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCAzeGwgKTtcblx0XHRcdFxuXG5cdFx0fVxuXG5cdH1cblxuXG5cdC8qKlxuXHQgKiBIZXJvIE9mZnNldCDigKIgTXkgT2xkIEhvdXNlXG5cdCAqXG5cdCAqIFRoZSBIZXJvIG9mZnNldCBmb3IgTXkgT2xkIEhvdXNlIGhhcyBhIHNwZWNpYWwgc3R5bGluZyB0aGF0XG5cdCAqIGFwcGxpZXMgdG8gdGhlIGBtLXRpdGxlLWdyb3VwX19wcmVgIGVsZW1lbnQuXG5cdCAqL1xuXHQuby1oZXJvLS1vZmZzZXQuby1oZXJvLS1vZmZzZXQtLW15LW9sZC1ob3VzZSAubS10aXRsZS1ncm91cF9fcHJle1xuXHRcdFxuXHRcdC8vIFdlIG5lZWQgdG8gZmV0Y2ggdGhlIG15IG9sZCBob3VzZSBjb2xvciBmcm9tIHRoZSBRdWlja2x5IGNvbG9yIGNvbmZpZyBmaWxlXG5cdFx0Y29sb3I6IG1hcC1nZXQoICRxdWlja2x5LWNhdC1jb2xvcl9jb25maWcsIG15LW9sZC1ob3VzZSApO1xuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogSGVybyBJc3N1ZVxuICogRGVzYyA6IFNwZWNpZmljYWxseSB1c2VkIG9uIElzc3VlIGxhbmRpbmcgcGFnZXNcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyBJc3N1ZSDigKIgU2V0dGluZ3NcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdCRoZXJvLS1pc3N1ZS0tYmctY29sb3JcdFx0OiBjKCBncmF5c2NhbGUsIDk4ICk7XG5cdCRoZXJvLS1pc3N1ZS0tYnJlYWtwb2ludFx0OiBsO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyBJc3N1ZSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcdFxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8qKlxuXHQgKiBCYXNlXG5cdCAqL1xuXG5cdC5vLWhlcm8tLWlzc3Vle1xuXHRcdFxuXHRcdGJhY2tncm91bmQ6ICRoZXJvLS1pc3N1ZS0tYmctY29sb3I7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCB4bCApO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRoZXJvLS1pc3N1ZS0tYnJlYWtwb2ludCApe1xuXG5cdFx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIDN4bCApO1xuXG5cdFx0fVxuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBIZXJvIElzc3VlIOKAoiBDb250YWluZXJcblx0ICovXG5cdC5vLWhlcm8tLWlzc3VlIC5vLWhlcm9fX2NvbnRhaW5lcntcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcblx0XHRAaW5jbHVkZSBjb250YWluZXIoKTtcblx0XHRAZXh0ZW5kICVmbGV4LS1jZW50ZXItLWFsbDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRoZXJvLS1pc3N1ZS0tYnJlYWtwb2ludCApe1xuXHRcdFx0XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXG5cdFx0fVxuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBIZXJvIElzc3VlIOKAoiBDb250ZW50XG5cdCAqL1xuXHQuby1oZXJvLS1pc3N1ZSAuby1oZXJvX19jb250ZW50e1xuXHRcdFxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYWxsLCBtICk7XHRcdFxuXHRcdFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRoZXJvLS1pc3N1ZS0tYnJlYWtwb2ludCApe1xuXHRcdFx0XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCBhbGwsIHhsICk7XG5cblx0XHR9XG5cblx0fVxuXG5cdC5vLWhlcm8tLWlzc3VlIC5tLXRpdGxlLWdyb3VwX19hY3Rpb257XG5cdFx0XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHksIG1sICk7XG5cblx0fSIsIi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBIZXJvIFNpbXBsZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEhlcm8gU2ltcGxlIOKAoiBTZXR0aW5nc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0JGhlcm8tLXNpbXBsZV9faGlnaGxpZ2h0LS1jb2xvclx0XHQ6IGMoIGJsdWUgKTtcblx0JGhlcm8tLXNpbXBsZV9fY29udGVudC0tbWF4LXdpZHRoXHQ6IDYwMHB4O1xuXHQkaGVyby0tc2ltcGxlX19hY3Rpb24tLW1heC13aWR0aFx0OiA3MDBweDtcblx0XG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogSGVybyBTaW1wbGUg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblxuXHQvKipcblx0ICogU2ltcGxlIEhlcm8g4oCiIEJhc2Vcblx0ICovXG5cdC5vLWhlcm8tLXNpbXBsZXtcblx0XHRcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCAzeGwgKTtcblxuXHRcdD4gLm8taGVyb19fY29udGFpbmVye1xuXHRcdFx0XG5cdFx0XHRAaW5jbHVkZSBjb250YWluZXIoKTtcblxuXHRcdH1cblxuXHR9XG5cdFxuXHQvKipcblx0ICogSGVybyBTaW1wbGUg4oCiIENvbnRlbnQgJiBBY3Rpb25zXG5cdCAqL1xuXHQuby1oZXJvLS1zaW1wbGUgLm0tdGl0bGUtZ3JvdXBfX2NvbnRlbnQsXG5cdC5vLWhlcm8tLXNpbXBsZSAubS10aXRsZS1ncm91cF9fYWN0aW9ue1xuXHRcdFxuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblxuXHR9XG5cdFxuXHQuby1oZXJvLS1zaW1wbGUgLm0tdGl0bGUtZ3JvdXBfX2NvbnRlbnR7XG5cdFx0XG5cdFx0bWF4LXdpZHRoOiAkaGVyby0tc2ltcGxlX19jb250ZW50LS1tYXgtd2lkdGg7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtICx0LCBtbCApO1xuXG5cdH1cblxuXHQuby1oZXJvLS1zaW1wbGUgLm0tdGl0bGUtZ3JvdXBfX2FjdGlvbntcblx0XHRcblx0XHRtYXgtd2lkdGg6ICRoZXJvLS1zaW1wbGVfX2FjdGlvbi0tbWF4LXdpZHRoO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggbSAsdCwgbWwgKTtcblx0XHRcblx0fVxuXHRcblx0LyoqXG5cdCAqIEhlcm8gU2ltcGxlIOKAoiBIaWdobGlnaHRlZCBUZXh0XG5cdCAqL1xuXG5cdC5vLWhlcm8tLXNpbXBsZV9faGlnaGxpZ2h0e1xuXHRcdFxuXHRcdGNvbG9yOiAkaGVyby0tc2ltcGxlX19oaWdobGlnaHQtLWNvbG9yO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgdCwgbSApO1xuXHRcdFxuXHRcdC8vIE1ha2UgaGlnaGxpZ2h0ZWQgaW5saW5lIGFib3ZlIHRoaXMgcG9pbnQuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbSApe1xuXHRcdFx0XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXG5cdFx0fVxuXG5cdH0iLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogTGlzdC1PLU1hdGljXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIEphbWVzIFdhc2hpbmd0b25cbiAqL1xuXG4uby1saXN0LW8tbWF0aWMge1xuICAgIC5saXN0b21hdGljX19jb250YWluZXIgeyBcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsgXG4gICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgfSBcbiAgICAubGlzdG9tYXRpY19fa2lja2VyLWNvbnRhaW5lciB7IFxuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsgXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyBcbiAgICAgICAgZGlzcGxheTogZmxleDsgXG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgfSBcbiAgICAubGlzdG9tYXRpY19fa2lja2VyIHsgXG4gICAgICAgIGZsZXg6IDAgMCAxMDAlOyBcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyBcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTsgXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTsgXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IFxuICAgICAgICBmb250LWZhbWlseTogQ2hhbXBpb24gV2VsdGVyd3QgQSxDaGFtcGlvbiBXZWx0ZXJ3dCBCLENoYW1waW9uIEhURi1XZWx0ZXJ3ZWlnaHQsc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfSBcblxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKXsgXG4gICAgICAubGlzdG9tYXRpY19fa2lja2VyIHsgXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC45Mzc1cmVtOyBcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgICAgIH0gXG4gICAgfSAgICAgXG5cbiAgICAubGlzdG9tYXRpY19fY29udGVudC13cmFwcGVyIHsgXG4gICAgICAgIGRpc3BsYXk6ICBmbGV4OyBcbiAgICAgICAgbWF4LXdpZHRoOiAgMTIwMHB4OyBcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAgYXV0bzsgXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAgYXV0bzsgXG4gICAgICAgIGZsZXgtZmxvdzogIHJvdyB3cmFwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IFxuICAgICAgICBwYWRkaW5nLXRvcDogMzBweDsgXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIH0gXG5cbiAgICAubGlzdG9tYXRpY19fY29udGVudC13cmFwcGVyOmZpcnN0LWNoaWxkIHsgXG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH0gXG5cbiAgICAubGlzdG9tYXRpY19fY29udGVudC13cmFwcGVyOmFmdGVyIHsgXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG4gICAgICAgIGJvdHRvbTogMDsgXG4gICAgICAgIGxlZnQ6IDIwcHg7IFxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7IFxuICAgICAgICBoZWlnaHQ6IDFweDsgXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7IFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xuICAgIH0gXG5cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgICAgLmxpc3RvbWF0aWNfX2NvbnRlbnQtd3JhcHBlcjphZnRlciB7IFxuICAgICAgICBsZWZ0OiAxNXB4OyBcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgICAgfSBcbiAgICB9ICAgICBcbiBcblxuXG5cbiAgICAubGlzdG9tYXRpY19faW1hZ2Utd3JhcHBlciB7IFxuICAgICAgICBmbGV4OiAwIDAgMTAwJTsgXG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07IFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07IFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH0gXG5cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgICAgLmxpc3RvbWF0aWNfX2ltYWdlLXdyYXBwZXIgeyBcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07IFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtOyBcbiAgICAgICAgZmxleDogMCAwIDI2LjY2NjY3JTsgXG4gICAgICAgIG1heC13aWR0aDogNDEuNjY2NjclOyBcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH0gXG4gICAgfSAgICAgXG5cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXsgXG4gICAgICAubGlzdG9tYXRpY19faW1hZ2Utd3JhcHBlciB7IFxuICAgICAgICBmbGV4OiAwIDAgMTYuNjY2NjclOyBcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gICAgICB9IFxuICAgIH0gICAgIFxuXG4gICAgLmxpc3RvbWF0aWNfX2NvcHktd3JhcHBlciB7IFxuICAgICAgICBmbGV4OiAwIDAgMTAwJTsgXG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07IFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gICAgfSBcblxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKXsgXG4gICAgICAubGlzdG9tYXRpY19fY29weS13cmFwcGVyIHsgXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC45Mzc1cmVtOyBcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTsgXG4gICAgICAgIGZsZXg6IDAgMCA3MC4zMzMzMyU7IFxuICAgICAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTtcbiAgICAgIH0gXG4gICAgfSAgICAgXG5cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXsgXG4gICAgICAubGlzdG9tYXRpY19fY29weS13cmFwcGVyIHsgXG4gICAgICAgIGZsZXg6IDAgMCA4MC4zMzMzMyU7IFxuICAgICAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTtcbiAgICAgIH0gXG4gICAgfSAgICAgXG5cbiAgICAubGlzdG9tYXRpY19fY29udGVudC13cmFwcGVyIC5saXN0b21hdGljX19jb3B5LXdyYXBwZXI6b25seS1jaGlsZCAgeyBcbiAgICAgICAgZmxleDogMCAwIDEwMCU7IFxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtOyBcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICAgIH0gXG5cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgICAgLmxpc3RvbWF0aWNfX2NvbnRlbnQtd3JhcHBlciAubGlzdG9tYXRpY19fY29weS13cmFwcGVyOm9ubHktY2hpbGQgIHsgXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC45Mzc1cmVtOyBcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuOTM3NXJlbTtcbiAgICAgIH0gXG59ICAgIFxuXG4gICAgLmxpc3RvbWF0aWNfX2ltYWdlLWxpbmsgeyBcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9IFxuICAgIGEubGlzdG9tYXRpY19faW1hZ2UtbGluayB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxpc3RvbWF0aWNfX2NvcHktaGVhZGVyIHsgXG4gICAgICAgIEBpbmNsdWRlIGZvbnQoJ2hlYWRpbmctYmFudGFtJywgJ3JlZ3VsYXInKTtcbiAgICAgICAgZm9udC1zaXplOiAyLjI1cmVtOyBcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyBcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE2NjY3OyBcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICB9IFxuXG4gICAgYS5saXN0b21hdGljX19jb3B5LWhlYWRlciB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5saXN0b21hdGljX19jb3B5IHsgXG4gICAgICAgIEBpbmNsdWRlIGZvbnQoJ2JvZHknKTtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgfSBcblxuICAgIGEuY3RhX19zdGFuZGFyZCB7IFxuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IFxuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMjVzOyBcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjsgXG4gICAgICAgIGZvbnQtZmFtaWx5OiBXb3JrIFNhbnMsc2Fucy1zZXJpZjsgXG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsgXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IFxuICAgICAgICBsaW5lLWhlaWdodDogMS4xODc1OyBcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IFxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDsgXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDsgXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyBcbiAgICAgICAgY29sb3I6ICMxMjAwZGE7IFxuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH0gXG5cbiAgICBhLmN0YV9fc3RhbmRhcmQ6aG92ZXIgeyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDI0MywyNTUsLjIpO1xuICAgICAgICBjb2xvcjogIzEyMDBkYTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9IFxuXG5cbiAgICAubGlzdG9tYXRpY19faW1hZ2UgeyBcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyBcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1cztcbiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICB9IFxuXG4gICAgLmxpc3RvbWF0aWNfX2ltYWdlOmhvdmVyIHsgXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICB9IFxuXG4gICAgLmN0YV9fY29weSB7IFxuICAgICAgICBwYWRkaW5nOiAxMHB4OyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDI0MywyNTUsMCk7XG4gICAgfSBcblxuICAgIC5jdGFfX2Fycm93IHsgXG4gICAgICAgIGRpc3BsYXk6ICBpbmxpbmUtYmxvY2s7IFxuICAgICAgICBwYWRkaW5nOiAgMTBweDtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyBcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjI1czsgXG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGZpbGw7IFxuICAgICAgICBmaWxsOiAjMDBmM2ZmO1xuICAgIH0gXG5cbiAgICAuY3RhX19zdGFuZGFyZDpob3ZlciAuY3RhX19hcnJvdyAgeyBcbiAgICAgICAgZmlsbDogIzE3MWI0ODtcbiAgICB9IFxuXG5cbiAgICAuYXJyb3ctaWNvbiB7IFxuICAgICAgICB3aWR0aDogMTVweDsgXG4gICAgICAgIG1heC13aWR0aDogMTVweDtcbiAgICB9XG5cbiAgICAubGlzdG9tYXRpY19fbGluay13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxuXG5cbn1cblxuQGVhY2ggJGNhdGVnb3J5LFxuJGNhdGVnb3J5LWNvbG9yIGluICRpc3N1ZS1jYXQtY29sb3JfY29uZmlnIHtcblxuICAgIEBpbmNsdWRlIGxpc3Qtby1tYXRpYy0tdGhlbWUoJGNhdGVnb3J5LCAkY2F0ZWdvcnktY29sb3IpO1xuXG59IiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1lZ2EgTWVudSDigKIgQmFzZVxuICogRGVzYyA6IEhhbmRsZSBzdHlsaW5nIGZvciBjb3JlIG1lZ2EgbWVudSBlbGVtZW50cy5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZWdhIE1lbnUg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdCRtZWdhLS1iZy1jb2xvclx0XHRcdFx0XHQ6IGMoIGdyYXlzY2FsZSwgOTAgKTtcblx0XG5cdC8qKlxuXHQgKiBUZXh0IEFyZWEgKCBvbmx5IG9uIE15IE9sZCBIb3VzZSB0YWIgKVxuXHQgKi9cblx0XG5cdCRtZWdhX190ZXh0LWFyZWEtLW1heC13aWR0aFx0XHQ6IDY1MHB4O1xuXHQkbWVnYV9fdGV4dC1hcmVhLS13aWR0aC1vZmZzZXRcdDogMTc1cHg7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZWdhIE1lbnUg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5cdC8qKlxuXHQgKiBNZWdhIE1lbnUg4oCiIEJhc2Vcblx0ICovXG5cblx0Lm8tbWVnYXtcblx0XHRcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbWVnYS0tYmctY29sb3I7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDoxMDAlO1xuXHRcdGxlZnQ6MDtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHotaW5kZXg6IHooIG5hdiApO1xuXG5cdFx0QGluY2x1ZGUgYm9yZGVyKCBtZWdhLW1lbnUsIGJvdHRvbSApO1xuXHRcdEBpbmNsdWRlIG9wYWNpdHkoIDAgKTtcblx0XHRAaW5jbHVkZSBzaGFkb3coIG1lZ2EtbWVudSApO1xuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBNZWdhIE1lbnUg4oCiIFBhbmVsXG5cdCAqXG5cdCAqIFRoZSBwcmltYXJ5IGludGVybmFsIGhvbGRlciBmb3IgYWxsIE1lZ2EgTWVudSBjb250ZW50XG5cdCAqL1xuXHQuby1tZWdhX19wYW5lbHtcblx0XHRcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdFxuXHR9XG5cdFxuXG5cdC8qKlxuXHQgKiBNZWdhIE1lbnUg4oCiIFRpdGxlc1xuXHQgKlxuXHQgKiBUaXRsZXMgYXBwZWFyIGFib3ZlIGVhY2ggdW5pcXVlIFwiV2VsbFwiXG5cdCAqL1xuXHRcdFxuXHQuby1tZWdhX190aXRsZXtcblxuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgYiwgbSApO1xuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBNZWdhIE1lbnUg4oCiIFRleHQgQXJlYVxuXHQgKlxuXHQgKiBLZWVwIHdpZHRoLXJlc3RyaWN0ZWQgZm9yIHZpc3VhbCBwdXJwb3NlcyBhbmQgXG5cdCAqIHByZXZlbnRzIGl0IGZyb20gZmxvd2luZyBiZWhpbmQgdGhlIGBvLW1lZ2FfX2N0YWAgZWxlbWVudC5cblx0ICovXG5cblx0IC5vLW1lZ2FfX3RleHQtYXJlYXtcblx0XHRcblx0XHRtYXgtd2lkdGg6ICRtZWdhX190ZXh0LWFyZWEtLW1heC13aWR0aDtcblx0XHR3aWR0aDogY2FsYyggMTAwJSAtICN7JG1lZ2FfX3RleHQtYXJlYS0td2lkdGgtb2Zmc2V0fSApO1xuXG5cdCB9IiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1lZ2EgTWVudSDigKIgQWN0aXZlIFN0YXRlXG4gKiBEZXNjXHQ6IFdoZW4gdGhlIG1lZ2EgbWVudSBpcyBhY3RpdmF0ZWQsIGEgY2xhc3MgaXMgYWRkZWQgdmlhIEpTIGFuZFxuICogc3R5bGluZyBuZWVkcyB0byByZWZsZWN0IHRoZSBuZXcgbWVnYSBtZW51IHN0YXRlLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZ2EgTWVudSBBY3RpdmUg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdCRtZWdhLS1hY3RpdmUtLWNvbG9yXHQ6IGMoIGJsdWUgKTtcblx0JG1lZ2EtLWFjdGl2ZS0tYmctY29sb3JcdDogYyggZ3JheXNjYWxlLCA5MCApO1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IEFjdGl2ZSDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cblx0Ly8gRGlzcGxheSB0aGUgZW50aXJlIG1lZ2EgbWVudVxuXHQuby1tZWdhLm8tbWVnYS0tYWN0aXZle1xuXHRcdFxuXHRcdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdFx0QGluY2x1ZGUgb3BhY2l0eSggMSApO1xuXG5cdH1cblxuXHQvLyBIYW5kbGUgdHJpZ2dlciBsaW5rIGFjdGl2ZSBzdGF0ZVxuXHRhLmhhcy1tZWdhLS1hY3RpdmV7XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJG1lZ2EtLWFjdGl2ZS0tYmctY29sb3I7XG5cdFx0Ly8gRHVlIHRvIElFIGNvbXBhdGliaWxpdHksIGNvbG9yIHdhcyBzcGVjaWZpZWRcblx0XHQvLyBvbiAubS1tZW51LS1wcmltYXJ5IC5tLW1lbnVfX2l0ZW1fX2FuY2hvclxuXHRcdC8vIHRvIGtlZXAgdGhlIGJ1dHRvbiBhY3RpdmUgY29sb3IsIHRoaXMgbXVzdFxuXHRcdC8vIGJlIHNldCB0byAhaW1wb3J0YW50IDooXG5cdFx0Y29sb3I6ICRtZWdhLS1hY3RpdmUtLWNvbG9yICFpbXBvcnRhbnQ7XG5cblx0fVxuIiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1lZ2EgTWVudSDigKIgQ1RBXG4gKiBEZXNjIDogQSBzcGVjaWFsIGNhbGwtdG8tYWN0aW9uIGJ1dHRvbiBwb3NpdGlvbmVkIHRvIHRoZSBmYXIgcmlnaHQgb2YgdGhlIG1lZ2EgbWVudVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZ2EgTWVudSBDVEEg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdCRtZWdhX19jdGEtLWJnLWNvbG9yXHRcdFx0OiBjKCBncmF5c2NhbGUsIDk1ICk7XG5cdCRtZWdhX19jdGEtLWJnLWNvbG9yLS1ob3Zlclx0XHQ6IGMoIGdyYXlzY2FsZSwgOTggKTtcblx0JG1lZ2FfX2N0YS0td2lkdGhcdFx0XHRcdDogMjAwcHg7XG5cblx0Ly8gQ1RBIEFycm93XG5cdCRtZWdhX19jdGFfX2Fycm93LS15LW9mZnNldFx0XHQ6IDE1cHg7XG5cdCRtZWdhX19jdGFfX2Fycm93LS1jb2xvclx0XHQ6IGMoIGdsb3ctcmVkICk7XG5cdFxuXHQvLyBDVEEgVGl0bGVcblx0JG1lZ2FfX2N0YV9fdGl0bGUtLWNvbG9yXHRcdDogYyggYmx1ZSApO1xuXHQkbWVnYV9fY3RhX190aXRsZS0tdG9wLW9mZnNldFx0OiAtMTVweDtcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIE1lZ2EgTWVudSBDVEEg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHQuby1tZWdhX19jdGF7XG5cblx0XHRiYWNrZ3JvdW5kOiAkbWVnYV9fY3RhLS1iZy1jb2xvcjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOjA7XG5cdFx0d2lkdGg6ICRtZWdhX19jdGEtLXdpZHRoO1xuXHRcdFxuXHRcdEBleHRlbmQgJWZsZXgtLWNlbnRlci0tYWxsO1xuXG5cdFx0Ly8gUGFzc2luZyBpbiBjdXN0b20gcGFyYW1zIHRvIG91ciBhcnJvdyB0byBwb3NpdGlvbiBpdCB3aGVyZSB3ZSBuZWVkIGl0XG5cdFx0QGluY2x1ZGUgYWN0aW9uLWFycm93KCAkeS1wb3NpdGlvbi1vZmZzZXQ6ICRtZWdhX19jdGFfX2Fycm93LS15LW9mZnNldCwgJGNvbG9yOiAkbWVnYV9fY3RhX19hcnJvdy0tY29sb3IgKTtcblx0XHRAaW5jbHVkZSBzaGFkb3coIG1lZ2EtbWVudS1jdGEgKTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKCBidG4gKTtcblx0XHRcblx0fVxuXHRcblx0Lm8tbWVnYV9fY3RhOmhvdmVye1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJG1lZ2FfX2N0YS0tYmctY29sb3ItLWhvdmVyO1xuXG5cdH1cblx0XG5cdC5vLW1lZ2FfX2N0YV9fdGl0bGV7XG5cdFx0XG5cdFx0Y29sb3I6ICRtZWdhX19jdGFfX3RpdGxlLS1jb2xvcjtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQvKipcblx0XHQgKiBJbiBvcmRlciBmb3IgdGhlIGFycm93IGFuZCB0aXRsZSB0byBhcHBlYXIgY2VudGVyZWQsIHRoZSB0aXRsZSBuZWVkc1xuXHRcdCAqIGl0cyB0b3Agb2Zmc2V0IGJlIG1hbnVhbGx5IGFkanVzdGVkLlxuXHRcdCAqL1xuXHRcdHRvcDogJG1lZ2FfX2N0YV9fdGl0bGUtLXRvcC1vZmZzZXQ7XG5cblx0fSIsIi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBNZWdhIE1lbnUg4oCiIEZlZWRcbiAqIERlc2MgOiBUaGUgd3JhcHBlciB3aGVyZSBvdXIgTWVnYSBNZW51IFNsaWRlciB3aWxsIGV2ZW50dWFsbHkgbGl2ZS4gVXNlZCBmb3IgZGlzcGxheWluZyBhIGZlZWQgb2YgcmVjZW50IGNvbnRlbnQuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IEZlZWQg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQkbWVnYV9fZmVlZC0td2lkdGgtb2Zmc2V0XHRcdFx0OiAxMzZweDtcblx0XG5cdC8vIFF1aWNrbHktc3BlY2lmaWMgaW1hZ2UgYXR0cmlidXRlc1xuXHQkbWVnYV9fZmVlZC0tcXVpY2tseV9faW1nLXNpemVcdFx0OiAyMjVweDtcblxuXHQvLyBNYWdhemluZSBJc3N1ZS1zcGVjaWZpYyBpbWFnZSBhdHRyaWJ1dGVzXG5cdCRtZWdhX19mZWVkLS1tYWdhemluZV9faW1nLWhlaWdodFx0OiAyMDBweDtcblx0JG1lZ2FfX2ZlZWQtLW1hZ2F6aW5lX19pbWctd2lkdGhcdDogMTUwcHg7XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZWdhIE1lbnUgRmVlZOKAoiBDbGFzcyBEZWZpbml0aW9uc1xuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cblx0LyoqXG5cdCAqIE1lZ2EgTWVudSBGZWVkIOKAoiBCYXNlXG5cdCAqL1xuXHRcblx0Lm8tbWVnYV9fZmVlZHtcblxuXHRcdC8qKlxuXHRcdCAqIEluIG9yZGVyIHRvIGtlZXAgdGhlIGZlZWQgZnJvbSBwYXNzaW5nIGJlaGluZCBgby1tZWdhX19jdGFgLCB3ZSBuZWVkIHRvIHRha2UgdGhlIHRvdGFsXG5cdFx0ICogd2lkdGggYW5kIHN1YnRyYWN0IGFuIG9mZnNldCB2YWx1ZSB3aGljaCB3ZSB3aWxsIGRlZmluZVxuXHRcdCAqL1xuXHRcdHdpZHRoOiBjYWxjKCAxMDAlIC0gI3skbWVnYV9fZmVlZC0td2lkdGgtb2Zmc2V0fSApO1xuXG5cdH1cblxuXG5cdC8vIFRoZSBpbm5lci13cmFwcGVyXG5cdC5vLW1lZ2FfX2ZlZWRfX3dyYXBwZXJ7XG5cdFx0XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcblx0fVxuXHRcblxuXHQvKipcblx0ICogTWVnYSBNZW51IEZlZWQg4oCiIEl0ZW1cblx0ICpcblx0ICogRWFjaCBpdGVtIGRpc3BsYXllZCB3aXRoaW4gdGhlIGZlZWRcblx0ICovXG5cblx0Lm8tbWVnYV9fZmVlZF9faXRlbXtcblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHIsIGxtICk7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiggbGluayApO1xuXHRcdFxuXHRcdC8vIFJlbW92ZSB0aGF0IG91dGxpbmUhXG5cdFx0Jjpmb2N1c3tcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyBIYW5kbGUgdGhlIGhvdmVyIHN0YXRlXG5cdC5vLW1lZ2FfX2ZlZWRfX2l0ZW06aG92ZXIgLm8tbWVnYV9fZmVlZF9faW1ne1xuXG5cdFx0QGluY2x1ZGUgb3BhY2l0eSggLjkgKTtcblxuXHR9XG5cdFxuXG5cdC8qKlxuXHQgKiBNZWdhIE1lbnUgRmVlZCDigKIgSW1hZ2VzXG5cdCAqL1xuXG5cdC5vLW1lZ2FfX2ZlZWRfX2ltZ3tcdFxuXHRcdFxuXHRcdEBpbmNsdWRlIHNoYWRvdyggbWVkaWEtLXN1YnRsZSApO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxpbmsgKTtcblxuXHR9XG5cblx0Ly8gTWFnYXppbmUtc3BlY2lmaWMgaW1hZ2VzXG5cdC5vLW1lZ2EtLW1hZ2F6aW5lIC5vLW1lZ2FfX2ZlZWRfX2ltZ3tcblxuXHRcdGhlaWdodDogJG1lZ2FfX2ZlZWQtLW1hZ2F6aW5lX19pbWctaGVpZ2h0O1xuXHRcdHdpZHRoOiBcdCRtZWdhX19mZWVkLS1tYWdhemluZV9faW1nLXdpZHRoO1xuXG5cdH1cblx0XG5cdC8vIFF1aWNrbHktc3BlY2lmaWMgaW1hZ2VzXG5cdC5vLW1lZ2EtLXF1aWNrbHkgLm8tbWVnYV9fZmVlZF9faW1ne1xuXHRcdFxuXHRcdHdpZHRoOiBcdCRtZWdhX19mZWVkLS1xdWlja2x5X19pbWctc2l6ZTtcblxuXHR9IiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IE1lZ2EgTWVudSBXZWxsXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVnYSBNZW51IFdlbGwg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQvLyBXZWxsLS1saXN0XG5cdCRtZWdhLS1saXN0LS1maXJzdC0tYmctY29sb3JcdDogYyggZ2xvdy1uYXZ5ICk7XG5cdCRtZWdhLS1saXN0LS1zZWNvbmQtLWJnLWNvbG9yXHQ6IGMoIGJsdWUgKTtcblx0JG1lZ2EtLWxpc3QtLXdpZHRoXHRcdFx0XHQ6IDM3NXB4O1xuXHQkbWVnYS0tbGlzdF9fYW5jaG9yLS13aWR0aFx0XHQ6IDI1MHB4O1xuXHQkbWVnYS0tbGlzdF9fdGl0bGUtLWNvbG9yXHRcdDogYyggZ3JheXNjYWxlLCB3aGl0ZSApO1xuXG5cdC8vIFdlbGwtLWZlYXR1cmVkXG5cdCRtZWdhLS1mZWF0X190aXRsZS0tY29sb3JcdFx0OiBjKCBibHVlICk7XHRcblx0XG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBNZWdhIE1lbnUgV2VsbCDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvKipcblx0ICogTWVnYSBNZW51IOKAoiBXZWxsXG5cdCAqL1xuXG5cdC5vLW1lZ2FfX3dlbGx7XG5cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XG5cdH1cblxuXHQuby1tZWdhX193ZWxsLS1mZWF0dXJlZCxcblx0Lm8tbWVnYV9fd2VsbC0tbGlzdHtcblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHgsIHhsICk7XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCB5LCBsbSApO1xuXHRcdFxuXHR9XG5cblx0LyoqXG5cdCAqIFdlbGwgVHlwZSAtLSBMaXN0XG5cdCAqL1xuXHQuby1tZWdhX193ZWxsLS1saXN0e1xuXG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXG5cdFx0JjpmaXJzdC1vZi10eXBle1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG1lZ2EtLWxpc3QtLWZpcnN0LS1iZy1jb2xvcjtcblx0XHR9XG5cblx0XHQmOm50aC1vZi10eXBlKDIpe1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG1lZ2EtLWxpc3QtLXNlY29uZC0tYmctY29sb3I7XG5cdFx0XHRmbGV4OiAwIDAgJG1lZ2EtLWxpc3QtLXdpZHRoO1xuXHRcdH1cblxuXHQgfVxuXHRcblxuXHQuby1tZWdhX193ZWxsLS1saXN0IC5tLWxpbmstbGlzdF9faXRlbV9fYW5jaG9ye1xuXG5cdFx0bWF4LXdpZHRoOiAkbWVnYS0tbGlzdF9fYW5jaG9yLS13aWR0aDtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwOyBcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG5cdH1cblxuXHQuby1tZWdhX193ZWxsLS1saXN0IC5vLW1lZ2FfX3RpdGxle1xuXHRcdFxuXHRcdGNvbG9yOiAkbWVnYS0tbGlzdF9fdGl0bGUtLWNvbG9yO1xuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBXZWxsIFR5cGUgLS0gRmVhdHVyZWRcblx0ICovXG5cblx0Lm8tbWVnYV9fd2VsbC0tZmVhdHVyZWR7XG5cdFx0XG5cdFx0ZmxleDogMTtcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cblx0IH1cblxuXHQgLm8tbWVnYV9fd2VsbC0tZmVhdHVyZWQgLm8tbWVnYV9fdGl0bGV7XG5cdCBcdFxuXHQgXHRjb2xvcjogJG1lZ2EtLWZlYXRfX3RpdGxlLS1jb2xvcjtcblxuXHQgfSIsIi8qKlxuICogVHlwZVx0OiBPcmdhbmlzbVxuICogTmFtZVx0OiBQb3N0XG4gKiBEZXNjIDogT25seSBhcHBlYXJzIG9uIFNJTkdMRSBQb3N0IHBhZ2VzIGZvciBhbnkgZ2l2ZW4gcG9zdCB0eXBlLlxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFBvc3Qg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vIFRoaXMgaXMgcmVsYXRpdmUgdG8gdGhlIHNpemUgb2YgdGhlIGJvZHkgY29weVxuXHQkcG9zdF9fZHJvcC1jYXAtLXNpemVcdFx0OiAzNzUlO1xuXHQkcG9zdF9fZHJvcC1jYXAtLWxpbmUtaGVpZ2h0OiAuODtcblx0XG5cdC8vIFBvc3QgSW1hZ2VzIEluaXRpYWxcblx0JHBvc3RfX2ltZy0tb2Zmc2V0XHRcdFx0OiAtNzVweDtcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFBvc3Qg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0XG5cblx0LyoqXG5cdCAqIEJhc2Vcblx0ICovXG5cdC5vLXBvc3R7XG5cblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIGxtICk7XG5cblx0fVxuXG5cdC5vLXBvc3RfX2NvbnRhaW5lcntcblx0XHRcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHRcblx0XHRAaW5jbHVkZSBjb250YWluZXIoIHBvc3QgKTtcblxuXHR9XG5cblx0Lm8tcG9zdF9fY29udGVudHtcblx0XHRcblxuXHR9XG5cdFxuXHQvKipcblx0ICogUG9zdCDigKIgQ29weVxuXHQgKi9cblxuXHQgLy8gRGVmYXVsdCBCb2R5IENvcHlcblx0Lm8tcG9zdF9fY29udGVudCBwe1xuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggbSwgYiwgbCApO1xuXG5cdH1cblxuXG5cdC8vIFBvc3QgU2VjdGlvbiBUaXRsZXNcblx0Lm8tcG9zdF9fY29udGVudCBoMntcblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHQsIGxtICk7XG5cblx0fVxuXHRcblx0Lm8tcG9zdF9fY29udGVudCB7XG5cblx0XHRvbD5saTo6YmVmb3JlIHtcbiAgXHRcdFx0Y29udGVudDogXCJcIjtcbiAgXHRcdFx0d2lkdGg6IDEwcHg7XG4gIFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cblx0XHRsaT51bD5saSB7XG5cdCAgICBcdGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xuXHRcdH1cblx0XHRcblx0XHRsaT51bCB7XG4gICAgXHRcdHBhZGRpbmctbGVmdDogMTBweDtcblx0XHR9XG5cblx0XHR1bCB7XG4gICAgXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgXHRcdGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcblx0ICAgIFx0bGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuXHQgICAgXHRmb250LXNpemU6IDEuMjVyZW07XG5cdCAgICBcdG1hcmdpbi1ib3R0b206IDMycHg7XG5cdFx0fVxuXG5cdFx0b2wge1xuXHQgICAgXHRsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG5cdCAgICBcdGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcblx0ICAgIFx0Zm9udC1zaXplOiAxLjI1cmVtO1xuXHQgICAgXHRtYXJnaW4tYm90dG9tOiAzMnB4O1xuXHRcdH1cblxuXHRcdGxpPm9sPmxpIHtcblx0ICAgIFx0bGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTtcblx0ICAgIFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRcdH1cblx0fVxuXG5cblx0LyoqXG5cdCAqIFBvc3Qg4oCiIERyb3BjYXBcblx0ICovXG5cdC5vLXBvc3RfX2NvbnRlbnQgcDpmaXJzdC1jaGlsZDpmaXJzdC1sZXR0ZXJ7XG5cdFx0XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0Zm9udC1zaXplOiAkcG9zdF9fZHJvcC1jYXAtLXNpemU7XG5cdFx0bGluZS1oZWlnaHQ6ICRwb3N0X19kcm9wLWNhcC0tbGluZS1oZWlnaHQ7XG5cdFx0XG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCBsLCAyeHMgKTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHQsIDJ4cyApO1xuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgciwgcyApO1xuXG5cdH1cblx0XG5cdC8qKlxuXHQgKiBQb3N0IOKAoiBJbWFnZXNcblx0ICpcblx0ICogV2UgYXJlIGFwcGx5aW5nIHNvbWUgdW5pcXVlIHN0eWxpbmcgdG8gb3VyIGltYWdlcyBvbiBcImxhcmdpc2hcIlxuXHQgKiBzY3JlZW4gc2l6ZXMuIEltYWdlcyB3aWxsIGJlIHB1bGxlZCBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci5cblx0ICogQXMgdGhlIHNjcmVlbiBzaHJpbmtzLCB0aGV5IHdpbGwgZml0IGJhY2sgaW4gd2l0aGluIHRoZSBmbG93IG9mIG9mIHRoZVxuXHQgKiBjb250ZW50LlxuXHQgKi9cblx0Lm8tcG9zdF9fY29udGVudCBpbWd7XG5cblx0XHRcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHQsIHMgKTtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIGIsIGwgKTtcblx0XHRcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBzICl7XG5cdFx0XHRcblx0XHRcdC8vIEZsb2F0aW5nIHRoZSBpbWFnZSB3aWxsIGVuc3VyZSB0aGF0IHRoZSB0ZXh0IHdpbGwgd3JhcC5cblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCBiLCBzICk7XG5cdFx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHIsIGwgKTtcblxuXHRcdH1cblxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbSApe1xuXHRcdFx0XG5cdFx0XHQvLyBQdWxsIHRoZSBpbWFnZSBvdXRzaWRlIGFuZCB0byB0aGUgbGVmdCBvZiB0aGUgY29udGFpbmVyXG5cdFx0XHRtYXJnaW4tbGVmdDogJHBvc3RfX2ltZy0tb2Zmc2V0O1xuXG5cdFx0fVxuXG5cdH1cblxuXHQuby1wb3N0X19jb250ZW50IGZpZ3VyZXtcblxuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFxuXHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYiwgbCApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggcyApe1xuXHRcdFx0XG5cdFx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIGIsIDJ4cyApO1xuXG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbSApe1xuXHRcdFx0XG5cdFx0XHRtYXJnaW4tbGVmdDogJHBvc3RfX2ltZy0tb2Zmc2V0O1xuXG5cdFx0fVxuXG5cdFx0aW1ne1xuXHRcdFxuXHRcdFx0bWFyZ2luLWxlZnQ6IDBweDtcblxuXHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCBiLCB4cyApO1xuXHRcdFxuXHRcdH1cblxuXHRcdGZpZ2NhcHRpb257XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIGZvbnQoICd3aWRlci1zYW5zLXNlcmlmJywgc2VtaS1ib2xkICk7XG5cdFx0XHRAaW5jbHVkZSBmb250LXNjYWxlKCAwICk7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIHMgKXtcblx0XHRcdFx0QGluY2x1ZGUgc3BhY2VyKCBwLCByLCBsICk7XG5cdFxuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG4iLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogT3JnLiBIaWdobGlnaHRcbiAqIERlc2MgOiBVc2VkIHRvIGhpZ2hsaWdodCBhIGNvbXBhbnkgb3Igb3JnYW5pemF0aW9uLCBpbmNsdWRpbmdcbiAqIGNvbnRhY3QgaW5mbywgZGVzY3JpcHRpb24sIHJlbGV2YW50IGxpbmtzLCBldGMuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogT3JnLiBIaWdobGlnaHQg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdCRvcmctaGlnaGxpZ2h0LS1jb2xvclx0OiBjKCBncmF5c2NhbGUsIHdoaXRlICk7XG5cdFxuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogT3JnLiBIaWdobGlnaHQg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1x0XG5cdFxuXHQvKipcblx0ICogQmFzZVxuXHQgKi9cblx0Lm8tb3JnLWhpZ2hsaWdodHtcblx0XHRcblx0XHRmbGV4OiAxO1xuXHRcdFxuXHRcdC8qKlxuXHRcdCAqIFRhcmdldCB0aGUgZmlyc3QgYXBwZWFyYW5jZSBvZiBgLm8tb3JnLWhpZ2hsaWdodGAgc28gd2UgY2FuXG5cdFx0ICogZ2l2ZSBpdCBzcGVjaWFsIHN0eWxpbmcsIHN1Y2ggYXMgdW5pcXVlIHNwYWNpbmcgZXRjLlxuXHRcdCAqL1xuXHRcdCY6bnRoLW9mLXR5cGUoMSl7XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIHNwYWNlciggcCwgYiwgMnhsICk7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIHMgKXtcblx0XHRcdFx0XG5cdFx0XHRcdEBpbmNsdWRlIHNwYWNlciggcCwgciwgeGwgKTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG5cdFxuXHQvKipcblx0ICogT3JnLiBIaWdobGlnaHQg4oCiIENvcHkgJiBUaXRsZVxuXHQgKi9cblxuXHQuby1vcmctaGlnaGxpZ2h0X190aXRsZSxcblx0Lm8tb3JnLWhpZ2hsaWdodF9fY29weXtcblx0XHRcblx0XHRjb2xvcjogJG9yZy1oaWdobGlnaHQtLWNvbG9yO1xuXG5cdH1cblxuXHQuby1vcmctaGlnaGxpZ2h0X19jb3B5e1xuXHRcdFxuXHRcdG1heC13aWR0aDogNTAwcHg7XG5cblx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHQsIG1sICk7XG5cblxuXHR9XG5cblxuXHQvKipcblx0ICogT3JnLiBIaWdobGlnaHQg4oCiIEZvb3RlclxuXHQgKi9cblx0XHRcblx0Lm8tZm9vdGVyIC5vLW9yZy1oaWdobGlnaHR7XG5cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0fVxuXG5cblx0Lm8tZm9vdGVyIC5vLW9yZy1oaWdobGlnaHRfX2lubmVye1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbCApe1xuXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXG5cdFx0XHQ+IDpmaXJzdC1jaGlsZHtcblxuXHRcdFx0XHRAaW5jbHVkZSBzcGFjZXIoIG0sIHIsIDJ4bCApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cblx0Lm8tZm9vdGVyIC5vLW9yZy1oaWdobGlnaHRfX3RpdGxle1xuXG5cdFx0QGluY2x1ZGUgc3BhY2VyKCBtLCBiLCB4bCApO1xuXG5cdH0iLCIuby1yZWxhdGVkLWxpbmtzIHtcbiAgICAgICAgLnJlbGF0ZWQtbGlua3NfX2NvbnRhaW5lciB7IFxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA2MHB4OyBcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICAgICAgICB9IFxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKXsgXG4gICAgICAgICAgICAucmVsYXRlZC1saW5rc19fY29udGFpbmVyIHsgXG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDkwcHg7IFxuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4O1xuICAgICAgICAgICAgfSBcbiAgICAgICAgfSAgICAgXG4gICAgICAgIC5yZWxhdGVkLWxpbmtzX19jb250YWluZXItLXJlZnJlc2ggeyBcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvMC9fMjAxOS9pbWFnZXMvZ3JhcGhpY3MvYmFja2dyb3VuZC1ncmF5Tm9pc2UucG5nKTsgXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9IFxuICAgICAgIFxuXG4gICAgICAgIC5yZWxhdGVkLWxpbmtzX19raWNrZXItY29udGFpbmVyIHsgXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsgXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IFxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDsgXG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICB9IFxuXG4gXG5cbiAgICAgICAgLnJlbGF0ZWQtbGlua3NfX2xpc3QgeyBcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OyBcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIH0gXG5cbiAgICAgICAgLnJlbGF0ZWQtbGlua3NfX2tpY2tlciB7IFxuICAgICAgICAgICAgei1pbmRleDogMjA7IFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IENoYW1waW9uIFdlbHRlcnd0IEEsQ2hhbXBpb24gV2VsdGVyd3QgQixDaGFtcGlvbiBIVEYtV2VsdGVyd2VpZ2h0LHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7IFxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyBcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07IFxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtOyBcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgIH0gXG5cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0peyBcbiAgICAgICAgICAucmVsYXRlZC1saW5rc19fa2lja2VyIHsgXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuOTM3NXJlbTsgXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICAgICAgICAgIH0gXG4gICAgICAgIH0gICAgIFxuXG4gICAgICAgIGxpLnJlbGF0ZWQtbGlua19fbGlzdC1pdGVtIGEge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVsYXRlZC1saW5rX19saXN0LWl0ZW0geyBcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlOyBcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtOyBcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTsgXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICB9IFxuICAgICAgICBcblxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgICAgICAgIC5yZWxhdGVkLWxpbmtfX2xpc3QtaXRlbSB7IFxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogIC45Mzc1cmVtOyBcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogIC45Mzc1cmVtO1xuICAgICAgICAgICAgZmxleDogMCAwIDUwJTsgXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgICB9IFxuICAgICAgICB9ICAgICBcblxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYyNWVtKSBhbmQgKG1pbi13aWR0aDogNDhlbSl7IFxuICAgICAgICAgIC5yZWxhdGVkLWxpbmtfX2xpc3QtaXRlbSB7IFxuICAgICAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTsgXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgICAgICAgICB9IFxuICAgICAgICB9ICAgICBcblxuICAgIEBlYWNoICRjYXRlZ29yeSxcbiAgICAkY2F0ZWdvcnktY29sb3IgaW4gJGlzc3VlLWNhdC1jb2xvcl9jb25maWcge1xuXG4gICAgICAgIEBpbmNsdWRlIHRoZW1lLS1yZWxhdGVkLWxpbmtzKCRjYXRlZ29yeSwgJGNhdGVnb3J5LWNvbG9yKTtcblxuICAgIH1cbn0gICAiLCIvKipcbiAqIFR5cGVcdDogT3JnYW5pc21cbiAqIE5hbWVcdDogU2l0ZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vKipcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNpdGUg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHRcblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNpdGUg4oCiIENsYXNzIERlZmluaXRpb25zXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXHRcblx0XG5cblxuLyoqXG4gKiBTaXRlIOKAoiBCYXNlXG4gKi9cblxuLm8tc2l0ZSxcbi5vLXNpdGVfX3Njcm9sbGVyIHtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4uby1zaXRlX19zY3JvbGxlciB7XG5cdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uby1zaXRlX19zY3JvbGxlcixcbi5vLXNpdGVfX3Njcm9sbGVyLWlubmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uby1zaXRlX19jb250YWluZXJ7XG5cdFxuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuXHRcbn1cblxuLm8tc2l0ZV9fY29udGFpbmVyLm8tc2l0ZV9fY29udGFpbmVyLS1pcy1wdXNoZWR7XG5cdFxuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDBweCwgMHB4LCAwcHgpO1xuXG59XG5cbi5vLXNpdGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5vLXNpdGVfX2NvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cmlnaHQ6IDA7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuXG4vKiBvdmVybGF5cyBmb3IgcHVzaGVyIGFuZCBmb3IgbGV2ZWwgdGhhdCBnZXRzIGNvdmVyZWQgKi9cbi5vLXNpdGVfX2NvbnRhaW5lcjo6YWZ0ZXIsXG4ubS1tb2JpbGVfX2xldmVsOjphZnRlcixcbi5tLW1vYmlsZV9fbGV2ZWw6OmJlZm9yZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0d2lkdGg6IDA7XG5cdGhlaWdodDogMDtcblx0Y29udGVudDogJyc7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi5vLXNpdGVfX2NvbnRhaW5lcjo6YWZ0ZXIsXG4ubS1tb2JpbGVfX2xldmVsOjphZnRlciB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcblx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzLCB3aWR0aCAwLjFzIDAuM3MsIGhlaWdodCAwLjFzIDAuM3M7XG59XG5cblxuLm8tc2l0ZV9fY29udGFpbmVyLm8tc2l0ZV9fY29udGFpbmVyLS1pcy1wdXNoZWQ6OmFmdGVyLFxuLm0tbW9iaWxlX19sZXZlbC5tLW1vYmlsZV9fb3ZlcmxheTo6YWZ0ZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG59IiwiLyoqXG4gKiBUeXBlXHQ6IE9yZ2FuaXNtXG4gKiBOYW1lXHQ6IFV0aWxpdHkgQmFyXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVXRpbGl0eSBCYXIg4oCiIFNldHRpbmdzXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuXHQkdXRpbC1iYXItLWJnLWNvbG9yXHRcdFx0XHQ6IGMoIGdsb3ctbmF2eSApO1x0XHRcblx0JHV0aWwtYmFyLS1pbWFnZVx0XHRcdFx0OiAnLzAvXzIwMTgvY3NzL2ltYWdlcy9zeW1ib2xzL2hlYWRlci1sb2dvLnN2ZyNoZWFkZXItbG9nbyc7XG5cdCR1dGlsLWJhci0tbGVmdC1wb3NpdGlvbi1vZmZzZXRcdDogOCU7XG5cdCR1dGlsLWJhci0taW1hZ2Utc2l6ZS0tc21hbGxpc2hcdDogMjc1cHggNDRweDsgLyogSUUgbmVlZHMgYm90aCAqL1xuXHQkdXRpbC1iYXItLWltYWdlLXNpemUtLWxhcmdpc2hcdDogMzAwcHggNDhweDsgLyogSUUgbmVlZHMgYm90aCAqL1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBVdGlsaXR5IEJhciDigKIgQ2xhc3MgRGVmaW5pdGlvbnNcbiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvKipcblx0ICogQmFzZVxuXHQgKi9cblx0Lm8tdXRpbGl0eS1iYXJ7XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHV0aWwtYmFyLS1iZy1jb2xvcjtcblx0XHRAaW5jbHVkZSBzcGFjZXIoIHAsIHksIG0gKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIHhsICl7XG5cdFx0XHRcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogJHV0aWwtYmFyLS1pbWFnZS1zaXplLS1sYXJnaXNoO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQuby11dGlsaXR5LWJhcl9fY29udGFpbmVye1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0ICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0QGluY2x1ZGUgY29udGFpbmVyKCBmdWxsICk7XG5cblx0XHRcblxuXHR9XG5cblx0LyoqXG5cdCAqIFV0aWwgQmFyIOKAoiBNZW51XG5cdCAqL1xuXHQuby11dGlsaXR5LWJhciAubS1tZW51LS1zZWNvbmRhcnl7XG5cdFx0XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIGwgKXtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHR9XG5cblx0fVxuXHRcblx0Ly8gQW55IGZvcm0gZ3JvdXBzIGluIHRoZSB1dGlsaXR5IGJhciBuZWVkIHRvIGhhdmUgdGhlaXIgdG9wIG1hcmdpbiByZW1vdmVkXG5cdC5vLXV0aWxpdHktYmFyIC5tLWZvcm1fX2dyb3Vwe1xuXHRcdFxuXHRcdG1hcmdpbi10b3A6IDA7XG5cblx0fVxuXG5cdC5vLXV0aWxpdHktYmFyIC5tZW51X19sb2dvLWxpbmt7XG5cdFx0XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG1hcmdpbi1sZWZ0OiA0JTtcblxuXHR9XG5cblx0Lm8tdXRpbGl0eS1iYXIgLm1lbnVfX2xvZ28tbGluayAuaGVhZGVyLWxvZ297XG5cdFx0XG5cdFx0ZmlsbDogI2ZmZjtcblx0XHR3aWR0aDogMjI1cHg7XG5cdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdG1hcmdpbi10b3A6IC00cHg7XG5cblx0fVxuXG5cdC5vLXV0aWxpdHktYmFyIC5tZW51X19sb2dvLWxpbmsgLmhlYWRlci1sb2dvOmhvdmVye1xuXHRcdFxuXHRcdGZpbGw6ICMwMEZGRkY7XG5cblx0fSIsIi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC5cbiAqIEdyb3VwXHQ6IFBhZ2VzXG4gKiBcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi8qKlxuICogKioqKioqKioqKioqKioqKlxuICogRmlsZSBJbXBvcnQgTGlzdFxuICogKioqKioqKioqKioqKioqKlxuICovXG5cdFxuXHQvL1xuXHQvLyBBbGwgZmlsZXMgYXJlIGltcG9ydGVkIGluIGFscGhhYmV0aWNhbCBvcmRlciB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZC5cblx0Ly9cblx0XG5cdCIsIi8qKlxuICogTmFtZVx0XHQ6IExvYWRlclxuICogRGVzY1x0XHQ6IEhhbmRsZXMgaW1wb3J0aW5nL2xvYWRpbmcgb2YgYWxsIHBhcnRpYWwgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC5cbiAqIEdyb3VwXHQ6IFV0aWxpdHlcbiAqIFxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLyoqXG4gKiAqKioqKioqKioqKioqKioqXG4gKiBGaWxlIEltcG9ydCBMaXN0XG4gKiAqKioqKioqKioqKioqKioqXG4gKi9cblx0XG5cdC8vXG5cdC8vIEFsbCBmaWxlcyBhcmUgaW1wb3J0ZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLlxuXHQvL1xuXHRcblx0QGltcG9ydCAnX3UtYWNjZXNzaWJpbGl0eSc7XG5cdEBpbXBvcnQgJ191LWFsaWdubWVudCc7XG5cdEBpbXBvcnQgJ191LWZsZXhib3gnO1xuXHRAaW1wb3J0ICdfdS1wc2V1ZG8nO1xuXHRAaW1wb3J0ICdfdS1zY3JvbGwnO1xuXHRAaW1wb3J0ICdfdS1zcGFjaW5nJztcblx0QGltcG9ydCAnX3UtdGV4dC1jb2xvcic7XG5cdEBpbXBvcnQgJ191LXR5cG9ncmFwaHknO1xuXHRAaW1wb3J0ICdfdS11bmRlcmxpbmUnO1xuXHRAaW1wb3J0ICdfdS12aXNpYmlsaXR5Jztcblx0QGltcG9ydCAnX3Utd2lkdGgnO1xuXHRAaW1wb3J0ICdfdS16LWluZGV4JzsiLCIvKipcbiAqIFR5cGVcdFx0OiBVdGlsaXR5XG4gKiBHcm91cFx0OiBBY2Nlc3NiaWxpdHlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4udS12aXMtaGlkZXtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59IiwiLyoqXG4gKiBUeXBlXHRcdDogVXRpbGl0eVxuICogR3JvdXBcdDogQWxpZ25tZW50XG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbiAvLyBUZXh0IEFsaWdubWVudFxuIC51LXRleHQtYWxpZ24tLWxlZnR7XG4gXHR0ZXh0LWFsaWduOiBsZWZ0O1xuIH1cblxuXG4gLnUtdGV4dC1hbGlnbi0tY2VudGVye1xuIFx0dGV4dC1hbGlnbjogY2VudGVyO1xuIH1cblxuXG4gLnUtdGV4dC1hbGlnbi0tcmlnaHR7XG4gXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gfVxuXG4vLyBCbG9jayBsZXZlbCBBbGlnbm1lbnRcbi51LWh1Zy0tcmlnaHR7XG5cdG1hcmdpbi1yaWdodDowO1xuXHRtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLnUtaHVnLS1sZWZ0e1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4udS1jZW50ZXJ7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4udS1jZW50ZXItYmxvY2sge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuXG4vLyBGaXhlZCBwb3NpdGlvbmluZ1xuLnUtYWZmaXgge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi8vIENsZWFyZml4aW5nXG4udS1jbGVhcmZpeDpiZWZvcmUsXG4udS1jbGVhcmZpeDphZnRlcntcblxuXHRjb250ZW50OiBcIiBcIjtcbiAgXHRkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnUtY2xlYXJmaXg6YWZ0ZXJ7XG5cdGNsZWFyOiBib3RoO1xufSIsIi8vRGlzcGxheSBQcm9wZXJ0aWVzXG5cbi51LWZsZXh7XG5cblx0ZGlzcGxheTogZmxleDtcblxufVxuXG4udS1mbGV4LWlubGluZXtcblxuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxufVxuXG5cbi8vIEZsZXggRGlyZWN0aW9uXG4udS1mbGV4LXJvd3tcblxuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXG59XG5cblxuLnUtZmxleC1jb2x7XG5cblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxufVxuXG5cblxuLy8gRmxleGJveCBKdXN0aWZ5XG5cbi51LWZsZXgtanVzdGlmeS0tc3RhcnR7XG5cblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG59XG5cblxuLnUtZmxleC1qdXN0aWZ5LS1lbmR7XG5cblx0anVzdGlmeS1jb250ZW50OiBlbmQ7XG5cbn1cblxuXG4udS1mbGV4LWp1c3RpZnktLWNlbnRlcntcblxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxufVxuXG4udS1mbGV4LWp1c3RpZnktLWJldHdlZW57XG5cblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbn1cblxuLnUtZmxleC1qdXN0aWZ5LS1hcm91bmR7XG5cblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbn1cblxuXG4vLyBGbGV4Ym94IEFsaWduIGl0ZW1zXG5cbi51LWZsZXgtYWxpZ24tLXN0YXJ0e1xuXG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG59XG5cbi51LWZsZXgtYWxpZ24tLWVuZHtcblxuXHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbn1cblxuLnUtZmxleC1hbGlnbi0tY2VudGVye1xuXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbn1cblxuXG4udS1mbGV4LWFsaWduLS1iYXNlbGluZXtcblxuXHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cbn1cblxuXG4udS1mbGV4LWFsaWduLS1zdHJldGNoe1xuXG5cdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG59XG5cblxuLy8gRmxleCBXcmFwXG5cbi51LWZsZXgtd3JhcC0tbm97XG5cblx0ZmxleC13cmFwOiBub3dyYXA7XG5cbn1cblxuLnUtZmxleC13cmFwLS15ZXN7XG5cblx0ZmxleC13cmFwOiB3cmFwO1xufVxuIiwiLyoqXG4gKiBUeXBlXHRcdDogVXRpbGl0eVxuICogR3JvdXBcdDogUHNldWRvXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuLnUtYmVmb3JlLS1jb3Zlcntcblx0XG5cdEBleHRlbmQgJWJlZm9yZS0tY292ZXI7XG5cbn1cblxuLnUtYWZ0ZXItLWNvdmVye1xuXHRcblx0QGV4dGVuZCAlYWZ0ZXItLWNvdmVyO1xuXHRcbn0iLCIudS1kaXNhYmxlLXNjcm9sbHtcblx0XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cbn0iLCIvKipcbiAqIFR5cGVcdFx0OiBVdGlsaXR5XG4gKiBHcm91cFx0OiBTcGFjaW5nXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cbkBlYWNoICRzaXplLCAkdmFsdWUgaW4gJHNwYWNpbmctdmFsdWVzX2NvbmZpZyB7XG5cblx0QGVhY2ggJHNpZGUgaW4gJHNwYWNpbmctc2lkZXN7XG5cblx0XHQvLyBIYW5kbGUgc3BhY2luZyBvbiBhbGwgIHNpZGVzXG5cdCAgXHRAaWYgJHNpZGUgPT0gJ2FsbCcge1xuXG5cdCAgICAgIC51LW1hci0tI3skc2l6ZX0ge1xuXHQgICAgICAgIG1hcmdpbjogc3BhY2VyKCAkc2l6ZSApO1xuXHQgICAgICB9XG5cblx0ICAgICAgLnUtcGFkLS0jeyRzaXplfSB7XG5cdCAgICAgICAgcGFkZGluZzogc3BhY2VyKCAkc2l6ZSApO1xuXHQgICAgICB9XG5cbiAgICBcdH1cblxuICAgIFx0Ly8gaGFuZGxlIHZlcnRpY2FsIG9ubHkgc3BhY2luZ1xuICAgIFx0QGVsc2UgaWYgJHNpZGUgPT0gJ3ZlcnRpY2FsJyB7XG5cblx0ICAgICAgLnUtbWFyLXktLSN7JHNpemV9IHtcblx0ICAgICAgICBtYXJnaW4tdG9wOiBzcGFjZXIoICRzaXplICk7XG5cdCAgICAgICAgbWFyZ2luLWJvdHRvbTogc3BhY2VyKCAkc2l6ZSApO1xuXHQgICAgICB9XG5cblx0ICAgICAgLnUtcGFkLXktLSN7JHNpemV9IHtcblx0ICAgICAgICBwYWRkaW5nLXRvcDogc3BhY2VyKCAkc2l6ZSApO1xuXHQgICAgICAgIHBhZGRpbmctYm90dG9tOiBzcGFjZXIoICRzaXplICk7XG5cdCAgICAgIH1cblxuICAgIFx0fVxuXG5cbiAgICBcdC8vIEhhbmRsZSBob3Jpem9udGFsIG9ubHkgc3BhY2luZ1xuICAgIFx0QGVsc2UgaWYgJHNpZGUgPT0gJ2hvcml6b250YWwnIHtcblxuXHQgICAgICAudS1tYXIteC0tI3skc2l6ZX0ge1xuXHQgICAgICAgIG1hcmdpbi1yaWdodDogc3BhY2VyKCAkc2l6ZSApO1xuXHQgICAgICAgIG1hcmdpbi1sZWZ0OiBzcGFjZXIoICRzaXplICk7XG5cdCAgICAgIH1cblxuXHQgICAgICAudS1wYWQteC0tI3skc2l6ZX0ge1xuXHQgICAgICAgIHBhZGRpbmctcmlnaHQ6IHNwYWNlciggJHNpemUgKTtcblx0ICAgICAgICBwYWRkaW5nLWxlZnQ6IHNwYWNlciggJHNpemUgKTtcblx0ICAgICAgfVxuXG4gICAgXHR9XG5cbiAgICBcdC8vIEhhbmRsZSBzcGFjaW5nIGZvciBkaXJlY3Rpb25zXG4gICAgXHRAZWxzZXtcblxuXHQgICAgICAudS1tYXItI3tzdHItc2xpY2UoICRzaWRlLCAwLCAxKX0tLSN7JHNpemV9IHtcblx0ICAgICAgICBtYXJnaW4tI3skc2lkZX06IHNwYWNlciggJHNpemUgKTtcblx0ICAgICAgfVxuXG5cdCAgICAgIC51LXBhZC0je3N0ci1zbGljZSggJHNpZGUsIDAsIDEpfS0tI3skc2l6ZX0ge1xuXHQgICAgICAgIHBhZGRpbmctI3skc2lkZX06IHNwYWNlciggJHNpemUgKTtcblx0ICAgICAgfVxuXG4gICAgXHR9XG5cblxuICB9XG59IiwiLyoqXG4gKiBUeXBlXHRcdDogVXRpbGl0eVxuICogR3JvdXBcdDogVGV4dCBDb2xvclxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG4vLyBBdXRvIGdlbmVyYXRlIGNsYXNzZXMgYmFzZWQgb24gb3VyIG1haW4gY29sb3IgcGFsZXR0ZVxuXG5AZWFjaCAkY29sb3ItbmFtZSwgJGNvbG9yLXZhbHVlIGluICRjb2xvcnN7XG4gICAgXG4gICAgLy8gSGFuZGxlcyB0ZXh0IGNvbG9yXG4gICAgLnUtY29sb3ItLSN7JGNvbG9yLW5hbWV9eyBcbiAgICAgICAgY29sb3I6JGNvbG9yLXZhbHVlO1xuICAgIH1cbiAgICBcbiAgICAvLyBIYW5kbGVzIGZpbGwgY29sb3JcbiAgICAudS1maWxsLS0jeyRjb2xvci1uYW1lfXtcbiAgICAgICAgZmlsbDokY29sb3ItdmFsdWU7XG4gICAgfVxuXG59XG5cbi8qKlxuICogQXV0by1nZW5lcmF0ZSBhIGdyYXlzY2FsZSBjb2xvciBwYWxsZXR0ZSBiYXNlZCBvbiBhbGxcbiAqIGRlZmluZWQgZ3JheXNjYWxlIHZhbHVlcyBpbiB0aGUgJGNvbG9yX2NvbmZpZyBtYXBcbiAqL1xuXG5AZWFjaCAkY29sb3ItbmFtZSwgJGNvbG9yLXZhbHVlIGluIGdldF9jb25maWcoICRjb2xvcl9jb25maWcsIGdyYXlzY2FsZSApe1xuICBcdFxuICBcdC8vIEhhbmRsZSBibGFjayBhbmQgd2hpdGUgY2xhc3MgbmFtaW5nIGRpZmZlcmVudGx5XG4gIFx0QGlmKCAkY29sb3ItbmFtZSA9PSB3aGl0ZSBvciAkY29sb3ItbmFtZSA9PSBibGFjayApIHtcblxuICBcdFx0LnUtY29sb3ItLSN7JGNvbG9yLW5hbWV9eyBcbiAgICAgICAgXHRjb2xvcjokY29sb3ItdmFsdWU7XG4gICAgXHR9XG5cbiAgXHR9XG4gICAgXG4gICAgLy8gRm9yIGFsbCBvdGhlciB2YWx1ZXMsIHByZWZpeCBjb2xvciB3aXRoIGdzXG4gIFx0QGVsc2V7XG5cbiAgXHRcdC51LWNvbG9yLS1ncyN7JGNvbG9yLW5hbWV9eyBcbiAgICAgICAgXHRjb2xvcjokY29sb3ItdmFsdWU7XG4gICAgXHR9XG5cblxuICBcdH1cblxuXG59IiwiLyoqXG4gKiBUeXBlXHRcdDogVXRpbGl0eVxuICogR3JvdXBcdDogVHlwZVxuICpcbiAqIEBzaW5jZSAxLjAuMFxuICogQGF1dGhvciBDcmVhdGl2ZUZ1c2VcbiAqL1xuXG5cbi51LXRleHQtdXB7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cblxuLnUtdGV4dC1kb3due1xuXHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4udS10ZXh0LWNhcHtcblx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59IiwiLnUtdW5kZXJsaW5lLS1wYXJ0aWFse1xuXHRcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3Jle1xuXHRcdFxuXHRcdGJvdHRvbTogLTE2cHg7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiA1cHg7XG5cdFx0bGVmdDogMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTQwcHg7XHRcblxuXHR9XG5cbn1cblxuXG4udS11bmRlcmxpbmUtLXBhcnRpYWwtLXN7XG5cdFxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmV7XG5cdFx0XG5cdFx0Ym90dG9tOiAtNHB4O1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogNXB4O1xuXHRcdGxlZnQ6IDBweDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDE0MHB4O1x0XG5cblx0fVxuXG59XG5cblxuLnUtdW5kZXJsaW5lLS13aGl0ZTpiZWZvcmV7XG5cdGJhY2tncm91bmQ6IGMoIGdyYXlzY2FsZSwgd2hpdGUgKTtcbn1cblxuLnUtdW5kZXJsaW5lLS1ncmF5OmJlZm9yZXtcblx0YmFja2dyb3VuZDogYyggZ3JheXNjYWxlLCAyMCApO1xufSIsIi8qKlxuICogVHlwZVx0XHQ6IFV0aWxpdHlcbiAqIEdyb3VwXHQ6IFZpc2liaWxpdHlcbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBhdXRob3IgQ3JlYXRpdmVGdXNlXG4gKi9cblxuXG4udS1yZW1vdmV7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi51LXNob3d7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udS1pbnZpc2libGV7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnUtdGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59IiwiLyoqXG4gKiBUeXBlXHRcdDogVXRpbGl0eVxuICogR3JvdXBcdDogV2lkdGhzXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAYXV0aG9yIENyZWF0aXZlRnVzZVxuICovXG5cblxuQGVhY2ggJHdpZHRoIGluICRtYXgtd2lkdGhzX2NvbmZpZyB7XG4gIFxuICAgIC51LW1heC13aWR0aC0tI3skd2lkdGh9IHtcblxuICAgICAgICBtYXgtd2lkdGg6ICN7JHdpZHRofXB4O1xuXG4gICAgfVxuXG59IiwiLnUtei0tZnJvbnR7XG5cdFxuXHR6LWluZGV4OiB6KGZyb250KTtcblxufSJdfQ== */
