/**
 * @package 	WordPress
 * @subpackage 	Agricole
 * @version		1.0.2
 * 
 * Design CSS Rules
 * Created by CMSMasters
 * 
 */
/*-------------------------------------------------------------------------

	1.	Globally Applied Styles / body
		1.1. Instagram / #sbi_load
		1.2. Icons
			1.2.1. Global
			1.2.2. Arrows
			1.2.3. Widget Add Info
			1.2.4. Twitter stripe
		1.3. Elements
			1.3.1. Icon Arrow Global Styles
			1.3.2. Pixel Arrow Global Styles
			1.3.3. Post Password Form / .post-password-form
			1.3.4. Prelodaer / .preloader
			1.3.5. Resizable Block / .resizable_block
			1.3.6. Img Wrapper / .cmsmasters_img_wrap
			1.3.7. Img Rollover / .cmsmasters_img_rollover_wrap
			1.3.8. Placeholder Small / .img_placeholder_small
			1.3.9. Video Wrapper / .mejs-container
			1.3.10. Search Bar / .search_bar_wrap
			1.3.10. Social Icons / .social_wrap
			1.3.11. Core Owl Carousel CSS v1.3.2 / .owl-carousel
			1.3.12. Slide Top Button / #slide_top
			1.3.13. Opened Article / .opened-article
			1.3.14. Likes and Comments
				1.3.14.1. Likes / .cmsmasters_likes
				1.3.14.2. Comments / .cmsmasters_comments
			1.3.15. Button
			1.3.16. Items Filter / .cmsmasters_items_filter_wrap
			1.3.17. More Items Loader and Pagination
				1.3.17.1. More Items Loader / .cmsmasters_wrap_more_items
				1.3.17.2. Subpage Pagination / .subpage_nav
				1.3.17.2. Pagination / .cmsmasters_wrap_pagination
			1.3.18. Post Navigation / .post_nav
			1.3.19. Share Posts / .share_posts
			1.3.20. About Author / .about_author
			1.3.21. Single Post Slider / .cmsmasters_single_slider
			1.3.22. Single Pings List / .cmsmasters_pings_list
			1.3.23. Post Comments / .post_comments
			1.3.24. Comment Respond / .comment-respond
	2.	Header / #header
		2.1. Header Top / .header_top
			2.1.1. Header Top Navigation / .top_line_nav
		2.2. Header Mid / .header_mid
			2.1.1. Header Mid Navigation / .mid_nav
		2.3. Header Bot / .header_bot
			2.1.1. Header Bot Navigation / .bot_nav
		2.4. Header Search Form
	3.	Headline Styles
	4.	Bottom + Footer Styles
		4.1. Bottom / #bottom
		4.2. Footer / #footer
			4.2.1. Footer Default / .cmsmasters_footer_default
			4.2.2. Footer Small / .cmsmasters_footer_small
	5.	Blog / .blog
		5.1. Blog Default / .cmsmasters_post_default
		5.2. Blog Masonry / .cmsmasters_post_masonry
		5.3. Blog Timeline / .cmsmasters_post_timeline
		5.4. Blog Post / .cmsmasters_open_post
	6.	Portfolio / .portfolio
		6.1. Portfolio Grid / .cmsmasters_project_grid
		6.2. Portfolio Puzzle / .cmsmasters_project_puzzle
		6.3. Portfolio Open Project / .cmsmasters_open_project
	7.	Posts Slider Styles / .cmsmasters_posts_slider
		7.1. Posts Slider Blog / .cmsmasters_slider_post
		7.2. Posts Slider Portfolio / .cmsmasters_slider_project
	8.	Profiles + Profile Styles / .cmsmasters_profile
		8.1. Profiles Horizontal / .cmsmasters_profile_horizontal
		8.2. Profiles Vertical / .cmsmasters_profile_vertical
		8.3. Profiles Open Profile / .cmsmasters_open_profile
	9.	Shortcodes Styles
		9.1. Divider / .cmsmasters_divider
		9.2. Special Heading / .cmsmasters_heading_wrap
		9.3. Featured Block / .cmsmasters_featured_block
		9.4. Table / .cmsmasters_table
		9.5. Notice / .cmsmasters_notice
		9.6. Icon / .cmsmasters_icon_wrap
		9.7. Icon List / .cmsmasters_icon_list_items
		9.8. Icon Box / .cmsmasters_icon_box
		9.9. Toggles / .cmsmasters_toggles
		9.10. Tabs / .cmsmasters_tabs
		9.11. Stats / .cmsmasters_stats
		9.12. Counters / .cmsmasters_counters
		9.13. CMSMASTERS Button / .cmsmasters_button
		9.14. Contact Form 7 / .wpcf7-form
		9.15. Hover slider / .cmsmasters_hover_slider
		9.16. Content slider / .cmsmasters_content_slider
		9.17. Gallery / .cmsmasters_gallery
		9.18. Quotes / .cmsmasters_quotes_slider
		9.19. Pricing tables / .cmsmasters_pricing_table
		9.20. Google Maps / .google_map
		9.21. Caption / .cmsmasters_img
		9.22. WP Gallery / .gallery
		9.23. Sidebar / .cmsmasters_sidebar
		9.24. Share / .share_wrap
		9.25. Twitter Stripe / .cmsmasters_twitter_wrap
		9.26. Dropcap / .cmsmasters_dropcap
		9.27. Clients / .cmsmasters_clients_slider
	10.	Widgets Styles / .widget
		10.1. Widget Advertisement / .widget_custom_advertisement_entries
		10.2. Widget Lists
			10.2.1. Widget Pages / .widget_pages
			10.2.2. Widget Categories / .widget_categories
			10.2.3. Widget Archive / .widget_archive
			10.2.4. Widget Meta / .widget_meta
			10.2.5. Widget Recent Comments / .widget_recent_comments
			10.2.6. Widget Recent Entries / .widget_recent_entries
		10.3. Widget Calendar / #wp-calendar
		10.4. Widget Contact Form / .widget_custom_contact_form_entries
		10.5. Widget Contact Info / .widget_custom_contact_info_entries
		10.6. Widget Custom Menu / .widget_nav_menu
		10.7. Widget Facebook / .widget_custom_facebook_entries
		10.8. Widget Flickr / .widget_custom_flickr_entries
		10.9. Widget Latest and Popular Projects
			10.9.1. Widget Latest Projects / .widget_custom_popular_projects_entries
			10.9.2. Widget Popular Projects / .widget_custom_latest_projects_entries
		10.10. Widget Posts Tabs / .widget_custom_posts_tabs_entries
		10.11. Widget RSS / .widget_rss
		10.12. Widget Tag Cloud / .widget_tag_cloud
		10.13. Widget Twitter / .widget_custom_twitter_entries
	11. Search + Archives + Sitemap + Error + Other Styles
		11.1. Archives + Search
			11.1.1. Archives / .cmsmasters_archive
			11.1.2. Search / .cmsmasters_search
		11.2. Sitemap / .cmsmasters_sitemap_wrap
		11.3. Error / .error
		11.4. Attachment Page / .cmsmasters_attach_img
		11.5. Other
	12.	Contact Forms Styles
		12.1. Form Builder / .cmsmasters-form-builder
		12.2. Contact Form 7 / .wpcf7
	13.	CSS3 Animations / .csstransitions
		13.1. Custom Animations
		13.2. Global Animations

-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* Globally Applied Styles
/*-------------------------------------------------------------------------*/
body {
  text-align: left;
}
div {
  text-align: left;
}
p {
  padding: 0 0 20px;
  margin: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0 0 20px;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
}
ul,
ol {
  list-style-position: inside;
  margin-bottom: 20px;
}
ul {
  list-style-type: none;
}
ul > li {
  display: block;
  position: relative;
}
ul > li:before {
  content: '';
  line-height: 1em;
  display: inline-block;
  width: 4px;
  height: 4px;
  margin: 0 10px 0 0;
  vertical-align: middle;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
ol {
  list-style-type: decimal-leading-zero;
}
ul li,
ol li {
  padding: 10px 0 0;
}
ul li:first-child,
ol li:first-child {
  padding-top: 0;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin: 0 0 0 20px;
  padding: 10px 0 0;
}
.esg-grid ul {
  padding: 0;
  margin: 0;
}
.esg-grid ul li:before {
  display: none;
}
iframe {
  margin-bottom: 20px;
}
address {
  margin: 0 0 20px;
}
pre {
  margin: 0 0 20px;
}
dd {
  margin: 0 0 20px;
}
blockquote {
  padding: 0;
  margin: 0 0 20px;
  position: relative;
  quotes: none;
  border-width: 0;
  border-style: solid;
  text-align: center;
}
blockquote:before,
blockquote:after {
  content: none;
}
blockquote p:last-of-type {
  margin: 0;
  padding: 0;
}
blockquote cite {
  display: block;
  margin-top: 10px;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
  margin-bottom: 20px;
  /* for gutenberg start */
  /* for gutenberg end */
}
table caption {
  text-align: center;
  padding: 20px;
}
table th,
table td {
  border-width: 0;
  border-style: solid;
  /* for gutenberg */
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
table.is-style-stripes {
  border-width: 0;
  border-style: solid;
}
table.is-style-stripes tr:nth-child(odd) {
  background-color: transparent !important;
}
table thead tr:first-child th {
  border-top-width: 1px;
  border-top-style: solid;
}
table thead tr th,
table thead tr td {
  padding: 17px 25px;
}
table thead + tbody tr:first-child th,
table thead + tbody tr:first-child td {
  border-top-width: 0;
  border-top-style: solid;
}
table tbody tr:first-child th,
table tbody tr:first-child td {
  border-top-width: 1px;
  border-top-style: solid;
}
table tbody tr th,
table tbody tr td {
  padding: 13px 25px;
}
table tfoot tr th,
table tfoot tr td {
  padding: 16px 25px;
}
table th,
table td {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
table tr th:first-child,
table tr td:first-child {
  border-left-width: 1px;
  border-left-style: solid;
}
table tr th:last-child,
table tr td:last-child {
  border-right-width: 1px;
  border-right-style: solid;
}
table caption {
  text-align: center;
  padding: 20px;
}
.pls-container,
.pls-container table,
.cmsmasters_table,
.tribe-mini-calendar,
.tribe-events-calendar,
.shop_table,
.group_table,
.variations,
.shop_attributes {
  border-collapse: collapse;
  border-spacing: 0;
  vertical-align: middle;
}
input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
textarea,
option {
  padding: 8px;
  max-width: 100%;
  border-width: 1px;
  border-style: solid;
}
input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  height: 48px;
  padding: 8px 25px;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
textarea {
  padding: 15px 25px;
  overflow: auto;
  min-height: 135px;
  height: 135px;
}
select {
  line-height: 1em;
  text-indent: 0.01px;
  text-overflow: '';
  min-width: 100px;
  max-width: 100%;
  height: 48px;
  padding: 8px 40px 8px 25px;
  background-position: 100% center;
  background-repeat: no-repeat;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none !important;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 30px;
  border-radius: 30px;
  background-image: url('../../../img/select.png');
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
  background-image: none;
}
select[multiple] option {
  padding-left: 0;
  padding-right: 0;
  background: none !important;
}
input[type=text],
input[type=search],
input[type=password],
input[type=email],
input[type=tel],
input[type=url],
input[type=number],
input[type=date],
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
textarea {
  -webkit-border-radius: 15px;
  border-radius: 15px;
  overflow: hidden;
}
input[type="date"]::-webkit-clear-button {
  display: none;
}
input[type="date"]::-webkit-inner-spin-button {
  display: none;
}
input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]):focus,
textarea:focus {
  outline: none;
}
input:-webkit-autofill {
  -webkit-animation-name: autofill;
  -webkit-animation-fill-mode: both;
}
input[type=submit],
input[type=button],
button {
  max-width: 100%;
  cursor: pointer;
}
option {
  outline: none;
}
.jetpack_subscription_widget #subscribe-email input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.widget_wysija input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  width: 100% !important;
  padding: 8px !important;
}
.widget_wysija_cont .wysija-submit {
  display: inline-block !important;
  margin: 0 !important;
}
.widget_wysija .widget_wysija_cont p {
  position: relative;
}
.widget_wysija .widget_wysija_cont p label {
  padding: 0 0 11px;
}
.widget_wysija .widget_wysija_cont .formError {
  margin: 0 0 8px!important;
  top: auto !important;
  bottom: 100% !important;
  left: 0 !important;
  right: auto !important;
}
.single.single-wysijap .cmsmasters_open_post > * {
  display: none;
}
.single.single-wysijap .cmsmasters_open_post .cmsmasters_post_content {
  display: block;
}
.gform_wrapper input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.gform_wrapper textarea {
  padding: 8px !important;
}
.gform_wrapper select {
  padding: 8px !important;
  margin: 0 !important;
}
nav {
  display: block;
  height: 100%;
  position: relative;
}
nav ul {
  /* clear ul styles */
  margin: 0;
  padding: 0;
}
nav ul:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
nav ul li {
  margin: 0;
  padding: 0;
}
nav ul li:before {
  display: none;
}
nav > div {
  height: 100%;
}
nav > div:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
nav > div > ul {
  list-style: none;
  display: inline-block;
  width: 100%;
  height: 100%;
  vertical-align: middle;
  position: relative;
  z-index: 202;
  zoom: 1;
}
nav > div > ul ul {
  list-style: none;
  width: 206px;
  margin: 25px 0 0;
  padding: 15px 0 15px;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 203;
  opacity: 0;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.header_top nav > div > ul ul {
  width: 175px;
  margin: 20px 0 0;
  padding: 13px 0 13px;
}
.header_bot nav > div > ul ul {
  width: 206px;
  margin: 20px 0 0;
  padding: 15px 0 15px;
}
nav > div > ul ul ul {
  margin: 0 0 0 10px;
  left: 100%;
  top: -16px;
}
.header_top nav > div > ul ul ul {
  margin: 0 0 0 20px;
  top: -14px;
}
.header_bot nav > div > ul ul ul {
  margin: 0 0 0 10px;
  top: -16px;
}
nav > div > ul li.menu-item-dropdown-right {
  text-align: right;
}
nav > div > ul li.menu-item-dropdown-right * {
  text-align: right;
}
nav > div > ul li.menu-item-dropdown-right > ul {
  left: auto;
  right: 0;
}
nav > div > ul li.menu-item-dropdown-right > ul ul {
  margin: 0 10px 0 0;
  left: auto;
  right: 100%;
}
.header_bot nav > div > ul li.menu-item-dropdown-right > ul ul {
  margin: 0 10px 0 0;
}
nav > div > ul li.menu-item-dropdown-right > div.menu-item-mega-container {
  left: auto;
  right: 0;
}
nav > div > ul li.menu-item-dropdown-right > div.menu-item-mega-container ul {
  right: auto;
}
nav > div > ul li:hover > ul {
  margin: 15px 0 0;
  visibility: visible;
  opacity: 1;
}
.header_top nav > div > ul li:hover > ul {
  margin: 0px 0 0;
}
.header_bot nav > div > ul li:hover > ul {
  margin: 0px 0 0;
}
nav > div > ul li:hover > ul:before {
  content: '';
  width: 100%;
  height: 15px;
  position: absolute;
  left: 0;
  top: -16px;
}
.header_top nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
.header_bot nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 15px 0 0;
  visibility: visible;
  opacity: 1;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 0px 0 0;
}
nav > div > ul li:hover > div.menu-item-mega-container:before {
  content: '';
  width: 100%;
  height: 15px;
  position: absolute;
  left: 0;
  top: -16px;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
nav > div > ul li:hover > div.menu-item-mega-container ul {
  visibility: visible;
  opacity: 1;
}
nav > div > ul li li:hover > ul {
  margin: 0 0 0 2px;
}
.header_top nav > div > ul li li:hover > ul {
  margin: 0 0 0 2px;
}
.header_bot nav > div > ul li li:hover > ul {
  margin: 0 0 0 2px;
}
nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  top: 0;
  left: -3px;
}
.header_top nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  left: -3px;
}
.header_bot nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  left: -3px;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 2px 0 0;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 2px 0 0;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  left: auto;
  right: -3px;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  right: -3px;
}
nav > div > ul li {
  display: block;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 203;
}
nav > div > ul li:hover {
  z-index: 204;
}
nav > div > ul a {
  display: block;
  position: relative;
  z-index: 204;
}
nav > div > ul .menu-item-mega-description-container {
  display: block;
  padding: 10px 15px;
  overflow: hidden;
}
nav > div > ul .nav_title[class^="cmsmasters-icon-"]:before,
nav > div > ul .nav_title[class*=" cmsmasters-icon-"]:before {
  margin: 0 0.5em 0 0;
}
nav > div > ul .menu-item-hide-text > a .nav_title[class^="cmsmasters-icon-"]:before,
nav > div > ul .menu-item-hide-text > a .nav_title[class*=" cmsmasters-icon-"]:before {
  margin: 0 0.3em;
}
nav > div > ul .menu-item-hide-text:not(.menu-item-icon) > a {
  display: none;
}
nav > div > ul > li {
  float: left;
  border-right-width: 1px;
  border-right-style: solid;
}
nav > div > ul > li:last-child {
  border-right-width: 0;
  border-right-style: solid;
}
nav > div > ul > li li {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
nav > div > ul > li li:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul li.menu-item-mega ul {
  background-color: transparent;
  border: 0;
  width: auto;
  margin: 0;
  padding: 0;
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  z-index: 203;
}
nav > div > ul div.menu-item-mega-container {
  display: block;
  width: auto;
  margin: 25px 0 0;
  padding: 20px 10px 30px;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 203;
  opacity: 0;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.header_bot nav > div > ul div.menu-item-mega-container {
  margin: 20px 0 0;
}
nav > div > ul div.menu-item-mega-container > ul {
  display: table;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
nav > div > ul div.menu-item-mega-container > ul > li {
  display: table-cell;
  padding: 0 5px;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul > li > a {
  margin-bottom: 10px;
}
nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 206px;
  margin: 0;
  padding: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 206px;
}
nav > div > ul div.menu-item-mega-container > ul > li:hover > ul {
  margin: 0;
  padding: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li:hover > ul {
  margin: 0;
  padding: 0;
}
nav > div > ul div.menu-item-mega-container > ul > li a:empty {
  padding: 0;
  margin: 0;
}
nav > div > ul li.menu-item-mega-fullwidth > div.menu-item-mega-container > ul > li a,
nav > div > ul li.menu-item-mega-fullwidth > div.menu-item-mega-container > ul > li ul {
  width: auto;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-two > div.menu-item-mega-container > ul > li {
  width: 50%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-three > div.menu-item-mega-container > ul > li {
  width: 33.33%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-four > div.menu-item-mega-container > ul > li {
  width: 25%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-five > div.menu-item-mega-container > ul > li {
  width: 20%;
}
.full-width {
  min-width: 100%;
}
audio.full-width {
  width: 100%;
}
.alignleft,
.fl {
  float: left;
}
.alignright,
.fr {
  float: right;
}
.aligncenter {
  text-align: center;
}
.aligncenter,
.alignnone {
  clear: both;
}
img.alignleft,
img.fl {
  margin-right: 20px;
  margin-bottom: 20px;
}
img.alignright,
img.fr {
  margin-left: 20px;
  margin-bottom: 20px;
}
img.aligncenter {
  margin: 0 auto 20px;
  display: block;
}
img.alignnone {
  margin-bottom: 20px;
}
.dn {
  display: none;
}
.tal,
.ta_left {
  text-align: left;
}
.tac,
.ta_center {
  text-align: center;
}
.tar,
.ta_right {
  text-align: right;
}
.cl,
.clear {
  display: block;
  clear: both;
}
.ovh {
  overflow: hidden;
}
.low_case {
  text-transform: lowercase;
}
.up_case {
  text-transform: uppercase;
}
.cmsmasters_responsive_width {
  display: block;
  width: auto;
  visibility: hidden;
}
.cmsmasters_column {
  position: relative;
  min-height: 1px;
}
.cmsmasters_column_sticky {
  position: relative;
  top: 0;
}
.cmsmasters_column_inner {
  width: 100%;
  position: relative;
  min-height: 1px;
}
.one_first,
.one_half,
.one_third,
.two_third,
.one_fourth,
.three_fourth,
.one_fifth,
.one_sixth {
  margin: 0 1.3%;
  position: relative;
  float: left;
}
.one_sixth {
  width: 14.07%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_sixth {
  width: 16.67%;
}
.one_fifth {
  width: 17.4%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fifth {
  width: 20%;
}
.one_fourth {
  width: 22.4%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fourth {
  width: 25%;
}
.one_third {
  width: 30.73%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_third {
  width: 33.33%;
}
.one_half {
  width: 47.4%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_half {
  width: 50%;
}
.two_third {
  width: 64.07%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .two_third {
  width: 66.67%;
}
.three_fourth {
  width: 72.4%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .three_fourth {
  width: 75%;
}
.one_first {
  width: 97.4%;
  float: none;
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_first {
  width: 100%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior:after {
  content: none;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior.cmsmasters_131313 {
  width: 99.99%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner {
  height: 100%;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-align-content: flex-start;
  align-content: flex-start;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner:after {
  content: none;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > div {
  width: 100%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block {
  height: 100%;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner {
  min-width: 100%;
  height: auto;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-align-content: flex-start;
  align-content: flex-start;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block {
  height: auto;
}
[data-animation] {
  opacity: 0;
}
[data-animation].animated {
  opacity: 1;
}
#page.cmsmasters_boxed {
  width: 1000px;
  margin: 0 auto;
}
#page.cmsmasters_boxed #header,
#page.cmsmasters_boxed #footer {
  width: 1000px;
}
#page,
#main,
#middle,
.middle_content,
#bottom,
#footer,
.headline,
.headline_outer,
.middle_inner,
.cmsmasters_row,
.cmsmasters_row_outer,
.cmsmasters_row_outer_parent {
  width: 100%;
  position: relative;
}
.post-password-form,
.header_top_inner,
.header_mid_inner,
.header_bot_inner,
.content_wrap,
.headline_inner,
.bottom_outer,
.footer_inner,
.cmsmasters_row_inner {
  position: relative;
  width: 980px;
  padding: 0 20px;
  margin: 0 auto;
}
.content_wrap .post-password-form {
  width: auto;
  padding: 0;
}
.cmsmasters_row.cmsmasters_row_top_default.cmsmasters_row_bot_default {
  z-index: 0;
}
.cmsmasters_row.cmsmasters_row_top_left_diagonal:before,
.cmsmasters_row.cmsmasters_row_bot_left_diagonal:after {
  content: '';
  background-color: inherit;
  width: 150%;
  height: 150px;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: auto;
  z-index: 1;
  -webkit-transform: rotate(2deg);
  -moz-transform: rotate(2deg);
  -ms-transform: rotate(2deg);
  transform: rotate(2deg);
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}
.cmsmasters_row.cmsmasters_row_bot_left_diagonal:after {
  top: auto;
  bottom: 0;
  -webkit-transform: rotate(-2deg);
  -moz-transform: rotate(-2deg);
  -ms-transform: rotate(-2deg);
  transform: rotate(-2deg);
}
.cmsmasters_row.cmsmasters_row_top_right_diagonal:before,
.cmsmasters_row.cmsmasters_row_bot_right_diagonal:after {
  content: '';
  background-color: inherit;
  width: 150%;
  height: 150px;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: auto;
  z-index: 1;
  -webkit-transform: rotate(-2deg);
  -moz-transform: rotate(-2deg);
  -ms-transform: rotate(-2deg);
  transform: rotate(-2deg);
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
.cmsmasters_row.cmsmasters_row_bot_right_diagonal:after {
  top: auto;
  bottom: 0;
  -webkit-transform: rotate(2deg);
  -moz-transform: rotate(2deg);
  -ms-transform: rotate(2deg);
  transform: rotate(2deg);
}
.cmsmasters_row.cmsmasters_row_top_zigzag:before,
.cmsmasters_row.cmsmasters_row_bot_zigzag:after {
  content: '';
  background-size: 10px 5px;
  height: 5px;
  width: 100%;
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 100%;
  z-index: 1;
}
.cmsmasters_row.cmsmasters_row_bot_zigzag:after {
  top: 100%;
  bottom: auto;
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.cmsmasters_row.cmsmasters_row_top_triangle:before,
.cmsmasters_row.cmsmasters_row_bot_triangle:after {
  content: '';
  background-color: inherit;
  z-index: 1;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -15px;
  bottom: auto;
}
.cmsmasters_row.cmsmasters_row_bot_triangle:after {
  top: auto;
  bottom: -15px;
}
.cmsmasters_row .cmsmasters_row_outer_parent {
  padding: 0.1px 0;
  z-index: 2;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_fullwidth {
  width: 100%;
  padding: 0 40px;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_no_margin > .cmsmasters_row_margin {
  margin: 0;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_no_margin > .cmsmasters_row_margin > .cmsmasters_column {
  margin: 0;
}
.cmsmasters_row .cmsmasters_row_overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.cmsmasters_row_margin {
  margin: 0 -1.37%;
  position: relative;
}
.content_wrap.r_sidebar .cmsmasters_row,
.content_wrap.l_sidebar .cmsmasters_row,
.content_wrap .opened-article .cmsmasters_row,
.content_wrap .cmsmasters_tabs .cmsmasters_row {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.content_wrap.r_sidebar .cmsmasters_row .cmsmasters_row_inner,
.content_wrap.l_sidebar .cmsmasters_row .cmsmasters_row_inner,
.content_wrap .opened-article .cmsmasters_row .cmsmasters_row_inner,
.content_wrap .cmsmasters_tabs .cmsmasters_row .cmsmasters_row_inner {
  width: 100%;
  padding: 0;
}
.content_wrap.cmsmasters_set_fullwidth {
  width: 100%;
  padding: 0;
}
#page:after,
#middle:after,
.middle_inner:after,
.middle_content:after,
#bottom:after,
.bottom_bg:after,
.content_wrap:after,
.cmsmasters_row_inner:after,
.cmsmasters_row_margin:after,
.cmsmasters_column_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
#middle {
  z-index: 1;
}
.middle_content {
  padding: 80px 0 100px;
}
.middle_content:empty {
  display: none;
}
.content {
  width: 72%;
  padding: 80px 0 100px;
  position: relative;
  float: left;
}
.content.fr {
  float: right;
}
.sidebar {
  width: 28%;
  padding: 80px 0 80px 60px;
  position: relative;
  float: right;
}
.sidebar.fl {
  padding: 80px 60px 80px 0;
  float: left;
}
.bottom_bg .bottom_inner {
  padding-top: 90px;
  padding-bottom: 10px;
}
.bottom_bg .bottom_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.bottom_inner {
  margin: 0 -1.3%;
}
.bottom_inner aside {
  position: relative;
  float: left;
  margin: 0 1.3%;
}
/* Instagram */
#sbi_load {
  padding-top: 0 !important;
}
/***************** Icons ******************/
/* Global */
.cmsmasters_theme_icon_comment:before {
  content: '\e88a';
  font-family: 'fontello-custom' !important;
}
.cmsmasters_theme_icon_like:before {
  content: '\e89f';
  font-family: 'fontello-custom' !important;
}
.cmsmasters_icon_custom_search:before {
  content: '\e8a9';
}
.cmsmasters_theme_icon_cancel:before {
  content: '\eabc';
}
.cmsmasters_theme_icon_resp_nav:before {
  content: '\e925';
}
.cmsmasters_theme_icon_person:before {
  content: '\e813';
}
.cmsmasters_theme_icon_image:before {
  content: '\e87e';
}
.cmsmasters_theme_icon_check:before {
  content: '\eabb';
}
.cmsmasters_theme_icon_spinner:before {
  content: '\e9fd';
}
/* Arrows */
.cmsmasters_theme_icon_slide_prev:before,
.cmsmasters_theme_icon_pagination_prev:before,
.cmsmasters_theme_icon_comments_nav_prev:before,
.cmsmasters_prev_arrow span:before {
  content: '\eb21';
}
.cmsmasters_theme_icon_slide_next:before,
.cmsmasters_theme_icon_pagination_next:before,
.cmsmasters_theme_icon_comments_nav_next:before,
.cmsmasters_next_arrow span:before {
  content: '\eb22';
}
.cmsmasters_theme_icon_slide_top:before {
  content: '\eb23';
}
.cmsmasters_theme_icon_slide_bottom:before {
  content: '\eb20';
}
.cmsmasters_theme_icon_resp_nav_slide_up:before {
  content: '\eb23';
}
.cmsmasters_theme_icon_resp_nav_slide_down:before {
  content: '\eb20';
}
/* Widget Add Info */
.cmsmasters_theme_icon_user_mail:before {
  content: '\e885';
}
.cmsmasters_theme_icon_user_website:before {
  content: '\e836';
}
.cmsmasters_theme_icon_user_phone:before {
  content: '\e805';
}
.cmsmasters_theme_icon_user_address:before {
  content: '\e895';
}
/* Twitter Stripe */
.cmsmasters_theme_icon_user_twitter:before {
  content: '\eb9a';
}
/***************** Elements ******************/
/* Icon Arrow Global Styles */
.cmsmasters_prev_arrow,
.cmsmasters_next_arrow {
  display: inline-block;
  width: 26px;
  height: 26px;
  vertical-align: middle;
  position: relative;
  text-align: center;
}
.cmsmasters_prev_arrow:after,
.cmsmasters_next_arrow:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_prev_arrow span,
.cmsmasters_next_arrow span {
  display: inline-block;
  width: 6px;
  height: 10px;
  vertical-align: middle;
}
.cmsmasters_prev_arrow span:before,
.cmsmasters_next_arrow span:before {
  font-family: 'fontello';
  font-size: 14px;
  line-height: 9px;
  text-align: center;
  display: block;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Pixel Arrow Global Styles */
.cmsmasters_prev_arrow_pixel,
.cmsmasters_next_arrow_pixel {
  background: #000000;
  width: 1px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_prev_arrow_pixel:before,
.cmsmasters_next_arrow_pixel:before,
.cmsmasters_prev_arrow_pixel:after,
.cmsmasters_next_arrow_pixel:after,
.cmsmasters_prev_arrow_pixel span:before,
.cmsmasters_next_arrow_pixel span:before,
.cmsmasters_prev_arrow_pixel span:after,
.cmsmasters_next_arrow_pixel span:after {
  content: '';
  background: transparent;
  position: absolute;
  width: 1px;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_prev_arrow_pixel:before,
.cmsmasters_next_arrow_pixel:before {
  height: 3px;
  left: 1px;
  top: -1px;
}
.cmsmasters_prev_arrow_pixel:after,
.cmsmasters_next_arrow_pixel:after {
  height: 5px;
  left: 2px;
  top: -2px;
}
.cmsmasters_prev_arrow_pixel span:before,
.cmsmasters_next_arrow_pixel span:before {
  height: 7px;
  left: 3px;
  top: -3px;
}
.cmsmasters_prev_arrow_pixel span:after,
.cmsmasters_next_arrow_pixel span:after {
  height: 9px;
  left: 4px;
  top: -4px;
}
.cmsmasters_next_arrow_pixel {
  right: 0;
  left: auto;
}
.cmsmasters_next_arrow_pixel:before {
  left: auto;
  right: 1px;
}
.cmsmasters_next_arrow_pixel:after {
  left: auto;
  right: 2px;
}
.cmsmasters_next_arrow_pixel span:before {
  left: auto;
  right: 3px;
}
.cmsmasters_next_arrow_pixel span:after {
  left: auto;
  right: 4px;
}
.cmsmasters_top_arrow_pixel,
.cmsmasters_bot_arrow_pixel {
  background: #000000;
  width: 1px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -4px;
  bottom: 0;
}
.cmsmasters_top_arrow_pixel:before,
.cmsmasters_bot_arrow_pixel:before,
.cmsmasters_top_arrow_pixel:after,
.cmsmasters_bot_arrow_pixel:after,
.cmsmasters_top_arrow_pixel span:before,
.cmsmasters_bot_arrow_pixel span:before,
.cmsmasters_top_arrow_pixel span:after,
.cmsmasters_bot_arrow_pixel span:after {
  content: '';
  background: transparent;
  position: absolute;
  height: 1px;
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_top_arrow_pixel:before,
.cmsmasters_bot_arrow_pixel:before {
  width: 3px;
  top: 1px;
  left: -1px;
}
.cmsmasters_top_arrow_pixel:after,
.cmsmasters_bot_arrow_pixel:after {
  width: 5px;
  top: 2px;
  left: -2px;
}
.cmsmasters_top_arrow_pixel span:before,
.cmsmasters_bot_arrow_pixel span:before {
  width: 7px;
  top: 3px;
  left: -3px;
}
.cmsmasters_top_arrow_pixel span:after,
.cmsmasters_bot_arrow_pixel span:after {
  width: 9px;
  top: 4px;
  left: -4px;
}
.cmsmasters_bot_arrow_pixel {
  top: 4px;
}
.cmsmasters_bot_arrow_pixel:before {
  top: auto;
  bottom: 1px;
}
.cmsmasters_bot_arrow_pixel:after {
  top: auto;
  bottom: 2px;
}
.cmsmasters_bot_arrow_pixel span:before {
  top: auto;
  bottom: 3px;
}
.cmsmasters_bot_arrow_pixel span:after {
  top: auto;
  bottom: 4px;
}
/* Post Password Form */
.post-password-form {
  padding-top: 40px;
  margin-top: 13px;
}
.post-password-form label {
  margin-top: 10px;
  display: inline-block;
  vertical-align: bottom;
}
.post-password-form input[type="password"] {
  width: 220px;
  margin-top: 20px;
  display: block;
  -webkit-border-radius: 30px 0 0 30px !important;
  border-radius: 30px 0 0 30px !important;
}
.post-password-form input[type=submit] {
  display: inline-block;
  margin: 0 0 0 -4px;
  vertical-align: middle;
  vertical-align: bottom;
  -webkit-border-radius: 0 30px 30px 0;
  border-radius: 0 30px 30px 0;
}
/* Prelodaer */
.preloader {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 66.86%;
  position: relative;
  text-align: center;
}
.preloader .full-width {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.preloader.highImg {
  height: auto;
  padding: 0;
}
.preloader.highImg .full-width {
  height: auto;
  position: relative;
  top: auto;
  left: auto;
}
/* Resizable Block */
.resizable_block {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 66.86%;
  position: relative;
  overflow: hidden;
}
.resizable_block .full-width {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
/* Img Wrapper */
.cmsmasters_img_wrap {
  display: block;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_img_wrap .img_placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_img_wrap .img_placeholder:before {
  font-size: 24px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_img_wrap .highImg .img_placeholder {
  display: block;
  padding-bottom: 66.86%;
  position: relative;
}
/* Img Rollover */
.cmsmasters_img_rollover_wrap {
  display: block;
  position: relative;
  overflow: hidden;
}
.cmsmasters_img_rollover_wrap .img_placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_img_rollover_wrap .img_placeholder:before {
  font-size: 24px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_img_rollover_wrap.highImg .img_placeholder {
  display: block;
  padding-bottom: 66.86%;
  position: relative;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
  opacity: 0;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_post_link {
  display: inline-block;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_link,
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_image_link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_img_rollover_wrap:hover .cmsmasters_img_rollover {
  opacity: 1;
}
/* Placeholder Small */
.img_placeholder_small {
  height: 60px;
  width: 60px;
  display: block;
  position: relative;
}
.img_placeholder_small:before {
  font-size: 18px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Video Wrapper */
.wp-video-shortcode,
.mejs-layer {
  max-width: 100%;
}
.mejs-container.wp-video-shortcode,
.mejs-container.wp-audio-shortcode {
  margin-bottom: 20px;
  max-width: 100%;
}
.cmsmasters_video_wrap {
  width: 100%;
  max-width: 100%;
  height: 0;
  padding-bottom: 66.86%;
  margin-bottom: 20px;
  overflow: hidden;
  position: relative;
}
.cmsmasters_video_wrap > div {
  width: 100% !important;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap iframe {
  width: 100%;
  max-width: auto;
  height: 100%;
  margin-bottom: 0;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap .wp-video-shortcode,
.cmsmasters_video_wrap .mejs-layer {
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap .wp-video-shortcode .mejs-overlay-button,
.cmsmasters_video_wrap .mejs-layer .mejs-overlay-button {
  margin-top: -50px !important;
}
/* Search Bar */
.search_bar_wrap {
  display: inline-block;
  width: 100%;
  position: relative;
}
.search_bar_wrap .search_field {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.search_bar_wrap .search_field input {
  width: 100%;
}
#middle .search_bar_wrap .search_field input,
#bottom .search_bar_wrap .search_field input {
  padding-left: 20px;
  padding-right: 55px;
}
.search_bar_wrap .search_button {
  padding: 0;
  margin: 0;
  width: 55px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 1px;
  top: 1px;
  bottom: 1px;
  overflow: hidden;
}
.search_bar_wrap .search_button button {
  background: none;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  cursor: pointer;
  position: relative;
  border-width: 0;
  border-style: solid;
  -webkit-border-radius: 0 30px 30px 0;
  border-radius: 0 30px 30px 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.search_bar_wrap .search_button button:before {
  font-size: 18px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.search_bar_wrap .search_button button:hover {
  background-color: transparent;
}
/* Social Icons */
.social_wrap {
  display: block;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.social_wrap .social_wrap_inner {
  height: 100%;
}
.social_wrap .social_wrap_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.social_wrap ul {
  list-style: none;
  display: inline-block;
  margin: 0;
  padding: 0;
  vertical-align: middle;
}
.social_wrap li {
  display: inline-block;
  margin: 0 5px 0 0;
  padding: 0;
  position: relative;
  vertical-align: middle;
}
.social_wrap li:last-child {
  margin: 0;
}
.social_wrap li:before {
  display: none;
}
.social_wrap a {
  display: block;
  width: 30px;
  height: 30px;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.social_wrap a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Core Owl Carousel CSS v1.3.2 */
.cmsmasters_owl_slider:not(.owl-carousel) > div {
  width: 0;
  height: 0;
  visibility: hidden;
}
.owl-carousel {
  width: 100%;
  position: relative;
  -ms-touch-action: pan-y;
  display: none;
}
.owl-carousel .owl-wrapper-outer {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.owl-carousel .owl-wrapper-outer.autoHeight {
  -webkit-transition: height 0.5s ease-in-out;
  -moz-transition: height 0.5s ease-in-out;
  -ms-transition: height 0.5s ease-in-out;
  -o-transition: height 0.5s ease-in-out;
  transition: height 0.5s ease-in-out;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper {
  position: relative;
  display: none;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper:after {
  content: '.';
  line-height: 0;
  height: 0;
  visibility: hidden;
  display: block;
  clear: both;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper .owl-item {
  float: left;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper,
.owl-carousel .owl-wrapper-outer .owl-item {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
}
.ie_only .owl-carousel .owl-wrapper-outer .owl-wrapper,
.ie_only .owl-carousel .owl-wrapper-outer .owl-item {
  -ms-backface-visibility: visible;
}
.owl-carousel .owl-controls {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.owl-pagination {
  display: block;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  text-align: center;
}
.owl-pagination .owl-page {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 4px 1px;
  text-indent: -9999px;
  cursor: pointer;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.owl-pagination .owl-page:hover,
.owl-pagination .owl-page.active {
  outline: none;
}
.owl-pagination .owl-page.active {
  cursor: default;
}
.owl-buttons {
  display: block;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
}
.owl-buttons > div {
  display: inline-block;
  margin: 0 3px;
  cursor: pointer;
  position: relative;
}
/* Slide Top Button */
#slide_top {
  text-align: center;
  width: 50px;
  height: 50px;
  position: fixed;
  bottom: 85px;
  right: 20px;
  z-index: 99999;
  display: none;
}
#slide_top:before {
  font-size: 24px;
  line-height: 50px;
}
#slide_top > span {
  display: inline-block;
  text-indent: -9999px;
}
/* Opened Article */
.middle_content .opened-article.blog {
  padding: 20px 17% 0;
}
.middle_content .opened-article.portfolio {
  padding: 0;
}
.middle_content .opened-article.profiles {
  padding: 0 20%;
}
/* Likes and Comments */
.cmsmasters_likes a,
.cmsmasters_comments a {
  padding: 0 0 0 1px;
  cursor: pointer;
}
.cmsmasters_likes a.active,
.cmsmasters_comments a.active {
  cursor: default;
}
.cmsmasters_likes a span,
.cmsmasters_comments a span {
  margin: 0 0 0 5px;
  vertical-align: middle;
}
.cmsmasters_likes a:before,
.cmsmasters_comments a:before {
  vertical-align: middle;
  font-size: 20px;
}
.cmsmasters_comments + .cmsmasters_likes,
.cmsmasters_likes + .cmsmasters_comments {
  padding: 0 0 0 10px;
}
.cmsmasters_likes a:before {
  font-size: 17px;
}
/* Button */
.button,
input[type=submit],
input[type=button],
button {
  display: inline-block;
  padding: 0 35px;
  position: relative;
  white-space: nowrap;
  text-align: center;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
/* Items Filter */
.cmsmasters_items_filter_wrap {
  padding: 0 0 30px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter {
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_block {
  display: block;
  margin: 0 -15px;
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but {
  display: block;
  margin: 0 15px 5px 15px;
  padding: 0 0 0 25px;
  border-width: 0;
  border-style: solid;
  float: left;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 9px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: -3px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 9px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 3px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed {
  position: relative;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed:after {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_block {
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_but {
  display: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list {
  margin: 0;
  padding: 0 20px 0 0;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li {
  margin: 0 40px 5px 0;
  padding: 0;
  float: left;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li:before {
  content: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li a {
  display: block;
  padding: 0;
  cursor: pointer;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li.current a {
  cursor: default;
}
/* More Items Loader and Pagination */
.cmsmasters_wrap_more_items {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.cmsmasters_wrap_more_items.cmsmasters_loading {
  min-height: 60px;
}
.cmsmasters_wrap_more_items.cmsmasters_loading:before {
  font-size: 30px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
}
.cmsmasters_wrap_items_loader {
  margin: 25px 0 0;
  padding: 25px 0 0;
  text-align: center;
  overflow: hidden;
}
div.subpage_nav {
  position: relative;
}
div.subpage_nav > strong {
  display: none;
}
div.subpage_nav > span,
div.subpage_nav > a {
  display: inline-block;
  text-align: center;
  padding: 0 5px;
  vertical-align: middle;
  line-height: 44px !important;
  min-width: 44px;
  height: 44px;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 22px;
  border-radius: 22px;
}
.cmsmasters_wrap_pagination {
  margin: 80px 0 20px;
  overflow: hidden;
}
.cmsmasters_wrap_pagination ul {
  display: block;
  padding: 0 25px;
  margin: 0;
  position: relative;
  text-align: center;
}
.cmsmasters_wrap_pagination ul li {
  display: inline-block;
  margin: 0;
  padding: 1px 0;
  vertical-align: middle;
  position: static;
  overflow: hidden;
}
.cmsmasters_wrap_pagination ul li:before {
  content: none;
}
.cmsmasters_wrap_pagination ul li .page-numbers {
  line-height: 48px !important;
  display: block;
  min-width: 48px;
  height: 48px;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 24px;
  border-radius: 24px;
  position: relative;
}
.cmsmasters_wrap_pagination ul li .page-numbers.next,
.cmsmasters_wrap_pagination ul li .page-numbers.prev {
  border-width: 2px;
  border-style: solid;
}
.cmsmasters_wrap_pagination ul li .page-numbers.next > span,
.cmsmasters_wrap_pagination ul li .page-numbers.prev > span {
  width: 20px;
  height: 20px;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: 0;
  top: 1px;
  bottom: 0;
}
.cmsmasters_wrap_pagination ul li .page-numbers.next > span > span,
.cmsmasters_wrap_pagination ul li .page-numbers.prev > span > span {
  display: none;
}
.cmsmasters_wrap_pagination ul li .page-numbers.prev > span:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 10px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 4px;
  bottom: 0;
}
.cmsmasters_wrap_pagination ul li .page-numbers.prev > span:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 10px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 8px;
}
.cmsmasters_wrap_pagination ul li .page-numbers.next > span:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 10px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 8px;
}
.cmsmasters_wrap_pagination ul li .page-numbers.next > span:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 10px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 4px;
  bottom: 0;
}
.cmsmasters_wrap_pagination ul li .page-numbers > span {
  display: block;
}
.cmsmasters_wrap_pagination:empty {
  display: none;
}
/* Post Navigation */
.post_nav {
  padding: 44px 0;
  margin: 50px 0 0;
  position: relative;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
  overflow: hidden;
}
.post_nav > span {
  position: relative;
}
.post_nav > span a {
  word-break: break-word;
  display: inline-block;
  padding: 8px 0;
  position: relative;
  z-index: 2;
}
.post_nav > span > span {
  width: 36px;
  height: 36px;
  margin: auto !important;
  position: absolute;
  top: 0;
  bottom: 0;
  border-width: 2px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.post_nav > span > span > span {
  display: none;
}
.post_nav > span.cmsmasters_prev_post {
  display: block;
  padding-left: 0;
  padding-right: 20px;
  float: left;
}
.post_nav > span.cmsmasters_prev_post a {
  padding-left: 80px;
  padding-right: 0;
}
.post_nav > span.cmsmasters_prev_post > span {
  left: 30px;
  right: auto;
}
.post_nav > span.cmsmasters_prev_post > span:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 7px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 12px;
  right: auto;
  top: 5px;
  bottom: 0;
}
.post_nav > span.cmsmasters_prev_post > span:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 7px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 12px;
  right: auto;
  top: 0;
  bottom: 5px;
}
.post_nav > span.cmsmasters_next_post {
  display: block;
  padding-left: 20px;
  padding-right: 0;
  float: right;
}
.post_nav > span.cmsmasters_next_post a {
  padding-left: 0;
  padding-right: 80px;
}
.post_nav > span.cmsmasters_next_post > span {
  left: auto;
  right: 30px;
}
.post_nav > span.cmsmasters_next_post > span:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 7px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 12px;
  top: 0;
  bottom: 5px;
}
.post_nav > span.cmsmasters_next_post > span:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 7px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 12px;
  top: 5px;
  bottom: 0;
}
/* Share Posts */
.share_posts {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.share_posts .share_posts_title {
  position: relative;
}
.share_posts .share_posts_inner {
  position: relative;
  overflow: hidden;
}
.share_posts a {
  margin: 0 1px 0 0;
  position: relative;
}
.share_posts a:after {
  content: ',';
}
.share_posts a:last-child {
  margin-left: 0;
  margin-right: 0;
}
.share_posts a:last-child:after {
  content: none;
}
/* About Author */
.about_author {
  padding: 50px 0 0;
  position: relative;
}
.about_author .about_author_title {
  margin: 0 0 35px;
}
.about_author .about_author_inner {
  overflow: hidden;
}
.about_author .about_author_avatar {
  margin: 3px 20px 0 0;
  float: left;
  overflow: hidden;
}
.about_author .about_author_avatar img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.about_author .about_author_cont {
  position: relative;
  overflow: hidden;
}
.about_author .about_author_cont p {
  padding: 0 0 10px;
}
.about_author .about_author_cont_title {
  margin: 0 0 10px;
}
/* Single Post Slider */
.cmsmasters_single_slider {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .preloader {
  padding-bottom: 70.69%;
}
.cmsmasters_single_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_single_slider .cmsmasters_owl_slider {
  outline: none;
}
.cmsmasters_single_slider .cmsmasters_single_slider_title {
  margin: 0 0 35px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner {
  margin: 0 -8px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-pagination,
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-buttons {
  display: none;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item {
  min-width: 200px;
  padding: 0 8px;
  position: relative;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_inner {
  padding: 15px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_title {
  margin: 0;
  padding: 0;
}
/* Single Pings List */
.cmsmasters_pings_list {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pings_list .pingslist {
  list-style-type: none;
}
.cmsmasters_pings_list .comment-body {
  padding: 0 65px 0 0;
  position: relative;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_pings_list .comment-body .edit-link {
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Post Comments */
.post_comments {
  padding: 45px 0 0;
  position: relative;
}
.post_comments:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comments_nav {
  padding: 25px 0 10px;
  overflow: hidden;
}
.comments_nav > span {
  position: relative;
}
.comments_nav a {
  display: block;
}
.comments_nav .comments_nav_prev {
  float: left;
}
.comments_nav .comments_nav_prev:before {
  text-align: left;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: -2px;
  bottom: 0;
}
.comments_nav .comments_nav_prev > a {
  padding: 0 0 0 20px;
}
.comments_nav .comments_nav_next {
  float: right;
}
.comments_nav .comments_nav_next:before {
  text-align: right;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: -2px;
  bottom: 0;
}
.comments_nav .comments_nav_next > a {
  padding: 0 20px 0 0;
}
.commentlist {
  list-style: none;
  margin: 0;
  padding: 0;
}
.commentlist:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.commentlist .children {
  list-style: none;
  margin: 0;
  padding: 0 0 0 30px;
}
.commentlist .comment {
  margin: 0;
  padding: 10px 0 0;
}
.commentlist .comment:before {
  content: none;
}
.commentlist .comment:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_comment_item {
  padding: 30px 30px;
  position: relative;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_comment_item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_date {
  outline: none;
}
.cmsmasters_comment_item .cmsmasters_comment_item_avatar {
  display: block;
  margin: 0 30px 0 0;
  float: left;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_avatar img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont {
  position: relative;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info {
  padding: 0 0 10px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info .star-rating {
  min-width: 200px;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info .cmsmasters_star_rating {
  float: right;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info .rating.dn {
  display: none;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info * {
  display: inline-block;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info .cmsmasters_comment_item_title_wrap {
  margin: 0 20px 0 0;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info .cmsmasters_comment_item_title_wrap .cmsmasters_comment_item_title + .cmsmasters_comment_item_date:before {
  content: '- ';
}
.cmsmasters_comment_item .comment-edit-link,
.cmsmasters_comment_item .comment-reply-link {
  margin: 20px 15px 0 0;
  display: inline-block;
}
.cmsmasters_comment_item .cmsmasters_comment_item_title {
  margin: 0;
  padding: 0;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content > ul,
.cmsmasters_comment_item .cmsmasters_comment_item_content > ol {
  margin: 0 0 20px;
  padding: 0;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content p {
  padding: 0;
}
.cmsmasters_comments_closed {
  margin-top: 30px;
}
/* Comment Respond */
.comment-respond {
  padding: 50px 60px;
  margin-top: 60px;
  position: relative;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.comment-respond:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond p {
  padding-bottom: 10px;
}
.comment-respond p label {
  display: inline-block;
  padding-bottom: 10px;
}
.comment-respond p label .cmsmasters_req {
  margin-left: 5px;
}
.comment-respond .comment-reply-title {
  position: relative;
  margin: 0 0 30px;
}
.comment-respond .comment-reply-title small {
  float: right;
}
.comment-respond .comment-form {
  position: relative;
}
.comment-respond .comment-form:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond .comment-notes,
.comment-respond .logged-in-as {
  padding-bottom: 20px;
  display: block;
  clear: both;
}
.comment-respond .comment-form-comment textarea {
  width: 100%;
}
.comment-respond .comment-form-author {
  max-width: 50%;
  padding-right: 15px;
  float: left;
}
.comment-respond .comment-form-email {
  max-width: 50%;
  padding-left: 15px;
  float: left;
}
.comment-respond .comment-form-cookies-consent {
  padding: 15px 0;
  float: none;
  display: block;
  clear: both;
}
.comment-respond .comment-form-cookies-consent input {
  display: inline;
  position: relative;
  top: 1px;
}
.comment-respond .comment-form-cookies-consent label {
  display: inline;
  margin-left: 5px;
}
.comment-respond .form-submit {
  padding-top: 15px;
  display: block;
  clear: both;
}
.comment-respond .form-submit .submit {
  line-height: 48px;
}
.nocomments {
  margin: 50px 0 0;
  position: relative;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Header + Centered + Right + Fixed Versions
/*-------------------------------------------------------------------------*/
/***************** Header ******************/
#header {
  width: 100%;
  position: absolute;
  z-index: 9999;
}
/***************** Header Top ******************/
.header_top {
  outline: none;
}
.header_top .header_top_but {
  width: 100%;
  height: 34px;
  position: relative;
  cursor: pointer;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  display: none;
}
.header_top .header_top_but.closed {
  border-top-color: transparent;
}
.header_top .header_top_but > span {
  font-size: 16px;
  line-height: 16px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_top .header_top_outer {
  height: 100%;
  position: relative;
}
.header_top .header_top_inner {
  height: 100%;
}
.header_top .header_top_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_top .social_wrap {
  height: 100%;
  float: right;
}
.header_top .social_wrap li {
  margin-left: 0;
  margin-right: 5px;
}
.header_top .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_top .social_wrap a {
  font-size: 12px;
  line-height: 12px;
  width: 22px;
  height: 22px;
}
.header_top .top_nav_wrap {
  display: block;
  height: 100%;
  float: right;
}
.header_top .responsive_top_nav {
  width: 30px;
  height: 30px;
  position: relative;
  display: none;
  margin: 0 auto;
}
.header_top .responsive_top_nav > span,
.header_top .responsive_top_nav > span:before,
.header_top .responsive_top_nav > span:after {
  width: 15px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
}
.header_top .responsive_top_nav > span {
  top: 0;
  bottom: 0;
}
.header_top .responsive_top_nav > span:before {
  content: '';
  top: -6px;
}
.header_top .responsive_top_nav > span:after {
  content: '';
  bottom: -6px;
}
.header_top .responsive_top_nav.active > span {
  width: 0;
  height: 0;
  position: static;
}
.header_top .responsive_top_nav.active > span:before {
  top: 0;
  bottom: 0;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.header_top .responsive_top_nav.active > span:after {
  top: 0;
  bottom: 0;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
}
.header_top .header_top_meta {
  height: 100%;
  padding: 0 20px 0 0;
  overflow: hidden;
}
.header_top .header_top_meta:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_top .meta_wrap {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.header_top .meta_wrap > * {
  margin: 0 10px 0 0;
  display: inline-block;
}
.header_top .meta_wrap > *:last-child {
  margin: 0;
}
.header_top .meta_wrap > *[class^="cmsmasters-icon-"]:before,
.header_top .meta_wrap > *[class*=" cmsmasters-icon-"]:before,
.header_top .meta_wrap > *[class^="cmsmasters_theme_icon_"]:before,
.header_top .meta_wrap > *[class*=" cmsmasters_theme_icon_"]:before {
  margin-left: 0;
  margin-right: 0.5em;
  vertical-align: middle;
}
.header_top .meta_wrap > p {
  padding: 0;
}
.header_top .meta_wrap .adr {
  white-space: nowrap;
}
/***************** Header Top Navigation ******************/
.top_line_nav {
  z-index: 205;
}
.top_line_nav > li {
  height: 100%;
  border-width: 1px;
  border-style: solid;
}
.top_line_nav > li:last-child {
  border-right-width: 1px;
  border-right-style: solid;
}
.top_line_nav > li a {
  padding: 0 14px;
}
/***************** Header Mid ******************/
.header_mid {
  display: block;
  clear: both;
}
.header_mid.header_mid_scroll {
  -webkit-box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.05);
  box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.05);
}
.enable_header_bottom .header_mid.header_mid_scroll {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.header_mid .header_mid_outer {
  height: 100%;
  position: relative;
}
.header_mid .header_mid_inner {
  height: 100%;
}
.header_mid .header_mid_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_mid .logo_wrap {
  height: 100%;
  position: relative;
  float: left;
}
.enable_header_centered .header_mid .logo_wrap {
  float: none;
  margin: 0 auto;
  text-align: center;
}
.header_mid .logo_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .logo_wrap .logo_text_wrap {
  display: inline-block;
  vertical-align: middle;
}
.header_mid .logo_wrap .title {
  display: block;
  line-height: 1em;
}
.header_mid .logo_wrap .title_text {
  padding: 0 0 0 3px;
}
.header_mid .logo_wrap .logo {
  display: inline-block;
  width: auto;
  vertical-align: middle;
}
.header_mid .logo_wrap .logo img {
  max-height: 100%;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.enable_header_centered .header_mid .logo_wrap .logo img {
  left: 0;
  right: 0;
}
.header_mid .logo_wrap .logo .logo_retina {
  display: none;
}
.header_mid .resp_mid_nav_wrap {
  height: 100%;
  margin: 0 0 0 15px;
  position: relative;
  display: none;
  float: right;
  overflow: hidden;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav_outer {
  height: 100%;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav_outer:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav {
  display: inline-block;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  position: relative;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav > span,
.header_mid .resp_mid_nav_wrap .resp_mid_nav > span:before,
.header_mid .resp_mid_nav_wrap .resp_mid_nav > span:after {
  width: 15px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav > span {
  top: 2px;
  bottom: 0;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav > span:before {
  content: '';
  top: -6px;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav > span:after {
  content: '';
  bottom: -6px;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active > span {
  width: 0;
  height: 0;
  position: static;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active > span:before {
  top: 0;
  bottom: 0;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active > span:after {
  top: 0;
  bottom: 0;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
}
.header_mid .mid_search_but_wrap {
  height: 100%;
  margin: 0 0 0 15px;
  position: relative;
  float: right;
}
.header_mid .mid_search_but_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .mid_search_but_wrap .mid_search_but {
  font-size: 18px;
  line-height: 26px;
  width: 26px;
  height: 26px;
  margin: 0;
  cursor: pointer;
  display: inline-block;
  position: relative;
  vertical-align: middle;
}
.header_mid .mid_search_but_wrap .mid_search_but:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_mid .social_wrap {
  padding: 0 0 0 20px;
  float: right;
}
.header_mid .social_wrap .social_wrap_inner {
  text-align: right;
}
.header_mid .social_wrap li {
  margin-left: 0;
  margin-right: 7px;
}
.header_mid .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_mid .social_wrap a {
  font-size: 14px;
  line-height: 14px;
  width: 28px;
  height: 28px;
}
.header_mid .slogan_wrap {
  height: 100%;
  display: block;
  position: relative;
  float: right;
  overflow: hidden;
}
.header_mid .slogan_wrap .slogan_wrap_inner {
  height: 100%;
  padding: 0 0 0 20px;
  text-align: right;
}
.header_mid .slogan_wrap .slogan_wrap_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .slogan_wrap .slogan_wrap_text {
  display: inline-block;
  vertical-align: middle;
}
.header_mid .slogan_wrap .slogan_wrap_text > * {
  margin: 0 10px 0 0;
  display: inline-block;
}
.header_mid .slogan_wrap .slogan_wrap_text > *:last-child {
  margin: 0;
}
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters-icon-"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters-icon-"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters_theme_icon_"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters_theme_icon_"]:before {
  margin-left: 0;
  margin-right: 0.5em;
  vertical-align: middle;
}
.header_mid .slogan_wrap .slogan_wrap_text > p {
  padding: 0;
}
.header_mid .slogan_wrap .slogan_wrap_text .adr {
  white-space: nowrap;
}
.header_mid .mid_nav_wrap {
  height: 100%;
  position: relative;
  float: right;
}
.header_mid .header_mid_button_wrap {
  height: 100%;
  float: right;
  position: relative;
  padding-left: 35px;
}
.header_mid .header_mid_button_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .header_mid_button_wrap .header_mid_button {
  vertical-align: middle;
  padding-left: 25px;
  padding-right: 25px;
}
/***************** Header Mid Navigation ******************/
.mid_nav {
  font-size: 0;
  line-height: 0;
  outline: none;
}
.mid_nav:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.mid_nav > li {
  float: none;
  display: inline-block;
  vertical-align: middle;
  border-width: 0;
  border-style: solid;
}
.mid_nav > li > a {
  display: inline-block;
  padding: 8px 12px;
  vertical-align: middle;
  border-width: 1px;
  border-style: solid;
}
.mid_nav > li > a .nav_subtitle {
  display: block;
}
.mid_nav > li > a .nav_tag {
  display: inline-block;
  margin: 0 0 0 10px;
  padding: 2px 15px;
  vertical-align: middle;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
.mid_nav > li > ul {
  left: -12px;
}
/***************** Header Bot ******************/
.header_bot {
  display: block;
  clear: both;
}
.header_bot.header_bot_scroll:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 2px;
  width: 100%;
  height: 1px;
  -webkit-box-shadow: 0 5px 5px 1px rgba(0, 0, 0, 0.1);
  box-shadow: 0 5px 5px 1px rgba(0, 0, 0, 0.1);
}
.header_bot .header_bot_outer {
  height: 100%;
  position: relative;
}
.header_bot .header_bot_outer .header_bot_border_top {
  display: block;
  border-top-width: 1px;
  border-top-style: solid;
}
.header_bot .header_bot_inner {
  height: 100%;
}
.header_bot .header_bot_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.enable_header_centered .header_bot .header_bot_inner {
  text-align: center;
}
.header_bot .resp_bot_nav_wrap {
  height: 100%;
  padding: 7px 15px;
  position: relative;
  display: none;
  overflow: hidden;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav_outer {
  height: 100%;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav_outer:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav {
  display: inline-block;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  position: relative;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav > span,
.header_bot .resp_bot_nav_wrap .resp_bot_nav > span:before,
.header_bot .resp_bot_nav_wrap .resp_bot_nav > span:after {
  width: 15px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav > span {
  top: 0;
  bottom: 0;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav > span:before {
  content: '';
  top: -6px;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav > span:after {
  content: '';
  bottom: -6px;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav.active > span {
  width: 0;
  height: 0;
  position: static;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav.active > span:before {
  top: 0;
  bottom: 0;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav.active > span:after {
  top: 0;
  bottom: 0;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
}
.header_bot .bot_nav_wrap {
  height: 100%;
  position: relative;
  float: left;
}
.enable_header_right .header_bot .bot_nav_wrap {
  float: right;
}
.enable_header_centered .header_bot .bot_nav_wrap {
  display: inline-block;
  float: none;
}
/***************** Header Bot Navigation ******************/
.bot_nav {
  outline: none;
}
.bot_nav > li {
  font-size: 0;
  line-height: 0;
  height: 100%;
  border-width: 0;
  border-style: solid;
}
.bot_nav > li:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.bot_nav > li > a {
  display: inline-block;
  padding: 8px 20px;
  vertical-align: middle;
  border-width: 1px;
  border-style: solid;
}
.bot_nav > li > a .nav_subtitle {
  display: block;
}
.bot_nav > li > a .nav_tag {
  display: inline-block;
  margin: 0 0 0 10px;
  padding: 2px 15px;
  vertical-align: middle;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
/***************** Header Search Form ******************/
.cmsmasters_header_search_form {
  width: 100%;
  height: 100%;
  visibility: hidden;
  position: fixed;
  z-index: 99999;
  opacity: 0;
}
.cmsmasters_header_search_form.cmsmasters_show {
  visibility: visible;
  opacity: 1;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close {
  font-size: 30px;
  line-height: 30px;
  display: block;
  cursor: pointer;
  width: 32px;
  height: 32px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 50px;
  top: 50px;
  bottom: auto;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close:hover {
  opacity: 0.3;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field {
  max-width: 90%;
  text-align: center;
  width: 800px;
  height: 46px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  font-size: 20px;
  line-height: 46px;
  background-color: transparent;
  display: inline-block;
  width: 100%;
  max-width: 335px;
  height: 100%;
  padding: 0 25px;
  vertical-align: middle;
  border-right-width: 0;
  border-right-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  border-bottom-width: 0;
  border-bottom-style: solid;
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_header_search_form button {
  display: inline-block;
  padding: 0 30px;
  cursor: pointer;
  position: relative;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
.cmsmasters_header_search_form button:hover {
  background-color: transparent;
}
/*-------------------------------------------------------------------------*/
/* Headline Styles
/*-------------------------------------------------------------------------*/
body .headline {
  background-color: transparent;
}
.cmsmasters_breadcrumbs {
  position: relative;
  overflow: hidden;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  display: inline-block;
  padding-top: 13px;
  vertical-align: middle;
  overflow: hidden;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner a:hover,
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner span:not([class]) {
  word-wrap: break-word;
  opacity: 0.8;
}
.headline_outer {
  background-position: top center;
  position: relative;
  z-index: 1;
}
.headline_outer.cmsmasters_headline_disabled {
  outline: none;
}
.headline_outer .headline_color {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border-top-width: 1px;
  border-top-style: dashed;
  border-bottom-width: 1px;
  border-bottom-style: dashed;
}
.cmsmasters_headline_disabled.headline_outer .headline_color {
  border-width: 0;
  border-style: solid;
}
.headline_outer .headline_inner {
  padding: 0 20px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.headline_outer .headline_inner .headline_aligner {
  display: inline-block;
  vertical-align: middle;
}
.headline_outer .headline_inner .headline_text_wrap {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.headline_outer .headline_inner .headline_text {
  position: relative;
}
.headline_outer .headline_inner .headline_text:before {
  line-height: 1em;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: auto;
}
.headline_outer .headline_inner .headline_text .entry-title {
  word-wrap: break-word;
  margin: 0;
}
.headline_outer .headline_inner .headline_text .entry-subtitle {
  margin: 13px 0 0;
}
.headline_outer .headline_inner.align_left {
  text-align: left;
}
.headline_outer .headline_inner.align_left .headline_text {
  text-align: left;
}
.headline_outer .headline_inner.align_left .headline_text:before {
  right: auto;
}
.headline_outer .headline_inner.align_right {
  text-align: right;
}
.headline_outer .headline_inner.align_right .headline_text {
  text-align: right;
}
.headline_outer .headline_inner.align_right .headline_text:before {
  left: auto;
}
.headline_outer .headline_inner.align_right .cmsmasters_breadcrumbs {
  text-align: right;
}
.headline_outer .headline_inner.align_center {
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text {
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text:before {
  right: auto;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs {
  text-align: center;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: none;
}
.content_wrap {
  display: block;
  min-width: inherit;
}
/*-------------------------------------------------------------------------*/
/* Bottom + Footer Styles
/*-------------------------------------------------------------------------*/
/***************** Bottom ******************/
.bottom_inner .widgettitle {
  margin-bottom: 35px;
  position: relative;
}
/***************** Footer ******************/
#footer {
  overflow: hidden;
}
.footer_inner {
  position: relative;
  overflow: hidden;
}
.footer_inner .social_wrap a {
  font-size: 23px;
  line-height: 24px;
  width: 40px;
  height: 40px;
}
/***************** Footer Default ******************/
.cmsmasters_footer_default .footer_inner {
  padding-top: 50px;
  padding-bottom: 32px;
}
.cmsmasters_footer_default .footer_inner > div:first-child {
  padding-top: 0;
}
.cmsmasters_footer_default .footer_logo_wrap {
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_logo_wrap .footer_logo {
  display: inline-block;
}
.cmsmasters_footer_default .footer_logo_wrap .footer_logo > .footer_logo_retina {
  display: none;
}
.cmsmasters_footer_default .footer_nav_wrap {
  padding: 27px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_nav_wrap div {
  text-align: center;
}
.cmsmasters_footer_default .footer_nav {
  display: inline-block;
  width: auto;
  text-align: center;
}
.cmsmasters_footer_default .footer_nav > li {
  float: none;
  display: inline-block;
  margin: 0 15px 5px;
  vertical-align: middle;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_default .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_default .footer_custom_html_wrap {
  padding: 25px 0 0;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_custom_html {
  display: inline-block;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_footer_default .social_wrap {
  padding: 30px 0 0;
}
.cmsmasters_footer_default .social_wrap .social_wrap_inner {
  text-align: center;
}
.cmsmasters_footer_default .social_wrap li {
  margin-left: 0;
  margin-right: 7px;
}
.cmsmasters_footer_default .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_default .footer_copyright {
  display: block;
  margin: 50px 0 0;
  padding: 30px 0 0;
  border-top-width: 1px;
  border-top-style: solid;
  text-align: center;
}
.cmsmasters_footer_default .footer_copyright:first-child {
  margin: 0;
  padding: 0;
  border-top-width: 0;
  border-top-style: solid;
}
/***************** Footer Small ******************/
.cmsmasters_footer_small .footer_inner {
  padding-top: 40px;
  padding-bottom: 40px;
}
.cmsmasters_footer_small .footer_nav_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_nav > li {
  margin: 0 20px 0 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_small .footer_nav > li:last-child {
  margin: 0;
}
.cmsmasters_footer_small .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_small .social_wrap {
  float: right;
}
.cmsmasters_footer_small .social_wrap li {
  margin-left: 0;
  margin-right: 7px;
}
.cmsmasters_footer_small .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_small .footer_custom_html_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_copyright {
  display: block;
  padding: 7px 20px 1px 0;
  position: relative;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Blog (Default, Masonry, Timeline) + Post Styles
/*-------------------------------------------------------------------------*/
/***************** Blog ******************/
.blog {
  position: relative;
}
.blog:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.blog .post {
  width: 100%;
  max-width: 100%;
}
.blog .post .preloader {
  padding-bottom: 55.8%;
}
.blog .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog .post .cmsmasters_video_wrap,
.blog .post .resizable_block {
  padding-bottom: 55.8%;
}
.blog.columns {
  margin: -40px -16px 0;
}
.blog.columns .post {
  min-width: 280px;
  padding: 40px 16px 0;
  float: left;
  opacity: 0;
}
.cmsmasters_4.blog.columns .post {
  width: 25%;
}
.cmsmasters_3.blog.columns .post {
  width: 33.33%;
}
.cmsmasters_2.blog.columns .post {
  width: 50%;
}
.blog.columns .post.shortcode_animated {
  opacity: 1;
}
.blog.columns .post .preloader {
  padding-bottom: 63.1%;
}
.blog.columns .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.columns .post .cmsmasters_video_wrap,
.blog.columns .post .resizable_block {
  padding-bottom: 63.1%;
}
.blog.timeline .post {
  width: 100%;
  overflow: visible;
  opacity: 0;
}
.blog.timeline .post.shortcode_animated {
  opacity: 1;
}
.blog.timeline .post .preloader {
  padding-bottom: 63.1%;
}
.blog.timeline .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.timeline .post .cmsmasters_video_wrap,
.blog.timeline .post .resizable_block {
  padding-bottom: 63.1%;
}
.blog .owl-pagination {
  width: 100%;
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
}
/***************** Blog Default ******************/
.cmsmasters_post_default {
  padding: 70px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_default:first-child {
  padding-top: 0;
}
.cmsmasters_post_default.sticky .cmsmasters_post_cont_wrap {
  border-width: 3px;
  border-style: solid;
}
.cmsmasters_post_default.sticky .cmsmasters_post_title {
  position: relative;
  padding-right: 35px;
}
.cmsmasters_post_default.sticky .cmsmasters_post_title:before {
  position: absolute;
  right: 0;
  top: 5px;
  content: '\e830';
  font-size: 25px;
  font-family: 'fontello';
  display: inline-block;
}
.cmsmasters_post_default .cmsmasters_post_cont_wrap {
  position: relative;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_post_default .cmsmasters_img_wrap {
  margin: -1px -1px 0 -1px;
  overflow: hidden;
  -webkit-border-radius: 15px 15px 0 0;
  border-radius: 15px 15px 0 0;
}
.cmsmasters_post_default .cmsmasters_post_cont {
  padding: 40px 50px 45px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_header .cmsmasters_post_title {
  word-wrap: break-word;
  margin: 0;
}
.cmsmasters_post_default .cmsmasters_post_content {
  padding: 21px 0 0;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_default .cmsmasters_post_footer {
  padding: 32px 0 0;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_meta_info {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_post_default .cmsmasters_post_read_more {
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
  padding: 0 25px;
  margin-right: 20px;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
.cmsmasters_post_default .cmsmasters_post_cont_info {
  padding: 13px 0 0;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_cont_info > span {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_post_default .cmsmasters_post_cont_info > span:first-child:before {
  content: none;
}
.cmsmasters_post_default .cmsmasters_post_cont_info > span:before {
  content: '-';
  padding: 0 5px;
}
.cmsmasters_post_default .cmsmasters_post_date + .cmsmasters_post_author:before {
  content: '-';
  padding: 0 5px;
}
.cmsmasters_post_default .cmsmasters_owl_slider {
  -webkit-border-radius: 15px 15px 0 0;
  border-radius: 15px 15px 0 0;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_owl_slider .owl-buttons {
  display: none;
}
.cmsmasters_post_default .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_audio {
  padding: 25px 0 0;
}
.cmsmasters_post_default .cmsmasters_post_video_wrap {
  margin: -1px -1px -1px 0;
  -webkit-border-radius: 15px 15px 0 0;
  border-radius: 15px 15px 0 0;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_video_wrap .cmsmasters_video_wrap {
  margin: 0;
}
/***************** Blog Masonry ******************/
.cmsmasters_post_masonry {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_post_cont {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap {
  margin: 0 0 25px;
  position: relative;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_post_masonry .cmsmasters_post_header {
  padding: 0 0 12px;
}
.cmsmasters_post_masonry .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_footer {
  padding: 0 0 18px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_category {
  float: left;
  display: block;
}
.cmsmasters_post_masonry .cmsmasters_post_category a {
  display: inline-block;
  line-height: 32px;
  padding: 0 17px;
  margin-right: 5px;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 20px;
  border-radius: 20px;
}
.cmsmasters_post_masonry .cmsmasters_post_category + .cmsmasters_post_meta_info {
  float: right;
  margin-top: 3px;
}
.cmsmasters_post_masonry .cmsmasters_post_meta_info {
  display: block;
}
.cmsmasters_post_masonry .cmsmasters_post_content {
  padding: 0 0 23px;
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_read_more {
  display: inline-block;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info {
  padding: 0 0 20px;
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info > span {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_post_masonry .cmsmasters_post_date + .cmsmasters_post_author:before {
  content: '-';
  padding: 0 5px;
}
.cmsmasters_post_masonry .cmsmasters_video_wrap {
  margin: 0 0 25px;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_post_masonry .cmsmasters_audio {
  outline: none;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider {
  margin: 0 0 25px;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider .owl-buttons {
  display: none;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider .owl-pagination {
  bottom: 13px;
}
/***************** Blog Timeline ******************/
.cmsmasters_post_timeline {
  padding: 70px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_timeline:first-child {
  padding-top: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_info {
  display: block;
  padding: 0 0 35px;
  position: relative;
  z-index: 1;
}
.cmsmasters_post_timeline .cmsmasters_post_date {
  display: block;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_date .published {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_date span {
  display: block;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_day {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_mon_year {
  padding: 3px 0 0;
}
.cmsmasters_post_timeline .cmsmasters_post_cont {
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_img_wrap {
  overflow: hidden;
}
.fullwidth .cmsmasters_post_timeline .cmsmasters_img_wrap {
  width: 50%;
  float: left;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_inner {
  padding: 25px 0 0;
  position: relative;
  overflow: hidden;
}
.fullwidth .cmsmasters_post_timeline .cmsmasters_post_cont_inner.enable_image {
  width: 50%;
  padding: 25px 0 0 40px;
  float: left;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_inner:not(.enable_image) {
  padding: 0;
  text-align: center;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_inner:not(.enable_image) .cmsmasters_post_content,
.cmsmasters_post_timeline .cmsmasters_post_cont_inner:not(.enable_image) .cmsmasters_post_cont_info {
  text-align: center;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_inner:not(.enable_image) .cmsmasters_post_footer .cmsmasters_post_read_more {
  display: inline-block;
  padding: 0 0 15px;
  text-align: center;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_inner:not(.enable_image) .cmsmasters_post_footer .cmsmasters_post_meta_info {
  display: block;
  position: relative;
  left: auto;
  top: auto;
  text-align: center;
}
.cmsmasters_post_timeline .cmsmasters_post_header {
  padding: 0 0 15px;
}
.cmsmasters_post_timeline .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info {
  padding: 0 0 13px;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info > span {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_post_timeline .cmsmasters_post_category + .cmsmasters_post_author:before {
  content: '-';
  padding: 0 5px;
}
.cmsmasters_post_timeline .cmsmasters_post_content {
  padding: 0 0 16px;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_footer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_footer.enable_meta_info .cmsmasters_post_read_more {
  padding: 0 75px 0 0;
}
.cmsmasters_post_timeline .cmsmasters_post_footer > span {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_read_more {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_post_timeline .cmsmasters_post_read_more + .cmsmasters_post_meta_info {
  position: absolute;
  right: 0;
  top: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_meta_info {
  display: block;
}
.cmsmasters_post_timeline .cmsmasters_post_video_wrap {
  outline: none;
}
.fullwidth .cmsmasters_post_timeline .cmsmasters_post_video_wrap {
  width: 50%;
  float: left;
}
.fullwidth .cmsmasters_post_timeline .cmsmasters_post_video_wrap .cmsmasters_img_wrap {
  width: 100%;
  float: left;
}
.fullwidth .cmsmasters_post_timeline .cmsmasters_post_video_wrap .cmsmasters_video_wrap {
  margin-bottom: 0;
}
.cmsmasters_post_timeline .cmsmasters_owl_slider {
  outline: none;
}
.fullwidth .cmsmasters_post_timeline .cmsmasters_owl_slider {
  width: 50%;
  padding: 0 0 37px 0;
  float: left;
}
.cmsmasters_post_timeline .cmsmasters_owl_slider .owl-buttons {
  display: none;
}
#page:not(.fullwidth) .cmsmasters_post_timeline .cmsmasters_owl_slider .owl-pagination {
  padding: 0;
  bottom: 13px;
}
.cmsmasters_post_timeline .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_audio {
  padding: 5px 0 12px;
}
/***************** Blog Post ******************/
.cmsmasters_open_post {
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_top {
  padding: 35px 40px;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_open_post .preloader {
  padding-bottom: 66.86%;
}
.cmsmasters_open_post .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_video_wrap,
.cmsmasters_open_post .resizable_block {
  padding-bottom: 66.86% !important;
}
.cmsmasters_open_post > div:first-child {
  margin-top: 0;
}
.cmsmasters_open_post .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
  word-break: break-word;
}
.cmsmasters_open_post .cmsmasters_post_header + .cmsmasters_post_cont_info {
  margin: 17px 0 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span.cmsmasters_post_category {
  margin-right: 20px;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span.cmsmasters_post_category a {
  line-height: 34px;
  display: inline-block;
  padding: 0 17px;
  margin-right: 5px;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 20px;
  border-radius: 20px;
}
.cmsmasters_open_post .cmsmasters_post_cont_info:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_date + .cmsmasters_post_author:before {
  content: '-';
  padding: 0 5px;
}
.cmsmasters_open_post .cmsmasters_img_wrap {
  margin: 30px 0 0;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_content {
  margin: 45px 0 0;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_open_post .cmsmasters_post_footer {
  margin: 30px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_footer > span {
  display: inline-block;
}
.cmsmasters_open_post .cmsmasters_post_tags {
  padding: 0 75px 0 0;
}
.cmsmasters_open_post .cmsmasters_post_tags + .cmsmasters_post_meta_info {
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
}
.cmsmasters_open_post .cmsmasters_post_meta_info {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_owl_slider {
  margin: 45px 0 0;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons {
  display: none;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-pagination {
  bottom: 13px;
}
.cmsmasters_open_post .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_audio {
  margin: 45px 0 0;
}
.cmsmasters_open_post .cmsmasters_video_wrap {
  margin: 45px 0 0;
}
/*-------------------------------------------------------------------------*/
/* Portfolio (Grid, Puzzle) + Project Styles
/*-------------------------------------------------------------------------*/
/***************** Portfolio ******************/
.portfolio {
  position: relative;
}
.portfolio:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.portfolio .cmsmasters_project_grid,
.portfolio .cmsmasters_project_puzzle {
  min-width: 235px;
  float: left;
}
.portfolio .cmsmasters_project_grid .preloader,
.portfolio .cmsmasters_project_puzzle .preloader {
  padding-bottom: 70.69%;
}
.portfolio .cmsmasters_project_grid .preloader.highImg,
.portfolio .cmsmasters_project_puzzle .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.portfolio.large_gap {
  margin: 0 -1.3%;
}
.portfolio.large_gap .project {
  padding-left: 1.3%;
  padding-right: 1.3%;
  padding-bottom: 2.6%;
}
.portfolio.small_gap {
  padding: 1px 1px 0;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.portfolio.small_gap .project {
  overflow: visible;
}
.portfolio.small_gap .project .project_outer {
  margin-left: 0;
  margin-right: 1px;
  margin-bottom: 1px;
}
.portfolio.grid.perfect .project figure {
  opacity: 0;
}
.portfolio.grid.perfect .project.shortcode_animated figure {
  opacity: 1;
}
.portfolio.grid.masonry .project,
.portfolio.puzzle .project {
  opacity: 0;
}
.portfolio.grid.masonry .project.shortcode_animated,
.portfolio.puzzle .project.shortcode_animated {
  opacity: 1;
}
.portfolio.cmsmasters_5 .project {
  max-width: 20%;
}
.portfolio.cmsmasters_4 .project {
  max-width: 25%;
}
.portfolio.cmsmasters_3 .project {
  max-width: 33%;
}
.portfolio.cmsmasters_2 .project {
  max-width: 50%;
}
.portfolio.isotope.cmsmasters_5 .project,
.portfolio.isotope.cmsmasters_4 .project,
.portfolio.isotope.cmsmasters_3 .project,
.portfolio.isotope.cmsmasters_2 .project {
  max-width: none;
}
/***************** Portfolio Grid ******************/
.cmsmasters_project_grid {
  position: relative;
}
.cmsmasters_project_grid .cmsmasters_img_rollover .cmsmasters_open_link:empty {
  display: none;
}
.cmsmasters_project_grid .cmsmasters_img_rollover .cmsmasters_open_post_link {
  text-indent: -9999px;
  display: block !important;
  width: 100%;
  height: 100%;
  padding: 0;
  border-width: 0;
  border-style: solid;
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_project_grid .project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .project_outer:hover .cmsmasters_project_footer {
  top: 4px;
  opacity: 1;
}
.cmsmasters_project_grid .project_outer:hover .cmsmasters_img_rollover {
  opacity: 0.75;
}
.cmsmasters_project_grid .cmsmasters_project_images_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_images_wrap + .project_inner {
  padding-top: 23px;
}
.cmsmasters_project_grid .cmsmasters_project_footer {
  padding: 9px 20px;
  position: absolute;
  right: 4px;
  top: -20px;
  opacity: 0;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_footer > span {
  outline: none;
}
.cmsmasters_project_grid .project_inner {
  padding: 0 10px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_header {
  padding: 0 0 15px;
  text-align: center;
}
.cmsmasters_project_grid .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_project_grid .cmsmasters_project_cont_info {
  padding: 0 0 18px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_content {
  text-align: center;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_content p {
  margin: 0;
  padding: 0;
}
/***************** Portfolio Puzzle ******************/
.cmsmasters_project_puzzle {
  position: relative;
}
.cmsmasters_project_puzzle .cmsmasters_img_rollover .cmsmasters_open_link:empty {
  display: none;
}
.cmsmasters_project_puzzle .cmsmasters_img_rollover .cmsmasters_open_post_link {
  text-indent: -9999px;
  display: block !important;
  width: 100%;
  height: 100%;
  padding: 0;
  border-width: 0;
  border-style: solid;
  -webkit-border-radius: 0;
  border-radius: 0;
  background-color: transparent;
}
.cmsmasters_project_puzzle .project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_puzzle .project_outer:hover img {
  outline: none;
}
.cmsmasters_project_puzzle .project_outer:hover .cmsmasters_img_rollover {
  opacity: 0.75;
}
.cmsmasters_project_puzzle .project_outer:hover .project_inner {
  top: 0 !important;
}
.cmsmasters_project_puzzle .project_inner {
  width: 100%;
  padding: 3px;
  position: absolute;
  left: 0;
  overflow: hidden;
}
.cmsmasters_project_puzzle .project_inner_cont {
  padding: 15px;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_project_puzzle .cmsmasters_project_header {
  padding: 3px 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_header .cmsmasters_project_title a:hover {
  opacity: 0.5;
}
.cmsmasters_project_puzzle .cmsmasters_project_category {
  display: block;
  padding: 5px 0 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_category a:hover {
  opacity: 0.5;
}
.cmsmasters_project_puzzle .cmsmasters_project_cont_info {
  padding: 5px 0 0;
  position: relative;
}
.cmsmasters_project_puzzle .cmsmasters_project_cont_info:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_project_puzzle .cmsmasters_project_cont_info.enable_project_footer .cmsmasters_project_category {
  padding: 0 75px 0 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_read_more:hover {
  opacity: 0.5;
}
.cmsmasters_project_puzzle .cmsmasters_project_read_more + .cmsmasters_project_footer {
  float: right;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer {
  overflow: hidden;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer > span {
  outline: none;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer a.active,
.cmsmasters_project_puzzle .cmsmasters_project_footer a:hover {
  opacity: 0.5;
}
/***************** Portfolio Open Project ******************/
.cmsmasters_open_project {
  padding: 0 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .preloader {
  padding-bottom: 55.8%;
}
.cmsmasters_open_project .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_project .cmsmasters_video_wrap,
.cmsmasters_open_project .resizable_block {
  padding-bottom: 55.8%;
}
.cmsmasters_open_project .owl-pagination {
  display: none;
}
.cmsmasters_open_project .cmsmasters_owl_slider:hover .owl-buttons > div {
  opacity: 1;
}
.cmsmasters_open_project .owl-buttons {
  position: static;
  width: 0;
  height: 0;
}
.cmsmasters_open_project .owl-buttons > div {
  display: block;
  margin: 0;
  opacity: 0;
  width: 50px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}
.cmsmasters_open_project .owl-buttons > div:before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_open_project .owl-buttons > div.owl-prev {
  left: 0;
  right: auto;
}
.cmsmasters_open_project .owl-buttons > div.owl-next {
  left: auto;
  right: 0;
}
.cmsmasters_open_project .owl-buttons > div > span {
  background: transparent;
  display: block;
  width: 100%;
  height: 100%;
  border-width: 0;
  border-style: solid;
  -webkit-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_open_project .owl-buttons > div > span > span {
  width: 10px;
  height: 26px;
}
.cmsmasters_open_project .owl-buttons > div > span > span:before {
  font-size: 26px;
  line-height: 26px;
}
.cmsmasters_open_project .cmsmasters_project_likes,
.cmsmasters_open_project .cmsmasters_project_comments {
  outline: none;
}
.cmsmasters_open_project .cmsmasters_project_header {
  padding: 0 0 10px;
  text-align: center;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_open_project .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_open_project .project_content {
  width: 100%;
  padding: 40px 0 0;
  overflow: hidden;
}
.cmsmasters_open_project .project_content.with_sidebar .cmsmasters_project_content {
  width: 71%;
  padding: 0 40px;
  float: left;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row {
  margin: 0 -1.3%;
  position: relative;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row figure {
  overflow: hidden;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_third,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_half,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_first {
  margin-bottom: 2.6%;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_third .preloader,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_half .preloader {
  padding-bottom: 70.69%;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_third .preloader.highImg,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_half .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_project .project_content > .cmsmasters_img_wrap {
  margin: 0 0 50px;
  overflow: hidden;
}
.cmsmasters_open_project .project_content > .cmsmasters_owl_slider {
  margin: 0 0 50px;
}
.cmsmasters_open_project .project_content > .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_project .project_content > .cmsmasters_video_wrap {
  margin: 0 0 50px;
}
.cmsmasters_open_project .cmsmasters_project_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .project_sidebar {
  width: 29%;
  padding: 0 40px 0 0;
  float: left;
}
.cmsmasters_open_project .project_sidebar > div {
  margin: 35px 0 0;
}
.cmsmasters_open_project .project_sidebar > div:first-child {
  margin: 0;
}
.cmsmasters_open_project .project_details,
.cmsmasters_open_project .project_features {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_title,
.cmsmasters_open_project .project_features_title {
  margin: 0 0 25px;
  padding: 0;
}
.cmsmasters_open_project .project_details_title + .project_details_item,
.cmsmasters_open_project .project_features_title + .project_details_item,
.cmsmasters_open_project .project_details_title + .project_features_item,
.cmsmasters_open_project .project_features_title + .project_features_item {
  padding-top: 0;
}
.cmsmasters_open_project .project_details_item,
.cmsmasters_open_project .project_features_item {
  padding: 9px 0;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_item:first-child,
.cmsmasters_open_project .project_features_item:first-child {
  padding-top: 0;
}
.cmsmasters_open_project .project_details_item:last-child,
.cmsmasters_open_project .project_features_item:last-child {
  padding-bottom: 0;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_open_project .project_details_item_title,
.cmsmasters_open_project .project_features_item_title {
  max-width: 50%;
  float: left;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_one_item .project_details_item_title,
.cmsmasters_open_project .project_features_one_item .project_features_item_title {
  max-width: 100%;
  float: none;
}
.cmsmasters_open_project .project_details_item_desc,
.cmsmasters_open_project .project_features_item_desc {
  padding: 0 0 0 15px;
  word-wrap: break-word;
  text-align: right;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_one_item .project_details_item_desc,
.cmsmasters_open_project .project_features_one_item .project_features_item_desc {
  padding-left: 0;
  padding-right: 0;
}
/*-------------------------------------------------------------------------*/
/* Posts Slider Styles
/*-------------------------------------------------------------------------*/
/***************** Posts Slider ******************/
.cmsmasters_posts_slider {
  margin: 0 -15px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_posts_slider .owl-buttons {
  display: none;
}
.cmsmasters_posts_slider .preloader {
  padding-bottom: 63.1%;
}
.cmsmasters_posts_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_posts_slider .cmsmasters_slider_project .preloader {
  padding-bottom: 70.69%;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider {
  padding: 0 0 40px;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider_item {
  min-width: 200px;
  max-width: 100%;
}
.cmsmasters_posts_slider .cmsmasters_slider_post,
.cmsmasters_posts_slider .cmsmasters_slider_project {
  width: 100%;
  padding: 0 15px 30px;
}
/***************** Posts Slider Blog ******************/
.cmsmasters_slider_post {
  position: relative;
}
.cmsmasters_slider_post .cmsmasters_slider_post_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date_img_wrap {
  margin: 0 0 25px;
  position: relative;
  -webkit-border-radius: 15px;
  border-radius: 15px;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header {
  padding: 0 0 12px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header .cmsmasters_slider_post_title {
  margin: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer {
  margin: 0 0 18px;
  position: relative;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_category {
  float: left;
}
.cmsmasters_slider_post .cmsmasters_slider_post_category a {
  display: inline-block;
  line-height: 32px;
  padding: 0 17px;
  margin-right: 5px;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 20px;
  border-radius: 20px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_category + .cmsmasters_slider_post_meta_info {
  float: right;
  margin-top: 3px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_content {
  padding: 0 0 23px;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_read_more {
  display: inline-block;
}
.cmsmasters_slider_post .cmsmasters_slider_post_cont_info {
  padding: 0 0 20px;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_cont_info > span {
  display: inline;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date {
  outline: none;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date + .cmsmasters_slider_post_author:before {
  content: '-';
  padding: 0 5px;
}
/***************** Posts Slider Portfolio ******************/
.cmsmasters_slider_project {
  position: relative;
}
.cmsmasters_slider_project .cmsmasters_slider_project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_outer:hover .cmsmasters_slider_project_cont_wrap_inner {
  top: 0;
  opacity: 1;
}
.cmsmasters_slider_project .cmsmasters_slider_project_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header {
  padding: 27px 0 10px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header .cmsmasters_slider_project_title {
  margin: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_wrap {
  border: 3px solid transparent;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_wrap_inner {
  width: 100%;
  padding: 20px;
  z-index: 1;
  position: absolute;
  left: 0;
  top: -100%;
  -webkit-border-radius: 15px;
  border-radius: 15px;
  opacity: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_wrap_inner a:hover {
  opacity: 0.5;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_info {
  padding: 0 0 13px;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content {
  padding: 0 0 12px;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_footer {
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Profiles + Profile Styles
/*-------------------------------------------------------------------------*/
/***************** Profiles ******************/
.cmsmasters_profile {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile.horizontal {
  margin: -40px -1.3% 0;
}
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal {
  margin-top: 40px;
}
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_half:nth-child(2n+1),
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_third:nth-child(3n+1),
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_fourth:nth-child(4n+1) {
  clear: left;
}
/***************** Profiles Horizontal ******************/
.cmsmasters_profile_horizontal {
  position: relative;
}
.cmsmasters_profile_horizontal .profile_outer {
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_img_social_wrap {
  margin: 0 40px 26px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_img_social_wrap.no_image {
  display: block;
}
.cmsmasters_profile_horizontal .cmsmasters_img_social_wrap .profile_social_icons {
  width: 100%;
  height: 100%;
  padding: 0 10px;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_img_social_wrap .profile_social_icons:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_profile_horizontal .cmsmasters_img_social_wrap .profile_social_icons_list a:hover {
  opacity: 0.6;
}
.cmsmasters_profile_horizontal .cmsmasters_img_social_inner {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_img_social_inner:hover .profile_social_icons {
  opacity: 1;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap {
  text-align: center;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap.no_image > span {
  display: block;
  padding: 0 0 100%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap.no_image > span:before {
  font-size: 20px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_profile_horizontal .profile_social_icons_list {
  list-style: none;
  display: inline-block;
  margin: 0;
  padding: 0;
  vertical-align: middle;
}
.cmsmasters_profile_horizontal .profile_social_icons_list:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_profile_horizontal .profile_social_icons_list li {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 0;
  position: relative;
}
.cmsmasters_profile_horizontal .profile_social_icons_list li:last-child {
  margin: 0;
}
.cmsmasters_profile_horizontal .profile_social_icons_list li:before {
  display: none;
}
.cmsmasters_profile_horizontal .profile_social_icons_list a {
  font-size: 14px;
  line-height: 14px;
  display: block;
  width: 26px;
  height: 26px;
  position: relative;
}
.cmsmasters_profile_horizontal .profile_social_icons_list a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_profile_horizontal .profile_inner {
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .profile_inner .profile_social_icons {
  margin: 10px 0 0;
  display: none;
  text-align: center;
}
.cmsmasters_profile_horizontal .profile_inner .profile_social_icons li {
  margin: 0 5px;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header {
  padding: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 5px 0 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content {
  padding: 27px 0 0;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
/***************** Profiles Vertical ******************/
.cmsmasters_profile_vertical {
  margin: 0 0 70px;
  position: relative;
}
.cmsmasters_profile_vertical:last-child {
  margin: 0;
}
.cmsmasters_profile_vertical .profile_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap {
  display: inline-block;
  width: 30.16%;
  padding: 0 50px 0 0;
  vertical-align: middle;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap img {
  outline: none;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap.no_image > span {
  display: block;
  position: relative;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap.no_image > span {
  display: block;
  padding: 0 0 100%;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap.no_image > span > span:before {
  font-size: 20px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_profile_vertical .profile_inner {
  display: block;
  width: 100%;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap + .profile_inner {
  display: inline-block;
  width: 69.84%;
  vertical-align: top;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header {
  margin: 0 0 27px;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 7px 0 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_vertical .profile_social_icons {
  margin: 30px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_vertical .profile_social_icons_list {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_vertical .profile_social_icons_list li {
  display: inline-block;
  margin: 0;
  padding: 0;
  position: relative;
  vertical-align: middle;
}
.cmsmasters_profile_vertical .profile_social_icons_list li:last-child {
  margin: 0;
}
.cmsmasters_profile_vertical .profile_social_icons_list li:before {
  display: none;
}
.cmsmasters_profile_vertical .profile_social_icons_list a {
  font-size: 16px;
  line-height: 16px;
  display: block;
  width: 26px;
  height: 26px;
  position: relative;
}
.cmsmasters_profile_vertical .profile_social_icons_list a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/***************** Profiles Open Profile ******************/
.profiles.opened-article .share_posts {
  margin: -55px 0 0;
}
.cmsmasters_open_profile {
  padding: 0 0 40px;
  z-index: 1;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .cmsmasters_profile_likes,
.cmsmasters_open_profile .cmsmasters_profile_comments {
  outline: none;
}
.cmsmasters_open_profile .cmsmasters_profile_header {
  padding: 0 0 10px;
  text-align: center;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_open_profile .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_open_profile .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 0;
}
.cmsmasters_open_profile .profile_content {
  width: 100%;
  padding: 40px 0 10px;
  overflow: hidden;
}
.cmsmasters_open_profile .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_sidebar > div {
  outline: none;
}
.cmsmasters_open_profile .profile_details,
.cmsmasters_open_profile .profile_features {
  padding: 25px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_title,
.cmsmasters_open_profile .profile_features_title {
  margin: 0 0 12px;
  padding: 0;
}
.cmsmasters_open_profile .profile_details_item,
.cmsmasters_open_profile .profile_features_item {
  padding: 9px 0;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_item:last-child,
.cmsmasters_open_profile .profile_features_item:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_open_profile .profile_details_item_title,
.cmsmasters_open_profile .profile_features_item_title {
  max-width: 50%;
  float: left;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_one_item .profile_details_item_title,
.cmsmasters_open_profile .profile_features_one_item .profile_features_item_title {
  max-width: 100%;
  float: none;
}
.cmsmasters_open_profile .profile_details_item_desc,
.cmsmasters_open_profile .profile_features_item_desc {
  padding: 0 0 0 15px;
  word-wrap: break-word;
  text-align: right;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_one_item .profile_details_item_desc,
.cmsmasters_open_profile .profile_features_one_item .profile_features_item_desc {
  padding-left: 0;
  padding-right: 0;
}
.cmsmasters_open_profile .profile_social_icons {
  padding: 25px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_social_icons_title {
  margin: 0 0 12px;
  padding: 0;
}
.cmsmasters_open_profile .profile_social_icons_list {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
}
.cmsmasters_open_profile .profile_social_icons_list li {
  display: inline-block;
  vertical-align: middle;
  margin: 0 12px 0 0;
  padding: 0;
  position: relative;
}
.cmsmasters_open_profile .profile_social_icons_list li:last-child {
  margin: 0;
}
.cmsmasters_open_profile .profile_social_icons_list li:before {
  display: none;
}
.cmsmasters_open_profile .profile_social_icons_list a {
  font-size: 16px;
  line-height: 16px;
  display: block;
  width: 1em;
  height: 1em;
  position: relative;
}
.cmsmasters_open_profile .profile_social_icons_list a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/*-------------------------------------------------------------------------*/
/* Shortcodes Styles
/*-------------------------------------------------------------------------*/
/***************** Divider ******************/
hr {
  border: 0;
  border-bottom-style: solid;
  margin: 40px 0;
}
hr,
.cmsmasters_widget_divider,
.cmsmasters_divider {
  background-color: transparent;
  border-bottom-width: 1px;
  width: 100%;
  height: 1px;
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_widget_divider {
  margin: 0 1.3% 40px;
  width: 97.4%;
}
.cmsmasters_widget_divider.solid {
  border-bottom-style: solid;
}
.cmsmasters_widget_divider.dashed {
  border-bottom-style: dashed;
}
.cmsmasters_widget_divider.dotted {
  border-bottom-style: dotted;
}
.cmsmasters_widget_divider.transparent {
  border-bottom-width: 0;
}
.cmsmasters_divider.cmsmasters_divider_width_short {
  width: 20%;
}
.cmsmasters_divider.cmsmasters_divider_width_short.cmsmasters_divider_pos_center {
  left: 40%;
}
.cmsmasters_divider.cmsmasters_divider_width_short.cmsmasters_divider_pos_right {
  left: 80%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium {
  width: 40%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium.cmsmasters_divider_pos_center {
  left: 30%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium.cmsmasters_divider_pos_right {
  left: 60%;
}
.cmsmasters_divider.cmsmasters_divider_width_long {
  width: 100%;
}
/***************** Special Heading ******************/
.cmsmasters_heading_wrap {
  position: relative;
}
.cmsmasters_heading_wrap .cmsmasters_heading_divider {
  display: inline-block;
  height: 2px;
  position: absolute;
  top: 50%;
}
.cmsmasters_heading_wrap .cmsmasters_heading_divider_left_wrap,
.cmsmasters_heading_wrap .cmsmasters_heading_divider_right_wrap {
  display: inline-block;
  width: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading_divider {
  width: 10%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading_divider_left {
  margin-left: -10%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading_divider {
  width: 20%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading_divider_left {
  margin-left: -20%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading_divider {
  width: 100%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading_divider_left {
  margin-left: -100%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading,
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading,
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading {
  max-width: 80%;
}
.cmsmasters_heading_wrap .cmsmasters_heading {
  display: inline-block;
  margin: 0;
}
.cmsmasters_heading_wrap .cmsmasters_heading:before,
.cmsmasters_heading_wrap .cmsmasters_heading a:before {
  margin-left: 0;
  margin-right: 0.5em;
}
/***************** Featured Block ******************/
.cmsmasters_featured_block {
  position: relative;
  overflow: hidden;
}
.cmsmasters_featured_block .featured_block_link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
.cmsmasters_featured_block .featured_block_inner {
  width: 100%;
  position: relative;
  overflow: hidden;
}
/***************** Table ******************/
.cmsmasters_table_wrap {
  overflow-x: auto;
  margin-bottom: 20px;
}
.cmsmasters_table {
  width: 100%;
  margin-bottom: 0;
}
.cmsmasters_table caption {
  outline: none;
}
.cmsmasters_table tr td.cmsmasters_table_cell_aligncenter,
.cmsmasters_table tr th.cmsmasters_table_cell_aligncenter {
  text-align: center;
}
.cmsmasters_table tr td.cmsmasters_table_cell_alignleft,
.cmsmasters_table tr th.cmsmasters_table_cell_alignleft {
  text-align: left;
}
.cmsmasters_table tr td.cmsmasters_table_cell_alignright,
.cmsmasters_table tr th.cmsmasters_table_cell_alignright {
  text-align: right;
}
/***************** Notice ******************/
.cmsmasters_notice {
  display: block;
  padding: 0 25px;
  margin: 20px 15px 20px 0;
  position: relative;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_notice:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_notice[class*=" cmsmasters-icon-"],
.cmsmasters_notice[class*=" cmsmasters_theme_icon_"] {
  padding-left: 90px;
  padding-right: 25px;
}
.cmsmasters_notice:before {
  font-size: 32px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 27px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_notice .notice_content {
  position: relative;
  padding: 20px 0 0;
}
.cmsmasters_notice .notice_close {
  font-size: 12px;
  line-height: 27px;
  display: block;
  width: 28px;
  height: 28px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -15px;
  top: -14px;
  bottom: auto;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_notice .notice_close:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_notice.cmsmasters_notice_warning {
  background-color: #fffdf9;
  border-color: #f1ceb7;
}
.cmsmasters_notice.cmsmasters_notice_warning:before {
  color: #fdb543;
}
.cmsmasters_notice.cmsmasters_notice_success {
  background-color: #fdfff9;
  border-color: #d0e4a8;
}
.cmsmasters_notice.cmsmasters_notice_success:before {
  color: #8bc34a;
}
.cmsmasters_notice.cmsmasters_notice_download {
  background-color: #f9fffa;
  border-color: #c9e0cd;
}
.cmsmasters_notice.cmsmasters_notice_download:before {
  color: #63b698;
}
.cmsmasters_notice.cmsmasters_notice_info {
  background-color: #fafcff;
  border-color: #d5dde9;
}
.cmsmasters_notice.cmsmasters_notice_info:before {
  color: #6e95d1;
}
.cmsmasters_notice.cmsmasters_notice_error {
  background-color: #fffdfd;
  border-color: #f7d1d1;
}
.cmsmasters_notice.cmsmasters_notice_error:before {
  color: #ea5151;
}
.cmsmasters_notice.cmsmasters_notice_error .notice_content a {
  color: rgba(255, 255, 255, 0.8);
}
.cmsmasters_notice.cmsmasters_notice_error .notice_content a:hover {
  color: #ffffff;
}
/***************** Icon ******************/
.cmsmasters_icon_wrap a {
  display: inline-block;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon_title {
  display: inline-block;
  margin-left: 8px;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon {
  border-style: solid;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon:before {
  margin: 0;
}
/***************** Icon List ******************/
.cmsmasters_icon_list_items {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.cmsmasters_icon_list_items li:before {
  position: absolute;
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item:before {
  background-color: transparent;
  width: 1em;
  height: 1em;
  left: 50px;
  right: auto;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon {
  width: 100px;
  height: 100px;
  margin: 1px;
  position: relative;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:before {
  font-size: 32px;
  line-height: 80px;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:after {
  content: '';
  border-width: 10px;
  border-style: solid;
  width: 102px;
  height: 102px;
  position: absolute;
  top: -1px;
  left: -1px;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_item_title {
  word-wrap: break-word;
  margin-bottom: 10px;
}
.cmsmasters_icon_list_items.cmsmasters_color_type_icon .cmsmasters_icon_list_item {
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item:before {
  left: auto;
  right: 50px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list {
  padding-left: 30px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list .cmsmasters_icon_list_item {
  padding-top: 15px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list .cmsmasters_icon_list_item:first-child {
  padding-top: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list .cmsmasters_icon_list_item:before {
  left: -32px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list .cmsmasters_icon_list_item > * {
  margin: 0;
  padding: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block {
  padding: 0;
  margin: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item {
  display: block;
  width: 100%;
  padding: 0 0 50px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:before {
  content: '';
  display: block;
  width: 1px;
  height: 0;
  padding: 0;
  position: absolute;
  top: 40px;
  z-index: 1;
  opacity: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:last-child:before {
  display: none;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.cmsmasters_icon_type_image .cmsmasters_icon_list_icon {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon {
  display: block;
  text-align: center;
  z-index: 2;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0.3;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.shortcode_animated:before {
  height: 100%;
  opacity: 1;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.shortcode_animated .cmsmasters_icon_list_icon {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item_content {
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_item_content {
  text-align: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_item_content .cmsmasters_icon_list_item_text {
  text-align: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_icon_wrap {
  padding-right: 30px;
  float: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item_content {
  text-align: right;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item_content .cmsmasters_icon_list_item_text {
  text-align: right;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_icon_wrap {
  padding-left: 30px;
  float: right;
}
/***************** Icon Box ******************/
.cmsmasters_icon_box {
  border-style: solid;
  border-color: transparent;
  position: relative;
}
.cmsmasters_icon_box:before,
.cmsmasters_icon_box .icon_box_heading:before {
  border-style: solid;
  text-align: center;
}
.cmsmasters_icon_box.box_icon_type_image:before,
.cmsmasters_icon_box.box_icon_type_number:before {
  content: '';
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_icon_box.box_icon_type_image.cmsmasters_icon_heading_left:before,
.cmsmasters_icon_box.box_icon_type_number.cmsmasters_icon_heading_left:before {
  content: none;
}
.cmsmasters_icon_box.box_icon_type_image.cmsmasters_icon_heading_left .icon_box_heading:before,
.cmsmasters_icon_box.box_icon_type_number.cmsmasters_icon_heading_left .icon_box_heading:before {
  content: '\00a0';
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  display: inline-block;
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_top:before {
  font-size: 0;
  position: absolute;
  left: 50%;
  top: 30px;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_top .icon_box_inner {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_top .icon_box_inner .icon_box_text {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top {
  border-width: 1px;
  padding: 20px 20px 30px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top:before {
  font-size: 0;
  position: absolute;
  left: 50%;
  top: 35px;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top[class*=" cmsmasters-icon-"],
.cmsmasters_icon_box.cmsmasters_icon_box_top[class*=" cmsmasters_theme_icon_"] {
  padding-top: 120px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top .icon_box_inner {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top .icon_box_inner .icon_box_text {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left {
  border-width: 1px;
  padding: 20px 20px 30px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left:before {
  font-size: 24px;
  line-height: 45px;
  width: 45px;
  height: 45px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  text-align: center;
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top {
  padding-left: 60px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top:before {
  font-size: 24px;
  line-height: 45px;
  width: 45px;
  height: 45px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  text-align: center;
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left h1,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h2,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h3,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h4,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h5,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h6 {
  display: flex;
  align-items: center;
  position: relative;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left h1:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h2:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h3:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h4:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h5:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h6:before {
  margin-left: 0;
  margin-right: 15px;
  vertical-align: inherit;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h1,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h2,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h3,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h4,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h5,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h6 {
  display: flex;
  align-items: center;
  position: relative;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h1:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h2:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h3:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h4:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h5:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h6:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_icon_box .icon_box_text {
  margin-bottom: 10px;
}
/***************** Toggles ******************/
.cmsmasters_toggles {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggles_filter {
  padding: 0 0 15px;
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a {
  cursor: pointer;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a.current_filter {
  cursor: default;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap {
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_toggles .cmsmasters_toggle_title {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_title a {
  display: block;
  position: relative;
  z-index: 2;
}
.cmsmasters_toggles .cmsmasters_toggle_plus {
  display: block;
  z-index: 1;
  width: 20px;
  height: 20px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
  text-align: center;
}
.cmsmasters_toggles .cmsmasters_toggle_plus:before {
  content: '\e950';
  font-family: 'fontello';
  font-size: 20px;
  line-height: 12px;
  width: 1em;
  height: 1em;
  margin: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_plus span {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle_inner {
  padding: 0 0 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_toggles .cmsmasters_toggle_inner > *:last-child {
  padding-bottom: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle .cmsmasters_toggle_plus {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle > .cmsmasters_toggle {
  display: block;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_title a {
  padding: 20px 60px 20px 0;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_title a {
  padding: 20px 0;
  text-align: center;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_plus {
  display: none;
}
/***************** Tabs ******************/
.cmsmasters_tabs {
  position: relative;
}
.cmsmasters_tabs:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
.cmsmasters_tabs .cmsmasters_tabs_list:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item {
  display: block;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item:before {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a {
  display: block;
  position: relative;
  cursor: pointer;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a:before {
  font-size: 20px;
  line-height: 20px;
}
.cmsmasters_tabs .cmsmasters_tabs_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tab:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab.active_tab {
  display: block;
}
.cmsmasters_tabs .cmsmasters_tab_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab_inner > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list {
  text-align: center;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item {
  display: inline-block;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item:last-child {
  margin: 0;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a {
  padding: 15px 30px 25px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 35px 30px 25px 30px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 1px;
  bottom: auto;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_wrap {
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tab_inner {
  padding: 33px 0 0;
}
.cmsmasters_tabs.tabs_mode_tour {
  display: table;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list {
  display: table-cell;
  width: 18%;
  vertical-align: top;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item:first-child a {
  margin-top: 0;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item:first-child a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item:first-child a[class^="cmsmasters_theme_icon_"] {
  margin-top: 0;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item a {
  margin: 8px 20px 8px 0;
  padding: 2px 0;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  margin: 8px 20px 8px 0;
  padding-left: 30px;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_wrap {
  display: table-cell;
  width: 82%;
  vertical-align: top;
  border-left-width: 1px;
  border-left-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tab_inner {
  padding: 0 0 40px 30px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right {
  direction: rtl;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list {
  text-align: right;
  direction: ltr;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item:first-child a {
  margin-top: 0;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item:first-child a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item:first-child a[class^="cmsmasters_theme_icon_"] {
  margin-top: 0;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  margin: 10px 0 10px 20px;
  padding-right: 30px;
  padding-left: 0;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a:before {
  left: auto;
  right: 1px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_wrap {
  direction: ltr;
  border-left-width: 0;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tab_inner {
  padding: 0 30px 40px 0;
  text-align: right;
}
/***************** Stats ******************/
.cmsmasters_stats {
  position: relative;
  text-align: center;
}
.cmsmasters_stats:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_stats .cmsmasters_stat_wrap .cmsmasters_stat {
  position: relative;
}
.cmsmasters_stats .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  display: block;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap {
  padding-bottom: 20px;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap:last-child {
  padding-bottom: 0;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap:before {
  content: '';
  display: block;
  width: 100%;
  height: 3px;
  position: absolute;
  top: 27px;
  left: 0;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 0;
  min-height: 30px;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 100%;
  height: 3px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters-icon-"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters-icon-"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters_theme_icon_"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters_theme_icon_"]:before {
  font-size: 16px;
  margin: 0;
  position: absolute;
  left: 0;
  top: auto;
  bottom: 12px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters_theme_icon_"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters_theme_icon_"] .cmsmasters_stat_title {
  left: 25px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  position: absolute;
  left: 0;
  top: auto;
  bottom: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  position: absolute;
  left: auto;
  right: 0;
  top: auto;
  bottom: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  display: none;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: inline-block;
  padding: 20px 0 0;
}
.cmsmasters_stats.stats_mode_circles {
  margin-top: -40px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap {
  display: inline-block;
  float: none;
  margin: 0;
  padding: 40px 10px 0;
  vertical-align: top;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_fifth {
  width: 20%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_fourth {
  width: 25%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_third {
  width: 33.3%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_half {
  width: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_first {
  width: 100%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat {
  display: inline-block;
  width: 170px;
  height: 170px;
  margin: 0 0 15px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 170px;
  height: 170px;
  padding-top: 62px;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  text-align: center;
  border-width: 3px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before {
  font-size: 28px;
  line-height: 28px;
  margin: 0;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  display: block;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  width: 170px;
  height: 170px;
  position: relative;
  z-index: 2;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat.stat_has_titleicon .cmsmasters_stat_inner {
  padding-top: 38px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat.stat_has_titleicon .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  padding: 6px 0 0;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_title {
  display: block;
  padding: 0;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: block;
  padding: 16px 0 0;
  text-align: center;
}
/***************** Counters ******************/
.cmsmasters_counters {
  position: relative;
  text-align: center;
}
.cmsmasters_counters:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_counters canvas {
  display: none;
}
.cmsmasters_counters .cmsmasters_counter_wrap {
  display: inline-block;
  padding: 0 2px;
  margin: 0;
  float: none;
  vertical-align: top;
  text-align: center;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_fifth {
  width: 20%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_fourth {
  width: 25%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_third {
  width: 33.3%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_half {
  width: 50%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_first {
  width: 100%;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter {
  min-height: 100px;
  padding: 0 20px;
  margin: 0 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  display: block;
  position: relative;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  border-style: solid;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  display: inline-block;
  width: 100%;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  display: inline-block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter.counter_has_icon .cmsmasters_counter_inner:before {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter.counter_has_image .cmsmasters_counter_inner:before {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  display: block;
  margin-top: 7px;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter {
  text-align: center;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  text-align: center;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  left: 50%;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  padding: 10px 0 0;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  margin-top: 9px;
  text-align: center;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  margin: auto !important;
  right: auto;
  bottom: 0;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  vertical-align: middle;
}
/***************** CMSMASTERS Button ******************/
.cmsmasters_button {
  white-space: nowrap;
  display: inline-block;
  padding: 0 30px;
  cursor: pointer;
  position: relative;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
.cmsmasters_button:before {
  line-height: inherit !important;
  position: relative;
  z-index: 10;
}
.cmsmasters_button span {
  position: relative;
  z-index: 10;
}
.cmsmasters_button.cmsmasters_but_clear_styles {
  background: none;
  border: 0;
  margin: 0;
  padding: 0 20px;
  overflow: hidden;
  -webkit-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_button.cmsmasters_but_clear_styles:hover {
  margin: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_button.cmsmasters_but_clear_styles:after {
  content: '';
  position: absolute;
}
.cmsmasters_button.cmsmasters_but_bg_hover {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bd_underline {
  border-left-width: 0;
  border-left-style: solid;
  border-right-width: 0;
  border-right-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
#page .cmsmasters_button.cmsmasters_but_bd_underline:before {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:after {
  width: 100%;
  height: 100%;
  left: -100%;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:hover:after {
  left: 0%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:after {
  width: 100%;
  height: 100%;
  right: -100%;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:hover:after {
  right: 0%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top:after {
  width: 100%;
  height: 0;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top:hover:after {
  height: 100%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom:after {
  width: 100%;
  height: 0;
  left: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom:hover:after {
  height: 100%;
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert:after {
  width: 0;
  height: 105%;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert:hover:after {
  width: 90%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor:after {
  width: 105%;
  height: 0;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor:hover:after {
  height: 75%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag:after {
  width: 500%;
  height: 0;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  -moz-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag:hover:after {
  height: 170%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_shadow {
  padding-bottom: 3px;
  -webkit-box-shadow: inset 0 -3px 0 0 rgba(0, 0, 0, 0.2);
  box-shadow: inset 0 -3px 0 0 rgba(0, 0, 0, 0.2);
}
#page .cmsmasters_button.cmsmasters_but_shadow {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.cmsmasters_button.cmsmasters_but_shadow:hover {
  padding-bottom: 0;
  margin-top: 3px;
  -webkit-box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
  box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:before,
.cmsmasters_button.cmsmasters_but_icon_light_bg:before,
.cmsmasters_button.cmsmasters_but_icon_divider:before,
.cmsmasters_button.cmsmasters_but_icon_inverse:before {
  margin: auto !important;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:after,
.cmsmasters_button.cmsmasters_but_icon_light_bg:after,
.cmsmasters_button.cmsmasters_but_icon_divider:after,
.cmsmasters_button.cmsmasters_but_icon_inverse:after {
  content: '';
  background-color: rgba(0, 0, 0, 0.2);
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:hover:before,
.cmsmasters_button.cmsmasters_but_icon_light_bg:hover:before,
.cmsmasters_button.cmsmasters_but_icon_divider:hover:before {
  -webkit-transform: scale(1.3);
  -moz-transform: scale(1.3);
  -ms-transform: scale(1.3);
  -o-transform: scale(1.3);
  transform: scale(1.3);
}
.cmsmasters_button.cmsmasters_but_icon_light_bg:after {
  background-color: rgba(255, 255, 255, 0.2);
}
.cmsmasters_button.cmsmasters_but_icon_divider:after {
  background-color: transparent;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_inverse {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_inverse:after {
  background-color: transparent;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left,
.cmsmasters_button.cmsmasters_but_icon_slide_right {
  padding-left: 40px;
  padding-right: 40px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left:before {
  width: 40px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: -40px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left:hover:before {
  left: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_right:before {
  width: 40px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -40px;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_right:hover:before {
  right: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:before {
  width: 100%;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom span {
  display: block;
  position: relative;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:before {
  left: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:hover:before {
  left: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:hover span {
  -webkit-transform: translateX(200%);
  -moz-transform: translateX(200%);
  -ms-transform: translateX(200%);
  -o-transform: translateX(200%);
  transform: translateX(200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:before {
  right: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:hover:before {
  right: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:hover span {
  -webkit-transform: translateX(-200%);
  -moz-transform: translateX(-200%);
  -ms-transform: translateX(-200%);
  -o-transform: translateX(-200%);
  transform: translateX(-200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:before {
  top: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:hover:before {
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:hover span {
  -webkit-transform: translateY(200%);
  -moz-transform: translateY(200%);
  -ms-transform: translateY(200%);
  -o-transform: translateY(200%);
  transform: translateY(200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:before {
  top: 200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:hover:before {
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:hover span {
  -webkit-transform: translateY(-200%);
  -moz-transform: translateY(-200%);
  -ms-transform: translateY(-200%);
  -o-transform: translateY(-200%);
  transform: translateY(-200%);
}
/***************** Contact Form 7 ******************/
.wpcf7-form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.wpcf7-form select,
.wpcf7-form textarea,
.wpcf7-form option {
  min-width: 100px;
  width: 100%;
}
/***************** Mailpoet ******************/
.cmsmasters_mailpoet_form .mailpoet_form {
  position: relative;
}
.cmsmasters_mailpoet_form .mailpoet_form .mailpoet_submit {
  width: 100%;
  max-width: 300px;
  line-height: 38px;
  padding: 0 40px;
}
.cmsmasters_mailpoet_form .mailpoet_form .mailpoet_paragraph {
  padding: 0 0 13px;
}
.cmsmasters_mailpoet_form .mailpoet_form .mailpoet_text {
  height: 42px !important;
  width: 100% !important;
  max-width: 300px !important;
}
.cmsmasters_mailpoet_form .parsley-errors-list,
.cmsmasters_mailpoet_form .mailpoet_validate_success,
.cmsmasters_mailpoet_form .mailpoet_validate_error {
  background: #ffffff;
  position: absolute;
  right: 0;
  bottom: 100%;
  width: 200px;
  padding: 10px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_mailpoet_form .parsley-errors-list {
  margin-bottom: 5px;
}
.cmsmasters_mailpoet_form .parsley-errors-list li:before {
  content: none;
}
/***************** Hover slider ******************/
.cmsmasters_hover_slider {
  position: relative;
  overflow: hidden;
}
.cmsmasters_hover_slider li:before {
  display: none;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items {
  list-style: none;
  width: 100%;
  height: 1px;
  padding: 0 0 66.86%;
  margin: 0;
  position: relative;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items li {
  list-style: none;
  padding: 0;
  width: 100%;
  height: 100%;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items .cmsmasters_hover_slider_full_img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  position: absolute;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs {
  font-size: 0;
  line-height: 0;
  margin: 0 -5px;
  padding: 0;
  word-spacing: -1px;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li {
  word-spacing: normal;
  display: inline-block;
  display: -moz-inline-stack;
  padding: 10px 5px 0;
  vertical-align: top;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li.shortcode_animated a {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li.hovered_item a:before {
  opacity: 0.4;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li img {
  image-rendering: auto;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a {
  display: block;
  position: relative;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  overflow: hidden;
  opacity: 0.3;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a:hover:before {
  opacity: 0.4;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs img {
  display: block;
  width: 100px;
  height: auto;
}
.js_body .cmsmasters_hover_slider_items > li > figure.cmsmasters_hover_slider_full_img img {
  position: absolute;
}
/***************** Content slider ******************/
.cmsmasters_content_slider {
  position: relative;
  overflow: hidden;
}
.cmsmasters_content_slider:hover .owl-buttons > div {
  opacity: 1;
}
.cmsmasters_content_slider img {
  width: 100%;
}
.cmsmasters_content_slider .owl-buttons {
  position: static;
  width: 0;
  height: 0;
}
.cmsmasters_content_slider .owl-buttons > div {
  display: block;
  margin: 0;
  opacity: 0;
  width: 50px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}
.cmsmasters_content_slider .owl-buttons > div:before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_content_slider .owl-buttons > div.owl-prev {
  left: 0;
  right: auto;
}
.cmsmasters_content_slider .owl-buttons > div.owl-next {
  left: auto;
  right: 0;
}
.cmsmasters_content_slider .owl-buttons > div > span {
  background: transparent;
  display: block;
  width: 100%;
  height: 100%;
  border-width: 0;
  border-style: solid;
  -webkit-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_content_slider .owl-buttons > div > span > span {
  width: 10px;
  height: 26px;
}
.cmsmasters_content_slider .owl-buttons > div > span > span:before {
  font-size: 26px;
  line-height: 26px;
}
.cmsmasters_content_slider .owl-pagination {
  bottom: 13px;
}
/***************** Gallery ******************/
.cmsmasters_gallery {
  margin: 0 0 0 -10px;
  padding: 0;
}
.cmsmasters_gallery .cmsmasters_gallery_item {
  min-width: 180px;
  padding: 0 0 10px 10px;
  float: left;
  opacity: 0;
}
.cmsmasters_gallery .cmsmasters_gallery_item:before {
  display: none;
}
.cmsmasters_gallery .cmsmasters_gallery_item img {
  display: block;
  width: 100%;
}
.cmsmasters_gallery .cmsmasters_gallery_item.shortcode_animated {
  opacity: 1;
}
.cmsmasters_gallery .cmsmasters_gallery_item.cmsmasters_caption figure {
  display: block;
  padding: 6px 6px 15px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_gallery .cmsmasters_gallery_item.cmsmasters_caption figcaption {
  padding: 15px 0 0;
  text-align: center;
}
.ilightbox-thumbnails.dark .ilightbox-thumbnails-grid .ilightbox-thumbnail img {
  image-rendering: auto;
}
/***************** Quotes ******************/
.cmsmasters_quotes_slider {
  padding: 63px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider .owl-buttons {
  visibility: hidden;
  display: none;
}
.cmsmasters_quotes_slider .owl-pagination {
  top: 0;
  bottom: auto;
}
.cmsmasters_quotes_slider .cmsmasters_quote {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content {
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image {
  margin: 22px 0 0;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image img {
  width: 75px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_slider .cmsmasters_quote_header {
  margin: 15px 0 0;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_title {
  margin: 0;
  text-align: center;
}
.cmsmasters_quotes_slider .cmsmasters_quote_subtitle_wrap {
  margin: 2px 0 0;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_subtitle {
  display: inline-block;
  margin: 0;
}
.cmsmasters_quotes_slider .cmsmasters_quote_site {
  display: inline-block;
}
.cmsmasters_quotes_slider .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '\002F';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quotes_grid {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert {
  display: none;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list {
  margin: 0 -1.3%;
  padding: 30px 0 0;
  position: relative;
  z-index: 2;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:first-of-type {
  padding-top: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:last-of-type {
  padding-bottom: 0;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_list {
  padding: 26px 0;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_list:first-of-type {
  padding-top: 0;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_list:last-of-type {
  padding-bottom: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 97.4%;
  margin: 0 1.3%;
  padding: 35px 40px 40px;
  position: relative;
  float: left;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 22.4%;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 30.733%;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 47.4%;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quote {
  float: none;
}
.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  position: relative;
  overflow: hidden;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  padding: 0 100px 0 0;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  padding: 0 40px 0 0;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  padding: 0 10px;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content {
  position: relative;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_content {
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap {
  padding: 22px 0 0;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image {
  display: inline-block;
  padding: 0 20px 0 0;
  vertical-align: middle;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_image {
  padding: 0 0 15px;
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image img {
  width: 55px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  display: inline-block;
  vertical-align: middle;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_header {
  padding: 0;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quote_title {
  margin: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap {
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap {
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle {
  display: inline-block;
  margin: 0;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before,
.quote_two.cmsmasters_quotes_grid .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '\002F';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quotes_grid .cmsmasters_quote_site {
  display: inline-block;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_site {
  display: block;
  text-align: center;
}
/***************** Pricing tables ******************/
.cmsmasters_pricing_table {
  margin: 0 -1.3% -2.6%;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item {
  display: block;
  margin: 0 1.3% 2.6%;
  position: relative;
  float: left;
  overflow: hidden;
}
.pricing_four.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 22.4%;
}
.pricing_four.cmsmasters_pricing_table .cmsmasters_pricing_item:nth-child(4n+1) {
  clear: both;
}
.pricing_three.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 30.73%;
}
.pricing_three.cmsmasters_pricing_table .cmsmasters_pricing_item:nth-child(3n+1) {
  clear: both;
}
.pricing_two.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 47.4%;
}
.pricing_two.cmsmasters_pricing_table .cmsmasters_pricing_item:nth-child(2n+1) {
  clear: both;
}
.pricing_one.cmsmasters_pricing_table .cmsmasters_pricing_item {
  float: none;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item.pricing_best .cmsmasters_pricing_item_inner {
  border-style: solid;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item_inner {
  border-width: 1px;
  border-style: dashed;
  padding: 60px 30px 45px;
  position: relative;
  text-align: center;
  overflow: hidden;
  -webkit-border-radius: 15px;
  border-radius: 15px;
}
.cmsmasters_pricing_table .pricing_title {
  margin: 0;
  text-align: center;
}
.cmsmasters_pricing_table .feature_list {
  list-style: none;
  margin: 0;
  padding: 15px 0 30px;
  text-align: center;
}
.cmsmasters_pricing_table .feature_list li {
  margin: 0;
  padding: 5px 0;
}
.cmsmasters_pricing_table .feature_list li:before {
  content: none;
}
.cmsmasters_pricing_table .feature_list li .feature_icon {
  display: block;
  position: relative;
}
.cmsmasters_pricing_table .feature_list li .feature_icon:before {
  font-size: 14px;
  line-height: 20px;
  display: inline-block;
  margin: 0 5px 0 0;
  vertical-align: middle;
}
.cmsmasters_pricing_table .feature_list li .feature_icon:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_pricing_table .cmsmasters_price_wrap {
  word-spacing: -10px;
  padding: 0 0 60px;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_pricing_table .cmsmasters_price,
.cmsmasters_pricing_table .cmsmasters_currency,
.cmsmasters_pricing_table .cmsmasters_coins {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_pricing_table .cmsmasters_period {
  word-spacing: 0;
  margin-top: 3px;
  display: block;
  text-align: center;
}
/***************** Google Maps ******************/
.resizable_block .google_map {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  height: 100%;
}
.google_map img {
  max-width: none;
}
/***************** Caption ******************/
.cmsmasters_img {
  display: inline-block;
  max-width: 100%;
}
.cmsmasters_img.cmsmasters_image_l {
  margin-right: 20px;
  float: left;
}
.cmsmasters_img.cmsmasters_image_r {
  margin-left: 20px;
  float: right;
}
.cmsmasters_img.with_caption {
  padding: 6px 6px 0 6px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_img .cmsmasters_img_caption {
  padding: 15px 0;
  text-align: center;
}
dl.wp-caption {
  border-width: 0;
  border-style: solid;
}
.wp-caption {
  max-width: 100%;
  padding: 0;
  margin-bottom: 20px;
}
.wp-caption.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.wp-caption.alignleft {
  margin-right: 25px;
}
.wp-caption.alignright {
  margin-left: 25px;
}
.wp-caption .wp-caption-text {
  padding: 15px 0;
  text-align: center;
}
/***************** WP Gallery ******************/
.gallery {
  position: relative;
  margin: 0 -1.3% 20px;
}
.gallery img {
  width: 100%;
  border: none;
}
.gallery .gallery-item {
  position: relative;
  float: left;
  margin: 0 1.3% 20px;
}
.gallery .gallery-item .wp-caption-text {
  word-wrap: break-word;
  padding-top: 10px;
  text-align: center;
}
.gallery.gallery-columns-1 .gallery-item {
  width: 97.4%;
  position: relative;
  float: none;
  display: block;
  clear: both;
}
.gallery.gallery-columns-2 .gallery-item {
  width: 47.4%;
}
.gallery.gallery-columns-2 .gallery-item:nth-child(2n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-3 .gallery-item {
  width: 30.733%;
}
.gallery.gallery-columns-3 .gallery-item:nth-child(3n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-4 .gallery-item {
  width: 22.4%;
}
.gallery.gallery-columns-4 .gallery-item:nth-child(4n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-5 .gallery-item {
  width: 17.4%;
}
.gallery.gallery-columns-5 .gallery-item:nth-child(5n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-6 .gallery-item {
  width: 14.067%;
}
.gallery.gallery-columns-6 .gallery-item:nth-child(6n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-7 .gallery-item {
  width: 11.686%;
}
.gallery.gallery-columns-7 .gallery-item:nth-child(7n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-8 .gallery-item {
  width: 9.9%;
}
.gallery.gallery-columns-8 .gallery-item:nth-child(8n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-9 .gallery-item {
  width: 8.511%;
}
.gallery.gallery-columns-9 .gallery-item:nth-child(9n+1) {
  display: block;
  clear: both;
}
.gallery:after,
.gallery-item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.gallery-caption {
  outline: none;
}
/***************** Sidebar ******************/
.cmsmasters_sidebar {
  margin: 0 -1.3%;
}
.cmsmasters_sidebar aside {
  margin: 0 1.3%;
  float: left;
}
.sidebar_layout_14141414 aside {
  width: 22.4%;
}
.sidebar_layout_141412 > aside:first-child,
.sidebar_layout_141412 > aside:first-child + aside,
.sidebar_layout_141412 > div.cl + aside,
.sidebar_layout_141412 > div.cl + aside + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside + aside {
  width: 22.4%;
}
.sidebar_layout_141412 > aside:first-child + aside + aside,
.sidebar_layout_141412 > div.cl + aside + aside + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 47.4%;
}
.sidebar_layout_141214 > aside:first-child,
.sidebar_layout_141214 > aside:first-child + aside + aside,
.sidebar_layout_141214 > div.cl + aside,
.sidebar_layout_141214 > div.cl + aside + aside + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 22.4%;
}
.sidebar_layout_141214 > aside:first-child + aside,
.sidebar_layout_141214 > div.cl + aside + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside + aside {
  width: 47.4%;
}
.sidebar_layout_121414 > aside:first-child,
.sidebar_layout_121414 > div.cl + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside {
  width: 47.4%;
}
.sidebar_layout_121414 > aside:first-child + aside,
.sidebar_layout_121414 > aside:first-child + aside + aside,
.sidebar_layout_121414 > div.cl + aside + aside,
.sidebar_layout_121414 > div.cl + aside + aside + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 22.4%;
}
.sidebar_layout_131313 aside {
  width: 30.73%;
}
.sidebar_layout_3414 > aside:first-child,
.sidebar_layout_3414 > div.cl + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside {
  width: 72.4%;
}
.sidebar_layout_3414 > aside:first-child + aside,
.sidebar_layout_3414 > div.cl + aside + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside + aside {
  width: 22.4%;
}
.sidebar_layout_1434 > aside:first-child,
.sidebar_layout_1434 > div.cl + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside {
  width: 22.4%;
}
.sidebar_layout_1434 > aside:first-child + aside,
.sidebar_layout_1434 > div.cl + aside + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside + aside {
  width: 72.4%;
}
.sidebar_layout_2313 > aside:first-child,
.sidebar_layout_2313 > div.cl + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside {
  width: 64.07%;
}
.sidebar_layout_2313 > aside:first-child + aside,
.sidebar_layout_2313 > div.cl + aside + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside + aside {
  width: 30.73%;
}
.sidebar_layout_1323 > aside:first-child,
.sidebar_layout_1323 > div.cl + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside {
  width: 30.73%;
}
.sidebar_layout_1323 > aside:first-child + aside,
.sidebar_layout_1323 > div.cl + aside + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside + aside {
  width: 64.07%;
}
.sidebar_layout_1212 aside {
  width: 47.4%;
}
.sidebar_layout_11 aside {
  width: 97.4%;
}
/***************** Share ******************/
.cmsmasters_sharing {
  overflow: hidden;
}
.share_wrap {
  float: left;
  margin-bottom: 20px;
  margin-right: 20px;
  margin-left: 0;
}
.share_wrap:last-child {
  margin-right: 0;
}
.social_vertical .share_wrap {
  float: none;
  margin-right: 0;
}
/***************** Twitter Stripe ******************/
.cmsmasters_twitter_wrap {
  padding: 73px 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_twitter_wrap .owl-pagination {
  bottom: -42px;
}
.cmsmasters_twitter_wrap .owl-buttons {
  visibility: hidden;
  display: none;
}
.cmsmasters_twitter_wrap .twr_icon {
  font-size: 64px;
  line-height: 64px;
  display: block;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: auto;
}
.cmsmasters_twitter_wrap .twr_icon:before {
  margin: 0 !important;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter {
  position: relative;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item {
  padding: 48px 10% 0;
  position: relative;
  text-align: center;
}
.cmsmasters_twitter_wrap .published {
  padding: 0;
  width: auto;
  height: 20px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: auto;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item_content {
  display: block;
}
/***************** Dropcap ******************/
.cmsmasters_dropcap {
  margin: 2px 25px 5px 25px;
  line-height: 60px;
  float: left;
}
.cmsmasters_dropcap.type2 {
  width: 60px;
  height: 60px;
  margin: 6px 25px 5px 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
}
/***************** Clients ******************/
.cmsmasters_clients_slider_wrap.enable_arrow_control:hover .owl-buttons > div {
  opacity: 1;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .cmsmasters_clients_slider {
  padding-left: 37px;
  padding-right: 37px;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons {
  position: static;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div {
  width: 37px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div.owl-prev {
  right: auto;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div.owl-prev > span:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 12px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 8px;
  bottom: 0;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div.owl-prev > span:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 12px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 8px;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div.owl-next {
  left: auto;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div.owl-next > span:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 12px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 8px;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div.owl-next > span:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 12px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 8px;
  bottom: 0;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div > span {
  width: 37px;
  height: 37px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div > span > span {
  display: none;
}
.cmsmasters_clients_slider_wrap.enable_slider_control .cmsmasters_clients_slider {
  padding-top: 10px;
  padding-bottom: 10px;
}
.cmsmasters_clients_slider_wrap.enable_slider_control .owl-pagination {
  line-height: 10px;
  height: 10px;
}
.cmsmasters_clients_slider {
  margin: 0;
  padding: 0;
}
.cmsmasters_clients_slider .cmsmasters_owl_slider_item {
  min-width: 160px;
}
.cmsmasters_clients_item {
  font-size: 0;
  line-height: 180px;
  height: 180px;
  vertical-align: middle;
  position: relative;
  text-align: center;
}
.cmsmasters_clients_item > span {
  text-align: center;
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0;
}
.cmsmasters_clients_item > span:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_clients_item:hover > span {
  opacity: 1;
}
.cmsmasters_clients_item:hover > span:last-child {
  opacity: 1;
}
.cmsmasters_clients_item img {
  display: inline-block;
  padding: 0 20px;
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
  vertical-align: middle;
}
.cmsmasters_clients_item a {
  line-height: 180px;
  display: block;
  height: 100%;
}
.cmsmasters_clients_item:hover {
  outline: none;
}
.cmsmasters_clients_grid {
  overflow: hidden;
}
.cmsmasters_clients_grid.clients_five .cmsmasters_clients_item {
  width: 20%;
}
.cmsmasters_clients_grid.clients_four .cmsmasters_clients_item {
  width: 25%;
}
.cmsmasters_clients_grid.clients_three .cmsmasters_clients_item {
  width: 33.33%;
}
.cmsmasters_clients_grid.clients_two .cmsmasters_clients_item {
  width: 50%;
}
.cmsmasters_clients_grid .cmsmasters_clients_items {
  height: auto;
}
.cmsmasters_clients_grid .cmsmasters_clients_item {
  margin-bottom: 20px;
  float: left;
}
.cmsmasters_clients_grid .cmsmasters_clients_item img {
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0.1;
}
.cmsmasters_clients_grid .cmsmasters_clients_item.shortcode_animated img {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_clients_grid.clients_one .cmsmasters_clients_item:last-child,
.cmsmasters_clients_grid.clients_one .cmsmasters_clients_item {
  width: 100%;
  float: none;
  height: auto;
  line-height: 0;
}
.cmsmasters_clients_grid.clients_two .cmsmasters_clients_item:nth-child(2n+1),
.cmsmasters_clients_grid.clients_three .cmsmasters_clients_item:nth-child(3n+1),
.cmsmasters_clients_grid.clients_four .cmsmasters_clients_item:nth-child(4n+1),
.cmsmasters_clients_grid.clients_five .cmsmasters_clients_item:nth-child(5n+1) {
  clear: both;
}
/*-------------------------------------------------------------------------*/
/* Widgets Styles
/*-------------------------------------------------------------------------*/
.widget {
  position: relative;
  padding: 0 0 40px;
}
.widget .widgettitle {
  padding: 0 0 13px;
  margin: 0 0 22px;
  position: relative;
}
.widget .widgettitle:before {
  content: '';
  -webkit-border-radius: 5px;
  border-radius: 5px;
  width: 20px;
  height: 5px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: auto;
  bottom: 0;
}
/***************** Widget Text ******************/
.widget_text ul li:before {
  content: none;
}
/***************** Widget Advertisement ******************/
.widget_custom_advertisement_entries .widgettitle {
  margin-bottom: 25px;
}
.widget_custom_advertisement_entries .adv_image_wrap {
  margin: -5px;
  overflow: hidden;
}
.widget_custom_advertisement_entries .adv_image_wrap .adv_widget_image {
  width: 125px;
  height: 125px;
  float: left;
  margin: 5px;
}
/***************** Widget Lists ******************/
.widget_pages ul,
.widget_categories ul,
.widget_archive ul,
.widget_meta ul,
.widget_recent_comments ul,
.widget_recent_entries ul {
  margin: 0;
  padding: 0;
}
.widget_pages ul li,
.widget_categories ul li,
.widget_archive ul li,
.widget_meta ul li,
.widget_recent_comments ul li,
.widget_recent_entries ul li {
  margin: 0;
  padding: 0;
}
.widget_pages ul li:before,
.widget_categories ul li:before,
.widget_archive ul li:before,
.widget_meta ul li:before,
.widget_recent_comments ul li:before,
.widget_recent_entries ul li:before {
  content: none;
}
.widget_pages ul li a,
.widget_categories ul li a,
.widget_archive ul li a,
.widget_meta ul li a,
.widget_recent_comments ul li a,
.widget_recent_entries ul li a {
  display: inline-block;
  padding: 4px 0;
}
.widget_pages ul ul,
.widget_categories ul ul,
.widget_archive ul ul,
.widget_meta ul ul,
.widget_recent_comments ul ul,
.widget_recent_entries ul ul {
  margin: 7px 0;
}
.widget_pages ul ul li:last-child ul,
.widget_categories ul ul li:last-child ul,
.widget_archive ul ul li:last-child ul,
.widget_meta ul ul li:last-child ul,
.widget_recent_comments ul ul li:last-child ul,
.widget_recent_entries ul ul li:last-child ul {
  margin: 7px 0 0;
}
.widget_pages > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > a {
  padding-left: 20px;
  padding-right: 0;
}
.widget_pages > ul > li > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > ul > li > a {
  padding-left: 40px;
  padding-right: 0;
}
.widget_pages > ul > li > ul > li > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 60px;
  padding-right: 0;
}
.widget_pages > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 80px;
  padding-right: 0;
}
.widget_pages .post-date,
.widget_categories .post-date,
.widget_archive .post-date,
.widget_meta .post-date,
.widget_recent_comments .post-date,
.widget_recent_entries .post-date {
  display: block;
  margin: -3px 0 0;
}
.widget_recent_comments > ul > li {
  padding: 4px 0;
}
.widget_categories .screen-reader-text,
.widget_archive .screen-reader-text {
  display: none;
}
/***************** Widget Text ******************/
.widget_text li:before {
  content: none;
}
/***************** Widget Calendar ******************/
#wp-calendar {
  border-spacing: 0;
  width: 100%;
  min-width: 200px;
  max-width: 400px;
  padding: 20px;
  border-width: 1px;
  border-style: dashed;
  border-top-width: 0;
  border-top-style: solid;
  -webkit-border-radius: 0 0 15px 15px;
  border-radius: 0 0 15px 15px;
}
#wp-calendar caption {
  text-align: left;
  padding: 15px 30px;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px 15px 0 0;
  border-radius: 15px 15px 0 0;
}
#wp-calendar td,
#wp-calendar th {
  padding: 5px 0;
  border-width: 0;
  border-style: solid;
}
#wp-calendar thead td,
#wp-calendar tbody td,
#wp-calendar thead th,
#wp-calendar tbody th {
  text-align: center;
}
#wp-calendar #next {
  text-align: right;
}
#wp-calendar tfoot a {
  display: inline-block;
  padding: 10px 10px 0;
}
/***************** Widget Contact Form ******************/
.widget_custom_contact_form_entries input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.widget_custom_contact_form_entries textarea,
.widget_custom_contact_form_entries select {
  width: 100%;
}
.widget_custom_contact_form_entries .form_info.submit_wrap {
  padding-top: 0;
}
/***************** Widget Contact Info ******************/
.widget_custom_contact_info_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_contact_info_entries > span,
.widget_custom_contact_info_entries .adress_wrap {
  display: block;
  position: relative;
}
.widget_custom_contact_info_entries > span:first-child,
.widget_custom_contact_info_entries .adress_wrap:first-child {
  margin: 0;
}
.widget_custom_contact_info_entries > span:before,
.widget_custom_contact_info_entries .adress_wrap:before {
  content: none;
}
.widget_custom_contact_info_entries > span {
  display: block;
  padding: 9px 0;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  overflow: hidden;
}
.widget_custom_contact_info_entries > span:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.widget_custom_contact_info_entries .widget_custom_contact_info_title {
  padding: 0 20px 0 0;
  float: left;
}
.widget_custom_contact_info_entries .widget_custom_contact_info_desc {
  float: right;
  text-align: right;
}
/***************** Widget Custom Menu ******************/
.widget_nav_menu {
  position: relative;
  overflow: hidden;
}
.widget_nav_menu ul {
  margin: 0;
  padding: 0;
}
.widget_nav_menu ul li {
  margin: 0;
  padding: 0;
}
.widget_nav_menu ul li:before {
  content: none;
}
.widget_nav_menu ul li a {
  display: block;
  padding: 10px 0;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.widget_nav_menu ul li a:empty {
  display: none;
}
.widget_nav_menu > div > ul {
  position: relative;
}
.widget_nav_menu > div > ul > li > ul > li > a {
  padding-left: 10px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > a {
  padding-left: 20px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 30px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 40px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 50px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 60px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 70px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 80px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 90px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 100px;
}
/***************** Widget Facebook ******************/
.widget_custom_facebook_entries iframe {
  margin-bottom: 0;
}
/***************** Widget Flickr ******************/
.widget_custom_flickr_entries .wrap {
  margin: 0 -7px;
}
.widget_custom_flickr_entries .more_button {
  display: none;
}
.widget_custom_flickr_entries .flickr_badge_image {
  margin: 0 7px 18px;
  float: left;
}
/***************** Widget Latest and Popular Projects ******************/
.widget_custom_popular_projects_entries,
.widget_custom_latest_projects_entries {
  position: relative;
}
.widget_custom_popular_projects_entries .cmsmasters_owl_slider,
.widget_custom_latest_projects_entries .cmsmasters_owl_slider {
  padding: 0 0 25px;
}
.widget_custom_popular_projects_entries .owl-buttons,
.widget_custom_latest_projects_entries .owl-buttons {
  display: none;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project,
.widget_custom_latest_projects_entries .cmsmasters_slider_project {
  padding: 0 1px 2px;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project:hover .cmsmasters_slider_project_header,
.widget_custom_latest_projects_entries .cmsmasters_slider_project:hover .cmsmasters_slider_project_header {
  bottom: 0;
  opacity: 1;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_img_wrap,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_img_wrap {
  position: relative;
  overflow: hidden;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_inner,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_inner {
  padding: 20px 0;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_header,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_header {
  width: 100%;
  padding: 3px;
  position: absolute;
  left: 0;
  bottom: -30px;
  opacity: 0;
  text-align: left;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_title,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_title {
  padding: 18px 20px;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_content,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_content {
  padding: 0 0 17px;
}
/***************** Widget Posts Tabs ******************/
.widget_custom_posts_tabs_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs {
  position: relative;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list {
  text-align: left;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item {
  display: inline-block;
  margin: 0;
  padding: 0;
  float: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item + .cmsmasters_tabs_list_item > a:before {
  content: '-';
  padding: 0 3px;
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item a {
  padding: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_wrap {
  padding: 20px 0 0;
  position: relative;
  border-top-width: 0;
  border-top-style: solid;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_wrap > .cmsmasters_tab:first-child {
  display: block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab ul {
  margin: 0;
  padding: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li {
  margin: 25px 0 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:first-child {
  margin: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:before {
  content: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li p {
  margin: 0;
  padding: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li small {
  display: block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_latest li:after,
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_popular li:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  height: 60px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_comments li > p {
  margin: 0;
  padding: 10px 0 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_img {
  margin-right: 20px;
  z-index: 1;
  overflow: hidden;
  width: 60px;
  height: 60px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: auto;
  -webkit-border-radius: 6px;
  border-radius: 6px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont {
  display: inline-block;
  vertical-align: middle;
  padding: 0 0 0 75px;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > a {
  outline: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > .published {
  margin-top: 6px;
  display: block;
}
/***************** Widget RSS ******************/
.widget_rss img {
  margin: -3px 0 0;
}
.widget_rss ul {
  margin: 0;
  padding: 0;
}
.widget_rss ul li {
  margin: 0;
  padding: 20px 0 0;
}
.widget_rss ul li:first-child {
  padding: 0;
}
.widget_rss ul li:before {
  content: none;
}
.widget_rss ul li .rsswidget {
  outline: none;
}
.widget_rss ul li .rss-date {
  display: block;
}
.widget_rss ul li .rssSummary {
  padding: 5px 0 0;
  overflow: hidden;
}
.widget_rss ul li cite {
  display: block;
  padding: 7px 0 0;
}
/***************** Widget Tag Cloud ******************/
.widget_tag_cloud {
  position: relative;
  overflow: hidden;
}
.widget_tag_cloud a {
  line-height: 1em;
  display: inline-block;
  margin: 0 4px 0 0;
}
.widget_tag_cloud a:last-child {
  margin: 0;
}
/***************** Widget Twitter ******************/
.widget_custom_twitter_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_twitter_entries ul {
  margin: 0;
  padding: 0;
}
.widget_custom_twitter_entries ul li {
  margin: 0 0 15px;
  padding: 0 0 15px;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.widget_custom_twitter_entries ul li:last-child {
  margin: 0;
  padding: 0;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.widget_custom_twitter_entries ul li:before {
  content: none;
}
.widget_custom_twitter_entries .tweet_time {
  display: block;
  margin: 0 0 12px;
  padding: 0 0 0 28px;
  position: relative;
}
.widget_custom_twitter_entries .tweet_time:before {
  font-size: 18px;
  line-height: 18px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.widget_custom_twitter_entries .tweet_text {
  display: block;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Search + Archives + Sitemap + Error + Other Styles
/*-------------------------------------------------------------------------*/
/***************** Archives + Search ******************/
.cmsmasters_search,
.cmsmasters_archive {
  position: relative;
  overflow: hidden;
}
.cmsmasters_search > .about_author,
.cmsmasters_archive > .about_author {
  max-width: 700px;
  padding: 0 0 50px;
  margin: 0 auto;
}
.cmsmasters_search .cmsmasters_search_zero .search_bar_wrap,
.cmsmasters_archive .cmsmasters_search_zero .search_bar_wrap {
  max-width: 400px;
}
.content .cmsmasters_search .cmsmasters_search_zero,
.content .cmsmasters_archive .cmsmasters_search_zero {
  text-align: left;
}
.content .cmsmasters_search .cmsmasters_search_zero.tar,
.content .cmsmasters_archive .cmsmasters_search_zero.tar {
  float: none;
}
.middle_content .cmsmasters_search .cmsmasters_search_zero,
.middle_content .cmsmasters_archive .cmsmasters_search_zero {
  max-width: 650px;
}
.middle_content .cmsmasters_search .cmsmasters_search_zero.tac,
.middle_content .cmsmasters_archive .cmsmasters_search_zero.tac {
  margin: 0 auto;
}
.cmsmasters_archive_type {
  padding: 50px 0 0;
  overflow: hidden;
}
.cmsmasters_archive_type:first-of-type {
  padding-top: 0;
}
.cmsmasters_archive_type .preloader {
  padding-bottom: 100%;
}
.cmsmasters_archive_type .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap {
  margin: 0 30px 0 0;
  width: 23%;
  float: left;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap .cmsmasters_img_wrap {
  -webkit-border-radius: 15px;
  border-radius: 15px;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_cont_wrap {
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_type {
  padding: 0 0 20px;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_header {
  padding: 0 0 25px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_title {
  word-wrap: break-word;
  margin: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content {
  padding: 0 0 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content p {
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info {
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info > * {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info > *.cmsmasters_archive_item_category {
  margin: 0 0 0 20px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info > *.cmsmasters_archive_item_category:first-child {
  margin: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_date_wrap + .cmsmasters_archive_item_user_name:before {
  content: '-';
  padding: 0 3px;
}
/***************** Sitemap ******************/
.middle_content .cmsmasters_sitemap_wrap {
  padding: 0;
}
.cmsmasters_sitemap_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap ul,
.cmsmasters_sitemap_wrap ol,
.cmsmasters_sitemap_wrap li {
  margin: 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap > ul:last-child {
  padding-bottom: 0;
}
.cmsmasters_sitemap_wrap > ul:last-child:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_divider {
  margin-bottom: 30px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li {
  width: 100%;
  padding-top: 30px;
  position: relative;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:first-child {
  margin-top: 0;
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:first-child:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > a {
  display: inline-block;
  margin-bottom: 35px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > a + ul {
  margin-top: -10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul {
  width: 100%;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li {
  width: 25%;
  padding-top: 0;
  padding-right: 20px;
  margin-bottom: 40px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(45) {
  clear: both;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul {
  padding-top: 20px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul ul {
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li {
  margin-left: 20px;
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li:first-child {
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul > li {
  margin-left: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category {
  padding: 5px 0 30px;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category:before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  margin: 0;
  position: absolute;
  left: 0;
  bottom: 0;
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li {
  width: 25%;
  padding-right: 20px;
  margin-bottom: 20px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(45) {
  clear: both;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul {
  padding-top: 20px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul ul {
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul li {
  margin-left: 20px;
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul li:first-child {
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul > li {
  margin-left: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive {
  padding: 5px 0 30px;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive:before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  margin: 0;
  position: absolute;
  left: 0;
  bottom: 0;
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li {
  width: 25%;
  margin-bottom: 20px;
  padding-right: 20px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(45) {
  clear: both;
}
/***************** Error ******************/
.error {
  overflow: hidden;
}
.error .error_inner {
  padding: 240px 20px 50px;
}
.error .error_title {
  font-size: 264px;
  line-height: 1em;
  font-weight: 500;
  word-wrap: break-word;
  margin: 0;
  padding: 0 0 5px;
  text-align: center;
}
.error .error_subtitle {
  text-align: center;
  margin: 0;
  padding: 0;
}
.error_cont {
  padding: 40px 0 250px;
  text-align: center;
}
.error_cont .search_bar_wrap {
  display: inline-block;
  vertical-align: middle;
  width: 270px;
  max-width: 100%;
  margin: 0 10px 20px;
}
.error_cont .search_bar_wrap input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  height: 46px;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
#middle .error_cont .search_bar_wrap input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  padding: 13px 20px;
}
.error_cont .search_bar_wrap .search_button {
  width: 55px;
}
.error_cont .error_button_wrap {
  display: inline-block;
  vertical-align: middle;
  margin: 0 10px 20px;
}
/***************** Attachment Page ******************/
.cmsmasters_attach_img {
  padding: 40px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_attach_img .cmsmasters_attach_img_info {
  padding: 0 0 20px;
  margin: 0 0 30px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_attach_img .cmsmasters_attach_img_edit {
  margin: 0;
  padding: 0;
  float: right;
}
.cmsmasters_attach_img .cmsmasters_attach_img_meta {
  margin: 0;
  padding: 0;
  overflow: hidden;
}
/***************** Other ******************/
#main .with_frm_style .frm_form_fields input,
#main #wpcontent .with_frm_style .frm_form_fields select,
#main .with_frm_style .frm_form_fields select,
#main .with_frm_style .frm_form_fields textarea {
  padding: 8px;
}
#lang_sel ul {
  overflow: visible;
}
#lang_sel_footer {
  display: none;
}
/*-------------------------------------------------------------------------*/
/* Contact Forms Styles
/*-------------------------------------------------------------------------*/
.cmsmasters-form-builder {
  margin: 0 -1.3%;
}
.cmsmasters-form-builder label {
  margin-bottom: 5px;
}
.cmsmasters-form-builder .success_box {
  margin: 0 1.3% 10px;
  width: 97.4%;
}
.cmsmasters-form-builder .form_info {
  margin: 0 1.3%;
  margin-bottom: 5px;
  padding-bottom: 10px;
}
.cmsmasters-form-builder .form_info.submit_wrap {
  padding-top: 10px;
}
.cmsmasters-form-builder [class*="one_"] input[type="text"],
.cmsmasters-form-builder [class*="one_"] select,
.cmsmasters-form-builder [class*="one_"] textarea {
  width: 100%;
}
.cmsmasters-form-builder textarea {
  min-height: 135px !important;
}
span.wpcf7-list-item {
  display: block;
}
.wpcf7-list-item-label,
body .cmsmasters-form-builder .check_parent input[type="checkbox"] + label,
body .cmsmasters-form-builder .check_parent input[type="radio"] + label {
  padding-left: 25px;
  padding-right: 0;
  position: relative;
  cursor: pointer;
  float: left;
}
.wpcf7-list-item label {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 5px 0;
}
.cmsmasters-form-builder .check_parent input[type="checkbox"],
.cmsmasters-form-builder .check_parent input[type="radio"],
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"],
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] {
  float: left;
  opacity: 0;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:before,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:before {
  content: '';
  border-width: 1px;
  border-style: solid;
  width: 15px;
  height: 15px;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: auto;
  top: 0;
  bottom: 0;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:before {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  content: '';
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  width: 9px;
  height: 9px;
  margin: auto !important;
  position: absolute;
  left: 4px;
  right: auto;
  top: 0;
  bottom: 0;
  opacity: 0;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"]:checked + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="checkbox"]:checked + label:after,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"]:checked + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"]:checked + label:after {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
/*-------------------------------------------------------------------------*/
/* CSS3 Animations
/*-------------------------------------------------------------------------*/
html.csstransitions {
  /* Custom Animations */
  /* Global Animations */
}
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:before,
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:before,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="checkbox"] + label:before,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="radio"] + label:before,
html.csstransitions input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
html.csstransitions textarea,
html.csstransitions select {
  -webkit-transition: border-color .2s ease-in-out;
  -moz-transition: border-color .2s ease-in-out;
  -ms-transition: border-color .2s ease-in-out;
  -o-transition: border-color .2s ease-in-out;
  transition: border-color .2s ease-in-out;
}
html.csstransitions .cmsmasters_open_project .owl-buttons > div > span > span:before {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions #slide_top,
html.csstransitions .cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div > span:before,
html.csstransitions .cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div > span:after,
html.csstransitions .post_nav > span > span:before,
html.csstransitions .post_nav > span > span:after,
html.csstransitions .cmsmasters_wrap_pagination ul li .page-numbers > span:before,
html.csstransitions .cmsmasters_wrap_pagination ul li .page-numbers > span:after,
html.csstransitions .header_mid .resp_mid_nav_wrap .resp_mid_nav > span,
html.csstransitions .header_mid .resp_mid_nav_wrap .resp_mid_nav > span:before,
html.csstransitions .header_mid .resp_mid_nav_wrap .resp_mid_nav > span:after,
html.csstransitions .header_bot .resp_bot_nav_wrap .resp_bot_nav > span,
html.csstransitions .header_bot .resp_bot_nav_wrap .resp_bot_nav > span:before,
html.csstransitions .header_bot .resp_bot_nav_wrap .resp_bot_nav > span:after,
html.csstransitions .header_top .responsive_top_nav > span,
html.csstransitions .header_top .responsive_top_nav > span:before,
html.csstransitions .header_top .responsive_top_nav > span:after {
  -webkit-transition: background-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out;
  transition: background-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_slider_project .cmsmasters_slider_project_cont_wrap_inner a,
html.csstransitions .cmsmasters_project_puzzle .project_inner_cont a,
html.csstransitions .cmsmasters_header_search_form .cmsmasters_header_search_form_close,
html.csstransitions .cmsmasters_clients_slider_wrap.enable_arrow_control .owl-buttons > div,
html.csstransitions .cmsmasters_profile_horizontal .cmsmasters_img_social_wrap .profile_social_icons,
html.csstransitions .cmsmasters_profile_horizontal .cmsmasters_img_social_wrap .profile_social_icons_list a,
html.csstransitions .cmsmasters_project_grid .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_project_puzzle .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_open_project .owl-buttons > div {
  -webkit-transition: opacity .3s ease-in-out;
  -moz-transition: opacity .3s ease-in-out;
  -ms-transition: opacity .3s ease-in-out;
  -o-transition: opacity .3s ease-in-out;
  transition: opacity .3s ease-in-out;
}
html.csstransitions .button,
html.csstransitions input[type=submit],
html.csstransitions input[type=button],
html.csstransitions button,
html.csstransitions div.subpage_nav > span,
html.csstransitions div.subpage_nav > a,
html.csstransitions .post_nav > span > span,
html.csstransitions .cmsmasters_slider_post .cmsmasters_slider_post_category a,
html.csstransitions .cmsmasters_post_masonry .cmsmasters_post_category a,
html.csstransitions .cmsmasters_open_post .cmsmasters_post_cont_info > span.cmsmasters_post_category a,
html.csstransitions .cmsmasters_wrap_pagination ul li .page-numbers,
html.csstransitions .cmsmasters_post_default .cmsmasters_post_read_more,
html.csstransitions .cmsmasters_header_search_form button,
html.csstransitions .cmsmasters_notice .notice_close {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .owl-pagination .owl-page {
  -webkit-transition: background-color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out, border-color .3s ease-in-out;
  transition: background-color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions ul.navigation > li > a .nav_tag {
  -webkit-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  transition: color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_content_slider .owl-buttons > div {
  -webkit-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  -moz-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  -ms-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  -o-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  transition: opacity .3s ease-in-out, color .3s ease-in-out;
}
html.csstransitions .cmsmasters_header_search_form {
  -webkit-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -moz-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -ms-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -o-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
}
html.csstransitions .cmsmasters_slider_project .cmsmasters_slider_project_cont_wrap_inner,
html.csstransitions .cmsmasters_project_grid .cmsmasters_project_footer {
  -webkit-transition: opacity .4s ease-in-out, top .4s ease-in-out;
  -moz-transition: opacity .4s ease-in-out, top .4s ease-in-out;
  -ms-transition: opacity .4s ease-in-out, top .4s ease-in-out;
  -o-transition: opacity .4s ease-in-out, top .4s ease-in-out;
  transition: opacity .4s ease-in-out, top .4s ease-in-out;
}
html.csstransitions .widget_custom_popular_projects_entries .cmsmasters_slider_project .cmsmasters_slider_project_header,
html.csstransitions .widget_custom_latest_projects_entries .cmsmasters_slider_project .cmsmasters_slider_project_header {
  -webkit-transition: opacity .4s ease-in-out, bottom .4s ease-in-out;
  -moz-transition: opacity .4s ease-in-out, bottom .4s ease-in-out;
  -ms-transition: opacity .4s ease-in-out, bottom .4s ease-in-out;
  -o-transition: opacity .4s ease-in-out, bottom .4s ease-in-out;
  transition: opacity .4s ease-in-out, bottom .4s ease-in-out;
}
html.csstransitions .cmsmasters_toggles .cmsmasters_toggle_plus,
html.csstransitions .cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:before,
html.csstransitions .cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:after {
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
html.csstransitions a,
html.csstransitions .img_placeholder_small,
html.csstransitions .cmsmasters_icon_wrap .cmsmasters_simple_icon_title,
html.csstransitions .cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li a:before {
  -webkit-transition: color 0.3s ease-in-out;
  -moz-transition: color 0.3s ease-in-out;
  -ms-transition: color 0.3s ease-in-out;
  -o-transition: color 0.3s ease-in-out;
  transition: color 0.3s ease-in-out;
}
html.csstransitions .header_mid,
html.csstransitions .header_bot {
  -webkit-transition: background-color .2s ease-in-out, box-shadow .3s ease-in-out;
  -moz-transition: background-color .2s ease-in-out, box-shadow .3s ease-in-out;
  -ms-transition: background-color .2s ease-in-out, box-shadow .3s ease-in-out;
  -o-transition: background-color .2s ease-in-out, box-shadow .3s ease-in-out;
  transition: background-color .2s ease-in-out, box-shadow .3s ease-in-out;
}
html.csstransitions .cmsmasters_social_icon,
html.csstransitions .edge_only .cmsmasters_but_icon_inverse {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out;
}
html.csstransitions nav > div > ul ul,
html.csstransitions nav > div > ul div {
  -webkit-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
}
html.csstransitions nav > div > ul ul ul {
  -webkit-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
}
html.csstransitions nav > div > ul li a,
html.csstransitions .cmsmasters_icon_wrap .cmsmasters_simple_icon {
  -webkit-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions nav > div > ul li a .nav_subtitle {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions .header_top .header_top_but {
  -webkit-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  transition: color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_toggles .cmsmasters_toggle_plus span {
  -webkit-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  -o-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  transition: background-color .3s ease-in-out, height .1s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_thumbs > li img {
  -webkit-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -moz-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -ms-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -o-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_items > li {
  -webkit-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -moz-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -ms-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -o-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_thumbs > li a {
  -webkit-transition: border-color 0.3s ease-in-out;
  -moz-transition: border-color 0.3s ease-in-out;
  -ms-transition: border-color 0.3s ease-in-out;
  -o-transition: border-color 0.3s ease-in-out;
  transition: border-color 0.3s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li a:before {
  -webkit-transition: opacity 0.4s ease-in-out;
  -moz-transition: opacity 0.4s ease-in-out;
  -ms-transition: opacity 0.4s ease-in-out;
  -o-transition: opacity 0.4s ease-in-out;
  transition: opacity 0.4s ease-in-out;
}
html.csstransitions .isotope > * {
  -webkit-transition: opacity 0.8s ease-in-out;
  -moz-transition: opacity 0.8s ease-in-out;
  -ms-transition: opacity 0.8s ease-in-out;
  -o-transition: opacity 0.8s ease-in-out;
  transition: opacity 0.8s ease-in-out;
}
html.csstransitions .cmsmasters_button,
html.csstransitions .cmsmasters_button.cmsmasters_but_clear_styles:before,
html.csstransitions .cmsmasters_button.cmsmasters_but_clear_styles:after {
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
html.csstransitions .cmsmasters_button.cmsmasters_but_icon_slide_left,
html.csstransitions .cmsmasters_button.cmsmasters_but_icon_slide_right {
  -webkit-transition: all .3s ease-in-out, color 0s ease-in-out;
  -moz-transition: all .3s ease-in-out, color 0s ease-in-out;
  -ms-transition: all .3s ease-in-out, color 0s ease-in-out;
  -o-transition: all .3s ease-in-out, color 0s ease-in-out;
  transition: all .3s ease-in-out, color 0s ease-in-out;
}
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  -webkit-transition: all .2s ease-out;
  -moz-transition: all .2s ease-out;
  -ms-transition: all .2s ease-out;
  -o-transition: all .2s ease-out;
  transition: all .2s ease-out;
}
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_left_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_left:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h1:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h2:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h3:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h4:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h5:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h6:before {
  -webkit-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:before {
  -webkit-transition: opacity 5s ease-in-out, height .8s ease-in;
  -moz-transition: opacity 5s ease-in-out, height .8s ease-in;
  -ms-transition: opacity 5s ease-in-out, height .8s ease-in;
  -o-transition: opacity 5s ease-in-out, height .8s ease-in;
  transition: opacity 5s ease-in-out, height .8s ease-in;
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon,
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:after {
  -webkit-transition: all .5s ease-in-out;
  -moz-transition: all .5s ease-in-out;
  -ms-transition: all .5s ease-in-out;
  -o-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:before {
  -webkit-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -moz-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -ms-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -o-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
}
html.csstransitions .cmsmasters_clients_item img,
html.csstransitions .cmsmasters_clients_item span,
html.csstransitions .cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a {
  -webkit-transition: all .5s ease-in-out;
  -moz-transition: all .5s ease-in-out;
  -ms-transition: all .5s ease-in-out;
  -o-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}
html.csstransitions .cmsmasters_profile .profile img {
  -webkit-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
}
html.csstransitions .cmsmasters_profile .profile .pl_social_list {
  -webkit-transition: opacity .5s ease-out, margin .5s ease-out;
  -moz-transition: opacity .5s ease-out, margin .5s ease-out;
  -ms-transition: opacity .5s ease-out, margin .5s ease-out;
  -o-transition: opacity .5s ease-out, margin .5s ease-out;
  transition: opacity .5s ease-out, margin .5s ease-out;
}
html.csstransitions .cmsmasters_project_grid figure {
  -webkit-transition: opacity .7s ease-in-out;
  -moz-transition: opacity .7s ease-in-out;
  -ms-transition: opacity .7s ease-in-out;
  -o-transition: opacity .7s ease-in-out;
  transition: opacity .7s ease-in-out;
}
html.csstransitions .cmsmasters_project_puzzle .project_inner {
  -webkit-transition: top .3s ease-in-out;
  -moz-transition: top .3s ease-in-out;
  -ms-transition: top .3s ease-in-out;
  -o-transition: top .3s ease-in-out;
  transition: top .3s ease-in-out;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner {
  -webkit-animation: bar_move 2s ease-in;
  -moz-animation: bar_move 2s ease-in;
  -ms-animation: bar_move 2s ease-in;
  -o-animation: bar_move 2s ease-in;
  animation: bar_move 2s ease-in;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner:before,
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner .cmsmasters_stat_title {
  -webkit-animation: bar_title 2.2s ease-out;
  -moz-animation: bar_title 2.2s ease-out;
  -ms-animation: bar_title 2.2s ease-out;
  -o-animation: bar_title 2.2s ease-out;
  animation: bar_title 2.2s ease-out;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  -webkit-animation: bar_inner 1s ease-in-out;
  -moz-animation: bar_inner 1s ease-in-out;
  -ms-animation: bar_inner 1s ease-in-out;
  -o-animation: bar_inner 1s ease-in-out;
  animation: bar_inner 1s ease-in-out;
}
html.csstransitions .cmsmasters_column_sticky {
  -webkit-transition: -webkit-transform .3s ease, transform .3s ease;
  -moz-transition: -webkit-transform .3s ease, transform .3s ease;
  -ms-transition: -webkit-transform .3s ease, transform .3s ease;
  -o-transition: -webkit-transform .3s ease, transform .3s ease;
  transition: -webkit-transform .3s ease, transform .3s ease;
}
@-webkit-keyframes autofill {
  to {
    color: inherit;
    background: transparent;
  }
}
@-webkit-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-moz-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-o-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-webkit-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-moz-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-o-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-webkit-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-moz-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-o-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmxlc3MiLCJnZW5lcmFsLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJKQTtFQUNDLGdCQUFBOztBQUdEO0VBQ0MsZ0JBQUE7O0FBR0Q7RUFDQyxpQkFBQTtFQUNBLFNBQUE7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0MsVUFBQTtFQUNBLGdCQUFBOztBQUdELEVBQUc7QUFDSCxFQUFHO0FBQ0gsRUFBRztBQUNILEVBQUc7QUFDSCxFQUFHO0FBQ0gsRUFBRztFQUNGLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7O0FBR0Q7QUFDQTtFQUNDLDJCQUFBO0VBQ0EsbUJBQUE7O0FBR0Q7RUNxSkMscUJBQUE7O0FEckpELEVDdUpDO0VBQ0MsY0FBQTtFQUNBLGtCQUFBOztBQUVBLEVBSkQsS0FJRTtFQUNBLFNBQVEsRUFBUjtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQXBIRiwwQkFBQTtFQUNBLGtCQUFBOztBRDVDRDtFQUNFLHFDQUFBOztBQUdGLEVBQUc7QUFDSCxFQUFHO0VBQ0YsaUJBQUE7O0FBR0QsRUFBRyxHQUFFO0FBQ0wsRUFBRyxHQUFFO0VBQ0gsY0FBQTs7QUFHRixFQUFHO0FBQ0gsRUFBRztBQUNILEVBQUc7QUFDSCxFQUFHO0VBQ0Ysa0JBQUE7RUFDQSxpQkFBQTs7QUFHRCxTQUNDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7O0FBR0MsU0FMRixHQUlDLEdBQ0U7RUNsSkgsYUFBQTs7QUR5SkQ7RUFDQyxtQkFB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QyxVQUFBOztFQUdEO0lBQ0MsVUFBQTs7O0FBSUY7RUFDQztJQUNDLFVBQUE7O0VBR0Q7SUFDQyxVQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBwYWNrYWdlIFx0V29yZFByZXNzXHJcbiAqIEBzdWJwYWNrYWdlIFx0QWdyaWNvbGVcclxuICogQHZlcnNpb25cdFx0MS4wLjJcclxuICogXHJcbiAqIERlc2lnbiBDU1MgUnVsZXNcclxuICogQ3JlYXRlZCBieSBDTVNNYXN0ZXJzXHJcbiAqIFxyXG4gKi9cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblx0MS5cdEdsb2JhbGx5IEFwcGxpZWQgU3R5bGVzIC8gYm9keVxyXG5cdFx0MS4xLiBJbnN0YWdyYW0gLyAjc2JpX2xvYWRcclxuXHRcdDEuMi4gSWNvbnNcclxuXHRcdFx0MS4yLjEuIEdsb2JhbFxyXG5cdFx0XHQxLjIuMi4gQXJyb3dzXHJcblx0XHRcdDEuMi4zLiBXaWRnZXQgQWRkIEluZm9cclxuXHRcdFx0MS4yLjQuIFR3aXR0ZXIgc3RyaXBlXHJcblx0XHQxLjMuIEVsZW1lbnRzXHJcblx0XHRcdDEuMy4xLiBJY29uIEFycm93IEdsb2JhbCBTdHlsZXNcclxuXHRcdFx0MS4zLjIuIFBpeGVsIEFycm93IEdsb2JhbCBTdHlsZXNcclxuXHRcdFx0MS4zLjMuIFBvc3QgUGFzc3dvcmQgRm9ybSAvIC5wb3N0LXBhc3N3b3JkLWZvcm1cclxuXHRcdFx0MS4zLjQuIFByZWxvZGFlciAvIC5wcmVsb2FkZXJcclxuXHRcdFx0MS4zLjUuIFJlc2l6YWJsZSBCbG9jayAvIC5yZXNpemFibGVfYmxvY2tcclxuXHRcdFx0MS4zLjYuIEltZyBXcmFwcGVyIC8gLmNtc21hc3RlcnNfaW1nX3dyYXBcclxuXHRcdFx0MS4zLjcuIEltZyBSb2xsb3ZlciAvIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwXHJcblx0XHRcdDEuMy44LiBQbGFjZWhvbGRlciBTbWFsbCAvIC5pbWdfcGxhY2Vob2xkZXJfc21hbGxcclxuXHRcdFx0MS4zLjkuIFZpZGVvIFdyYXBwZXIgLyAubWVqcy1jb250YWluZXJcclxuXHRcdFx0MS4zLjEwLiBTZWFyY2ggQmFyIC8gLnNlYXJjaF9iYXJfd3JhcFxyXG5cdFx0XHQxLjMuMTAuIFNvY2lhbCBJY29ucyAvIC5zb2NpYWxfd3JhcFxyXG5cdFx0XHQxLjMuMTEuIENvcmUgT3dsIENhcm91c2VsIENTUyB2MS4zLjIgLyAub3dsLWNhcm91c2VsXHJcblx0XHRcdDEuMy4xMi4gU2xpZGUgVG9wIEJ1dHRvbiAvICNzbGlkZV90b3BcclxuXHRcdFx0MS4zLjEzLiBPcGVuZWQgQXJ0aWNsZSAvIC5vcGVuZWQtYXJ0aWNsZVxyXG5cdFx0XHQxLjMuMTQuIExpa2VzIGFuZCBDb21tZW50c1xyXG5cdFx0XHRcdDEuMy4xNC4xLiBMaWtlcyAvIC5jbXNtYXN0ZXJzX2xpa2VzXHJcblx0XHRcdFx0MS4zLjE0LjIuIENvbW1lbnRzIC8gLmNtc21hc3RlcnNfY29tbWVudHNcclxuXHRcdFx0MS4zLjE1LiBCdXR0b25cclxuXHRcdFx0MS4zLjE2LiBJdGVtcyBGaWx0ZXIgLyAuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfd3JhcFxyXG5cdFx0XHQxLjMuMTcuIE1vcmUgSXRlbXMgTG9hZGVyIGFuZCBQYWdpbmF0aW9uXHJcblx0XHRcdFx0MS4zLjE3LjEuIE1vcmUgSXRlbXMgTG9hZGVyIC8gLmNtc21hc3RlcnNfd3JhcF9tb3JlX2l0ZW1zXHJcblx0XHRcdFx0MS4zLjE3LjIuIFN1YnBhZ2UgUGFnaW5hdGlvbiAvIC5zdWJwYWdlX25hdlxyXG5cdFx0XHRcdDEuMy4xNy4yLiBQYWdpbmF0aW9uIC8gLmNtc21hc3RlcnNfd3JhcF9wYWdpbmF0aW9uXHJcblx0XHRcdDEuMy4xOC4gUG9zdCBOYXZpZ2F0aW9uIC8gLnBvc3RfbmF2XHJcblx0XHRcdDEuMy4xOS4gU2hhcmUgUG9zdHMgLyAuc2hhcmVfcG9zdHNcclxuXHRcdFx0MS4zLjIwLiBBYm91dCBBdXRob3IgLyAuYWJvdXRfYXV0aG9yXHJcblx0XHRcdDEuMy4yMS4gU2luZ2xlIFBvc3QgU2xpZGVyIC8gLmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlclxyXG5cdFx0XHQxLjMuMjIuIFNpbmdsZSBQaW5ncyBMaXN0IC8gLmNtc21hc3RlcnNfcGluZ3NfbGlzdFxyXG5cdFx0XHQxLjMuMjMuIFBvc3QgQ29tbWVudHMgLyAucG9zdF9jb21tZW50c1xyXG5cdFx0XHQxLjMuMjQuIENvbW1lbnQgUmVzcG9uZCAvIC5jb21tZW50LXJlc3BvbmRcclxuXHQyLlx0SGVhZGVyIC8gI2hlYWRlclxyXG5cdFx0Mi4xLiBIZWFkZXIgVG9wIC8gLmhlYWRlcl90b3BcclxuXHRcdFx0Mi4xLjEuIEhlYWRlciBUb3AgTmF2aWdhdGlvbiAvIC50b3BfbGluZV9uYXZcclxuXHRcdDIuMi4gSGVhZGVyIE1pZCAvIC5oZWFkZXJfbWlkXHJcblx0XHRcdDIuMS4xLiBIZWFkZXIgTWlkIE5hdmlnYXRpb24gLyAubWlkX25hdlxyXG5cdFx0Mi4zLiBIZWFkZXIgQm90IC8gLmhlYWRlcl9ib3RcclxuXHRcdFx0Mi4xLjEuIEhlYWRlciBCb3QgTmF2aWdhdGlvbiAvIC5ib3RfbmF2XHJcblx0XHQyLjQuIEhlYWRlciBTZWFyY2ggRm9ybVxyXG5cdDMuXHRIZWFkbGluZSBTdHlsZXNcclxuXHQ0Llx0Qm90dG9tICsgRm9vdGVyIFN0eWxlc1xyXG5cdFx0NC4xLiBCb3R0b20gLyAjYm90dG9tXHJcblx0XHQ0LjIuIEZvb3RlciAvICNmb290ZXJcclxuXHRcdFx0NC4yLjEuIEZvb3RlciBEZWZhdWx0IC8gLmNtc21hc3RlcnNfZm9vdGVyX2RlZmF1bHRcclxuXHRcdFx0NC4yLjIuIEZvb3RlciBTbWFsbCAvIC5jbXNtYXN0ZXJzX2Zvb3Rlcl9zbWFsbFxyXG5cdDUuXHRCbG9nIC8gLmJsb2dcclxuXHRcdDUuMS4gQmxvZyBEZWZhdWx0IC8gLmNtc21hc3RlcnNfcG9zdF9kZWZhdWx0XHJcblx0XHQ1LjIuIEJsb2cgTWFzb25yeSAvIC5jbXNtYXN0ZXJzX3Bvc3RfbWFzb25yeVxyXG5cdFx0NS4zLiBCbG9nIFRpbWVsaW5lIC8gLmNtc21hc3RlcnNfcG9zdF90aW1lbGluZVxyXG5cdFx0NS40LiBCbG9nIFBvc3QgLyAuY21zbWFzdGVyc19vcGVuX3Bvc3RcclxuXHQ2Llx0UG9ydGZvbGlvIC8gLnBvcnRmb2xpb1xyXG5cdFx0Ni4xLiBQb3J0Zm9saW8gR3JpZCAvIC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZFxyXG5cdFx0Ni4yLiBQb3J0Zm9saW8gUHV6emxlIC8gLmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGVcclxuXHRcdDYuMy4gUG9ydGZvbGlvIE9wZW4gUHJvamVjdCAvIC5jbXNtYXN0ZXJzX29wZW5fcHJvamVjdFxyXG5cdDcuXHRQb3N0cyBTbGlkZXIgU3R5bGVzIC8gLmNtc21hc3RlcnNfcG9zdHNfc2xpZGVyXHJcblx0XHQ3LjEuIFBvc3RzIFNsaWRlciBCbG9nIC8gLmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RcclxuXHRcdDcuMi4gUG9zdHMgU2xpZGVyIFBvcnRmb2xpbyAvIC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0XHJcblx0OC5cdFByb2ZpbGVzICsgUHJvZmlsZSBTdHlsZXMgLyAuY21zbWFzdGVyc19wcm9maWxlXHJcblx0XHQ4LjEuIFByb2ZpbGVzIEhvcml6b250YWwgLyAuY21zbWFzdGVyc19wcm9maWxlX2hvcml6b250YWxcclxuXHRcdDguMi4gUHJvZmlsZXMgVmVydGljYWwgLyAuY21zbWFzdGVyc19wcm9maWxlX3ZlcnRpY2FsXHJcblx0XHQ4LjMuIFByb2ZpbGVzIE9wZW4gUHJvZmlsZSAvIC5jbXNtYXN0ZXJzX29wZW5fcHJvZmlsZVxyXG5cdDkuXHRTaG9ydGNvZGVzIFN0eWxlc1xyXG5cdFx0OS4xLiBEaXZpZGVyIC8gLmNtc21hc3RlcnNfZGl2aWRlclxyXG5cdFx0OS4yLiBTcGVjaWFsIEhlYWRpbmcgLyAuY21zbWFzdGVyc19oZWFkaW5nX3dyYXBcclxuXHRcdDkuMy4gRmVhdHVyZWQgQmxvY2sgLyAuY21zbWFzdGVyc19mZWF0dXJlZF9ibG9ja1xyXG5cdFx0OS40LiBUYWJsZSAvIC5jbXNtYXN0ZXJzX3RhYmxlXHJcblx0XHQ5LjUuIE5vdGljZSAvIC5jbXNtYXN0ZXJzX25vdGljZVxyXG5cdFx0OS42LiBJY29uIC8gLmNtc21hc3RlcnNfaWNvbl93cmFwXHJcblx0XHQ5LjcuIEljb24gTGlzdCAvIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtc1xyXG5cdFx0OS44LiBJY29uIEJveCAvIC5jbXNtYXN0ZXJzX2ljb25fYm94XHJcblx0XHQ5LjkuIFRvZ2dsZXMgLyAuY21zbWFzdGVyc190b2dnbGVzXHJcblx0XHQ5LjEwLiBUYWJzIC8gLmNtc21hc3RlcnNfdGFic1xyXG5cdFx0OS4xMS4gU3RhdHMgLyAuY21zbWFzdGVyc19zdGF0c1xyXG5cdFx0OS4xMi4gQ291bnRlcnMgLyAuY21zbWFzdGVyc19jb3VudGVyc1xyXG5cdFx0OS4xMy4gQ01TTUFTVEVSUyBCdXR0b24gLyAuY21zbWFzdGVyc19idXR0b25cclxuXHRcdDkuMTQuIENvbnRhY3QgRm9ybSA3IC8gLndwY2Y3LWZvcm1cclxuXHRcdDkuMTUuIEhvdmVyIHNsaWRlciAvIC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlclxyXG5cdFx0OS4xNi4gQ29udGVudCBzbGlkZXIgLyAuY21zbWFzdGVyc19jb250ZW50X3NsaWRlclxyXG5cdFx0OS4xNy4gR2FsbGVyeSAvIC5jbXNtYXN0ZXJzX2dhbGxlcnlcclxuXHRcdDkuMTguIFF1b3RlcyAvIC5jbXNtYXN0ZXJzX3F1b3Rlc19zbGlkZXJcclxuXHRcdDkuMTkuIFByaWNpbmcgdGFibGVzIC8gLmNtc21hc3RlcnNfcHJpY2luZ190YWJsZVxyXG5cdFx0OS4yMC4gR29vZ2xlIE1hcHMgLyAuZ29vZ2xlX21hcFxyXG5cdFx0OS4yMS4gQ2FwdGlvbiAvIC5jbXNtYXN0ZXJzX2ltZ1xyXG5cdFx0OS4yMi4gV1AgR2FsbGVyeSAvIC5nYWxsZXJ5XHJcblx0XHQ5LjIzLiBTaWRlYmFyIC8gLmNtc21hc3RlcnNfc2lkZWJhclxyXG5cdFx0OS4yNC4gU2hhcmUgLyAuc2hhcmVfd3JhcFxyXG5cdFx0OS4yNS4gVHdpdHRlciBTdHJpcGUgLyAuY21zbWFzdGVyc190d2l0dGVyX3dyYXBcclxuXHRcdDkuMjYuIERyb3BjYXAgLyAuY21zbWFzdGVyc19kcm9wY2FwXHJcblx0XHQ5LjI3LiBDbGllbnRzIC8gLmNtc21hc3RlcnNfY2xpZW50c19zbGlkZXJcclxuXHQxMC5cdFdpZGdldHMgU3R5bGVzIC8gLndpZGdldFxyXG5cdFx0MTAuMS4gV2lkZ2V0IEFkdmVydGlzZW1lbnQgLyAud2lkZ2V0X2N1c3RvbV9hZHZlcnRpc2VtZW50X2VudHJpZXNcclxuXHRcdDEwLjIuIFdpZGdldCBMaXN0c1xyXG5cdFx0XHQxMC4yLjEuIFdpZGdldCBQYWdlcyAvIC53aWRnZXRfcGFnZXNcclxuXHRcdFx0MTAuMi4yLiBXaWRnZXQgQ2F0ZWdvcmllcyAvIC53aWRnZXRfY2F0ZWdvcmllc1xyXG5cdFx0XHQxMC4yLjMuIFdpZGdldCBBcmNoaXZlIC8gLndpZGdldF9hcmNoaXZlXHJcblx0XHRcdDEwLjIuNC4gV2lkZ2V0IE1ldGEgLyAud2lkZ2V0X21ldGFcclxuXHRcdFx0MTAuMi41LiBXaWRnZXQgUmVjZW50IENvbW1lbnRzIC8gLndpZGdldF9yZWNlbnRfY29tbWVudHNcclxuXHRcdFx0MTAuMi42LiBXaWRnZXQgUmVjZW50IEVudHJpZXMgLyAud2lkZ2V0X3JlY2VudF9lbnRyaWVzXHJcblx0XHQxMC4zLiBXaWRnZXQgQ2FsZW5kYXIgLyAjd3AtY2FsZW5kYXJcclxuXHRcdDEwLjQuIFdpZGdldCBDb250YWN0IEZvcm0gLyAud2lkZ2V0X2N1c3RvbV9jb250YWN0X2Zvcm1fZW50cmllc1xyXG5cdFx0MTAuNS4gV2lkZ2V0IENvbnRhY3QgSW5mbyAvIC53aWRnZXRfY3VzdG9tX2NvbnRhY3RfaW5mb19lbnRyaWVzXHJcblx0XHQxMC42LiBXaWRnZXQgQ3VzdG9tIE1lbnUgLyAud2lkZ2V0X25hdl9tZW51XHJcblx0XHQxMC43LiBXaWRnZXQgRmFjZWJvb2sgLyAud2lkZ2V0X2N1c3RvbV9mYWNlYm9va19lbnRyaWVzXHJcblx0XHQxMC44LiBXaWRnZXQgRmxpY2tyIC8gLndpZGdldF9jdXN0b21fZmxpY2tyX2VudHJpZXNcclxuXHRcdDEwLjkuIFdpZGdldCBMYXRlc3QgYW5kIFBvcHVsYXIgUHJvamVjdHNcclxuXHRcdFx0MTAuOS4xLiBXaWRnZXQgTGF0ZXN0IFByb2plY3RzIC8gLndpZGdldF9jdXN0b21fcG9wdWxhcl9wcm9qZWN0c19lbnRyaWVzXHJcblx0XHRcdDEwLjkuMi4gV2lkZ2V0IFBvcHVsYXIgUHJvamVjdHMgLyAud2lkZ2V0X2N1c3RvbV9sYXRlc3RfcHJvamVjdHNfZW50cmllc1xyXG5cdFx0MTAuMTAuIFdpZGdldCBQb3N0cyBUYWJzIC8gLndpZGdldF9jdXN0b21fcG9zdHNfdGFic19lbnRyaWVzXHJcblx0XHQxMC4xMS4gV2lkZ2V0IFJTUyAvIC53aWRnZXRfcnNzXHJcblx0XHQxMC4xMi4gV2lkZ2V0IFRhZyBDbG91ZCAvIC53aWRnZXRfdGFnX2Nsb3VkXHJcblx0XHQxMC4xMy4gV2lkZ2V0IFR3aXR0ZXIgLyAud2lkZ2V0X2N1c3RvbV90d2l0dGVyX2VudHJpZXNcclxuXHQxMS4gU2VhcmNoICsgQXJjaGl2ZXMgKyBTaXRlbWFwICsgRXJyb3IgKyBPdGhlciBTdHlsZXNcclxuXHRcdDExLjEuIEFyY2hpdmVzICsgU2VhcmNoXHJcblx0XHRcdDExLjEuMS4gQXJjaGl2ZXMgLyAuY21zbWFzdGVyc19hcmNoaXZlXHJcblx0XHRcdDExLjEuMi4gU2VhcmNoIC8gLmNtc21hc3RlcnNfc2VhcmNoXHJcblx0XHQxMS4yLiBTaXRlbWFwIC8gLmNtc21hc3RlcnNfc2l0ZW1hcF93cmFwXHJcblx0XHQxMS4zLiBFcnJvciAvIC5lcnJvclxyXG5cdFx0MTEuNC4gQXR0YWNobWVudCBQYWdlIC8gLmNtc21hc3RlcnNfYXR0YWNoX2ltZ1xyXG5cdFx0MTEuNS4gT3RoZXJcclxuXHQxMi5cdENvbnRhY3QgRm9ybXMgU3R5bGVzXHJcblx0XHQxMi4xLiBGb3JtIEJ1aWxkZXIgLyAuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXJcclxuXHRcdDEyLjIuIENvbnRhY3QgRm9ybSA3IC8gLndwY2Y3XHJcblx0MTMuXHRDU1MzIEFuaW1hdGlvbnMgLyAuY3NzdHJhbnNpdGlvbnNcclxuXHRcdDEzLjEuIEN1c3RvbSBBbmltYXRpb25zXHJcblx0XHQxMy4yLiBHbG9iYWwgQW5pbWF0aW9uc1xyXG5cclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5AaW1wb3J0IFwiZ2VuZXJhbC5sZXNzXCI7XHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogR2xvYmFsbHkgQXBwbGllZCBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbmJvZHkge1xyXG5cdHRleHQtYWxpZ246bGVmdDtcclxufVxyXG5cclxuZGl2IHtcclxuXHR0ZXh0LWFsaWduOmxlZnQ7XHJcbn1cclxuXHJcbnAge1xyXG5cdHBhZGRpbmc6MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0bWFyZ2luOjA7XHJcbn1cclxuXHJcbmgxLCBcclxuaDIsIFxyXG5oMywgXHJcbmg0LCBcclxuaDUsIFxyXG5oNiB7XHJcblx0cGFkZGluZzowO1xyXG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxuaDEgYSwgXHJcbmgyIGEsIFxyXG5oMyBhLCBcclxuaDQgYSwgXHJcbmg1IGEsIFxyXG5oNiBhIHtcclxuXHRmb250LWZhbWlseTppbmhlcml0O1xyXG5cdGZvbnQtc2l6ZTppbmhlcml0O1xyXG5cdGZvbnQtd2VpZ2h0OmluaGVyaXQ7XHJcblx0Zm9udC1zdHlsZTppbmhlcml0O1xyXG5cdGxpbmUtaGVpZ2h0OmluaGVyaXQ7XHJcbn1cclxuXHJcbnVsLFxyXG5vbCB7XHJcblx0bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG51bCB7XHJcblx0LmRlZmF1bHRfbGlzdCgpO1xyXG59XHJcblxyXG5vbCB7XHJcbiAgbGlzdC1zdHlsZS10eXBlOmRlY2ltYWwtbGVhZGluZy16ZXJvO1xyXG59XHJcblxyXG51bCBsaSxcclxub2wgbGkge1xyXG5cdHBhZGRpbmc6QGRlZmF1bHRfbGlzdF90b3BfcGFkIDAgMDtcclxufVxyXG5cclxudWwgbGk6Zmlyc3QtY2hpbGQsXHJcbm9sIGxpOmZpcnN0LWNoaWxkIHtcclxuICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxudWwgdWwsXHJcbm9sIHVsLFxyXG51bCBvbCxcclxub2wgb2wge1xyXG5cdG1hcmdpbjowIDAgMCBAZGVmYXVsdF9saXN0X2xlZnRfcGFkO1xyXG5cdHBhZGRpbmc6QGRlZmF1bHRfbGlzdF90b3BfcGFkIDAgMDtcclxufVxyXG5cclxuLmVzZy1ncmlkIHtcclxuXHR1bCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LmRuO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5pZnJhbWUge1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxuYWRkcmVzcyB7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5wcmUge1xyXG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxuZGQge1xyXG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxuYmxvY2txdW90ZSB7XHJcblx0LmRlZmF1bHRfYmxvY2txdW90ZSgpO1xyXG59XHJcblxyXG50YWJsZSB7XHJcblx0LmRlZmF1bHRfdGFibGUoKTtcclxufVxyXG5cclxuLnBscy1jb250YWluZXIsXHJcbi5wbHMtY29udGFpbmVyIHRhYmxlLFxyXG4uY21zbWFzdGVyc190YWJsZSxcclxuLnRyaWJlLW1pbmktY2FsZW5kYXIsXHJcbi50cmliZS1ldmVudHMtY2FsZW5kYXIsXHJcbi5zaG9wX3RhYmxlLFxyXG4uZ3JvdXBfdGFibGUsXHJcbi52YXJpYXRpb25zLFxyXG4uc2hvcF9hdHRyaWJ1dGVzIHtcclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbkB7aW5wdXRfdGV4dH0sXHJcbnRleHRhcmVhLFxyXG5vcHRpb24ge1xyXG5cdHBhZGRpbmc6QGlucHV0X3BhZDtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHQuYmQ7XHJcbn1cclxuXHJcbkB7aW5wdXRfdGV4dH0ge1xyXG5cdGhlaWdodDpAaW5wdXRfaGVpZ2h0O1xyXG5cdHBhZGRpbmc6QGlucHV0X3BhZCAyNXB4O1xyXG5cdC5iZHJzKEBiZHJzX3dpZHRoKTtcclxufVxyXG5cclxudGV4dGFyZWEge1xyXG5cdHBhZGRpbmc6MTVweCAyNXB4O1xyXG5cdG92ZXJmbG93OmF1dG87XHJcblx0bWluLWhlaWdodDoxMzVweDtcclxuXHRoZWlnaHQ6MTM1cHg7XHJcbn1cclxuXHJcbnNlbGVjdCB7XHJcblx0LmRlZmF1bHRfc2VsZWN0KCk7XHJcbn1cclxuXHJcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5zZWxlY3RbbXVsdGlwbGVdIHtcclxuXHRoZWlnaHQ6YXV0bztcclxuXHRiYWNrZ3JvdW5kLWltYWdlOm5vbmU7XHJcblx0XHJcblx0b3B0aW9uIHtcclxuXHRcdHBhZGRpbmctbGVmdDowO1xyXG5cdFx0cGFkZGluZy1yaWdodDowO1xyXG5cdFx0YmFja2dyb3VuZDpub25lICFpbXBvcnRhbnQ7XHJcblx0fVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPXRleHRdLFxyXG5pbnB1dFt0eXBlPXNlYXJjaF0sXHJcbmlucHV0W3R5cGU9cGFzc3dvcmRdLFxyXG5pbnB1dFt0eXBlPWVtYWlsXSxcclxuaW5wdXRbdHlwZT10ZWxdLFxyXG5pbnB1dFt0eXBlPXVybF0sXHJcbmlucHV0W3R5cGU9bnVtYmVyXSxcclxuaW5wdXRbdHlwZT1kYXRlXSxcclxudGV4dGFyZWEge1xyXG5cdC13ZWJraXQtYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tb3otYXBwZWFyYW5jZTpub25lO1xyXG5cdGFwcGVhcmFuY2U6bm9uZTtcclxufVxyXG5cclxudGV4dGFyZWEge1xyXG5cdC5iZHJzKDE1cHgpO1xyXG5cdC5vdmg7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJkYXRlXCJdOjotd2Via2l0LWNsZWFyLWJ1dHRvbiB7XHJcbiAgICBkaXNwbGF5Om5vbmU7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJkYXRlXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsgXHJcbiAgICBkaXNwbGF5Om5vbmU7XHJcbn1cclxuXHJcbkB7aW5wdXRfdGV4dH06Zm9jdXMsXHJcbnRleHRhcmVhOmZvY3VzIHtcclxuXHRvdXRsaW5lOm5vbmU7XHJcbn1cclxuXHJcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xyXG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YXV0b2ZpbGw7XHJcblx0LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9c3VibWl0XSwgXHJcbmlucHV0W3R5cGU9YnV0dG9uXSwgXHJcbmJ1dHRvbiB7XHJcblx0bWF4LXdpZHRoOjEwMCU7XHJcblx0Y3Vyc29yOnBvaW50ZXI7XHJcbn1cclxuXHJcbm9wdGlvbiB7XHJcblx0b3V0bGluZTpub25lO1xyXG59XHJcblxyXG4uamV0cGFja19zdWJzY3JpcHRpb25fd2lkZ2V0ICNzdWJzY3JpYmUtZW1haWwgQHtpbnB1dF90ZXh0fSxcclxuLndpZGdldF93eXNpamEgQHtpbnB1dF90ZXh0fSB7XHJcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xyXG5cdHBhZGRpbmc6QGlucHV0X3BhZCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ud2lkZ2V0X3d5c2lqYV9jb250IC53eXNpamEtc3VibWl0IHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG5cdG1hcmdpbjowICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi53aWRnZXRfd3lzaWphIHtcclxuXHQud2lkZ2V0X3d5c2lqYV9jb250IHtcclxuXHRcdHAge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdGxhYmVsIHtcclxuXHRcdFx0XHRwYWRkaW5nOjAgMCAxMXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5mb3JtRXJyb3Ige1xyXG5cdFx0XHRtYXJnaW46MCAwIDhweCFpbXBvcnRhbnQ7XHJcblx0XHRcdHRvcDphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdGJvdHRvbToxMDAlICFpbXBvcnRhbnQ7XHJcblx0XHRcdGxlZnQ6MCAhaW1wb3J0YW50O1xyXG5cdFx0XHRyaWdodDphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uc2luZ2xlLnNpbmdsZS13eXNpamFwIC5jbXNtYXN0ZXJzX29wZW5fcG9zdCB7XHJcblx0PiAqIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG4uZ2Zvcm1fd3JhcHBlciBAe2lucHV0X3RleHR9LFxyXG4uZ2Zvcm1fd3JhcHBlciB0ZXh0YXJlYSB7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5nZm9ybV93cmFwcGVyIHNlbGVjdCB7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkICFpbXBvcnRhbnQ7XHJcblx0bWFyZ2luOjAgIWltcG9ydGFudDtcclxufVxyXG5cclxubmF2IHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdHVsIHsgLyogY2xlYXIgdWwgc3R5bGVzICovXHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQ+IGRpdiB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdD4gZGl2ID4gdWwge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6MjAyO1xyXG5cdFx0em9vbToxO1xyXG5cdFx0XHJcblx0XHR1bCB7XHJcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdFx0d2lkdGg6QG1pZF9uYXZfZHJvcGRvd25fd2lkdGg7XHJcblx0XHRcdG1hcmdpbjpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XHJcblx0XHRcdHBhZGRpbmc6QG1pZF9uYXZfZHJvcGRvd25fcGFkX3RvcCAwIEBtaWRfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XHJcblx0XHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MTAwJTtcclxuXHRcdFx0ei1pbmRleDoyMDM7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0LmJkKDFweCwgZGFzaGVkKTtcclxuXHRcdFx0LmJkcnMoMTVweCk7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGVyX3RvcCAmIHtcclxuXHRcdFx0XHR3aWR0aDpAdG9wX25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRtYXJnaW46QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdHBhZGRpbmc6QHRvcF9uYXZfZHJvcGRvd25fcGFkX3RvcCAwIEB0b3BfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdHdpZHRoOkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoO1xyXG5cdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XHJcblx0XHRcdFx0cGFkZGluZzpAYm90X25hdl9kcm9wZG93bl9wYWRfdG9wIDAgQGJvdF9uYXZfZHJvcGRvd25fcGFkX2JvdDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgMCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0O1xyXG5cdFx0XHRcdGxlZnQ6MTAwJTtcclxuXHRcdFx0XHR0b3A6LShAbWlkX25hdl9kcm9wZG93bl9wYWRfdG9wICsgMSk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDtcclxuXHRcdFx0XHRcdHRvcDotKEB0b3BfbmF2X2Ryb3Bkb3duX3BhZF90b3AgKyAxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDtcclxuXHRcdFx0XHRcdHRvcDotKEBib3RfbmF2X2Ryb3Bkb3duX3BhZF90b3AgKyAxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkubWVudS1pdGVtLWRyb3Bkb3duLXJpZ2h0IHtcclxuXHRcdFx0LnRhcjtcclxuXHRcdFx0XHJcblx0XHRcdCoge1xyXG5cdFx0XHRcdC50YXI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdHVsIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIEBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdFx0cmlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0bWFyZ2luOkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdFx0XHRvcGFjaXR5OjE7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kIDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRcdGhlaWdodDpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdHRvcDotKEBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDotKEB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcclxuXHRcdFx0XHRcdG1hcmdpbjpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xyXG5cdFx0XHRcdFx0b3BhY2l0eToxO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0dG9wOi0oQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0dWwge1xyXG5cdFx0XHRcdFx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdFx0XHRcdG9wYWNpdHk6MTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxpOmhvdmVyIHtcclxuXHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFx0XHRsZWZ0Oi0oQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6LShAdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0Oi0oQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5tZW51LWl0ZW0tZHJvcGRvd24tcmlnaHQge1xyXG5cdFx0XHRcdGxpOmhvdmVyIHtcclxuXHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MCBAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6LShAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmlnaHQ6LShAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR6LWluZGV4OjIwMztcclxuXHRcdFx0XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdHotaW5kZXg6MjA0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDoyMDQ7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5tZW51LWl0ZW0tbWVnYS1kZXNjcmlwdGlvbi1jb250YWluZXIge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOjEwcHggMTVweDtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm5hdl90aXRsZSB7XHJcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSB7XHJcblx0XHRcdFx0bWFyZ2luOjAgLjVlbSAwIDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm1lbnUtaXRlbS1oaWRlLXRleHQge1xyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdC5uYXZfdGl0bGUge1xyXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIC4zZW07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOm5vdCgubWVudS1pdGVtLWljb24pIHtcclxuXHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHQuYmRyO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmRyKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRsaSB7XHJcblx0XHRcdFx0LmJkYjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0LmJkYigwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkubWVudS1pdGVtLW1lZ2EgdWwge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdFx0XHRib3JkZXI6MDtcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0dG9wOmF1dG87XHJcblx0XHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0XHR6LWluZGV4OjIwMztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0ZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdG1hcmdpbjpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XHJcblx0XHRcdHBhZGRpbmc6MjBweCAxMHB4IDMwcHg7XHJcblx0XHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MTAwJTtcclxuXHRcdFx0ei1pbmRleDoyMDM7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0LmJkKDFweCwgZGFzaGVkKTtcclxuXHRcdFx0LmJkcnMoMTVweCk7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRkaXNwbGF5OnRhYmxlO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MCA1cHg7XHJcblx0XHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6aG92ZXIgPiB1bCB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0YTplbXB0eSB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpLm1lbnUtaXRlbS1tZWdhLWZ1bGx3aWR0aCB7XHJcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkgYSwgXHJcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkgdWwge1xyXG5cdFx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYubWVudS1pdGVtLW1lZ2EtY29scy10d28gPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XHJcblx0XHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtdGhyZWUgPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XHJcblx0XHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtZm91ciA+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIHtcclxuXHRcdFx0XHR3aWR0aDoyNSU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYubWVudS1pdGVtLW1lZ2EtY29scy1maXZlID4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkge1xyXG5cdFx0XHRcdHdpZHRoOjIwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmZ1bGwtd2lkdGgge1xyXG5cdG1pbi13aWR0aDoxMDAlO1xyXG59XHJcblxyXG5hdWRpby5mdWxsLXdpZHRoIHtcclxuXHR3aWR0aDoxMDAlO1xyXG59XHJcblxyXG4uYWxpZ25sZWZ0LCBcclxuLmZsIHtcclxuXHQuZmw7XHJcbn1cclxuXHJcbi5hbGlnbnJpZ2h0LCBcclxuLmZyIHtcclxuXHQuZnI7XHJcbn1cclxuXHJcbi5hbGlnbmNlbnRlciB7XHJcblx0LnRhYztcclxufVxyXG5cclxuLmFsaWduY2VudGVyLFxyXG4uYWxpZ25ub25lIHtcclxuXHRjbGVhcjpib3RoO1xyXG59XHJcblxyXG5pbWcge1xyXG5cdCYuYWxpZ25sZWZ0LCBcclxuXHQmLmZsIHtcclxuXHRcdG1hcmdpbi1yaWdodDpAYmxvY2tzX2hvcl9wYWQ7XHJcblx0XHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0fVxyXG5cdFxyXG5cdCYuYWxpZ25yaWdodCwgXHJcblx0Ji5mciB7XHJcblx0XHRtYXJnaW4tbGVmdDpAYmxvY2tzX2hvcl9wYWQ7XHJcblx0XHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0fVxyXG5cdFxyXG5cdCYuYWxpZ25jZW50ZXIge1xyXG5cdFx0bWFyZ2luOjAgYXV0byBAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHR9XHJcblx0XHJcblx0Ji5hbGlnbm5vbmUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdH1cclxufVxyXG5cclxuLmRuIHtcclxuXHQuZG47XHJcbn1cclxuXHJcbi50YWwsIFxyXG4udGFfbGVmdCB7XHJcblx0LnRhbDtcclxufVxyXG5cclxuLnRhYywgXHJcbi50YV9jZW50ZXIge1xyXG5cdC50YWM7XHJcbn1cclxuXHJcbi50YXIsIFxyXG4udGFfcmlnaHQge1xyXG5cdC50YXI7XHJcbn1cclxuXHJcbi5jbCwgXHJcbi5jbGVhciB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHQuY2w7XHJcbn1cclxuXHJcbi5vdmgge1xyXG5cdC5vdmg7XHJcbn1cclxuXHJcbi5sb3dfY2FzZSB7XHJcblx0dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO1xyXG59XHJcblxyXG4udXBfY2FzZSB7XHJcblx0dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yZXNwb25zaXZlX3dpZHRoIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOmF1dG87XHJcblx0dmlzaWJpbGl0eTpoaWRkZW47XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NvbHVtbiB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0bWluLWhlaWdodDoxcHg7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NvbHVtbl9zdGlja3kge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHRvcDowO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb2x1bW5faW5uZXIge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0bWluLWhlaWdodDoxcHg7XHJcbn1cclxuXHJcbi5vbmVfZmlyc3QsIFxyXG4ub25lX2hhbGYsIFxyXG4ub25lX3RoaXJkLCBcclxuLnR3b190aGlyZCwgXHJcbi5vbmVfZm91cnRoLCBcclxuLnRocmVlX2ZvdXJ0aCwgXHJcbi5vbmVfZmlmdGgsIFxyXG4ub25lX3NpeHRoIHtcclxuXHRtYXJnaW46MCBAY29sX21hcjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuZmw7XHJcbn1cclxuXHJcbi5vbmVfc2l4dGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9zaXh0aCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyA2KSwgMik7XHJcbn1cclxuXHJcbi5vbmVfZmlmdGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9maWZ0aCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyA1KSwgMik7XHJcbn1cclxuXHJcbi5vbmVfZm91cnRoIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfZm91cnRoIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpLCAyKTtcclxufVxyXG5cclxuLm9uZV90aGlyZCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93X25vX21hcmdpbiA+IC5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4gPiAub25lX3RoaXJkIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpLCAyKTtcclxufVxyXG5cclxuLm9uZV9oYWxmIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfaGFsZiB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSwgMik7XHJcbn1cclxuXHJcbi50d29fdGhpcmQge1xyXG5cdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDIpIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLnR3b190aGlyZCB7XHJcblx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSwgMik7XHJcbn1cclxuXHJcbi50aHJlZV9mb3VydGgge1xyXG5cdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDMpIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLnRocmVlX2ZvdXJ0aCB7XHJcblx0d2lkdGg6cm91bmQoKCgxMDAlICogMykgLyA0KSwgMik7XHJcbn1cclxuXHJcbi5vbmVfZmlyc3Qge1xyXG5cdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0ZmxvYXQ6bm9uZTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuY2w7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9maXJzdCB7XHJcblx0d2lkdGg6cm91bmQoMTAwJSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4ge1xyXG5cdCYuY21zbWFzdGVyc19yb3dfY29sdW1uc19iZWhhdmlvciB7XHJcblx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0LmZsZXhfd3JhcCh3cmFwKTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzXzEzMTMxMyB7XHJcblx0XHRcdHdpZHRoOjk5Ljk5JTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfY29sdW1uIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcclxuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0XHRcdC5mbGV4X2RpcmVjdGlvbihjb2x1bW4pO1xyXG5cdFx0XHRcdC5hbGlnbl9jb250ZW50KGZsZXgtc3RhcnQpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IC5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrIHtcclxuXHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnNhZmFyaV9vbmx5ICYsIFxyXG5cdFx0XHQuc2FmYXJpX21vYmlsZV9vbmx5ICYge1xyXG5cdFx0XHRcdC5kaXNwbGF5X2ZsZXg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcclxuXHRcdFx0XHRcdG1pbi13aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHQuZmxleF9kaXJlY3Rpb24ocm93KTtcclxuXHRcdFx0XHRcdC5mbGV4X3dyYXAod3JhcCk7XHJcblx0XHRcdFx0XHQuYWxpZ25fY29udGVudChmbGV4LXN0YXJ0KTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiAuY21zbWFzdGVyc19mZWF0dXJlZF9ibG9jayB7XHJcblx0XHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuW2RhdGEtYW5pbWF0aW9uXSB7XHJcblx0Lm9wKDApO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRpb25dLmFuaW1hdGVkIHtcclxuXHQub3AoMSk7XHJcbn1cclxuXHJcbiNwYWdlIHtcclxuXHQmLmNtc21hc3RlcnNfYm94ZWQge1xyXG5cdFx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmICsgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0bWFyZ2luOjAgYXV0bztcclxuXHRcdFxyXG5cdFx0I2hlYWRlciwgXHJcblx0XHQjZm9vdGVyIHtcclxuXHRcdFx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmICsgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuI3BhZ2UsIFxyXG4jbWFpbiwgXHJcbiNtaWRkbGUsIFxyXG4ubWlkZGxlX2NvbnRlbnQsIFxyXG4jYm90dG9tLCBcclxuI2Zvb3RlciwgXHJcbi5oZWFkbGluZSwgXHJcbi5oZWFkbGluZV9vdXRlciwgXHJcbi5taWRkbGVfaW5uZXIsIFxyXG4uY21zbWFzdGVyc19yb3csIFxyXG4uY21zbWFzdGVyc19yb3dfb3V0ZXIsIFxyXG4uY21zbWFzdGVyc19yb3dfb3V0ZXJfcGFyZW50IHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG59XHJcblxyXG4ucG9zdC1wYXNzd29yZC1mb3JtLFxyXG4uaGVhZGVyX3RvcF9pbm5lciwgXHJcbi5oZWFkZXJfbWlkX2lubmVyLCBcclxuLmhlYWRlcl9ib3RfaW5uZXIsIFxyXG4uY29udGVudF93cmFwLCBcclxuLmhlYWRsaW5lX2lubmVyLCBcclxuLmJvdHRvbV9vdXRlciwgXHJcbi5mb290ZXJfaW5uZXIsIFxyXG4uY21zbWFzdGVyc19yb3dfaW5uZXIge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHdpZHRoOkBjb250X3dpZHRoX2RlZjtcclxuXHRwYWRkaW5nOjAgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdC5tMGE7XHJcbn1cclxuXHJcbi5jb250ZW50X3dyYXAgLnBvc3QtcGFzc3dvcmQtZm9ybSB7XHJcblx0d2lkdGg6YXV0bztcclxuXHRwYWRkaW5nOjA7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3JvdyB7XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfZGVmYXVsdC5jbXNtYXN0ZXJzX3Jvd19ib3RfZGVmYXVsdCB7XHJcblx0XHR6LWluZGV4OjA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX2xlZnRfZGlhZ29uYWw6YmVmb3JlLCBcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF9sZWZ0X2RpYWdvbmFsOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7XHJcblx0XHR3aWR0aDoxNTAlO1xyXG5cdFx0aGVpZ2h0OjE1MHB4O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OmF1dG87XHJcblx0XHRyaWdodDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRib3R0b206YXV0bztcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7XHJcblx0XHQtbW96LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO1xyXG5cdFx0LW1zLXRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO1xyXG5cdFx0dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X2xlZnRfZGlhZ29uYWw6YWZ0ZXIge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206MDtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX3JpZ2h0X2RpYWdvbmFsOmJlZm9yZSwgXHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfcmlnaHRfZGlhZ29uYWw6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDtcclxuXHRcdHdpZHRoOjE1MCU7XHJcblx0XHRoZWlnaHQ6MTUwcHg7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHJpZ2h0OmF1dG87XHJcblx0XHR0b3A6MDtcclxuXHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7XHJcblx0XHQtbW96LXRyYW5zZm9ybS1vcmlnaW46MCAwO1xyXG5cdFx0LW1zLXRyYW5zZm9ybS1vcmlnaW46MCAwO1xyXG5cdFx0dHJhbnNmb3JtLW9yaWdpbjowIDA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3JpZ2h0X2RpYWdvbmFsOmFmdGVyIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjA7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdHRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX3ppZ3phZzpiZWZvcmUsIFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3ppZ3phZzphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOjEwcHggNXB4O1xyXG5cdFx0aGVpZ2h0OjVweDtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHJpZ2h0OjA7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbToxMDAlO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF96aWd6YWc6YWZ0ZXIge1xyXG5cdFx0dG9wOjEwMCU7XHJcblx0XHRib3R0b206YXV0bztcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X3RvcF90cmlhbmdsZTpiZWZvcmUsIFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3RyaWFuZ2xlOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7XHJcblx0XHR6LWluZGV4OjE7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0LnBvc19hYnMoMzBweCwgMzBweCwgMCwgMCwgLTE1cHgsIGF1dG8pO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF90cmlhbmdsZTphZnRlciB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbTotMTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcm93X291dGVyX3BhcmVudCB7XHJcblx0XHRwYWRkaW5nOi4xcHggMDtcclxuXHRcdHotaW5kZXg6MjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcm93X2lubmVyIHtcclxuXHRcdCYuY21zbWFzdGVyc19yb3dfZnVsbHdpZHRoIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0cGFkZGluZzowIEBibG9ja3NfaG9yX3BhZCAqIDI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luIHtcclxuXHRcdFx0PiAuY21zbWFzdGVyc19yb3dfbWFyZ2luIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IC5jbXNtYXN0ZXJzX2NvbHVtbiB7XHJcblx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcm93X292ZXJsYXkge1xyXG5cdFx0LmZ1bGx3aWR0aF9pbl9ibG9jaztcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4ge1xyXG5cdG1hcmdpbjowIC1AY29sX21hciAtIDAuMDc7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250ZW50X3dyYXAge1xyXG5cdCYucl9zaWRlYmFyLCBcclxuXHQmLmxfc2lkZWJhciwgXHJcblx0Lm9wZW5lZC1hcnRpY2xlLCBcclxuXHQuY21zbWFzdGVyc190YWJzIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3JvdyB7XHJcblx0XHRcdC5jdGJ4O1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfcm93X2lubmVyIHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcC5jbXNtYXN0ZXJzX3NldF9mdWxsd2lkdGgge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cGFkZGluZzowO1xyXG59XHJcblxyXG4jcGFnZSwgXHJcbiNtaWRkbGUsIFxyXG4ubWlkZGxlX2lubmVyLCBcclxuLm1pZGRsZV9jb250ZW50LCBcclxuI2JvdHRvbSwgXHJcbi5ib3R0b21fYmcsIFxyXG4uY29udGVudF93cmFwLCBcclxuLmNtc21hc3RlcnNfcm93X2lubmVyLCBcclxuLmNtc21hc3RlcnNfcm93X21hcmdpbiwgXHJcbi5jbXNtYXN0ZXJzX2NvbHVtbl9pbm5lciB7XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG59XHJcblxyXG4jbWlkZGxlIHtcclxuXHR6LWluZGV4OjE7XHJcbn1cclxuXHJcbi5taWRkbGVfY29udGVudCB7XHJcblx0cGFkZGluZzpAY29udF92ZXJ0X3BhZCAwIDEwMHB4O1xyXG59XHJcblxyXG4ubWlkZGxlX2NvbnRlbnQ6ZW1wdHkge1xyXG5cdC5kbjtcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG5cdHdpZHRoOkBjb250ZW50X3dpZHRoO1xyXG5cdHBhZGRpbmc6QGNvbnRfdmVydF9wYWQgMCAxMDBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuZmw7XHJcblx0XHJcblx0Ji5mciB7XHJcblx0XHQuZnI7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhciB7XHJcblx0d2lkdGg6QHNpZGViYXJfd2lkdGg7XHJcblx0cGFkZGluZzpAY29udF92ZXJ0X3BhZCAwIEBjb250X3ZlcnRfcGFkIEBjb250X3NpZGViYXJfcGFkO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5mcjtcclxuXHRcclxuXHQmLmZsIHtcclxuXHRcdHBhZGRpbmc6QGNvbnRfdmVydF9wYWQgQGNvbnRfc2lkZWJhcl9wYWQgQGNvbnRfdmVydF9wYWQgMDtcclxuXHRcdC5mbDtcclxuXHR9XHJcbn1cclxuXHJcbi5ib3R0b21fYmcge1xyXG5cdC5ib3R0b21faW5uZXIge1xyXG5cdFx0cGFkZGluZy10b3A6OTBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOjEwcHg7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uYm90dG9tX2lubmVyIHtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHJcblx0YXNpZGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRmbG9hdDpsZWZ0O1xyXG5cdFx0bWFyZ2luOjAgQGNvbF9tYXI7XHJcblx0fVxyXG59XHJcblxyXG4vKiBJbnN0YWdyYW0gKi9cclxuI3NiaV9sb2FkIHtcclxuXHRwYWRkaW5nLXRvcDowICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSWNvbnMgKioqKioqKioqKioqKioqKioqL1xyXG4vKiBHbG9iYWwgKi9cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jb21tZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OGEnOyBmb250LWZhbWlseTonZm9udGVsbG8tY3VzdG9tJyAhaW1wb3J0YW50OyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fbGlrZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODlmJzsgIGZvbnQtZmFtaWx5Oidmb250ZWxsby1jdXN0b20nICFpbXBvcnRhbnQ7IH1cclxuLmNtc21hc3RlcnNfaWNvbl9jdXN0b21fc2VhcmNoOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YTknOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY2FuY2VsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGVhYmMnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcmVzcF9uYXY6YmVmb3JlIHsgY29udGVudDogJ1xcZTkyNSc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9wZXJzb246YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMyc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9pbWFnZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODdlJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX2NoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGVhYmInOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc3Bpbm5lcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlOWZkJzsgfVxyXG5cclxuLyogQXJyb3dzICovXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2xpZGVfcHJldjpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3BhZ2luYXRpb25fcHJldjpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX2NvbW1lbnRzX25hdl9wcmV2OmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzX3ByZXZfYXJyb3cgc3BhbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlYjIxJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX25leHQ6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9wYWdpbmF0aW9uX25leHQ6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jb21tZW50c19uYXZfbmV4dDpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc19uZXh0X2Fycm93IHNwYW46YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMic7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV90b3A6YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMyc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV9ib3R0b206YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMCc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9yZXNwX25hdl9zbGlkZV91cDpiZWZvcmUgeyBjb250ZW50OiAnXFxlYjIzJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2X3NsaWRlX2Rvd246YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMCc7IH1cclxuXHJcbi8qIFdpZGdldCBBZGQgSW5mbyAqL1xyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfbWFpbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg1JzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfd2Vic2l0ZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODM2JzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfcGhvbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNSc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl91c2VyX2FkZHJlc3M6YmVmb3JlIHsgY29udGVudDogJ1xcZTg5NSc7IH1cclxuXHJcbi8qIFR3aXR0ZXIgU3RyaXBlICovXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl90d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViOWEnOyB9XHJcblxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBFbGVtZW50cyAqKioqKioqKioqKioqKioqKiovXHJcbi8qIEljb24gQXJyb3cgR2xvYmFsIFN0eWxlcyAqL1xyXG4uY21zbWFzdGVyc19wcmV2X2Fycm93LCBcclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvdyB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0d2lkdGg6MjZweDtcclxuXHRoZWlnaHQ6MjZweDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW4ge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDo2cHg7XHJcblx0XHRoZWlnaHQ6MTBweDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6OXB4O1xyXG5cdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0c3BlYWs6bm9uZTtcclxuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtcclxuXHRcdFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBpeGVsIEFycm93IEdsb2JhbCBTdHlsZXMgKi9cclxuLmNtc21hc3RlcnNfcHJldl9hcnJvd19waXhlbCxcclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvd19waXhlbCB7XHJcblx0YmFja2dyb3VuZDojMDAwMDAwO1xyXG5cdC5wb3NfYWJzKDFweCwgMXB4LCAwLCBhdXRvKTtcclxuXHJcblx0JjpiZWZvcmUsIFxyXG5cdCY6YWZ0ZXIsIFxyXG5cdHNwYW46YmVmb3JlLCBcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR3aWR0aDoxcHg7XHJcblx0XHQuYmR0O1xyXG5cdFx0LmJkYjtcclxuXHR9XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0aGVpZ2h0OjNweDtcclxuXHRcdGxlZnQ6MXB4O1xyXG5cdFx0dG9wOi0xcHg7XHJcblx0fVxyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0aGVpZ2h0OjVweDtcclxuXHRcdGxlZnQ6MnB4O1xyXG5cdFx0dG9wOi0ycHg7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW46YmVmb3JlIHtcclxuXHRcdGhlaWdodDo3cHg7XHJcblx0XHRsZWZ0OjNweDtcclxuXHRcdHRvcDotM3B4O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGhlaWdodDo5cHg7XHJcblx0XHRsZWZ0OjRweDtcclxuXHRcdHRvcDotNHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvd19waXhlbCB7XHJcblx0cmlnaHQ6MDtcclxuXHRsZWZ0OmF1dG87XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6MXB4O1xyXG5cdH1cclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjJweDtcclxuXHR9XHJcblx0XHJcblx0c3BhbjpiZWZvcmUge1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6M3B4O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjRweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3RvcF9hcnJvd19waXhlbCwgXHJcbi5jbXNtYXN0ZXJzX2JvdF9hcnJvd19waXhlbCB7XHJcblx0YmFja2dyb3VuZDojMDAwMDAwO1xyXG5cdC5wb3NfYWJzKDFweCwgMXB4LCAwLCAwLCAtNHB4KTtcclxuXHJcblx0JjpiZWZvcmUsIFxyXG5cdCY6YWZ0ZXIsIFxyXG5cdHNwYW46YmVmb3JlLCBcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRoZWlnaHQ6MXB4O1xyXG5cdFx0LmJkbDtcclxuXHRcdC5iZHI7XHJcblx0fVxyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHR3aWR0aDozcHg7XHJcblx0XHR0b3A6MXB4O1xyXG5cdFx0bGVmdDotMXB4O1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHR3aWR0aDo1cHg7XHJcblx0XHR0b3A6MnB4O1xyXG5cdFx0bGVmdDotMnB4O1xyXG5cdH1cclxuXHJcblx0c3BhbjpiZWZvcmUge1xyXG5cdFx0d2lkdGg6N3B4O1xyXG5cdFx0dG9wOjNweDtcclxuXHRcdGxlZnQ6LTNweDtcclxuXHR9XHJcblxyXG5cdHNwYW46YWZ0ZXIge1xyXG5cdFx0d2lkdGg6OXB4O1xyXG5cdFx0dG9wOjRweDtcclxuXHRcdGxlZnQ6LTRweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2JvdF9hcnJvd19waXhlbCB7XHJcblx0dG9wOjRweDtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206MXB4O1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbToycHg7XHJcblx0fVxyXG5cclxuXHRzcGFuOmJlZm9yZSB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbTozcHg7XHJcblx0fVxyXG5cclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjRweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQb3N0IFBhc3N3b3JkIEZvcm0gKi9cclxuLnBvc3QtcGFzc3dvcmQtZm9ybSB7XHJcblx0cGFkZGluZy10b3A6NDBweDtcclxuXHRtYXJnaW4tdG9wOjEzcHg7XHJcblx0XHJcblx0bGFiZWwge1xyXG5cdFx0bWFyZ2luLXRvcDoxMHB4O1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjpib3R0b207XHJcblx0fVxyXG5cdFxyXG5cdGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcblx0XHR3aWR0aDoyMjBweDtcclxuXHRcdG1hcmdpbi10b3A6MjBweDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6MzBweCAwIDAgMzBweCAhaW1wb3J0YW50O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czozMHB4IDAgMCAzMHB4ICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cdFxyXG5cdGlucHV0W3R5cGU9c3VibWl0XSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowIDAgMCAtNHB4O1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0dmVydGljYWwtYWxpZ246Ym90dG9tO1xyXG5cdFx0LmJkcnMoMCAzMHB4IDMwcHggMCk7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogUHJlbG9kYWVyICovXHJcbi5wcmVsb2FkZXIge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MDtcclxuXHRwYWRkaW5nLWJvdHRvbTpAcmVzcF9ibG9ja3NfcGFkO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC50YWM7XHJcblx0XHJcblx0LmZ1bGwtd2lkdGgge1xyXG5cdFx0LmZ1bGx3aWR0aF9pbl9ibG9jaztcclxuXHR9XHJcblx0XHJcblx0Ji5oaWdoSW1nIHtcclxuXHRcdGhlaWdodDphdXRvO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHQuZnVsbC13aWR0aCB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0dG9wOmF1dG87XHJcblx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBSZXNpemFibGUgQmxvY2sgKi9cclxuLnJlc2l6YWJsZV9ibG9jayB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDowO1xyXG5cdHBhZGRpbmctYm90dG9tOkByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuZnVsbC13aWR0aCB7XHJcblx0XHQuZnVsbHdpZHRoX2luX2Jsb2NrO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIEltZyBXcmFwcGVyICovXHJcbi5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC50YWM7XHJcblx0Lm92aDtcclxuXHJcblx0LmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmhpZ2hJbWcge1xyXG5cdFx0LmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIEltZyBSb2xsb3ZlciAqL1xyXG4uY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cclxuXHQuaW1nX3BsYWNlaG9sZGVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjI0cHg7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmhpZ2hJbWcge1xyXG5cdFx0LmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHRcdC50YWM7XHJcblx0XHQub3AoMCk7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19vcGVuX2xpbmssIFxyXG5cdFx0LmNtc21hc3RlcnNfaW1hZ2VfbGluayB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Jjpob3ZlciB7XHJcblx0XHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xyXG5cdFx0XHQub3AoMSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogUGxhY2Vob2xkZXIgU21hbGwgKi9cclxuLmltZ19wbGFjZWhvbGRlcl9zbWFsbCB7XHJcblx0aGVpZ2h0OjYwcHg7XHJcblx0d2lkdGg6NjBweDtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGZvbnQtc2l6ZToxOHB4O1xyXG5cdFx0LnBvc19hYnM7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogVmlkZW8gV3JhcHBlciAqL1xyXG4ud3AtdmlkZW8tc2hvcnRjb2RlLCBcclxuLm1lanMtbGF5ZXIge1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG59XHJcblxyXG4ubWVqcy1jb250YWluZXIge1xyXG5cdCYud3AtdmlkZW8tc2hvcnRjb2RlLCBcclxuXHQmLndwLWF1ZGlvLXNob3J0Y29kZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0bWF4LXdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OjA7XHJcblx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdD4gZGl2IHtcclxuXHRcdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHR9XHJcblx0XHJcblx0aWZyYW1lIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRtYXgtd2lkdGg6YXV0bztcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHR9XHJcblx0XHJcblx0LndwLXZpZGVvLXNob3J0Y29kZSwgXHJcblx0Lm1lanMtbGF5ZXIge1xyXG5cdFx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xyXG5cdFx0aGVpZ2h0OjEwMCUgIWltcG9ydGFudDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRcclxuXHRcdC5tZWpzLW92ZXJsYXktYnV0dG9uIHtcclxuXHRcdFx0bWFyZ2luLXRvcDotNTBweCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNlYXJjaCBCYXIgKi9cclxuLnNlYXJjaF9iYXJfd3JhcCB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQuc2VhcmNoX2ZpZWxkIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0aW5wdXQge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0I21pZGRsZSAmLCBcclxuXHRcdFx0I2JvdHRvbSAmIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6MjBweDtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjU1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNlYXJjaF9idXR0b24ge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHQucG9zX2Ficyg1NXB4LCBhdXRvLCBhdXRvLCAxcHgsIDFweCwgMXB4KTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGJ1dHRvbiB7XHJcblx0XHRcdGJhY2tncm91bmQ6bm9uZTtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0XHQuYmRycygwIDMwcHggMzBweCAwKTtcclxuXHRcdFx0LmJ4c2hfbm9uZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRmb250LXNpemU6MThweDtcclxuXHRcdFx0XHQucG9zX2FicztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNvY2lhbCBJY29ucyAqL1xyXG4uc29jaWFsX3dyYXAge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0aGVpZ2h0OjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuc29jaWFsX3dyYXBfaW5uZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR1bCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdH1cclxuXHRcclxuXHRsaSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowIDVweCAwIDA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR3aWR0aDozMHB4O1xyXG5cdFx0aGVpZ2h0OjMwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogQ29yZSBPd2wgQ2Fyb3VzZWwgQ1NTIHYxLjMuMiAqL1xyXG4uY21zbWFzdGVyc19vd2xfc2xpZGVyOm5vdCgub3dsLWNhcm91c2VsKSB7XHJcblx0PiBkaXYge1xyXG5cdFx0d2lkdGg6MDtcclxuXHRcdGhlaWdodDowO1xyXG5cdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0fVxyXG59XHJcblxyXG4ub3dsLWNhcm91c2VsIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC1tcy10b3VjaC1hY3Rpb246cGFuLXk7XHJcblx0LmRuO1xyXG5cdFxyXG5cdC5vd2wtd3JhcHBlci1vdXRlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFxyXG5cdFx0Ji5hdXRvSGVpZ2h0IHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1tb3otdHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHQtbXMtdHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHQtby10cmFuc2l0aW9uOmhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdHRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcclxuXHRcdH1cclxuXHRcclxuXHRcdC5vd2wtd3JhcHBlciB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQuZG47XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50OicuJztcclxuXHRcdFx0XHRsaW5lLWhlaWdodDowO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdFx0LmNsO1xyXG5cdFx0XHR9XHJcblx0XHRcclxuXHRcdFx0Lm93bC1pdGVtIHtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm93bC13cmFwcGVyLCBcclxuXHRcdC5vd2wtaXRlbSB7XHJcblx0XHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuaWVfb25seSAmIHtcclxuXHRcdFx0Lm93bC13cmFwcGVyLCBcclxuXHRcdFx0Lm93bC1pdGVtIHtcclxuXHRcdFx0XHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtY29udHJvbHMge1xyXG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO1xyXG5cdFx0LWtodG1sLXVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQtbW96LXVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQtbXMtdXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdHVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwKTtcclxuXHR9XHJcbn1cclxuXHJcbi5vd2wtcGFnaW5hdGlvbiB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdGxlZnQ6MDtcclxuXHRib3R0b206MDtcclxuXHQudGFjO1xyXG5cdFxyXG5cdC5vd2wtcGFnZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOjEwcHg7XHJcblx0XHRoZWlnaHQ6MTBweDtcclxuXHRcdG1hcmdpbjowIDRweCAxcHg7XHJcblx0XHR0ZXh0LWluZGVudDotOTk5OXB4O1xyXG5cdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHQuYmQ7XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyLCBcclxuXHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdGN1cnNvcjpkZWZhdWx0O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLm93bC1idXR0b25zIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0bGVmdDowO1xyXG5cdHRvcDowO1xyXG5cdC50YWM7XHJcblx0XHJcblx0PiBkaXYge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MCAzcHg7XHJcblx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNsaWRlIFRvcCBCdXR0b24gKi9cclxuI3NsaWRlX3RvcCB7XHJcblx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0d2lkdGg6NTBweDtcclxuXHRoZWlnaHQ6NTBweDtcclxuXHRwb3NpdGlvbjpmaXhlZDtcclxuXHRib3R0b206ODVweDtcclxuXHRyaWdodDoyMHB4O1xyXG5cdHotaW5kZXg6OTk5OTk7XHJcblx0LmRuO1xyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6NTBweDtcclxuXHR9XHJcblx0XHJcblx0PiBzcGFuIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dGV4dC1pbmRlbnQ6LTk5OTlweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBPcGVuZWQgQXJ0aWNsZSAqL1xyXG4ub3BlbmVkLWFydGljbGUge1xyXG5cdCYuYmxvZyB7XHJcblx0XHQubWlkZGxlX2NvbnRlbnQgJiB7XHJcblx0XHRcdHBhZGRpbmc6MjBweCAxNyUgMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5wb3J0Zm9saW8ge1xyXG5cdFx0Lm1pZGRsZV9jb250ZW50ICYge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYucHJvZmlsZXMge1xyXG5cdFx0Lm1pZGRsZV9jb250ZW50ICYge1xyXG5cdFx0XHRwYWRkaW5nOjAgMjAlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIExpa2VzIGFuZCBDb21tZW50cyAqL1xyXG4uY21zbWFzdGVyc19saWtlcywgXHJcbi5jbXNtYXN0ZXJzX2NvbW1lbnRzIHtcclxuXHRhIHtcclxuXHRcdHBhZGRpbmc6MCAwIDAgMXB4O1xyXG5cdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHRcclxuXHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRtYXJnaW46MCAwIDAgNXB4O1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRmb250LXNpemU6MjBweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NvbW1lbnRzICsgLmNtc21hc3RlcnNfbGlrZXMsXHJcbi5jbXNtYXN0ZXJzX2xpa2VzICsgLmNtc21hc3RlcnNfY29tbWVudHMge1xyXG5cdHBhZGRpbmc6MCAwIDAgMTBweDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfbGlrZXMgYTpiZWZvcmUge1xyXG5cdGZvbnQtc2l6ZToxN3B4O1xyXG59XHJcblxyXG5cclxuLyogQnV0dG9uICovXHJcbi5idXR0b24sIFxyXG5pbnB1dFt0eXBlPXN1Ym1pdF0sIFxyXG5pbnB1dFt0eXBlPWJ1dHRvbl0sIFxyXG5idXR0b24ge1xyXG5cdC5kZWZhdWx0X2J1dHRvbigpO1xyXG59XHJcblxyXG5cclxuLyogSXRlbXMgRmlsdGVyICovXHJcbi5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl93cmFwIHtcclxuXHRwYWRkaW5nOjAgMCAzMHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaXRlbXNfc29ydF9ibG9jayB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luOjAgLTE1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX3NvcnRfYnV0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MCAxNXB4IDVweCAxNXB4O1xyXG5cdFx0cGFkZGluZzowIDAgMCAyNXB4O1xyXG5cdFx0LmJkKDApO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdC5wb3NfYWJzKDlweCwgMXB4LCAtM3B4LCBhdXRvKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHQucG9zX2Ficyg5cHgsIDFweCwgM3B4LCBhdXRvLCAwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5yZXZlcnNlZCB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl9ibG9jayB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl9idXQge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfbGlzdCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luOjAgNDBweCA1cHggMDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHQuZmw7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdFx0XHQuYmQoMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY3VycmVudCBhIHtcclxuXHRcdFx0XHRjdXJzb3I6ZGVmYXVsdDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIE1vcmUgSXRlbXMgTG9hZGVyIGFuZCBQYWdpbmF0aW9uICovXHJcbi5jbXNtYXN0ZXJzX3dyYXBfbW9yZV9pdGVtcyB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19sb2FkaW5nIHtcclxuXHRcdG1pbi1oZWlnaHQ6NjBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MzBweDtcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIDAsIGF1dG8sIDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfd3JhcF9pdGVtc19sb2FkZXIge1xyXG5cdG1hcmdpbjoyNXB4IDAgMDtcclxuXHRwYWRkaW5nOjI1cHggMCAwO1xyXG5cdC50YWM7XHJcblx0Lm92aDtcclxufVxyXG5cclxuZGl2LnN1YnBhZ2VfbmF2IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQ+IHN0cm9uZyB7XHJcblx0XHRkaXNwbGF5Om5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdD4gc3BhbixcclxuXHQ+IGEge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHQudGFjO1xyXG5cdFx0cGFkZGluZzowIDVweDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdGxpbmUtaGVpZ2h0OjQ0cHggIWltcG9ydGFudDtcclxuXHRcdG1pbi13aWR0aDo0NHB4O1xyXG5cdFx0aGVpZ2h0OjQ0cHg7XHJcblx0XHQuYmQ7XHJcblx0XHQuYmRycygyMnB4KTtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3dyYXBfcGFnaW5hdGlvbiB7XHJcblx0bWFyZ2luOjgwcHggMCAyMHB4O1xyXG5cdC5vdmg7XHJcblx0XHJcblx0dWwge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6MCAyNXB4O1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjFweCAwO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHBvc2l0aW9uOnN0YXRpYztcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5wYWdlLW51bWJlcnMge1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjQ4cHggIWltcG9ydGFudDtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdG1pbi13aWR0aDo0OHB4O1xyXG5cdFx0XHRcdGhlaWdodDo0OHB4O1xyXG5cdFx0XHRcdC5iZDtcclxuXHRcdFx0XHQuYmRycygyNHB4KTtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm5leHQsXHJcblx0XHRcdFx0Ji5wcmV2IHtcclxuXHRcdFx0XHRcdC5iZCgycHgpO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdFx0XHQucG9zX2FicygyMHB4LCAyMHB4LCAxcHgsIDAsIDFweCwgMCk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdFx0XHRcdC5kbjtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLnByZXYge1xyXG5cdFx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQucG9zX2FicygxMHB4LCAycHgsIDAsIDAsIDRweCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LnBvc19hYnMoMTBweCwgMnB4LCAwLCAwLCAwLCA4cHgpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYubmV4dCB7XHJcblx0XHRcdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdC5wb3NfYWJzKDEwcHgsIDJweCwgMCwgMCwgMCwgOHB4KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQucG9zX2FicygxMHB4LCAycHgsIDAsIDAsIDRweCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCY6ZW1wdHkge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBvc3QgTmF2aWdhdGlvbiAqL1xyXG4ucG9zdF9uYXYge1xyXG5cdHBhZGRpbmc6NDRweCAwO1xyXG5cdG1hcmdpbjo1MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuYmQoMXB4LCBkYXNoZWQpO1xyXG5cdC5iZHJzKDE1cHgpO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0PiBzcGFuIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0d29yZC1icmVhazpicmVhay13b3JkO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZzo4cHggMDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHotaW5kZXg6MjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0d2lkdGg6MzZweDtcclxuXHRcdFx0aGVpZ2h0OjM2cHg7XHJcblx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdC5iZCgycHgpO1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHQuZG47XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX3ByZXZfcG9zdCB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmctbGVmdDowO1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDo4MHB4O1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRsZWZ0OjMwcHg7XHJcblx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKDdweCwgMXB4LCAxMnB4LCBhdXRvLCA1cHgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKDdweCwgMXB4LCAxMnB4LCBhdXRvLCAwLCA1cHgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfbmV4dF9wb3N0IHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjIwcHg7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6MDtcclxuXHRcdFx0LmZyO1xyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjA7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDo4MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRyaWdodDozMHB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0LnBvc19hYnMoN3B4LCAxcHgsIGF1dG8sIDEycHgsIDAsIDVweCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0LnBvc19hYnMoN3B4LCAxcHgsIGF1dG8sIDEycHgsIDVweCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU2hhcmUgUG9zdHMgKi9cclxuLnNoYXJlX3Bvc3RzIHtcclxuXHRwYWRkaW5nOjUwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnNoYXJlX3Bvc3RzX3RpdGxlIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuc2hhcmVfcG9zdHNfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHRhIHtcclxuXHRcdG1hcmdpbjowIDFweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6JywnO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIEFib3V0IEF1dGhvciAqL1xyXG4uYWJvdXRfYXV0aG9yIHtcclxuXHRwYWRkaW5nOjUwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5hYm91dF9hdXRob3JfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAzNXB4O1xyXG5cdH1cclxuXHRcclxuXHQuYWJvdXRfYXV0aG9yX2lubmVyIHtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5hYm91dF9hdXRob3JfYXZhdGFyIHtcclxuXHRcdG1hcmdpbjozcHggMjBweCAwIDA7XHJcblx0XHQuZmw7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuYWJvdXRfYXV0aG9yX2NvbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0cGFkZGluZzowIDAgMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmFib3V0X2F1dGhvcl9jb250X3RpdGxlIHtcclxuXHRcdG1hcmdpbjowIDAgMTBweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBTaW5nbGUgUG9zdCBTbGlkZXIgKi9cclxuLmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlciB7XHJcblx0cGFkZGluZzo1MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5wcmVsb2FkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9wb3N0c19zbGlkZXJfcHJvamVjdF9wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowIDAgMzVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlcl9pbm5lciB7XHJcblx0XHRtYXJnaW46MCAtOHB4O1xyXG5cdFx0XHJcblx0XHQub3dsLXBhZ2luYXRpb24sXHJcblx0XHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0XHQuZG47XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbSB7XHJcblx0XHRtaW4td2lkdGg6MjAwcHg7XHJcblx0XHRwYWRkaW5nOjAgOHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbV9vdXRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbV9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjE1cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU2luZ2xlIFBpbmdzIExpc3QgKi9cclxuLmNtc21hc3RlcnNfcGluZ3NfbGlzdCB7XHJcblx0cGFkZGluZzo1MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5waW5nc2xpc3Qge1xyXG5cdFx0bGlzdC1zdHlsZS10eXBlOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LWJvZHkge1xyXG5cdFx0cGFkZGluZzowIDY1cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmNsO1xyXG5cdFx0XHJcblx0XHQuZWRpdC1saW5rIHtcclxuXHRcdFx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBvc3QgQ29tbWVudHMgKi9cclxuLnBvc3RfY29tbWVudHMge1xyXG5cdHBhZGRpbmc6NDVweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG59XHJcblxyXG4uY29tbWVudHNfbmF2IHtcclxuXHRwYWRkaW5nOjI1cHggMCAxMHB4O1xyXG5cdC5vdmg7XHJcblx0XHJcblx0PiBzcGFuIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50c19uYXZfcHJldiB7XHJcblx0XHQuZmw7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnRhbDtcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIGF1dG8sIC0ycHgpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGEge1xyXG5cdFx0XHRwYWRkaW5nOjAgMCAwIDIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50c19uYXZfbmV4dCB7XHJcblx0XHQuZnI7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnRhcjtcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIGF1dG8sIDAsIC0ycHgpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGEge1xyXG5cdFx0XHRwYWRkaW5nOjAgMjBweCAwIDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY29tbWVudGxpc3Qge1xyXG5cdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRtYXJnaW46MDtcclxuXHRwYWRkaW5nOjA7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5jaGlsZHJlbiB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCAwIDAgMzBweDtcclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjEwcHggMCAwO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbSB7XHJcblx0cGFkZGluZzozMHB4IDMwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmJkKDFweCwgZGFzaGVkKTtcclxuXHQuYmRycygxNXB4KTtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2RhdGUge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fYXZhdGFyIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MCAzMHB4IDAgMDtcclxuXHRcdC5mbDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2NvbnRfaW5mbyB7XHJcblx0XHRwYWRkaW5nOjAgMCAxMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5zdGFyLXJhdGluZyB7XHJcblx0XHRcdG1pbi13aWR0aDoyMDBweDsgXHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfc3Rhcl9yYXRpbmcge1xyXG5cdFx0XHQuZnI7XHJcblx0XHR9XHJcblxyXG5cdFx0LnJhdGluZy5kbiB7XHJcblx0XHRcdC5kbjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0KiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fdGl0bGVfd3JhcCB7XHJcblx0XHRcdG1hcmdpbjowIDIwcHggMCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX3RpdGxlIHtcclxuXHRcdFx0XHQrIC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9kYXRlOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OictICc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LWVkaXQtbGluayAsXHJcblx0LmNvbW1lbnQtcmVwbHktbGluayB7XHJcblx0XHRtYXJnaW46MjBweCAxNXB4IDAgMDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fdGl0bGUge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250ZW50IHtcclxuXHRcdD4gdWwsXHJcblx0XHQ+IG9sIHtcclxuXHRcdFx0bWFyZ2luOjAgMCAyMHB4O1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb21tZW50c19jbG9zZWQge1xyXG5cdG1hcmdpbi10b3A6MzBweDtcclxufVxyXG5cclxuXHJcbi8qIENvbW1lbnQgUmVzcG9uZCAqL1xyXG4uY29tbWVudC1yZXNwb25kIHtcclxuXHRwYWRkaW5nOjUwcHggNjBweDtcclxuXHRtYXJnaW4tdG9wOjYwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmJkKDFweCwgZGFzaGVkKTtcclxuXHQuYmRycygxNXB4KTtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0cCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToxMHB4O1xyXG5cdFxyXG5cdFx0bGFiZWwge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MTBweDtcclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3JlcSB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6NXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LXJlcGx5LXRpdGxlIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luOjAgMCAzMHB4O1xyXG5cdFx0XHJcblx0XHRzbWFsbCB7XHJcblx0XHRcdC5mcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtZm9ybSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtbm90ZXMsIFxyXG5cdC5sb2dnZWQtaW4tYXMge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MjBweDtcclxuXHRcdC5jbDtcclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtZm9ybS1jb21tZW50IHtcclxuXHRcdHRleHRhcmVhIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtZm9ybS1hdXRob3Ige1xyXG5cdFx0bWF4LXdpZHRoOjUwJTtcclxuXHRcdHBhZGRpbmctcmlnaHQ6MTVweDtcclxuXHRcdC5mbDtcclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtZm9ybS1lbWFpbCB7XHJcblx0XHRtYXgtd2lkdGg6NTAlO1xyXG5cdFx0cGFkZGluZy1sZWZ0OjE1cHg7XHJcblx0XHQuZmw7XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LWZvcm0tY29va2llcy1jb25zZW50IHtcclxuXHRcdHBhZGRpbmc6MTVweCAwO1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdC5jbDtcclxuXHRcdFxyXG5cdFx0aW5wdXQge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZTtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHRvcDoxcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxhYmVsIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmU7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvcm0tc3VibWl0IHtcclxuXHRcdHBhZGRpbmctdG9wOjE1cHg7XHJcblx0XHQuY2w7XHJcblx0XHRcclxuXHRcdC5zdWJtaXQge1xyXG5cdFx0XHRsaW5lLWhlaWdodDo0OHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLm5vY29tbWVudHMge1xyXG5cdG1hcmdpbjo1MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIEhlYWRlciArIENlbnRlcmVkICsgUmlnaHQgKyBGaXhlZCBWZXJzaW9uc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciAqKioqKioqKioqKioqKioqKiovXHJcbiNoZWFkZXIge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0ei1pbmRleDo5OTk5O1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBUb3AgKioqKioqKioqKioqKioqKioqL1xyXG4uaGVhZGVyX3RvcCB7XHJcblx0b3V0bGluZTpub25lO1xyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX2J1dCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjM0cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0LmJkdDtcclxuXHRcdC5iZGI7XHJcblx0XHQuZG47XHJcblx0XHRcclxuXHRcdCYuY2xvc2VkIHtcclxuXHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0Zm9udC1zaXplOjE2cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE2cHg7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX3RvcF9vdXRlciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX3RvcF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNvY2lhbF93cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0LmZyO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDo1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxMnB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxMnB4O1xyXG5cdFx0XHR3aWR0aDoyMnB4O1xyXG5cdFx0XHRoZWlnaHQ6MjJweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnRvcF9uYXZfd3JhcCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdC5yZXNwb25zaXZlX3RvcF9uYXYge1xyXG5cdFx0d2lkdGg6MzBweDtcclxuXHRcdGhlaWdodDozMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZG47XHJcblx0XHQubTBhO1xyXG5cdFx0XHJcblx0XHQ+IHNwYW4sXHJcblx0XHQ+IHNwYW46YmVmb3JlLFxyXG5cdFx0PiBzcGFuOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTVweDtcclxuXHRcdFx0aGVpZ2h0OjJweDtcclxuXHRcdFx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0cmlnaHQ6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IHNwYW46YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0dG9wOi02cHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gc3BhbjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGJvdHRvbTotNnB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0d2lkdGg6MDtcclxuXHRcdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0XHRwb3NpdGlvbjpzdGF0aWM7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbjpiZWZvcmUge1xyXG5cdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbjphZnRlciB7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmhlYWRlcl90b3BfbWV0YSB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubWV0YV93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdD4gKiB7XHJcblx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUsIFxyXG5cdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdOmJlZm9yZSB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XHJcblx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gcCB7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmFkciB7XHJcblx0XHRcdHdoaXRlLXNwYWNlOm5vd3JhcDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIFRvcCBOYXZpZ2F0aW9uICoqKioqKioqKioqKioqKioqKi9cclxuLnRvcF9saW5lX25hdiB7XHJcblx0ei1pbmRleDoyMDU7XHJcblx0XHJcblx0PiBsaSB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0LmJkcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdHBhZGRpbmc6MCAxNHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgTWlkICoqKioqKioqKioqKioqKioqKi9cclxuLmhlYWRlcl9taWQge1xyXG5cdC5jbDtcclxuXHRcclxuXHQmLmhlYWRlcl9taWRfc2Nyb2xsIHtcclxuXHRcdC5ieHNoKDAsIDAsIDVweCwgNXB4LCAuMDUpO1xyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9ib3R0b20gJiB7XHJcblx0XHRcdC5ieHNoX25vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfbWlkX291dGVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfbWlkX2lubmVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubG9nb193cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZmw7XHJcblx0XHRcclxuXHRcdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xyXG5cdFx0XHRmbG9hdDpub25lO1xyXG5cdFx0XHQubTBhO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmxvZ29fdGV4dF93cmFwIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnRpdGxlIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQudGl0bGVfdGV4dCB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDAgM3B4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubG9nbyB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdG1heC1oZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHQucG9zX2FicyhhdXRvLCBhdXRvLCAwLCBhdXRvKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQubG9nb19yZXRpbmEge1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucmVzcF9taWRfbmF2X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRtYXJnaW46MCAwIDAgMTVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmRuO1xyXG5cdFx0LmZyO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LnJlc3BfbWlkX25hdl9vdXRlciB7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucmVzcF9taWRfbmF2IHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0d2lkdGg6MjhweDtcclxuXHRcdFx0aGVpZ2h0OjI4cHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuLFxyXG5cdFx0XHQ+IHNwYW46YmVmb3JlLFxyXG5cdFx0XHQ+IHNwYW46YWZ0ZXIge1xyXG5cdFx0XHRcdHdpZHRoOjE1cHg7XHJcblx0XHRcdFx0aGVpZ2h0OjJweDtcclxuXHRcdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdHRvcDoycHg7XHJcblx0XHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0dG9wOi02cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRib3R0b206LTZweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5hY3RpdmUge1xyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHR3aWR0aDowO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjpzdGF0aWM7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbjphZnRlciB7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5taWRfc2VhcmNoX2J1dF93cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luOjAgMCAwIDE1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5taWRfc2VhcmNoX2J1dCB7XHJcblx0XHRcdGZvbnQtc2l6ZToxOHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoyNnB4O1xyXG5cdFx0XHR3aWR0aDoyNnB4O1xyXG5cdFx0XHRoZWlnaHQ6MjZweDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQucG9zX2FicygpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5zb2NpYWxfd3JhcCB7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDIwcHg7XHJcblx0XHQuZnI7XHJcblx0XHRcclxuXHRcdC5zb2NpYWxfd3JhcF9pbm5lciB7XHJcblx0XHRcdC50YXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjdweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdHdpZHRoOjI4cHg7XHJcblx0XHRcdGhlaWdodDoyOHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc2xvZ2FuX3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZnI7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQuc2xvZ2FuX3dyYXBfaW5uZXIge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzowIDAgMCAyMHB4O1xyXG5cdFx0XHQudGFyO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuc2xvZ2FuX3dyYXBfdGV4dCB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFxyXG5cdFx0XHQ+ICoge1xyXG5cdFx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl06YmVmb3JlIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHAge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmFkciB7XHJcblx0XHRcdFx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5taWRfbmF2X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHR9XHJcblx0XHJcblx0LmhlYWRlcl9taWRfYnV0dG9uX3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHQuZnI7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHBhZGRpbmctbGVmdDozNXB4O1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmhlYWRlcl9taWRfYnV0dG9uIHtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6MjVweDtcclxuXHRcdFx0cGFkZGluZy1yaWdodDoyNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgTWlkIE5hdmlnYXRpb24gKioqKioqKioqKioqKioqKioqL1xyXG4ubWlkX25hdiB7XHJcblx0Zm9udC1zaXplOjA7XHJcblx0bGluZS1oZWlnaHQ6MDtcclxuXHRvdXRsaW5lOm5vbmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQudmFsaWduX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHQ+IGxpIHtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdC5iZCgwKTtcclxuXHRcdFxyXG5cdFx0PiBhIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6OHB4IDEycHg7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHRcclxuXHRcdFx0Lm5hdl9zdWJ0aXRsZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Lm5hdl90YWcge1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgMCAxMHB4O1xyXG5cdFx0XHRcdHBhZGRpbmc6MnB4IDE1cHg7XHJcblx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRcdC5iZDtcclxuXHRcdFx0XHQuYmRycyhAYmRyc193aWR0aCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiB1bCB7XHJcblx0XHRcdGxlZnQ6LTEycHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBCb3QgKioqKioqKioqKioqKioqKioqL1xyXG4uaGVhZGVyX2JvdCB7XHJcblx0LmNsO1xyXG5cdFxyXG5cdCYuaGVhZGVyX2JvdF9zY3JvbGwge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHRib3R0b206MnB4O1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MXB4O1xyXG5cdFx0XHQuYnhzaCgwLCA1cHgsIDVweCwgMXB4LCAuMSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfYm90X291dGVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdC5oZWFkZXJfYm90X2JvcmRlcl90b3Age1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHQuYmR0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX2JvdF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmVuYWJsZV9oZWFkZXJfY2VudGVyZWQgJiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5yZXNwX2JvdF9uYXZfd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBhZGRpbmc6N3B4IDE1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5kbjtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdC5yZXNwX2JvdF9uYXZfb3V0ZXIge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnJlc3BfYm90X25hdiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHdpZHRoOjI4cHg7XHJcblx0XHRcdGhlaWdodDoyOHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbixcclxuXHRcdFx0PiBzcGFuOmJlZm9yZSxcclxuXHRcdFx0PiBzcGFuOmFmdGVyIHtcclxuXHRcdFx0XHR3aWR0aDoxNXB4O1xyXG5cdFx0XHRcdGhlaWdodDoycHg7XHJcblx0XHRcdFx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHR0b3A6LTZweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuOmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdGJvdHRvbTotNnB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOnN0YXRpYztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBzcGFuOmJlZm9yZSB7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBzcGFuOmFmdGVyIHtcclxuXHRcdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmJvdF9uYXZfd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9yaWdodCAmIHtcclxuXHRcdFx0LmZyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBCb3QgTmF2aWdhdGlvbiAqKioqKioqKioqKioqKioqKiovXHJcbi5ib3RfbmF2IHtcclxuXHRvdXRsaW5lOm5vbmU7XHJcblx0XHJcblx0PiBsaSB7XHJcblx0XHRmb250LXNpemU6MDtcclxuXHRcdGxpbmUtaGVpZ2h0OjA7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdC5iZCgwKTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gYSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOjhweCAyMHB4O1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdC5iZDtcclxuXHRcdFx0XHJcblx0XHRcdC5uYXZfc3VidGl0bGUge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5uYXZfdGFnIHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW46MCAwIDAgMTBweDtcclxuXHRcdFx0XHRwYWRkaW5nOjJweCAxNXB4O1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdFx0LmJkcnMoQGJkcnNfd2lkdGgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBTZWFyY2ggRm9ybSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybSB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRwb3NpdGlvbjpmaXhlZDtcclxuXHR6LWluZGV4Ojk5OTk5O1xyXG5cdC5vcCgwKTtcclxuXHRcclxuXHQmLmNtc21hc3RlcnNfc2hvdyB7XHJcblx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHQub3AoMSk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybV9jbG9zZSB7XHJcblx0XHRmb250LXNpemU6MzBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjMwcHg7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHQucG9zX2FicygzMnB4LCAzMnB4LCBhdXRvLCA1MHB4LCA1MHB4LCBhdXRvKTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdC5vcCguMyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybV9maWVsZCB7XHJcblx0XHRtYXgtd2lkdGg6OTAlO1xyXG5cdFx0LnRhYztcclxuXHRcdC5wb3NfYWJzKDgwMHB4LCA0NnB4KTtcclxuXHR9XHJcblx0XHJcblx0QHtpbnB1dF90ZXh0fSB7XHJcblx0XHRmb250LXNpemU6MjBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjQ2cHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdG1heC13aWR0aDozMzVweDtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cGFkZGluZzowIDI1cHg7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHQuYmRyKDApO1xyXG5cdFx0LmJkdCgwKTtcclxuXHRcdC5iZGIoMCk7XHJcblx0XHQuYmRycygwKTtcclxuXHR9XHJcblx0XHJcblx0YnV0dG9uIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDMwcHg7XHJcblx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkO1xyXG5cdFx0LmJkcnMoQGJkcnNfd2lkdGgpO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogSGVhZGxpbmUgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5ib2R5IC5oZWFkbGluZSB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfYnJlYWRjcnVtYnMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfYWxpZ25lciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfaW5uZXIge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nLXRvcDoxM3B4O1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0YTpob3ZlcixcclxuXHRcdHNwYW46bm90KFtjbGFzc10pIHtcclxuXHRcdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcblx0XHRcdC5vcCguOCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uaGVhZGxpbmVfb3V0ZXIge1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246dG9wIGNlbnRlcjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR6LWluZGV4OjE7XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRsaW5lX2Rpc2FibGVkIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmhlYWRsaW5lX2NvbG9yIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHQuYmR0KDFweCwgZGFzaGVkKTtcclxuXHRcdC5iZGIoMXB4LCBkYXNoZWQpO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19oZWFkbGluZV9kaXNhYmxlZCYge1xyXG5cdFx0XHQuYmQoMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkbGluZV9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjAgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjE7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQuaGVhZGxpbmVfYWxpZ25lciB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5oZWFkbGluZV90ZXh0X3dyYXAge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDoxZW07XHJcblx0XHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIDAsIDAsIGF1dG8pO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuZW50cnktdGl0bGUge1xyXG5cdFx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuZW50cnktc3VidGl0bGUge1xyXG5cdFx0XHRcdG1hcmdpbjoxM3B4IDAgMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFsaWduX2xlZnQge1xyXG5cdFx0XHQudGFsO1xyXG5cdFx0XHRcclxuXHRcdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRcdC50YWw7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5hbGlnbl9yaWdodCB7XHJcblx0XHRcdC50YXI7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGxpbmVfdGV4dCB7XHJcblx0XHRcdFx0LnRhcjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1icyB7XHJcblx0XHRcdFx0LnRhcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFsaWduX2NlbnRlciB7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGxpbmVfdGV4dCB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnMge1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfYWxpZ25lciB7XHJcblx0XHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudF93cmFwIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdG1pbi13aWR0aDppbmhlcml0O1xyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIEJvdHRvbSArIEZvb3RlciBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCb3R0b20gKioqKioqKioqKioqKioqKioqL1xyXG4uYm90dG9tX2lubmVyIHtcclxuXHQud2lkZ2V0dGl0bGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTozNXB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEZvb3RlciAqKioqKioqKioqKioqKioqKiovXHJcbiNmb290ZXIge1xyXG5cdC5vdmg7XHJcbn1cclxuXHJcbi5mb290ZXJfaW5uZXIge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnNvY2lhbF93cmFwIHtcclxuXHRcdGEge1xyXG5cdFx0XHRmb250LXNpemU6MjNweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MjRweDtcclxuXHRcdFx0d2lkdGg6NDBweDtcclxuXHRcdFx0aGVpZ2h0OjQwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEZvb3RlciBEZWZhdWx0ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfZm9vdGVyX2RlZmF1bHQge1xyXG5cdC5mb290ZXJfaW5uZXIge1xyXG5cdFx0cGFkZGluZy10b3A6NTBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOjMycHg7XHJcblx0XHRcclxuXHRcdD4gZGl2OmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9sb2dvX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LmZvb3Rlcl9sb2dvIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IC5mb290ZXJfbG9nb19yZXRpbmEge1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdl93cmFwIHtcclxuXHRcdHBhZGRpbmc6MjdweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGRpdiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfbmF2IHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6YXV0bztcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdD4gbGkge1xyXG5cdFx0XHRmbG9hdDpub25lO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0bWFyZ2luOjAgMTVweCA1cHg7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0XHRcclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfY3VzdG9tX2h0bWxfd3JhcCB7XHJcblx0XHRwYWRkaW5nOjI1cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9jdXN0b21faHRtbCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdC5vdmg7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0cGFkZGluZzozMHB4IDAgMDtcclxuXHRcdFxyXG5cdFx0LnNvY2lhbF93cmFwX2lubmVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6N3B4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfY29weXJpZ2h0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46NTBweCAwIDA7XHJcblx0XHRwYWRkaW5nOjMwcHggMCAwO1xyXG5cdFx0LmJkdDtcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHQuYmR0KDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBGb290ZXIgU21hbGwgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19mb290ZXJfc21hbGwge1xyXG5cdC5mb290ZXJfaW5uZXIge1xyXG5cdFx0cGFkZGluZy10b3A6NDBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOjQwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfbmF2X3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZnI7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdiB7XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0bWFyZ2luOjAgMjBweCAwIDA7XHJcblx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0LmZyO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDo3cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9jdXN0b21faHRtbF93cmFwIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZyO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9jb3B5cmlnaHQge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6N3B4IDIwcHggMXB4IDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIEJsb2cgKERlZmF1bHQsIE1hc29ucnksIFRpbWVsaW5lKSArIFBvc3QgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyAqKioqKioqKioqKioqKioqKiovXHJcbi5ibG9nIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0LnBvc3Qge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0XHJcblx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9ibG9nX2RlZmF1bHRfcGFkO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxyXG5cdFx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ19kZWZhdWx0X3BhZDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jb2x1bW5zIHtcclxuXHRcdG1hcmdpbjotNDBweCAtMTZweCAwO1xyXG5cdFx0XHJcblx0XHQucG9zdCB7XHJcblx0XHRcdG1pbi13aWR0aDoyODBweDtcclxuXHRcdFx0cGFkZGluZzo0MHB4IDE2cHggMDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc180JiB7XHJcblx0XHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc18zJiB7XHJcblx0XHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc18yJiB7XHJcblx0XHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxyXG5cdFx0XHQucmVzaXphYmxlX2Jsb2NrIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji50aW1lbGluZSB7XHJcblx0XHQucG9zdCB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdG92ZXJmbG93OnZpc2libGU7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5wcmVsb2FkZXIge1xyXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ190aW1lbGluZV9wYWQ7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxyXG5cdFx0XHQucmVzaXphYmxlX2Jsb2NrIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfdGltZWxpbmVfcGFkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0cmlnaHQ6MDtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEJsb2cgRGVmYXVsdCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3Bvc3RfZGVmYXVsdCB7XHJcblx0cGFkZGluZzo3MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0cGFkZGluZy10b3A6MDtcclxuXHR9XHJcblx0XHJcblx0Ji5zdGlja3kge1xyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jb250X3dyYXAge1xyXG5cdFx0XHQuYmQoM3B4KTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjM1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHR0b3A6NXB4O1xyXG5cdFx0XHRcdGNvbnRlbnQ6J1xcZTgzMCc7XHJcblx0XHRcdFx0Zm9udC1zaXplOjI1cHg7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvJztcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5iZCgxcHgsIGRhc2hlZCk7XHJcblx0XHQuYmRycygxNXB4KTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luOi0xcHggLTFweCAwIC0xcHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmJkcnMoMTVweCAxNXB4IDAgMCk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udCB7XHJcblx0XHRwYWRkaW5nOjQwcHggNTBweCA0NXB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X3RpdGxlIHtcclxuXHRcdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xyXG5cdFx0cGFkZGluZzoyMXB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XHJcblx0XHRwYWRkaW5nOjMycHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9tZXRhX2luZm8ge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlIHtcclxuXHRcdHdoaXRlLXNwYWNlOm5vd3JhcDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0cGFkZGluZzowIDI1cHg7XHJcblx0XHRtYXJnaW4tcmlnaHQ6MjBweDtcclxuXHRcdC5iZDtcclxuXHRcdC5iZHJzKDMwcHgpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mbyB7XHJcblx0XHRwYWRkaW5nOjEzcHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OictJztcclxuXHRcdFx0XHRwYWRkaW5nOjAgNXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gYTpub3QoW2NsYXNzXSkge1xyXG5cdFx0XHQrIC5jbXNtYXN0ZXJzX3Bvc3RfYXV0aG9ye31cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9kYXRlIHtcclxuXHRcdCsgLmNtc21hc3RlcnNfcG9zdF9hdXRob3I6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonLSc7XHJcblx0XHRcdHBhZGRpbmc6MCA1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0LmJkcnMoMTVweCAxNXB4IDAgMCk7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0XHQuZG47XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcclxuXHRcdHBhZGRpbmc6MjVweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfdmlkZW9fd3JhcCB7XHJcblx0XHRtYXJnaW46LTFweCAtMXB4IC0xcHggMDtcclxuXHRcdC5iZHJzKDE1cHggMTVweCAwIDApO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIE1hc29ucnkgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wb3N0X21hc29ucnkge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luOjAgMCAyNXB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuYmRycygxNXB4KTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTJweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XHJcblx0XHRwYWRkaW5nOjAgMCAxOHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IHtcclxuXHRcdC5mbDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0bGluZS1oZWlnaHQ6MzJweDtcclxuXHRcdFx0cGFkZGluZzowIDE3cHg7XHJcblx0XHRcdG1hcmdpbi1yaWdodDo1cHg7XHJcblx0XHRcdC5iZDtcclxuXHRcdFx0LmJkcnMoMjBweCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCsgLmNtc21hc3RlcnNfcG9zdF9tZXRhX2luZm8ge1xyXG5cdFx0XHQuZnI7XHJcblx0XHRcdG1hcmdpbi10b3A6M3B4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X21ldGFfaW5mbyB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xyXG5cdFx0cGFkZGluZzowIDAgMjNweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X3JlYWRfbW9yZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X2luZm8ge1xyXG5cdFx0cGFkZGluZzowIDAgMjBweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHQrIC5jbXNtYXN0ZXJzX3Bvc3RfYXV0aG9yOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jy0nO1xyXG5cdFx0XHRwYWRkaW5nOjAgNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwIHtcclxuXHRcdG1hcmdpbjowIDAgMjVweDtcclxuXHRcdC5iZHJzKDE1cHgpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdWRpbyB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0bWFyZ2luOjAgMCAyNXB4O1xyXG5cdFx0LmJkcnMoMTVweCk7XHJcblx0XHRcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdC5kbjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0XHRib3R0b206MTNweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyBUaW1lbGluZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3Bvc3RfdGltZWxpbmUge1xyXG5cdHBhZGRpbmc6NzBweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdHBhZGRpbmctdG9wOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaW5mbyB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDAgMzVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucHVibGlzaGVkIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRzcGFuIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfZGF5IHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19tb25feWVhciB7XHJcblx0XHRcdHBhZGRpbmc6M3B4IDAgMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LmZ1bGx3aWR0aCAmIHtcclxuXHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHQuZmw7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjI1cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmLmVuYWJsZV9pbWFnZSB7XHJcblx0XHRcdC5mdWxsd2lkdGggJiB7XHJcblx0XHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHRcdHBhZGRpbmc6MjVweCAwIDAgNDBweDtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpub3QoLmVuYWJsZV9pbWFnZSkge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQsXHJcblx0XHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbmZvIHtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciAge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHRcdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3Bvc3RfbWV0YV9pbmZvIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mbyB7XHJcblx0XHRwYWRkaW5nOjAgMCAxM3B4O1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jYXRlZ29yeSB7XHJcblx0XHQrIC5jbXNtYXN0ZXJzX3Bvc3RfYXV0aG9yOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jy0nO1xyXG5cdFx0XHRwYWRkaW5nOjAgNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xyXG5cdFx0cGFkZGluZzowIDAgMTZweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCYuZW5hYmxlX21ldGFfaW5mbyB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlIHtcclxuXHRcdFx0XHRwYWRkaW5nOjAgNzVweCAwIDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X3JlYWRfbW9yZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFxyXG5cdFx0KyAuY21zbWFzdGVyc19wb3N0X21ldGFfaW5mbyB7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRyaWdodDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9tZXRhX2luZm8ge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF92aWRlb193cmFwIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFxyXG5cdFx0LmZ1bGx3aWR0aCAmIHtcclxuXHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHQuZmw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdFx0LmZ1bGx3aWR0aCAmIHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdC5mbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc192aWRlb193cmFwIHtcclxuXHRcdFx0LmZ1bGx3aWR0aCAmIHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRcclxuXHRcdC5mdWxsd2lkdGggJiB7XHJcblx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdFx0cGFkZGluZzowIDAgMzdweCAwO1xyXG5cdFx0XHQuZmw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdC5kbjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0XHQjcGFnZTpub3QoLmZ1bGx3aWR0aCkgJiB7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdGJvdHRvbToxM3B4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcclxuXHRcdHBhZGRpbmc6NXB4IDAgMTJweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyBQb3N0ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfb3Blbl9wb3N0IHtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfdG9wIHtcclxuXHRcdHBhZGRpbmc6MzVweCA0MHB4O1xyXG5cdFx0LmJkKDFweCwgZGFzaGVkKTtcclxuXHRcdC5iZHJzKDE1cHgpO1xyXG5cdH1cclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfb3Blbl9wb3N0X3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCwgXHJcblx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX29wZW5fcG9zdF9wYWQgIWltcG9ydGFudDtcclxuXHR9XHJcblx0XHJcblx0PiBkaXY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0bWFyZ2luLXRvcDowO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHdvcmQtYnJlYWs6YnJlYWstd29yZDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0KyAuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mbyB7XHJcblx0XHRcdG1hcmdpbjoxN3B4IDAgMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X2luZm8ge1xyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IHtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MjBweDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OjM0cHg7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdHBhZGRpbmc6MCAxN3B4O1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OjVweDtcclxuXHRcdFx0XHRcdC5iZDtcclxuXHRcdFx0XHRcdC5iZHJzKDIwcHgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xyXG5cdFx0KyAuY21zbWFzdGVyc19wb3N0X2F1dGhvcjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OictJztcclxuXHRcdFx0cGFkZGluZzowIDVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luOjMwcHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdG1hcmdpbjo0NXB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XHJcblx0XHRtYXJnaW46MzBweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X3RhZ3Mge1xyXG5cdFx0cGFkZGluZzowIDc1cHggMCAwO1xyXG5cdFx0XHJcblx0XHQrIC5jbXNtYXN0ZXJzX3Bvc3RfbWV0YV9pbmZvIHtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfbWV0YV9pbmZvIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRtYXJnaW46NDVweCAwIDA7XHJcblx0XHRcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdC5kbjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0XHRib3R0b206MTNweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0ZmlndXJlIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXVkaW8ge1xyXG5cdFx0bWFyZ2luOjQ1cHggMCAwO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwIHtcclxuXHRcdG1hcmdpbjo0NXB4IDAgMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogUG9ydGZvbGlvIChHcmlkLCBQdXp6bGUpICsgUHJvamVjdCBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gKioqKioqKioqKioqKioqKioqL1xyXG4ucG9ydGZvbGlvIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9ncmlkLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIHtcclxuXHRcdG1pbi13aWR0aDoyMzVweDtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0LnByZWxvYWRlciB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfcG9ydGZvbGlvX2dyaWRfcGFkO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYubGFyZ2VfZ2FwIHtcclxuXHRcdG1hcmdpbjowIC1AY29sX21hcjtcclxuXHRcdFxyXG5cdFx0LnByb2plY3Qge1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6QGNvbF9tYXI7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6QGNvbF9tYXI7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBjb2xfbWFyICogMjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5zbWFsbF9nYXAge1xyXG5cdFx0cGFkZGluZzoxcHggMXB4IDA7XHJcblx0XHQuY3RieDtcclxuXHRcdFxyXG5cdFx0LnByb2plY3Qge1xyXG5cdFx0XHRvdmVyZmxvdzp2aXNpYmxlO1xyXG5cdFx0XHRcclxuXHRcdFx0LnByb2plY3Rfb3V0ZXIge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjFweDtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjFweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdyaWQucGVyZmVjdCAucHJvamVjdCB7XHJcblx0XHRmaWd1cmUge1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0ZmlndXJlIHtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5ncmlkLm1hc29ucnkgLnByb2plY3QsIFxyXG5cdCYucHV6emxlIC5wcm9qZWN0IHtcclxuXHRcdC5vcCgwKTtcclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHQub3AoMSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc181IC5wcm9qZWN0IHtcclxuXHRcdG1heC13aWR0aDoyMCU7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc180IC5wcm9qZWN0IHtcclxuXHRcdG1heC13aWR0aDoyNSU7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc18zIC5wcm9qZWN0IHtcclxuXHRcdG1heC13aWR0aDozMyU7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc18yIC5wcm9qZWN0IHtcclxuXHRcdG1heC13aWR0aDo1MCU7XHJcblx0fVxyXG5cdFxyXG5cdCYuaXNvdG9wZS5jbXNtYXN0ZXJzXzUgLnByb2plY3QsIFxyXG5cdCYuaXNvdG9wZS5jbXNtYXN0ZXJzXzQgLnByb2plY3QsIFxyXG5cdCYuaXNvdG9wZS5jbXNtYXN0ZXJzXzMgLnByb2plY3QsIFxyXG5cdCYuaXNvdG9wZS5jbXNtYXN0ZXJzXzIgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOm5vbmU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvcnRmb2xpbyBHcmlkICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcHJvamVjdF9ncmlkIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xyXG5cdFx0LmNtc21hc3RlcnNfb3Blbl9saW5rIHtcclxuXHRcdFx0JjplbXB0eSB7XHJcblx0XHRcdFx0LmRuO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rICB7XHJcblx0XHRcdHRleHQtaW5kZW50Oi05OTk5cHg7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0XHQuYmRycygwKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2plY3Rfb3V0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfcHJvamVjdF9mb290ZXIge1xyXG5cdFx0XHRcdHRvcDo0cHg7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xyXG5cdFx0XHRcdC5vcCguNzUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfaW1hZ2VzX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQrIC5wcm9qZWN0X2lubmVyIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MjNweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9mb290ZXIge1xyXG5cdFx0cGFkZGluZzo5cHggMjBweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0cmlnaHQ6NHB4O1xyXG5cdFx0dG9wOi0yMHB4O1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjAgMTBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250X2luZm8ge1xyXG5cdFx0cGFkZGluZzowIDAgMThweDtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gUHV6emxlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHQuY21zbWFzdGVyc19vcGVuX2xpbmsge1xyXG5cdFx0XHQmOmVtcHR5IHtcclxuXHRcdFx0XHQuZG47XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfb3Blbl9wb3N0X2xpbmsgIHtcclxuXHRcdFx0dGV4dC1pbmRlbnQ6LTk5OTlweDtcclxuXHRcdFx0ZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHQuYmQoMCk7XHJcblx0XHRcdC5iZHJzKDApO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9vdXRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIHtcclxuXHRcdFx0XHQub3AoLjc1KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnByb2plY3RfaW5uZXIge1xyXG5cdFx0XHRcdHRvcDowICFpbXBvcnRhbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfaW5uZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBhZGRpbmc6M3B4O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9pbm5lcl9jb250IHtcclxuXHRcdHBhZGRpbmc6MTVweDtcclxuXHRcdC5iZHJzKDE1cHgpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjNweCAwO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRcdC5vcCguNSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfY2F0ZWdvcnkge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6NXB4IDAgMDtcclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdC5vcCguNSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250X2luZm8ge1xyXG5cdFx0cGFkZGluZzo1cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuZW5hYmxlX3Byb2plY3RfZm9vdGVyIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfcHJvamVjdF9jYXRlZ29yeSB7XHJcblx0XHRcdFx0cGFkZGluZzowIDc1cHggMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcmVhZF9tb3JlIHtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQub3AoLjUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQrIC5jbXNtYXN0ZXJzX3Byb2plY3RfZm9vdGVyIHtcclxuXHRcdFx0LmZyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHQmLmFjdGl2ZSxcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Lm9wKC41KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gT3BlbiBQcm9qZWN0ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfb3Blbl9wcm9qZWN0IHtcclxuXHRwYWRkaW5nOjAgMCA0MHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnByZWxvYWRlciB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX29wZW5fcHJvamVjdF9wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxyXG5cdC5yZXNpemFibGVfYmxvY2sge1xyXG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9vcGVuX3Byb2plY3RfcGFkO1xyXG5cdH1cclxuXHRcclxuXHQub3dsLXBhZ2luYXRpb24ge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyICB7XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0Lm93bC1idXR0b25zIHtcclxuXHRcdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRwb3NpdGlvbjpzdGF0aWM7XHJcblx0XHR3aWR0aDowO1xyXG5cdFx0aGVpZ2h0OjA7XHJcblx0XHRcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6NTBweDtcclxuXHRcdFx0aGVpZ2h0OjUwcHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC5wb3NfYWJzKDUwcHgsIDUwcHgpO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub3dsLXByZXYge1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHQuYmQoMCk7XHJcblx0XHRcdFx0LmJkcnMoMCk7XHJcblx0XHRcdFx0LmJ4c2hfbm9uZTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdFx0d2lkdGg6MTBweDtcclxuXHRcdFx0XHRcdGhlaWdodDoyNnB4O1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZToyNnB4O1xyXG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDoyNnB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2xpa2VzLCBcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2NvbW1lbnRzIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTBweDtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmNsO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBhZGRpbmc6NDBweCAwIDA7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmLndpdGhfc2lkZWJhciB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfY29udGVudCB7XHJcblx0XHRcdFx0d2lkdGg6NzElO1xyXG5cdFx0XHRcdHBhZGRpbmc6MCA0MHB4O1xyXG5cdFx0XHRcdC5mbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19nYWxsZXJ5X3JvdyB7XHJcblx0XHRcdG1hcmdpbjowIC1AY29sX21hcjtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHRmaWd1cmUge1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5vbmVfdGhpcmQsIFxyXG5cdFx0XHQub25lX2hhbGYsIFxyXG5cdFx0XHQub25lX2ZpcnN0IHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOihAY29sX21hciAqIDIpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQub25lX3RoaXJkLCBcclxuXHRcdFx0Lm9uZV9oYWxmIHtcclxuXHRcdFx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfcG9ydGZvbGlvX2dyaWRfcGFkO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmLmhpZ2hJbWcge1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdFx0bWFyZ2luOjAgMCA1MHB4O1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0XHRtYXJnaW46MCAwIDUwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHRmaWd1cmUge1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiAuY21zbWFzdGVyc192aWRlb193cmFwIHtcclxuXHRcdFx0bWFyZ2luOjAgMCA1MHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9zaWRlYmFyIHtcclxuXHRcdHdpZHRoOjI5JTtcclxuXHRcdHBhZGRpbmc6MCA0MHB4IDAgMDtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRtYXJnaW46MzVweCAwIDA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzLCBcclxuXHQucHJvamVjdF9mZWF0dXJlcyB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2RldGFpbHNfdGl0bGUsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowIDAgMjVweDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0KyAucHJvamVjdF9kZXRhaWxzX2l0ZW0sXHJcblx0XHQrIC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW0ge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzX2l0ZW0sIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW0ge1xyXG5cdFx0cGFkZGluZzo5cHggMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkYjtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHQuYmRiKDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzX2l0ZW1fdGl0bGUsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWF4LXdpZHRoOjUwJTtcclxuXHRcdC5mbDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2RldGFpbHNfb25lX2l0ZW0gLnByb2plY3RfZGV0YWlsc19pdGVtX3RpdGxlLCBcclxuXHQucHJvamVjdF9mZWF0dXJlc19vbmVfaXRlbSAucHJvamVjdF9mZWF0dXJlc19pdGVtX3RpdGxlIHtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfZGV0YWlsc19pdGVtX2Rlc2MsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDE1cHg7XHJcblx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdC50YXI7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzX29uZV9pdGVtIC5wcm9qZWN0X2RldGFpbHNfaXRlbV9kZXNjLCBcclxuXHQucHJvamVjdF9mZWF0dXJlc19vbmVfaXRlbSAucHJvamVjdF9mZWF0dXJlc19pdGVtX2Rlc2Mge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjA7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIFBvc3RzIFNsaWRlciBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3N0cyBTbGlkZXIgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wb3N0c19zbGlkZXIge1xyXG5cdG1hcmdpbjowIC0xNXB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LnByZWxvYWRlciB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IHtcclxuXHRcdC5wcmVsb2FkZXIge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wcm9qZWN0X3BhZDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRwYWRkaW5nOjAgMCA0MHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyX2l0ZW0ge1xyXG5cdFx0bWluLXdpZHRoOjIwMHB4O1xyXG5cdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0LCBcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cGFkZGluZzowIDE1cHggMzBweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9zdHMgU2xpZGVyIEJsb2cgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zbGlkZXJfcG9zdCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3Rfb3V0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9kYXRlX2ltZ193cmFwIHtcclxuXHRcdG1hcmdpbjowIDAgMjVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkcnMoMTVweCk7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjAgMCAxMnB4O1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9mb290ZXIge1xyXG5cdFx0bWFyZ2luOjAgMCAxOHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2NhdGVnb3J5IHtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRsaW5lLWhlaWdodDozMnB4O1xyXG5cdFx0XHRwYWRkaW5nOjAgMTdweDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjVweDtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHQuYmRycygyMHB4KTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0KyAuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9tZXRhX2luZm8ge1xyXG5cdFx0XHQuZnI7XHJcblx0XHRcdG1hcmdpbi10b3A6M3B4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9jb250ZW50IHtcclxuXHRcdHBhZGRpbmc6MCAwIDIzcHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfcmVhZF9tb3JlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9jb250X2luZm8ge1xyXG5cdFx0cGFkZGluZzowIDAgMjBweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9kYXRlIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFxyXG5cdFx0KyAuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9hdXRob3I6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonLSc7XHJcblx0XHRcdHBhZGRpbmc6MCA1cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvc3RzIFNsaWRlciBQb3J0Zm9saW8gKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3Rfb3V0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfY29udF93cmFwX2lubmVyIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzoyN3B4IDAgMTBweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfY29udF93cmFwIHtcclxuXHRcdGJvcmRlcjozcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfY29udF93cmFwX2lubmVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjIwcHg7XHJcblx0XHR6LWluZGV4OjE7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDotMTAwJTtcclxuXHRcdC5iZHJzKDE1cHgpO1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Lm9wKC41KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9jb250X2luZm8ge1xyXG5cdFx0cGFkZGluZzowIDAgMTNweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0cGFkZGluZzowIDAgMTJweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9mb290ZXIge1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogUHJvZmlsZXMgKyBQcm9maWxlIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIFByb2ZpbGVzICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcHJvZmlsZSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQmLmhvcml6b250YWwge1xyXG5cdFx0bWFyZ2luOi00MHB4IC1AY29sX21hciAwO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX2hvcml6b250YWwge1xyXG5cdFx0XHRtYXJnaW4tdG9wOjQwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9oYWxmOm50aC1jaGlsZCgybisxKSxcclxuXHRcdFx0Ji5vbmVfdGhpcmQ6bnRoLWNoaWxkKDNuKzEpLFxyXG5cdFx0XHQmLm9uZV9mb3VydGg6bnRoLWNoaWxkKDRuKzEpIHtcclxuXHRcdFx0XHRjbGVhcjpsZWZ0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFByb2ZpbGVzIEhvcml6b250YWwgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9maWxlX2hvcml6b250YWwge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5wcm9maWxlX291dGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19zb2NpYWxfd3JhcCB7XHJcblx0XHRtYXJnaW46MCA0MHB4IDI2cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCYubm9faW1hZ2Uge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJvZmlsZV9zb2NpYWxfaWNvbnMge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzowIDEwcHg7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0IHtcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0XHQub3AoLjYpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfc29jaWFsX2lubmVyIHtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0LnByb2ZpbGVfc29jaWFsX2ljb25zIHtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0LnRhYztcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLm5vX2ltYWdlIHtcclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6MCAwIDEwMCU7XHJcblx0XHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6MjBweDtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0IHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjI2cHg7XHJcblx0XHRcdGhlaWdodDoyNnB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQucG9zX2FicztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucHJvZmlsZV9zb2NpYWxfaWNvbnMge1xyXG5cdFx0XHRtYXJnaW46MTBweCAwIDA7XHJcblx0XHRcdC5kbjtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdGxpIHtcclxuXHRcdFx0XHRtYXJnaW46MCA1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0XHRtYXJnaW46NXB4IDAgMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250ZW50IHtcclxuXHRcdHBhZGRpbmc6MjdweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgVmVydGljYWwgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9maWxlX3ZlcnRpY2FsIHtcclxuXHRtYXJnaW46MCAwIDcwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9vdXRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6MzAuMTYlO1xyXG5cdFx0cGFkZGluZzowIDUwcHggMCAwO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYubm9faW1hZ2Uge1xyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjAgMCAxMDAlO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZToyMHB4O1xyXG5cdFx0XHRcdFx0XHQucG9zX2FicygpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9pbm5lciB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAgKyAucHJvZmlsZV9pbm5lciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOjY5Ljg0JTtcclxuXHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xyXG5cdFx0bWFyZ2luOjAgMCAyN3B4O1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0XHRtYXJnaW46N3B4IDAgMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29ucyB7XHJcblx0XHRtYXJnaW46MzBweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0IHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxNnB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxNnB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoyNnB4O1xyXG5cdFx0XHRoZWlnaHQ6MjZweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgT3BlbiBQcm9maWxlICoqKioqKioqKioqKioqKioqKi9cclxuLnByb2ZpbGVzLm9wZW5lZC1hcnRpY2xlIHtcclxuXHQuc2hhcmVfcG9zdHMge1xyXG5cdFx0bWFyZ2luOi01NXB4IDAgMDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX29wZW5fcHJvZmlsZSB7XHJcblx0cGFkZGluZzowIDAgNDBweDtcclxuXHR6LWluZGV4OjE7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9maWxlX2xpa2VzLCBcclxuXHQuY21zbWFzdGVyc19wcm9maWxlX2NvbW1lbnRzIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTBweDtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmNsO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfY29udGVudCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cGFkZGluZzo0MHB4IDAgMTBweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NpZGViYXIge1xyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2RldGFpbHMsIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzIHtcclxuXHRcdHBhZGRpbmc6MjVweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2RldGFpbHNfdGl0bGUsIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowIDAgMTJweDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfZGV0YWlsc19pdGVtLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc19pdGVtIHtcclxuXHRcdHBhZGRpbmc6OXB4IDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5iZGI7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHQuYmRiKDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX2l0ZW1fdGl0bGUsIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWF4LXdpZHRoOjUwJTtcclxuXHRcdC5mbDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2RldGFpbHNfb25lX2l0ZW0gLnByb2ZpbGVfZGV0YWlsc19pdGVtX3RpdGxlLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc19vbmVfaXRlbSAucHJvZmlsZV9mZWF0dXJlc19pdGVtX3RpdGxlIHtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfZGV0YWlsc19pdGVtX2Rlc2MsIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDE1cHg7XHJcblx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdC50YXI7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX29uZV9pdGVtIC5wcm9maWxlX2RldGFpbHNfaXRlbV9kZXNjLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc19vbmVfaXRlbSAucHJvZmlsZV9mZWF0dXJlc19pdGVtX2Rlc2Mge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjA7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29ucyB7XHJcblx0XHRwYWRkaW5nOjI1cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnNfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAxMnB4O1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnNfbGlzdCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0bWFyZ2luOjAgMTJweCAwIDA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTZweDtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MWVtO1xyXG5cdFx0XHRoZWlnaHQ6MWVtO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQucG9zX2FicztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKiBTaG9ydGNvZGVzIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIERpdmlkZXIgKioqKioqKioqKioqKioqKioqL1xyXG5ociB7XHJcblx0Ym9yZGVyOjA7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtcclxuXHRtYXJnaW46KEBsaW5lX2hlaWdodF9wYWQgKiAyKSAwO1xyXG59XHJcblxyXG5ociwgXHJcbi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyLFxyXG4uY21zbWFzdGVyc19kaXZpZGVyIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6MXB4O1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OjFweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuY2w7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyIHtcclxuXHRtYXJnaW46MCBAY29sX21hciAoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpO1xyXG5cdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyIHtcclxuXHQmLnNvbGlkIHtcclxuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcblx0fVxyXG5cdFxyXG5cdCYuZGFzaGVkIHtcclxuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6ZGFzaGVkO1xyXG5cdH1cclxuXHRcclxuXHQmLmRvdHRlZCB7XHJcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOmRvdHRlZDtcclxuXHR9XHJcblx0XHJcblx0Ji50cmFuc3BhcmVudCB7XHJcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOjA7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19kaXZpZGVyIHtcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9zaG9ydCB7XHJcblx0XHR3aWR0aDoyMCU7XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19jZW50ZXIge1xyXG5cdFx0XHRsZWZ0OjQwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfcG9zX3JpZ2h0IHtcclxuXHRcdFx0bGVmdDo4MCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19kaXZpZGVyX3dpZHRoX21lZGl1bSB7XHJcblx0XHR3aWR0aDo0MCU7XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19jZW50ZXIge1xyXG5cdFx0XHRsZWZ0OjMwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfcG9zX3JpZ2h0IHtcclxuXHRcdFx0bGVmdDo2MCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19kaXZpZGVyX3dpZHRoX2xvbmcge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogU3BlY2lhbCBIZWFkaW5nICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaGVhZGluZ193cmFwIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR0b3A6NTAlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbGVmdF93cmFwLCBcclxuXHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfcmlnaHRfd3JhcCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOjA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfc2hvcnQge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyIHtcclxuXHRcdFx0d2lkdGg6MTAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbGVmdCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0Oi0xMCU7XHJcblx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX21lZGl1bSB7XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xyXG5cdFx0XHR3aWR0aDoyMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sZWZ0IHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6LTIwJTtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbG9uZyB7XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbGVmdCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0Oi0xMDAlO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9zaG9ydCwgXHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9tZWRpdW0sIFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbG9uZyB7XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nIHtcclxuXHRcdFx0bWF4LXdpZHRoOjgwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaGVhZGluZyB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSwgXHJcblx0XHRhOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDowLjVlbTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRmVhdHVyZWQgQmxvY2sgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19mZWF0dXJlZF9ibG9jayB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuZmVhdHVyZWRfYmxvY2tfbGluayB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHRcdHotaW5kZXg6MTtcclxuXHR9XHJcblx0XHJcblx0LmZlYXR1cmVkX2Jsb2NrX2lubmVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFRhYmxlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfdGFibGVfd3JhcCB7XHJcblx0b3ZlcmZsb3cteDphdXRvO1xyXG5cdG1hcmdpbi1ib3R0b206MjBweDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfdGFibGUge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHR0ciB7XHJcblx0XHR0ZCwgXHJcblx0XHR0aCB7XHJcblx0XHRcdCYuY21zbWFzdGVyc190YWJsZV9jZWxsX2FsaWduY2VudGVyIHtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RhYmxlX2NlbGxfYWxpZ25sZWZ0IHtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc190YWJsZV9jZWxsX2FsaWducmlnaHQge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogTm90aWNlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfbm90aWNlIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHBhZGRpbmc6MCAyNXB4O1xyXG5cdG1hcmdpbjpAbGluZV9oZWlnaHRfcGFkIDE1cHggQGxpbmVfaGVpZ2h0X3BhZCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5iZDtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6OTBweDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6MjVweDtcclxuXHR9XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Zm9udC1zaXplOjMycHg7XHJcblx0XHQucG9zX2FicygxZW0sIDFlbSwgMjdweCwgYXV0byk7XHJcblx0fVxyXG5cdFxyXG5cdC5ub3RpY2VfY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHBhZGRpbmc6QGxpbmVfaGVpZ2h0X3BhZCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5ub3RpY2VfY2xvc2Uge1xyXG5cdFx0Zm9udC1zaXplOjEycHg7XHJcblx0XHRsaW5lLWhlaWdodDoyN3B4O1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdC5wb3NfYWJzKDI4cHgsIDI4cHgsIGF1dG8sIC0xNXB4LCAtMTRweCwgYXV0byk7XHJcblx0XHQuYmQ7XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfbm90aWNlX3dhcm5pbmcge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZmZmZGY5O1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiNmMWNlYjc7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6I2ZkYjU0MztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9zdWNjZXNzIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZkZmZmOTtcclxuXHRcdGJvcmRlci1jb2xvcjojZDBlNGE4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbG9yOiM4YmMzNGE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19ub3RpY2VfZG93bmxvYWQge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZjlmZmZhO1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiNjOWUwY2Q7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6IzYzYjY5ODtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9pbmZvIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZhZmNmZjtcclxuXHRcdGJvcmRlci1jb2xvcjojZDVkZGU5O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbG9yOiM2ZTk1ZDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19ub3RpY2VfZXJyb3Ige1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZmZmZGZkO1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiNmN2QxZDE7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6I2VhNTE1MTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm5vdGljZV9jb250ZW50IHtcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAuOCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0XHRjb2xvcjojZmZmZmZmO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaWNvbl93cmFwIHtcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW1wbGVfaWNvbl90aXRsZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jazsgXHJcblx0XHRtYXJnaW4tbGVmdDo4cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uIHtcclxuXHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uIExpc3QgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMge1xyXG5cdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRwYWRkaW5nOjA7XHJcblx0bWFyZ2luOjA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0bGk6YmVmb3JlIHtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0LmJkcnMoMCk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0d2lkdGg6MWVtO1xyXG5cdFx0XHRoZWlnaHQ6MWVtO1xyXG5cdFx0XHRsZWZ0OjUwcHg7XHJcblx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uIHtcclxuXHRcdFx0d2lkdGg6MTAwcHg7XHJcblx0XHRcdGhlaWdodDoxMDBweDtcclxuXHRcdFx0bWFyZ2luOjFweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Zm9udC1zaXplOjMycHg7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6ODBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRib3JkZXItd2lkdGg6MTBweDtcclxuXHRcdFx0XHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0XHRcdFx0d2lkdGg6MTAycHg7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMnB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDotMXB4O1xyXG5cdFx0XHRcdGxlZnQ6LTFweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV90aXRsZSB7XHJcblx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19jb2xvcl90eXBlX2ljb24ge1xyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9saXN0X3Bvc19yaWdodCB7XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6NTBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfbGlzdCB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6MzBweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDoxNXB4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6LTMycHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gKiB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9ibG9jayB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRwYWRkaW5nOjAgMCA1MHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MXB4O1xyXG5cdFx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6NDBweDtcclxuXHRcdFx0XHR6LWluZGV4OjE7XHJcblx0XHRcdFx0Lm9wKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0LmRuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX2ljb25fdHlwZV9pbWFnZSB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24ge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24ge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKC41KTtcclxuXHRcdFx0XHQub3AoLjMpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uIHtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX2NvbnRlbnQge1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfaWNvbl9saXN0X3Bvc19sZWZ0IHtcclxuXHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fY29udGVudCB7XHJcblx0XHRcdFx0LnRhbDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV90ZXh0IHtcclxuXHRcdFx0XHRcdC50YWw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbl93cmFwIHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjMwcHg7XHJcblx0XHRcdFx0LmZsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19pY29uX2xpc3RfcG9zX3JpZ2h0IHtcclxuXHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fY29udGVudCB7XHJcblx0XHRcdFx0LnRhcjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV90ZXh0IHtcclxuXHRcdFx0XHRcdC50YXI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbl93cmFwIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6MzBweDtcclxuXHRcdFx0XHQuZnI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSWNvbiBCb3ggKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19pY29uX2JveCB7XHJcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmJlZm9yZSwgXHJcblx0Lmljb25fYm94X2hlYWRpbmc6YmVmb3JlIHtcclxuXHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcclxuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdH1cclxuXHRcclxuXHQmLmJveF9pY29uX3R5cGVfaW1hZ2UsIFxyXG5cdCYuYm94X2ljb25fdHlwZV9udW1iZXIge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XHJcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcclxuXHRcdFx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuaWNvbl9ib3hfaGVhZGluZyB7XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonXFwwMGEwJztcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcclxuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fdG9wIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0dG9wOjMwcHg7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lmljb25fYm94X2lubmVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdC5pY29uX2JveF90ZXh0IHtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2JveF90b3Age1xyXG5cdFx0Ym9yZGVyLXdpZHRoOjFweDtcclxuXHRcdHBhZGRpbmc6MjBweCAyMHB4IDMwcHg7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0dG9wOjM1cHg7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEyMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5pY29uX2JveF9pbm5lciB7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdFxyXG5cdFx0XHQuaWNvbl9ib3hfdGV4dCB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9ib3hfbGVmdCB7XHJcblx0XHRib3JkZXItd2lkdGg6MXB4O1xyXG5cdFx0cGFkZGluZzoyMHB4IDIwcHggMzBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MjRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6NDVweDtcclxuXHRcdFx0d2lkdGg6NDVweDtcclxuXHRcdFx0aGVpZ2h0OjQ1cHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2JveF9sZWZ0X3RvcCB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6NjBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MjRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6NDVweDtcclxuXHRcdFx0d2lkdGg6NDVweDtcclxuXHRcdFx0aGVpZ2h0OjQ1cHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQge1xyXG5cdFx0aDEsIFxyXG5cdFx0aDIsIFxyXG5cdFx0aDMsIFxyXG5cdFx0aDQsIFxyXG5cdFx0aDUsIFxyXG5cdFx0aDYge1xyXG5cdFx0XHRkaXNwbGF5OmZsZXg7XHJcblx0XHRcdGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MTVweDtcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjppbmhlcml0O1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0XHQub3AoMCk7XHJcblx0XHRcdFx0LnBvc19hYnMoYXV0byxhdXRvLDAsYXV0bywwLDApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0aDEsIFxyXG5cdFx0XHRoMiwgXHJcblx0XHRcdGgzLCBcclxuXHRcdFx0aDQsIFxyXG5cdFx0XHRoNSwgXHJcblx0XHRcdGg2IHtcclxuXHRcdFx0XHRkaXNwbGF5OmZsZXg7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6Y2VudGVyO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0XHQucG9zX2FicyhhdXRvLGF1dG8sMCxhdXRvLDAsMCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5pY29uX2JveF90ZXh0IHtcclxuXHRcdG1hcmdpbi1ib3R0b206MTBweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogVG9nZ2xlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3RvZ2dsZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZXNfZmlsdGVyIHtcclxuXHRcdHBhZGRpbmc6MCAwIDE1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5jdXJyZW50X2ZpbHRlciB7XHJcblx0XHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuYmRiO1xyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHQuYmRiKDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfcGx1cyB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0LnBvc19hYnMoMjBweCwgMjBweCwgYXV0bywgMCk7XHJcblx0XHQudGFjO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6J1xcZTk1MCc7XHJcblx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XHJcblx0XHRcdGZvbnQtc2l6ZToyMHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxMnB4O1xyXG5cdFx0XHR3aWR0aDoxZW07XHJcblx0XHRcdGhlaWdodDoxZW07XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRzcGFuIHtcclxuXHRcdFx0LmRuO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGUge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfaW5uZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMjBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfd3JhcC5jdXJyZW50X3RvZ2dsZSB7XHJcblx0XHQuY21zbWFzdGVyc190b2dnbGVfcGx1cyB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IC5jbXNtYXN0ZXJzX3RvZ2dsZSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYudG9nZ2xlc19tb2RlX3RvZ2dsZSB7XHJcblx0XHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUgYSB7XHJcblx0XHRcdHBhZGRpbmc6MjBweCA2MHB4IDIwcHggMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji50b2dnbGVzX21vZGVfYWNjb3JkaW9uIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV90aXRsZSBhIHtcclxuXHRcdFx0cGFkZGluZzoyMHB4IDA7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV9wbHVzIHtcclxuXHRcdFx0LmRuO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBUYWJzICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfdGFicyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LmRuO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToyMHB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdGFic193cmFwIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdGFiIHtcclxuXHRcdC5kbjtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5hY3RpdmVfdGFiIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdGFiX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYudGFic19tb2RlX3RhYiB7XHJcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0cGFkZGluZzoxNXB4IDMwcHggMjVweDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRwYWRkaW5nOjM1cHggMzBweCAyNXB4IDMwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKDFlbSwgMWVtLCAwLCAwLCAxcHgsIGF1dG8pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xyXG5cdFx0XHQuYmR0O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJfaW5uZXIge1xyXG5cdFx0XHRwYWRkaW5nOjMzcHggMCAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnRhYnNfbW9kZV90b3VyIHtcclxuXHRcdGRpc3BsYXk6dGFibGU7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0d2lkdGg6MTglO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtIHtcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tdG9wOjA7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRtYXJnaW46OHB4IDIwcHggOHB4IDA7XHJcblx0XHRcdFx0cGFkZGluZzoycHggMDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRtYXJnaW46OHB4IDIwcHggOHB4IDA7XHJcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6MzBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDFweCwgYXV0byk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfd3JhcCB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0d2lkdGg6ODIlO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XHJcblx0XHRcdC5iZGw7XHJcblx0XHRcdC5iZGI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYl9pbm5lciB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDQwcHggMzBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji50YWJzX3Bvc19yaWdodCB7XHJcblx0XHRcdGRpcmVjdGlvbjpydGw7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XHJcblx0XHRcdFx0ZGlyZWN0aW9uOmx0cjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6MDtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXRvcDowO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjoxMHB4IDAgMTBweCAyMHB4O1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjMwcHg7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFx0cmlnaHQ6MXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFic193cmFwIHtcclxuXHRcdFx0XHRkaXJlY3Rpb246bHRyO1xyXG5cdFx0XHRcdC5iZGwoMCk7XHJcblx0XHRcdFx0LmJkcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFiX2lubmVyIHtcclxuXHRcdFx0XHRwYWRkaW5nOjAgMzBweCA0MHB4IDA7XHJcblx0XHRcdFx0LnRhcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBTdGF0cyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3N0YXRzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQudGFjO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xyXG5cdFx0LmNtc21hc3RlcnNfc3RhdCB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnN0YXRzX21vZGVfYmFycyB7XHJcblx0XHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdGhlaWdodDozcHg7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjI3cHg7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0IHtcclxuXHRcdFx0XHR3aWR0aDowO1xyXG5cdFx0XHRcdG1pbi1oZWlnaHQ6MzBweDtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdGhlaWdodDozcHg7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0sIFxyXG5cdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdFx0dG9wOmF1dG87XHJcblx0XHRcdFx0XHRcdFx0Ym90dG9tOjEycHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MjVweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0dG9wOmF1dG87XHJcblx0XHRcdFx0XHRcdGJvdHRvbToxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRcdFx0XHRib3R0b206MTBweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Y2FudmFzIHtcclxuXHRcdFx0XHRcdC5kbjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfc3VidGl0bGUge1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6MjBweCAwIDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5zdGF0c19tb2RlX2NpcmNsZXMge1xyXG5cdFx0bWFyZ2luLXRvcDotNDBweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfc3RhdF93cmFwIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjQwcHggMTBweCAwO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9maWZ0aCB7XHJcblx0XHRcdFx0d2lkdGg6MjAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9mb3VydGgge1xyXG5cdFx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5vbmVfdGhpcmQge1xyXG5cdFx0XHRcdHdpZHRoOjMzLjMlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9oYWxmIHtcclxuXHRcdFx0XHR3aWR0aDo1MCU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub25lX2ZpcnN0IHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0IHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxNzBweDtcclxuXHRcdFx0XHRoZWlnaHQ6MTcwcHg7XHJcblx0XHRcdFx0bWFyZ2luOjAgMCAxNXB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0XHRcdFx0d2lkdGg6MTcwcHg7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTcwcHg7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDo2MnB4O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcdHotaW5kZXg6MTtcclxuXHRcdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHQuYmQoM3B4KTtcclxuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOjI4cHg7XHJcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OjI4cHg7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGNhbnZhcyB7XHJcblx0XHRcdFx0XHR3aWR0aDoxNzBweDtcclxuXHRcdFx0XHRcdGhlaWdodDoxNzBweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5zdGF0X2hhc190aXRsZWljb24ge1xyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjM4cHg7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZzo2cHggMCAwO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3N1YnRpdGxlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6MTZweCAwIDA7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDb3VudGVycyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2NvdW50ZXJzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQudGFjO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHRjYW52YXMge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb3VudGVyX3dyYXAge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMnB4O1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRmbG9hdDpub25lO1xyXG5cdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0LnRhYztcclxuXHRcdFxyXG5cdFx0Ji5vbmVfZmlmdGgge1xyXG5cdFx0XHR3aWR0aDoyMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX2ZvdXJ0aCB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5vbmVfdGhpcmQge1xyXG5cdFx0XHR3aWR0aDozMy4zJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5vbmVfaGFsZiB7XHJcblx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5vbmVfZmlyc3Qge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19jb3VudGVyIHtcclxuXHRcdFx0bWluLWhlaWdodDoxMDBweDtcclxuXHRcdFx0cGFkZGluZzowIDIwcHg7XHJcblx0XHRcdG1hcmdpbjowIDAgKEBsaW5lX2hlaWdodF9wYWQgKiAyKTtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl90aXRsZSB7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY291bnRlcl9oYXNfaWNvbiB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9pbm5lciB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jb3VudGVyX2hhc19pbWFnZSB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9pbm5lciB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfc3VidGl0bGUge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRtYXJnaW4tdG9wOjdweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jb3VudGVyc190eXBlX3ZlcnRpY2FsIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXIge1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9pbm5lciB7XHJcblx0XHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MTBweCAwIDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX3N1YnRpdGxlIHtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOjlweDtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY291bnRlcnNfdHlwZV9ob3Jpem9udGFsIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXIge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfaW5uZXIge1xyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDTVNNQVNURVJTIEJ1dHRvbiAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2J1dHRvbiB7XHJcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHBhZGRpbmc6MCAzMHB4O1xyXG5cdGN1cnNvcjpwb2ludGVyO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5iZDtcclxuXHQuYmRycyhAYmRyc193aWR0aCk7XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0bGluZS1oZWlnaHQ6aW5oZXJpdCAhaW1wb3J0YW50O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjEwO1xyXG5cdH1cclxuXHRcclxuXHRzcGFuIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ei1pbmRleDoxMDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9jbGVhcl9zdHlsZXMge1xyXG5cdFx0YmFja2dyb3VuZDpub25lO1xyXG5cdFx0Ym9yZGVyOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCBAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFx0Lm92aDtcclxuXHRcdC5iZHJzKDApO1xyXG5cdFx0LmJ4c2hfbm9uZTtcclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHQuYnhzaF9ub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfaG92ZXIge1xyXG5cdFx0LmJkO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JkX3VuZGVybGluZSB7XHJcblx0XHQuYmRsKDApO1xyXG5cdFx0LmJkcigwKTtcclxuXHRcdC5iZHQoMCk7XHJcblx0XHQuYmRiO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdCNwYWdlICYge1xyXG5cdFx0XHRcdC50cmFucyh+J25vbmUnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX2xlZnQge1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdGxlZnQ6LTEwMCU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0bGVmdDowJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3JpZ2h0IHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRyaWdodDotMTAwJTtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRyaWdodDowJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3RvcCB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfc2xpZGVfYm90dG9tIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19leHBhbmRfdmVydCB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR3aWR0aDowO1xyXG5cdFx0XHRoZWlnaHQ6MTA1JTtcclxuXHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdHRvcDo1MCU7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0d2lkdGg6OTAlO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2V4cGFuZF9ob3Ige1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTA1JTtcclxuXHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDo3NSU7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfZXhwYW5kX2RpYWcge1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6NTAwJTtcclxuXHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0aGVpZ2h0OjE3MCU7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfc2hhZG93IHtcclxuXHRcdHBhZGRpbmctYm90dG9tOjNweDtcclxuXHRcdC5ieHNoaSgwLCAtM3B4LCAwLCAwLCAuMik7XHJcblx0XHRcclxuXHRcdCNwYWdlICYge1xyXG5cdFx0XHQudHJhbnMofidub25lJyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHRtYXJnaW4tdG9wOjNweDtcclxuXHRcdFx0LmJ4c2hpKDAsIDAsIDAsIDAsIC4wMik7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kYXJrX2JnLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fbGlnaHRfYmcsIFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kaXZpZGVyLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faW52ZXJzZSB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIC4yKTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGFya19iZywgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlciB7XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMS4zKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnIHtcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgLjIpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlciB7XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0LmJkcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2ludmVyc2Uge1xyXG5cdFx0LmJkO1xyXG5cdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0LCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xyXG5cdFx0cGFkZGluZy1sZWZ0OihAbGluZV9oZWlnaHRfcGFkICogMik7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OihAbGluZV9oZWlnaHRfcGFkICogMik7XHJcblx0XHQuYmQ7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnMoKEBsaW5lX2hlaWdodF9wYWQgKiAyKSwgYXV0bywgLShAbGluZV9oZWlnaHRfcGFkICogMiksIGF1dG8pO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicygoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpLCBhdXRvLCBhdXRvLCAtKEBsaW5lX2hlaWdodF9wYWQgKiAyKSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfbGVmdCwgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3JpZ2h0LCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfdG9wLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicygxMDAlLCBhdXRvKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9sZWZ0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDotMjAwJTtcclxuXHRcdH1cclxuXHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodCB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHJpZ2h0Oi0yMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3RvcCB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHRvcDotMjAwJTtcclxuXHRcdH1cclxuXHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2JvdHRvbSB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHRvcDoyMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcclxuXHRcdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIENvbnRhY3QgRm9ybSA3ICoqKioqKioqKioqKioqKioqKi9cclxuLndwY2Y3LWZvcm0ge1xyXG5cdEB7aW5wdXRfdGV4dH0sXHJcblx0c2VsZWN0LCBcclxuXHR0ZXh0YXJlYSxcclxuXHRvcHRpb24ge1xyXG5cdFx0bWluLXdpZHRoOjEwMHB4O1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogTWFpbHBvZXQgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19tYWlscG9ldF9mb3JtIHtcclxuXHQubWFpbHBvZXRfZm9ybSB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdC5tYWlscG9ldF9zdWJtaXQge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRtYXgtd2lkdGg6MzAwcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjM4cHg7XHJcblx0XHRcdHBhZGRpbmc6MCA0MHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubWFpbHBvZXRfcGFyYWdyYXBoIHtcclxuXHRcdFx0cGFkZGluZzowIDAgMTNweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm1haWxwb2V0X3RleHQge1xyXG5cdFx0XHRoZWlnaHQ6NDJweCAhaW1wb3J0YW50O1xyXG5cdFx0XHR3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XHJcblx0XHRcdG1heC13aWR0aDozMDBweCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucGFyc2xleS1lcnJvcnMtbGlzdCxcclxuXHQubWFpbHBvZXRfdmFsaWRhdGVfc3VjY2VzcyxcclxuXHQubWFpbHBvZXRfdmFsaWRhdGVfZXJyb3Ige1xyXG5cdFx0YmFja2dyb3VuZDojZmZmZmZmO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRyaWdodDowO1xyXG5cdFx0Ym90dG9tOjEwMCU7XHJcblx0XHR3aWR0aDoyMDBweDtcclxuXHRcdHBhZGRpbmc6MTBweDtcclxuXHRcdC5iZDtcclxuXHR9XHJcblxyXG5cdC5wYXJzbGV5LWVycm9ycy1saXN0IHtcclxuXHRcdG1hcmdpbi1ib3R0b206NXB4O1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSG92ZXIgc2xpZGVyICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdGxpOmJlZm9yZSB7XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjFweDtcclxuXHRcdHBhZGRpbmc6MCAwIEByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9mdWxsX2ltZyB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdG1heC1oZWlnaHQ6MTAwJTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMge1xyXG5cdFx0Zm9udC1zaXplOjA7XHJcblx0XHRsaW5lLWhlaWdodDowO1xyXG5cdFx0bWFyZ2luOjAgLTVweDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHdvcmQtc3BhY2luZzotMXB4O1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdHdvcmQtc3BhY2luZzpub3JtYWw7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRkaXNwbGF5Oi1tb3otaW5saW5lLXN0YWNrO1xyXG5cdFx0XHRwYWRkaW5nOjEwcHggNXB4IDA7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIGEge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuaG92ZXJlZF9pdGVtIGE6YmVmb3JlIHtcclxuXHRcdFx0XHQub3AoLjQpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdGltYWdlLXJlbmRlcmluZzphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdC5vcCguMyk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlcjpiZWZvcmUge1xyXG5cdFx0XHRcdC5vcCguNCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwcHg7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmpzX2JvZHkgLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2l0ZW1zID4gbGkgPiBmaWd1cmUuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfZnVsbF9pbWcgaW1nIHtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDb250ZW50IHNsaWRlciAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2NvbnRlbnRfc2xpZGVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCY6aG92ZXIge1xyXG5cdFx0Lm93bC1idXR0b25zIHtcclxuXHRcdFx0PiBkaXYge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRpbWcge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdHBvc2l0aW9uOnN0YXRpYztcclxuXHRcdHdpZHRoOjA7XHJcblx0XHRoZWlnaHQ6MDtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDo1MHB4O1xyXG5cdFx0XHRoZWlnaHQ6NTBweDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0LnBvc19hYnMoNTBweCwgNTBweCk7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5vd2wtcHJldiB7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub3dsLW5leHQge1xyXG5cdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHQuYmRycygwKTtcclxuXHRcdFx0XHQuYnhzaF9ub25lO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHR3aWR0aDoxMHB4O1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjI2cHg7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOjI2cHg7XHJcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OjI2cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHRib3R0b206MTNweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogR2FsbGVyeSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2dhbGxlcnkge1xyXG5cdG1hcmdpbjowIDAgMCAtMTBweDtcclxuXHRwYWRkaW5nOjA7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfZ2FsbGVyeV9pdGVtIHtcclxuXHRcdG1pbi13aWR0aDoxODBweDtcclxuXHRcdHBhZGRpbmc6MCAwIDEwcHggMTBweDtcclxuXHRcdC5mbDtcclxuXHRcdC5vcCgwKTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0Lm9wKDEpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfY2FwdGlvbiB7XHJcblx0XHRcdGZpZ3VyZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjZweCA2cHggMTVweDtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGZpZ2NhcHRpb24ge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTVweCAwIDA7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmlsaWdodGJveC10aHVtYm5haWxzLmRhcmsgLmlsaWdodGJveC10aHVtYm5haWxzLWdyaWQgLmlsaWdodGJveC10aHVtYm5haWwgaW1nIHtcclxuXHRpbWFnZS1yZW5kZXJpbmc6YXV0bztcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBRdW90ZXMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19xdW90ZXNfc2xpZGVyIHtcclxuXHRwYWRkaW5nOjYzcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHQub3dsLXBhZ2luYXRpb24ge1xyXG5cdFx0dG9wOjA7XHJcblx0XHRib3R0b206YXV0bztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2NvbnRlbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2ltYWdlIHtcclxuXHRcdG1hcmdpbjoyMnB4IDAgMDtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHR3aWR0aDo3NXB4O1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9oZWFkZXIge1xyXG5cdFx0bWFyZ2luOjE1cHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9zdWJ0aXRsZV93cmFwIHtcclxuXHRcdG1hcmdpbjoycHggMCAwO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3NpdGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlICsgLmNtc21hc3RlcnNfcXVvdGVfc2l0ZTpiZWZvcmUge1xyXG5cdFx0Y29udGVudDonXFwwMDJGJztcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjAgNHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcXVvdGVzX2dyaWQge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVzX3ZlcnQge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZXNfbGlzdCB7XHJcblx0XHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHRwYWRkaW5nOjMwcHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjI7XHJcblx0XHRcclxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6bGFzdC1vZi10eXBlIHtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdHBhZGRpbmc6MjZweCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1vZi10eXBlIHtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0bWFyZ2luOjAgQGNvbF9tYXI7XHJcblx0XHRwYWRkaW5nOjM1cHggNDBweCA0MHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZmw7XHJcblx0XHQuYmQoMXB4LCBkYXNoZWQpO1xyXG5cdFx0LmJkcnMoMTVweCk7XHJcblx0XHRcclxuXHRcdC5xdW90ZV9mb3VyJiB7XHJcblx0XHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV90aHJlZSYge1xyXG5cdFx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfdHdvJiB7XHJcblx0XHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9vbmUmIHtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfdHdvJiB7XHJcblx0XHRcdHBhZGRpbmc6MCAxMDBweCAwIDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV90aHJlZSYge1xyXG5cdFx0XHRwYWRkaW5nOjAgNDBweCAwIDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9mb3VyJiB7XHJcblx0XHRcdHBhZGRpbmc6MCAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LnF1b3RlX2ZvdXImIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2ltZ19pbmZvX3dyYXAge1xyXG5cdFx0cGFkZGluZzoyMnB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2ltYWdlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDIwcHggMCAwO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LnF1b3RlX2ZvdXImIHtcclxuXHRcdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0d2lkdGg6NTVweDtcclxuXHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW5mb193cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlX3dyYXAge1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LnF1b3RlX2ZvdXImIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdFxyXG5cdFx0LnF1b3RlX29uZSYsXHJcblx0XHQucXVvdGVfdHdvJixcclxuXHRcdC5xdW90ZV90aHJlZSYge1xyXG5cdFx0XHQrIC5jbXNtYXN0ZXJzX3F1b3RlX3NpdGU6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OidcXDAwMkYnO1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjowIDRweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9zaXRlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcmljaW5nIHRhYmxlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3ByaWNpbmdfdGFibGUge1xyXG5cdG1hcmdpbjowIC1AY29sX21hciAtKEBjb2xfbWFyICogMik7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19wcmljaW5nX2l0ZW0ge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyIChAY29sX21hciAqIDIpO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZmw7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucHJpY2luZ19mb3VyJiB7XHJcblx0XHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0XHRcdFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0bisxKSB7XHJcblx0XHRcdFx0Y2xlYXI6Ym90aDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJpY2luZ190aHJlZSYge1xyXG5cdFx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpudGgtY2hpbGQoM24rMSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByaWNpbmdfdHdvJiB7XHJcblx0XHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0XHRcdFxyXG5cdFx0XHQmOm50aC1jaGlsZCgybisxKSB7XHJcblx0XHRcdFx0Y2xlYXI6Ym90aDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJpY2luZ19vbmUmIHtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2luZ19pdGVtLnByaWNpbmdfYmVzdCB7XHJcblx0XHQuY21zbWFzdGVyc19wcmljaW5nX2l0ZW1faW5uZXIge1xyXG5cdFx0XHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ByaWNpbmdfaXRlbV9pbm5lciB7XHJcblx0XHRib3JkZXItd2lkdGg6MXB4O1xyXG5cdFx0Ym9yZGVyLXN0eWxlOmRhc2hlZDtcclxuXHRcdHBhZGRpbmc6NjBweCAzMHB4IDQ1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmJkcnMoMTVweCk7XHJcblx0fVxyXG5cdFxyXG5cdC5wcmljaW5nX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmZlYXR1cmVfbGlzdCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MTVweCAwIDMwcHg7XHJcblx0XHQudGFjO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjVweCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmZlYXR1cmVfaWNvbiB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdG1hcmdpbjowIDVweCAwIDA7XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2Vfd3JhcCB7XHJcblx0XHR3b3JkLXNwYWNpbmc6LTEwcHg7XHJcblx0XHRwYWRkaW5nOjAgMCA2MHB4O1xyXG5cdFx0Lm92aDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ByaWNlLFxyXG5cdC5jbXNtYXN0ZXJzX2N1cnJlbmN5LCBcclxuXHQuY21zbWFzdGVyc19jb2lucyB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcGVyaW9kIHtcclxuXHRcdHdvcmQtc3BhY2luZzowO1xyXG5cdFx0bWFyZ2luLXRvcDozcHg7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogR29vZ2xlIE1hcHMgKioqKioqKioqKioqKioqKioqL1xyXG4ucmVzaXphYmxlX2Jsb2NrIC5nb29nbGVfbWFwIHtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGxlZnQ6MDtcclxuXHR0b3A6MDtcclxuXHRoZWlnaHQ6MTAwJTtcclxufVxyXG5cclxuLmdvb2dsZV9tYXAgaW1nIHtcclxuXHRtYXgtd2lkdGg6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDYXB0aW9uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaW1nIHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaW1hZ2VfbCB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRcdC5mbDtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19pbWFnZV9yIHtcclxuXHRcdG1hcmdpbi1sZWZ0OkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdCYud2l0aF9jYXB0aW9uIHtcclxuXHRcdHBhZGRpbmc6NnB4IDZweCAwIDZweDtcclxuXHRcdGJvcmRlci13aWR0aDoxcHg7XHJcblx0XHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19jYXB0aW9uIHtcclxuXHRcdHBhZGRpbmc6MTVweCAwO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcbn1cclxuXHJcbmRsLndwLWNhcHRpb24ge1xyXG5cdC5iZCgwKTtcclxufVxyXG5cclxuLndwLWNhcHRpb24ge1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdHBhZGRpbmc6MDtcclxuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHJcblx0Ji5hbGlnbmNlbnRlciB7XHJcblx0XHRtYXJnaW4tbGVmdDphdXRvO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OmF1dG87XHJcblx0fVxyXG5cdFxyXG5cdCYuYWxpZ25sZWZ0IHtcclxuXHRcdG1hcmdpbi1yaWdodDoyNXB4O1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWducmlnaHQge1xyXG5cdFx0bWFyZ2luLWxlZnQ6MjVweDtcclxuXHR9XHJcblx0XHRcclxuXHQud3AtY2FwdGlvbi10ZXh0IHtcclxuXHRcdHBhZGRpbmc6MTVweCAwO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV1AgR2FsbGVyeSAqKioqKioqKioqKioqKioqKiovXHJcbi5nYWxsZXJ5IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXIgMjBweDtcclxuXHRcclxuXHRpbWcge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGJvcmRlcjpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyIDIwcHg7XHJcblx0XHRcclxuXHRcdC53cC1jYXB0aW9uLXRleHQge1xyXG5cdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHQuY2w7XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCgybisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDNuKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAzKTtcclxuXHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoNG4rMSkge1xyXG5cdFx0XHQuY2w7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTUgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDUpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCg1bisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNikgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDZuKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA3KSAtIChAY29sX21hciAqIDIpLCAzKTtcclxuXHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoN24rMSkge1xyXG5cdFx0XHQuY2w7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDgpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCg4bisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gOSkgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDluKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmdhbGxlcnk6YWZ0ZXIsIFxyXG4uZ2FsbGVyeS1pdGVtOmFmdGVyIHtcclxuXHQuY2xfYWZ0ZXI7XHJcbn1cclxuXHJcbi5nYWxsZXJ5LWNhcHRpb24ge1xyXG5cdG91dGxpbmU6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBTaWRlYmFyICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc2lkZWJhciB7XHJcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xyXG5cdFxyXG5cdGFzaWRlIHtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xNDE0MTQxNCB7XHJcblx0YXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xNDE0MTIge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzE0MTIxNCB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTIxNDE0IHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xMzEzMTMge1xyXG5cdGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMzQxNCB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDMpIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzE0MzQge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKCgxMDAlICogMykgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8yMzEzIHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTMyMyB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAyKSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzEyMTIge1xyXG5cdGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTEge1xyXG5cdGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFNoYXJlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc2hhcmluZyB7XHJcblx0Lm92aDtcclxufVxyXG5cclxuLnNoYXJlX3dyYXAge1xyXG5cdGZsb2F0OmxlZnQ7XHJcblx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdG1hcmdpbi1yaWdodDoyMHB4O1xyXG5cdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHJcblx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3ZlcnRpY2FsICYge1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBUd2l0dGVyIFN0cmlwZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3R3aXR0ZXJfd3JhcCB7XHJcblx0cGFkZGluZzo3M3B4IDAgNDBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHRib3R0b206LTQycHg7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtYnV0dG9ucyB7XHJcblx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LnR3cl9pY29uIHtcclxuXHRcdGZvbnQtc2l6ZTo2NHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6NjRweDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHQucG9zX2FicygxZW0sIDFlbSwgMCwgMCwgMCwgYXV0byk7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bWFyZ2luOjAgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdHdpdHRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdHdpdHRlcl9pdGVtIHtcclxuXHRcdHBhZGRpbmc6NDhweCAxMCUgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LnB1Ymxpc2hlZCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQucG9zX2FicyhhdXRvLCAyMHB4LCAwLCAwLCAwLCBhdXRvKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdHdpdHRlcl9pdGVtX2NvbnRlbnQge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRHJvcGNhcCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2Ryb3BjYXAge1xyXG5cdG1hcmdpbjoycHggMjVweCA1cHggMjVweDtcclxuXHRsaW5lLWhlaWdodDo2MHB4O1xyXG5cdC5mbDtcclxuXHRcclxuXHQmLnR5cGUyIHtcclxuXHRcdHdpZHRoOjYwcHg7XHJcblx0XHRoZWlnaHQ6NjBweDtcclxuXHRcdG1hcmdpbjo2cHggMjVweCA1cHggMDtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHQudGFjO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDbGllbnRzICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfY2xpZW50c19zbGlkZXJfd3JhcCB7XHJcblx0Ji5lbmFibGVfYXJyb3dfY29udHJvbCB7XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0Lm93bC1idXR0b25zIHtcclxuXHRcdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyIHtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjM3cHg7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6MzdweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm93bC1idXR0b25zIHtcclxuXHRcdFx0cG9zaXRpb246c3RhdGljO1xyXG5cdFx0XHRcclxuXHRcdFx0PiBkaXYge1xyXG5cdFx0XHRcdC5wb3NfYWJzKDM3cHgsIDEwMCUpO1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm93bC1wcmV2IHtcclxuXHRcdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LnBvc19hYnMoMTJweCwgMXB4LCAwLCBhdXRvLCA4cHgpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdC5wb3NfYWJzKDEycHgsIDFweCwgMCwgYXV0bywgMCwgOHB4KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHRcdFx0XHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHQucG9zX2FicygxMnB4LCAxcHgsIGF1dG8sIDAsIDAsIDhweCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0XHRcdFx0LnBvc19hYnMoMTJweCwgMXB4LCBhdXRvLCAwLCA4cHgpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHQucG9zX2FicygzN3B4LCAzN3B4KTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdFx0LmRuO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmVuYWJsZV9zbGlkZXJfY29udHJvbCB7XHJcblx0XHQuY21zbWFzdGVyc19jbGllbnRzX3NsaWRlciB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjEwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjEwcHg7XHJcblx0XHRcdGhlaWdodDoxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfY2xpZW50c19zbGlkZXIge1xyXG5cdG1hcmdpbjowO1xyXG5cdHBhZGRpbmc6MDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyX2l0ZW0ge1xyXG5cdFx0bWluLXdpZHRoOjE2MHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRmb250LXNpemU6MDtcclxuXHRsaW5lLWhlaWdodDoxODBweDtcclxuXHRoZWlnaHQ6MTgwcHg7XHJcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC50YWM7XHJcblx0XHJcblx0PiBzcGFuIHtcclxuXHRcdC50YWM7XHJcblx0XHQucG9zX2FicygxMDAlLCAxMDAlKTtcclxuXHRcdC5vcCgwKTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCY6aG92ZXIge1xyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0aW1nIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDIwcHg7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdG1heC1oZWlnaHQ6MTAwJTtcclxuXHRcdGhlaWdodDphdXRvO1xyXG5cdFx0d2lkdGg6YXV0bztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHR9XHJcblx0XHJcblx0YSB7XHJcblx0XHRsaW5lLWhlaWdodDoxODBweDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0Jjpob3ZlciB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLmNtc21hc3RlcnNfY2xpZW50c19ncmlkIHtcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcblx0XHJcblx0Ji5jbGllbnRzX2ZpdmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdHdpZHRoOjIwJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbGllbnRzX2ZvdXIgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdHdpZHRoOjI1JTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbGllbnRzX3RocmVlIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbSB7XHJcblx0XHR3aWR0aDozMy4zMyU7XHJcblx0fVxyXG5cdFxyXG5cdCYuY2xpZW50c190d28gLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdHdpZHRoOjUwJTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY2xpZW50c19pdGVtcyB7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MjBweDtcclxuXHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHQub3AoLjEpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdGltZyB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfb25lIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbTpsYXN0LWNoaWxkLFxyXG5cdCYuY2xpZW50c19vbmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRmbG9hdDpub25lO1xyXG5cdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRsaW5lLWhlaWdodDowO1xyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfdHdvIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbTpudGgtY2hpbGQoMm4rMSksXHJcblx0Ji5jbGllbnRzX3RocmVlIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbTpudGgtY2hpbGQoM24rMSksXHJcblx0Ji5jbGllbnRzX2ZvdXIgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCg0bisxKSxcclxuXHQmLmNsaWVudHNfZml2ZSAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW06bnRoLWNoaWxkKDVuKzEpIHtcclxuXHRcdGNsZWFyOmJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIFdpZGdldHMgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4ud2lkZ2V0IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRwYWRkaW5nOjAgMCAoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpO1xyXG5cdFxyXG5cdC53aWRnZXR0aXRsZSB7XHJcblx0XHRwYWRkaW5nOjAgMCAxM3B4O1xyXG5cdFx0bWFyZ2luOjAgMCAyMnB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0LmJkcnMoNXB4KTtcclxuXHRcdFx0LnBvc19hYnMoMjBweCwgNXB4LCAwLCBhdXRvLCBhdXRvKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFRleHQgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X3RleHQge1xyXG5cdHVsIHtcclxuXHRcdGxpIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQWR2ZXJ0aXNlbWVudCAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2FkdmVydGlzZW1lbnRfZW50cmllcyB7XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MjVweDtcclxuXHR9XHJcblx0XHJcblx0LmFkdl9pbWFnZV93cmFwIHtcclxuXHRcdG1hcmdpbjotNXB4O1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0XHJcblx0XHQuYWR2X3dpZGdldF9pbWFnZSB7XHJcblx0XHRcdHdpZHRoOjEyNXB4O1xyXG5cdFx0XHRoZWlnaHQ6MTI1cHg7XHJcblx0XHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRcdG1hcmdpbjo1cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBMaXN0cyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfcGFnZXMsXHJcbi53aWRnZXRfY2F0ZWdvcmllcyxcclxuLndpZGdldF9hcmNoaXZlLFxyXG4ud2lkZ2V0X21ldGEsXHJcbi53aWRnZXRfcmVjZW50X2NvbW1lbnRzLCBcclxuLndpZGdldF9yZWNlbnRfZW50cmllcyB7XHJcblx0dWwge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6NHB4IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dWwge1xyXG5cdFx0XHRtYXJnaW46N3B4IDA7XHJcblx0XHRcdFxyXG5cdFx0XHRsaTpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRtYXJnaW46N3B4IDAgMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0PiB1bCB7XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6MjBweDtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDo0MHB4O1xyXG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDowO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDo2MHB4O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6MDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6ODBweDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDowO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucG9zdC1kYXRlIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46LTNweCAwIDA7XHJcblx0fVxyXG59XHJcblxyXG4ud2lkZ2V0X3JlY2VudF9jb21tZW50cyB7XHJcblx0PiB1bCB7XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0cGFkZGluZzo0cHggMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi53aWRnZXRfY2F0ZWdvcmllcywgXHJcbi53aWRnZXRfYXJjaGl2ZSB7XHJcblx0LnNjcmVlbi1yZWFkZXItdGV4dCB7XHJcblx0XHQuZG47XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBUZXh0ICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF90ZXh0IHtcclxuXHRsaSB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IENhbGVuZGFyICoqKioqKioqKioqKioqKioqKi9cclxuI3dwLWNhbGVuZGFyIHtcclxuXHRib3JkZXItc3BhY2luZzowO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0bWluLXdpZHRoOjIwMHB4O1xyXG5cdG1heC13aWR0aDo0MDBweDtcclxuXHRwYWRkaW5nOjIwcHg7XHJcblx0LmJkKDFweCwgZGFzaGVkKTtcclxuXHQuYmR0KDApO1xyXG5cdC5iZHJzKDAgMCAxNXB4IDE1cHgpO1xyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0dGV4dC1hbGlnbjpsZWZ0O1xyXG5cdFx0cGFkZGluZzoxNXB4IDMwcHg7XHJcblx0XHQuYmQoMXB4LCBkYXNoZWQpO1xyXG5cdFx0LmJkcnMoMTVweCAxNXB4IDAgMCk7XHJcblx0fVxyXG5cdFxyXG5cdHRkLCBcclxuXHR0aCB7XHJcblx0XHRwYWRkaW5nOjVweCAwO1xyXG5cdFx0LmJkKDApO1xyXG5cdH1cclxuXHRcclxuXHR0aGVhZCxcclxuXHR0Ym9keSB7XHJcblx0XHR0ZCwgXHJcblx0XHR0aCB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCNuZXh0IHtcclxuXHRcdC50YXI7XHJcblx0fVxyXG5cdFxyXG5cdHRmb290IHtcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZzoxMHB4IDEwcHggMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IENvbnRhY3QgRm9ybSAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2NvbnRhY3RfZm9ybV9lbnRyaWVzIHtcclxuXHRAe2lucHV0X3RleHR9LFxyXG5cdHRleHRhcmVhLFxyXG5cdHNlbGVjdCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHQuZm9ybV9pbmZvLnN1Ym1pdF93cmFwIHtcclxuXHRcdHBhZGRpbmctdG9wOjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBDb250YWN0IEluZm8gKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9jb250YWN0X2luZm9fZW50cmllcyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQ+IHNwYW4sIFxyXG5cdC5hZHJlc3Nfd3JhcCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdD4gc3BhbiB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzo5cHggMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkYjtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdC5iZGIoMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXRfY3VzdG9tX2NvbnRhY3RfaW5mb190aXRsZSB7XHJcblx0XHRwYWRkaW5nOjAgMjBweCAwIDA7XHJcblx0XHQuZmw7XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXRfY3VzdG9tX2NvbnRhY3RfaW5mb19kZXNjIHtcclxuXHRcdC5mcjtcclxuXHRcdC50YXI7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBDdXN0b20gTWVudSAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfbmF2X21lbnUge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0dWwge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzoxMHB4IDA7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0LmJkYjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmVtcHR5IHtcclxuXHRcdFx0XHRcdC5kbjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0PiBkaXYgPiB1bCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjIwcHg7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjMwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjQwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjUwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjYwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjcwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjgwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjkwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjEwMHB4O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgRmFjZWJvb2sgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9mYWNlYm9va19lbnRyaWVzIGlmcmFtZSB7XHJcblx0bWFyZ2luLWJvdHRvbTowO1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBGbGlja3IgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9mbGlja3JfZW50cmllcyB7XHJcblx0LndyYXAge1xyXG5cdFx0bWFyZ2luOjAgLTdweDtcclxuXHR9XHJcblx0XHJcblx0Lm1vcmVfYnV0dG9uIHtcclxuXHRcdGRpc3BsYXk6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmZsaWNrcl9iYWRnZV9pbWFnZSB7XHJcblx0XHRtYXJnaW46MCA3cHggMThweDtcclxuXHRcdC5mbDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IExhdGVzdCBhbmQgUG9wdWxhciBQcm9qZWN0cyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX3BvcHVsYXJfcHJvamVjdHNfZW50cmllcyxcclxuLndpZGdldF9jdXN0b21fbGF0ZXN0X3Byb2plY3RzX2VudHJpZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIgIHtcclxuXHRcdHBhZGRpbmc6MCAwIDI1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtYnV0dG9ucyB7XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IHtcclxuXHRcdHBhZGRpbmc6MCAxcHggMnB4O1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaGVhZGVyIHtcclxuXHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaW1nX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjIwcHggMDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaGVhZGVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjNweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0Ym90dG9tOi0zMHB4O1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0LnRhbDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0cGFkZGluZzoxOHB4IDIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQgIHtcclxuXHRcdHBhZGRpbmc6MCAwIDE3cHg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBQb3N0cyBUYWJzICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF9jdXN0b21fcG9zdHNfdGFic19lbnRyaWVzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnMge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHRcdC50YWw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHRcdFxyXG5cdFx0XHQrIC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtID4gYTpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jy0nO1xyXG5cdFx0XHRcdHBhZGRpbmc6MCAzcHg7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdFx0dG9wOmF1dG87XHJcblx0XHRcdFx0Ym90dG9tOmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xyXG5cdFx0XHRwYWRkaW5nOjIwcHggMCAwO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LmJkdCgwKTtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdD4gLmNtc21hc3RlcnNfdGFiOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYiB7XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxpIHtcclxuXHRcdFx0XHRtYXJnaW46MjVweCAwIDA7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRwIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRzbWFsbCB7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji50YWJfbGF0ZXN0LCBcclxuXHRcdFx0Ji50YWJfcG9wdWxhciB7XHJcblx0XHRcdFx0bGk6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0XHRcdGhlaWdodDo2MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji50YWJfY29tbWVudHMge1xyXG5cdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdD4gcCB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjEwcHggMCAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19scHJfdGFic19pbWcge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MjBweDtcclxuXHRcdFx0ei1pbmRleDoxO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHQucG9zX2Ficyg2MHB4LCA2MHB4LCAwLCBhdXRvLCAwLCBhdXRvKTtcclxuXHRcdFx0LmJkcnMoNnB4KTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfbHByX3RhYnNfY29udCB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDAgNzVweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiAucHVibGlzaGVkIHtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOjZweDtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBSU1MgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X3JzcyB7XHJcblx0aW1nIHtcclxuXHRcdG1hcmdpbjotM3B4IDAgMDtcclxuXHR9XHJcblx0XHJcblx0dWwge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MjBweCAwIDA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5yc3N3aWRnZXQge1xyXG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnJzcy1kYXRlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucnNzU3VtbWFyeSB7XHJcblx0XHRcdFx0cGFkZGluZzo1cHggMCAwO1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGNpdGUge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzo3cHggMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBUYWcgQ2xvdWQgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X3RhZ19jbG91ZCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHRhIHtcclxuXHRcdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjAgNHB4IDAgMDtcclxuXHRcdFxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBUd2l0dGVyICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF9jdXN0b21fdHdpdHRlcl9lbnRyaWVzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdHVsIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbjowIDAgMTVweDtcclxuXHRcdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5iZGI7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC50d2VldF90aW1lIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MCAwIDEycHg7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDI4cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MThweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MThweDtcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIGF1dG8pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQudHdlZXRfdGV4dCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogU2VhcmNoICsgQXJjaGl2ZXMgKyBTaXRlbWFwICsgRXJyb3IgKyBPdGhlciBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBBcmNoaXZlcyArIFNlYXJjaCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3NlYXJjaCwgXHJcbi5jbXNtYXN0ZXJzX2FyY2hpdmUge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0PiAuYWJvdXRfYXV0aG9yIHtcclxuXHRcdG1heC13aWR0aDo3MDBweDtcclxuXHRcdHBhZGRpbmc6MCAwIDUwcHg7XHJcblx0XHQubTBhO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zZWFyY2hfemVybyB7XHJcblx0XHQuc2VhcmNoX2Jhcl93cmFwIHtcclxuXHRcdFx0bWF4LXdpZHRoOjQwMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY29udGVudCAmIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3NlYXJjaF96ZXJvIHtcclxuXHRcdFx0LnRhbDtcclxuXHRcdFx0XHJcblx0XHRcdCYudGFyIHtcclxuXHRcdFx0XHRmbG9hdDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5taWRkbGVfY29udGVudCAmIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3NlYXJjaF96ZXJvIHtcclxuXHRcdFx0bWF4LXdpZHRoOjY1MHB4O1xyXG5cdFx0XHRcclxuXHRcdFx0Ji50YWMge1xyXG5cdFx0XHRcdG1hcmdpbjowIGF1dG87XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2FyY2hpdmVfdHlwZSB7XHJcblx0cGFkZGluZzo1MHB4IDAgMDtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCY6Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdH1cclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYXJjaGl2ZXNfcGFkO1xyXG5cdFx0XHJcblx0XHQmLmhpZ2hJbWcge1xyXG5cdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1faW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luOjAgMzBweCAwIDA7XHJcblx0XHR3aWR0aDoyMyU7XHJcblx0XHQuZmw7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdFx0LmJkcnMoMTVweCk7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9jb250X3dyYXAge1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX3R5cGUge1xyXG5cdFx0cGFkZGluZzowIDAgMjBweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMjVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX3RpdGxlIHtcclxuXHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9jb250ZW50IHtcclxuXHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9pbmZvIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fY2F0ZWdvcnkge1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgMCAyMHB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9kYXRlX3dyYXAge1xyXG5cdFx0KyAuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdXNlcl9uYW1lOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jy0nO1xyXG5cdFx0XHRwYWRkaW5nOjAgM3B4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBTaXRlbWFwICoqKioqKioqKioqKioqKioqKi9cclxuLm1pZGRsZV9jb250ZW50IC5jbXNtYXN0ZXJzX3NpdGVtYXBfd3JhcCB7XHJcblx0cGFkZGluZzowO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19zaXRlbWFwX3dyYXAge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdHVsLCBcclxuXHRvbCwgXHJcblx0bGkge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdD4gdWw6bGFzdC1jaGlsZCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfZGl2aWRlciB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjMwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpdGVtYXAge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0cGFkZGluZy10b3A6MzBweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjFweDtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0LmJkcnMoMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6MDtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gYSB7XHJcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTozNXB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCsgdWwge1xyXG5cdFx0XHRcdFx0bWFyZ2luLXRvcDotMTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XHJcblx0XHRcdFx0XHQuZmw7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg1KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg5KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMTcpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDIxKSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMjkpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDMzKSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNDEpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDQ1KSB7XHJcblx0XHRcdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDoyMHB4O1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdHVsIHtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDoxMHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0bGkge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjIwcHg7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpdGVtYXBfY2F0ZWdvcnkge1xyXG5cdFx0cGFkZGluZzo1cHggMCAzMHB4O1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxcHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHRib3R0b206MDtcclxuXHRcdFx0LmJkcnMoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gbGkge1xyXG5cdFx0XHR3aWR0aDoyNSU7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0XHQuZmw7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOm50aC1jaGlsZCg1KSwgXHJcblx0XHRcdCY6bnRoLWNoaWxkKDkpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoMTMpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoMTcpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoMjEpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoMjUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoMjkpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoMzMpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoMzcpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoNDEpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoNDUpIHtcclxuXHRcdFx0XHRjbGVhcjpib3RoO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDoyMHB4O1xyXG5cdFx0XHRcclxuXHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDoxMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdFx0bGkge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MjBweDtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpdGVtYXBfYXJjaGl2ZSB7XHJcblx0XHRwYWRkaW5nOjVweCAwIDMwcHg7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjFweDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHQuYmRycygwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRXJyb3IgKioqKioqKioqKioqKioqKioqL1xyXG4uZXJyb3Ige1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmVycm9yX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MjQwcHggMjBweCA1MHB4O1xyXG5cdH1cclxuXHRcclxuXHQuZXJyb3JfdGl0bGUge1xyXG5cdFx0Zm9udC1zaXplOjI2NHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0Zm9udC13ZWlnaHQ6NTAwO1xyXG5cdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCAwIDVweDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG5cdFxyXG5cdC5lcnJvcl9zdWJ0aXRsZSB7XHJcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxufVxyXG5cclxuLmVycm9yX2NvbnQge1xyXG5cdHBhZGRpbmc6NDBweCAwIDI1MHB4O1xyXG5cdC50YWM7XHJcblx0XHJcblx0LnNlYXJjaF9iYXJfd3JhcCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdHdpZHRoOjI3MHB4O1xyXG5cdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHRtYXJnaW46MCAxMHB4IDIwcHg7XHJcblx0XHRcclxuXHRcdEB7aW5wdXRfdGV4dH0ge1xyXG5cdFx0XHRoZWlnaHQ6NDZweDtcclxuXHRcdFx0LmJkcnM7XHJcblx0XHRcdFxyXG5cdFx0XHQjbWlkZGxlICYge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTNweCAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5zZWFyY2hfYnV0dG9uIHtcclxuXHRcdFx0d2lkdGg6NTVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmVycm9yX2J1dHRvbl93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0bWFyZ2luOjAgMTBweCAyMHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBBdHRhY2htZW50IFBhZ2UgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19hdHRhY2hfaW1nIHtcclxuXHRwYWRkaW5nOjQwcHggMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfaW5mbyB7XHJcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xyXG5cdFx0bWFyZ2luOjAgMCAzMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdHRhY2hfaW1nX2VkaXQge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfbWV0YSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIE90aGVyICoqKioqKioqKioqKioqKioqKi9cclxuI21haW4ge1xyXG5cdC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIGlucHV0LCBcclxuXHQjd3Bjb250ZW50IC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIHNlbGVjdCwgXHJcblx0LndpdGhfZnJtX3N0eWxlIC5mcm1fZm9ybV9maWVsZHMgc2VsZWN0LCBcclxuXHQud2l0aF9mcm1fc3R5bGUgLmZybV9mb3JtX2ZpZWxkcyB0ZXh0YXJlYSB7XHJcblx0XHRwYWRkaW5nOkBpbnB1dF9wYWQ7XHJcblx0fVxyXG59XHJcblxyXG4jbGFuZ19zZWwgdWwge1xyXG5cdG92ZXJmbG93OnZpc2libGU7XHJcbn1cclxuXHJcbiNsYW5nX3NlbF9mb290ZXIge1xyXG5cdGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKiBDb250YWN0IEZvcm1zIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIHtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHJcblx0bGFiZWwge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTo1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5zdWNjZXNzX2JveCB7XHJcblx0XHRtYXJnaW46MCBAY29sX21hciAxMHB4O1xyXG5cdFx0d2lkdGg6cm91bmQoMTAwJSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0LmZvcm1faW5mbyB7XHJcblx0XHRtYXJnaW46MCBAY29sX21hcjtcclxuXHRcdG1hcmdpbi1ib3R0b206NXB4O1xyXG5cdFx0cGFkZGluZy1ib3R0b206MTBweDtcclxuXHRcdFxyXG5cdFx0Ji5zdWJtaXRfd3JhcCB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIHNlbGVjdCxcclxuXHRbY2xhc3MqPVwib25lX1wiXSB0ZXh0YXJlYSB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHR0ZXh0YXJlYSB7XHJcblx0XHRtaW4taGVpZ2h0OjEzNXB4ICFpbXBvcnRhbnQ7XHJcblx0fVxyXG59XHJcblxyXG5zcGFuLndwY2Y3LWxpc3QtaXRlbSB7XHJcblx0ZGlzcGxheTpibG9jaztcclxufVxyXG5cclxuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbCxcclxuYm9keSAuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCwgXHJcbmJvZHkgLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xyXG5cdHBhZGRpbmctbGVmdDoyNXB4O1xyXG5cdHBhZGRpbmctcmlnaHQ6MDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRjdXJzb3I6cG9pbnRlcjtcclxuXHQuZmw7XHJcbn1cclxuXHJcbi53cGNmNy1saXN0LWl0ZW0gbGFiZWwge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdHBhZGRpbmc6NXB4IDA7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuXHQuZmw7XHJcblx0Lm9wKDApO1xyXG5cdC5wb3NfYWJzKDFlbSwgMWVtLCAwLCBhdXRvKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDpiZWZvcmUsIFxyXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDpiZWZvcmUsXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YmVmb3JlLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YmVmb3JlIHtcclxuXHRjb250ZW50OicnO1xyXG5cdC5iZDtcclxuXHQucG9zX2FicygxNXB4LCAxNXB4LCAxcHgsIGF1dG8pO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmJlZm9yZSB7XHJcblx0LmJkcnMoNTAlKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmFmdGVyLFxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YWZ0ZXIge1xyXG5cdGNvbnRlbnQ6Jyc7XHJcblx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdC5wb3NfYWJzKDlweCwgOXB4LCA0cHgsIGF1dG8pO1xyXG5cdC5vcCgwKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyIHtcclxuXHQuYmRycyg1MCUpO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHQub3AoMSk7XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogQ1NTMyBBbmltYXRpb25zXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5odG1sLmNzc3RyYW5zaXRpb25zIHtcclxuXHQvKiBDdXN0b20gQW5pbWF0aW9ucyAqL1xyXG5cdC53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YmVmb3JlLCBcclxuXHQud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWw6YmVmb3JlLCBcclxuXHQuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDpiZWZvcmUsXHJcblx0QHtpbnB1dF90ZXh0fSxcclxuXHR0ZXh0YXJlYSwgXHJcblx0c2VsZWN0IHtcclxuXHRcdC50cmFucyh+J2JvcmRlci1jb2xvciAuMnMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3Blbl9wcm9qZWN0IC5vd2wtYnV0dG9ucyA+IGRpdiA+IHNwYW4gPiBzcGFuOmJlZm9yZSB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0I3NsaWRlX3RvcCxcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX3NsaWRlcl93cmFwLmVuYWJsZV9hcnJvd19jb250cm9sIC5vd2wtYnV0dG9ucyA+IGRpdiA+IHNwYW46YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX3NsaWRlcl93cmFwLmVuYWJsZV9hcnJvd19jb250cm9sIC5vd2wtYnV0dG9ucyA+IGRpdiA+IHNwYW46YWZ0ZXIsXHJcblx0LnBvc3RfbmF2ID4gc3BhbiA+IHNwYW46YmVmb3JlLFxyXG5cdC5wb3N0X25hdiA+IHNwYW4gPiBzcGFuOmFmdGVyLFxyXG5cdC5jbXNtYXN0ZXJzX3dyYXBfcGFnaW5hdGlvbiB1bCBsaSAucGFnZS1udW1iZXJzID4gc3BhbjpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfd3JhcF9wYWdpbmF0aW9uIHVsIGxpIC5wYWdlLW51bWJlcnMgPiBzcGFuOmFmdGVyLFxyXG5cdC5oZWFkZXJfbWlkIC5yZXNwX21pZF9uYXZfd3JhcCAucmVzcF9taWRfbmF2ID4gc3BhbixcclxuXHQuaGVhZGVyX21pZCAucmVzcF9taWRfbmF2X3dyYXAgLnJlc3BfbWlkX25hdiA+IHNwYW46YmVmb3JlLFxyXG5cdC5oZWFkZXJfbWlkIC5yZXNwX21pZF9uYXZfd3JhcCAucmVzcF9taWRfbmF2ID4gc3BhbjphZnRlcixcclxuXHQuaGVhZGVyX2JvdCAucmVzcF9ib3RfbmF2X3dyYXAgLnJlc3BfYm90X25hdiA+IHNwYW4sXHJcblx0LmhlYWRlcl9ib3QgLnJlc3BfYm90X25hdl93cmFwIC5yZXNwX2JvdF9uYXYgPiBzcGFuOmJlZm9yZSxcclxuXHQuaGVhZGVyX2JvdCAucmVzcF9ib3RfbmF2X3dyYXAgLnJlc3BfYm90X25hdiA+IHNwYW46YWZ0ZXIsXHJcblx0LmhlYWRlcl90b3AgLnJlc3BvbnNpdmVfdG9wX25hdiA+IHNwYW4sXHJcblx0LmhlYWRlcl90b3AgLnJlc3BvbnNpdmVfdG9wX25hdiA+IHNwYW46YmVmb3JlLFxyXG5cdC5oZWFkZXJfdG9wIC5yZXNwb25zaXZlX3RvcF9uYXYgPiBzcGFuOmFmdGVyIHtcclxuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRfd3JhcF9pbm5lciBhLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIC5wcm9qZWN0X2lubmVyX2NvbnQgYSxcclxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0gLmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtX2Nsb3NlLFxyXG5cdC5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyX3dyYXAuZW5hYmxlX2Fycm93X2NvbnRyb2wgLm93bC1idXR0b25zID4gZGl2LFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaG9yaXpvbnRhbCAuY21zbWFzdGVyc19pbWdfc29jaWFsX3dyYXAgLnByb2ZpbGVfc29jaWFsX2ljb25zLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaG9yaXpvbnRhbCAuY21zbWFzdGVyc19pbWdfc29jaWFsX3dyYXAgLnByb2ZpbGVfc29jaWFsX2ljb25zX2xpc3QgYSxcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2dyaWQgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlcixcclxuXHQuY21zbWFzdGVyc19vcGVuX3Byb2plY3QgLm93bC1idXR0b25zID4gZGl2IHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5idXR0b24sXHJcblx0aW5wdXRbdHlwZT1zdWJtaXRdLFxyXG5cdGlucHV0W3R5cGU9YnV0dG9uXSxcclxuXHRidXR0b24sXHJcblx0ZGl2LnN1YnBhZ2VfbmF2ID4gc3BhbiwgXHJcblx0ZGl2LnN1YnBhZ2VfbmF2ID4gYSxcclxuXHQucG9zdF9uYXYgPiBzcGFuID4gc3BhbixcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdCAuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9jYXRlZ29yeSBhLFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfbWFzb25yeSAuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IGEsXHJcblx0LmNtc21hc3RlcnNfb3Blbl9wb3N0IC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbmZvID4gc3Bhbi5jbXNtYXN0ZXJzX3Bvc3RfY2F0ZWdvcnkgYSxcclxuXHQuY21zbWFzdGVyc193cmFwX3BhZ2luYXRpb24gdWwgbGkgLnBhZ2UtbnVtYmVycyxcclxuXHQuY21zbWFzdGVyc19wb3N0X2RlZmF1bHQgLmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUsXHJcblx0LmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtIGJ1dHRvbixcclxuXHQuY21zbWFzdGVyc19ub3RpY2UgLm5vdGljZV9jbG9zZSB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiAub3dsLXBhZ2Uge1xyXG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0dWwubmF2aWdhdGlvbiA+IGxpID4gYSAubmF2X3RhZyB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29udGVudF9zbGlkZXIgLm93bC1idXR0b25zID4gZGl2IHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjVzIGVhc2UtaW4tb3V0LCB2aXNpYmlsaXR5IC41cyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCAuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9jb250X3dyYXBfaW5uZXIsXHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9ncmlkIC5jbXNtYXN0ZXJzX3Byb2plY3RfZm9vdGVyIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjRzIGVhc2UtaW4tb3V0LCB0b3AgLjRzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXRfY3VzdG9tX3BvcHVsYXJfcHJvamVjdHNfZW50cmllcyAuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCAuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9oZWFkZXIsXHJcblx0LndpZGdldF9jdXN0b21fbGF0ZXN0X3Byb2plY3RzX2VudHJpZXMgLmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3QgLmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaGVhZGVyIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjRzIGVhc2UtaW4tb3V0LCBib3R0b20gLjRzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZXMgLmNtc21hc3RlcnNfdG9nZ2xlX3BsdXMsXHJcblx0LmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyX3dyYXAgLmNtc21hc3RlcnNfaXRlbXNfc29ydF9idXQ6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl93cmFwIC5jbXNtYXN0ZXJzX2l0ZW1zX3NvcnRfYnV0OmFmdGVyIHtcclxuXHRcdC50cmFucyh+J2FsbCAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0XHJcblx0LyogR2xvYmFsIEFuaW1hdGlvbnMgKi9cclxuXHRhLCBcclxuXHQuaW1nX3BsYWNlaG9sZGVyX3NtYWxsLCBcclxuXHQuY21zbWFzdGVyc19pY29uX3dyYXAgLmNtc21hc3RlcnNfc2ltcGxlX2ljb25fdGl0bGUsIFxyXG5cdC5jbXNtYXN0ZXJzX3NpdGVtYXBfd3JhcCAuY21zbWFzdGVyc19zaXRlbWFwID4gbGkgPiB1bCA+IGxpID4gdWwgbGkgYTpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKGNvbG9yIC4zcyBlYXNlLWluLW91dCk7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfbWlkLCBcclxuXHQuaGVhZGVyX2JvdCB7XHJcblx0XHQudHJhbnMofidiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc29jaWFsX2ljb24sIFxyXG5cdC5lZGdlX29ubHkgLmNtc21hc3RlcnNfYnV0X2ljb25faW52ZXJzZSB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdG5hdiA+IGRpdiA+IHVsIHVsLFxyXG5cdG5hdiA+IGRpdiA+IHVsIGRpdiB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCAuMXMsIG1hcmdpbi10b3AgLjNzIGVhc2UtaW4tb3V0IC4xcycpO1xyXG5cdH1cclxuXHRcclxuXHRuYXYgPiBkaXYgPiB1bCB1bCB1bCB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCAuMXMsIG1hcmdpbi1sZWZ0IC4zcyBlYXNlLWluLW91dCAuMXMsIG1hcmdpbi1yaWdodCAuM3MgZWFzZS1pbi1vdXQgLjFzJyk7XHJcblx0fVxyXG5cdFxyXG5cdG5hdiA+IGRpdiA+IHVsIGxpIGEsXHJcblx0LmNtc21hc3RlcnNfaWNvbl93cmFwIC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uIHtcclxuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0bmF2ID4gZGl2ID4gdWwgbGkgYSAubmF2X3N1YnRpdGxlIHtcclxuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX3RvcCAuaGVhZGVyX3RvcF9idXQge1xyXG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZXMgLmNtc21hc3RlcnNfdG9nZ2xlX3BsdXMgc3BhbiB7XHJcblx0XHQudHJhbnMofidiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dCwgaGVpZ2h0IC4xcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfdGh1bWJzID4gbGkgaW1nIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjRzIGVhc2UtaW4tb3V0LCB3aWR0aCAuM3MgZWFzZS1pbi1vdXQsIGxlZnQgLjNzIGVhc2UtaW4tb3V0LCByaWdodCAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2l0ZW1zID4gbGkge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuNXMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgLjVzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMgPiBsaSBhIHtcclxuXHRcdC50cmFucyhib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0KTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyIC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMgPiBsaSBhOmJlZm9yZSB7XHJcblx0XHQudHJhbnMob3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQpO1xyXG5cdH1cclxuXHRcclxuXHQuaXNvdG9wZSA+ICoge1xyXG5cdFx0LnRyYW5zKG9wYWNpdHkgLjhzIGVhc2UtaW4tb3V0KTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYnV0dG9uLCBcclxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfY2xlYXJfc3R5bGVzOmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnNfYnV0dG9uLmNtc21hc3RlcnNfYnV0X2NsZWFyX3N0eWxlczphZnRlciB7XHJcblx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0LFxyXG5cdC5jbXNtYXN0ZXJzX2J1dHRvbi5jbXNtYXN0ZXJzX2J1dF9pY29uX3NsaWRlX3JpZ2h0IHtcclxuXHRcdC50cmFucyh+J2FsbCAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIDBzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsXHJcblx0LmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWw6YWZ0ZXIsXHJcblx0LndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXHJcblx0LmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YWZ0ZXIge1xyXG5cdFx0LnRyYW5zKH4nYWxsIC4ycyBlYXNlLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fdG9wOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fYm94X3RvcDpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2JveF9sZWZ0X3RvcDpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2JveF9sZWZ0OmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGgxOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGgyOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGgzOmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoNDpiZWZvcmUsIFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDU6YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGg2OmJlZm9yZSB7XHJcblx0XHQudHJhbnMofidhbGwgMXMgY3ViaWMtYmV6aWVyKC41NSwgLjMsIC41LCAxLjY1KScpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9ibG9jayAuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbTpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSA1cyBlYXNlLWluLW91dCwgaGVpZ2h0IC44cyBlYXNlLWluJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtcy5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uLCBcclxuXHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9ibG9jayAuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSAuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbjphZnRlciB7XHJcblx0XHQudHJhbnMofidhbGwgLjVzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtcy5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uOmJlZm9yZSB7XHJcblx0XHQudHJhbnMofidjb2xvciAuNHMgZWFzZS1pbi1vdXQsIGZvbnQtc2l6ZSAuNHMgZWFzZS1pbi1vdXQsIGxpbmUtaGVpZ2h0IC40cyBlYXNlLWluJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbSBpbWcsIFxyXG5cdC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbSBzcGFuLCBcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXIgLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyBhIHtcclxuXHRcdC50cmFucyh+J2FsbCAuNXMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZSAucHJvZmlsZSBpbWcge1xyXG5cdFx0LnRyYW5zKH4nYWxsIC43cyBjdWJpYy1iZXppZXIoLjU1LCAuMywgLjUsIDEuNjUpJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgLnBsX3NvY2lhbF9saXN0IHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjVzIGVhc2Utb3V0LCBtYXJnaW4gLjVzIGVhc2Utb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCBmaWd1cmUge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUgLnByb2plY3RfaW5uZXIge1xyXG5cdFx0LnRyYW5zKH4ndG9wIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX21vdmUgMnMgZWFzZS1pbjtcclxuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHQtbXMtYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHQtby1hbmltYXRpb246YmFyX21vdmUgMnMgZWFzZS1pbjtcclxuXHRcdGFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXI6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lciAuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdC13ZWJraXQtYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0LW1vei1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtbXMtYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0LW8tYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0YW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIgLmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0LW1vei1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XHJcblx0XHQtby1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0YW5pbWF0aW9uOmJhcl9pbm5lciAxcyBlYXNlLWluLW91dDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29sdW1uX3N0aWNreSB7XHJcblx0XHQudHJhbnMofictd2Via2l0LXRyYW5zZm9ybSAuM3MgZWFzZSwgdHJhbnNmb3JtIC4zcyBlYXNlJyk7XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBhdXRvZmlsbCB7XHJcblx0XHR0byB7XHJcblx0XHRcdGNvbG9yOmluaGVyaXQ7XHJcblx0XHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfbW92ZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0d2lkdGg6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtbW96LWtleWZyYW1lcyBiYXJfbW92ZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0d2lkdGg6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX21vdmUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdHdpZHRoOiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRAa2V5ZnJhbWVzIGJhcl9tb3ZlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHR3aWR0aDogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl90aXRsZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW1vei1rZXlmcmFtZXMgYmFyX3RpdGxlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX3RpdGxlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEBrZXlmcmFtZXMgYmFyX3RpdGxlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfaW5uZXIge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1tb3ota2V5ZnJhbWVzIGJhcl9pbm5lciB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW8ta2V5ZnJhbWVzIGJhcl9pbm5lciB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRAa2V5ZnJhbWVzIGJhcl9pbm5lciB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuIiwiXHJcbkBpbnB1dF9wYWQ6IDhweDtcclxuQGlucHV0X2hlaWdodDogNDhweDtcclxuXHJcbkBsaW5lX2hlaWdodF9wYWQ6IDIwcHg7XHJcbkBkZWZhdWx0X2xpc3RfdG9wX3BhZDogMTBweDtcclxuQGRlZmF1bHRfbGlzdF9sZWZ0X3BhZDogMjBweDtcclxuQGJsb2Nrc19ob3JfcGFkOiAyMHB4O1xyXG5AY29udF9zaWRlYmFyX3BhZDogNjBweDtcclxuQGNvbnRfdmVydF9wYWQ6IDgwcHg7XHJcblxyXG5AYmRyc193aWR0aDogMzBweDtcclxuQGJ1dF9iZHJzX3dpZHRoOiBAYmRyc193aWR0aDtcclxuQGJ1dF9iZF93aWR0aDogMXB4O1xyXG5cclxuQGNvbF9tYXI6IDEuMyU7XHJcblxyXG5AcmVzcF9ibG9ja3NfcGFkOiA2Ni44NiU7XHJcblxyXG5AcHJlbG9hZGVyX2Jsb2dfZGVmYXVsdF9wYWQ6IDU1LjglO1xyXG5AcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ6IDYzLjElO1xyXG5AcHJlbG9hZGVyX2Jsb2dfdGltZWxpbmVfcGFkOiA2My4xJTtcclxuQHByZWxvYWRlcl9vcGVuX3Bvc3RfcGFkOiA2Ni44NiU7XHJcbkBwcmVsb2FkZXJfcG9ydGZvbGlvX2dyaWRfcGFkOiA3MC42OSU7XHJcbkBwcmVsb2FkZXJfb3Blbl9wcm9qZWN0X3BhZDogNTUuOCU7XHJcbkBwcmVsb2FkZXJfcG9zdHNfc2xpZGVyX3BhZDogNjMuMSU7XHJcbkBwcmVsb2FkZXJfcG9zdHNfc2xpZGVyX3Byb2plY3RfcGFkOiA3MC42OSU7XHJcbkBwcmVsb2FkZXJfYXJjaGl2ZXNfcGFkOiAxMDAlO1xyXG5cclxuQHNpZGViYXJfd2lkdGg6IDI4JTtcclxuQGNvbnRlbnRfd2lkdGg6IDEwMCUgLSBAc2lkZWJhcl93aWR0aDtcclxuXHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3dpZHRoOiAyMDZweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fcGFkX3RvcDogMTVweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fcGFkX2JvdDogMTVweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQ6IDI1cHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDogMTVweDtcclxuQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDogMTBweDtcclxuQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ6IDJweDtcclxuXHJcbkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoOiAyMDZweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fcGFkX3RvcDogMTVweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fcGFkX2JvdDogMTVweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDogMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAxMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMnB4O1xyXG5cclxuQHRvcF9uYXZfZHJvcGRvd25fd2lkdGg6IDE3NXB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9wYWRfdG9wOiAxM3B4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9wYWRfYm90OiAxM3B4O1xyXG5AdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDIwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAycHg7XHJcblxyXG5AY29udF93aWR0aF9kZWY6IDk4MHB4O1xyXG5AY29udF93aWR0aF9sYXJnZTogMTIwMHB4O1xyXG5AY29udF93aWR0aF9mdWxsOiAxMDAlO1xyXG5AY29udF93aWR0aF9taW46IDMyMHB4O1xyXG5cclxuQGlucHV0X3RleHQ6IGUoJ2lucHV0Om5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9ZmlsZV0pOm5vdChbdHlwZT1oaWRkZW5dKTpub3QoW3R5cGU9aW1hZ2VdKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9cmVzZXRdKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWNvbG9yXSk6bm90KFt0eXBlPXJhbmdlXSknKTtcclxuXHJcbkBtb25pdG9yX2xhcmdlOiB+JyhtaW4td2lkdGg6IDE0NDBweCknO1xyXG5AbW9uaXRvcl9tZWRpdW06IH4nKG1pbi13aWR0aDogMTAyNXB4KSc7XHJcbkBtb25pdG9yX3RhYmxldDogficobWF4LXdpZHRoOiAxMDI0cHgpJztcclxuQG1vbml0b3JfdGFibGV0Xzk1MDogficobWF4LXdpZHRoOiA5NTBweCknO1xyXG5AbW9uaXRvcl90YWJsZXRfc21hbGw6IH4nKG1heC13aWR0aDogNzY4cHgpJztcclxuQG1vbml0b3JfdGFibGV0XzYwMDogficobWF4LXdpZHRoOiA2MDBweCknO1xyXG5AbW9uaXRvcl9waG9uZTogficobWF4LXdpZHRoOiA1NDBweCknO1xyXG5AbW9uaXRvcl9waG9uZV9zbWFsbDogficobWF4LXdpZHRoOiAzMjBweCknO1xyXG5cclxuXHJcblxyXG4uZmwgKCkge1xyXG5cdGZsb2F0OmxlZnQ7XHJcbn1cclxuXHJcbi5mciAoKSB7XHJcblx0ZmxvYXQ6cmlnaHQ7XHJcbn1cclxuXHJcbi5kbiAoKSB7XHJcblx0ZGlzcGxheTpub25lO1xyXG59XHJcblxyXG4udGFsICgpIHtcclxuXHR0ZXh0LWFsaWduOmxlZnQ7XHJcbn1cclxuXHJcbi50YWMgKCkge1xyXG5cdHRleHQtYWxpZ246Y2VudGVyO1xyXG59XHJcblxyXG4udGFyICgpIHtcclxuXHR0ZXh0LWFsaWduOnJpZ2h0O1xyXG59XHJcblxyXG4uY2wgKCkge1xyXG5cdGNsZWFyOmJvdGg7XHJcbn1cclxuXHJcbi5vdmggKCkge1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG5cclxuLm0wYSAoKSB7XHJcblx0bWFyZ2luOjAgYXV0bztcclxufVxyXG5cclxuLmJkIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLXdpZHRoOkB3O1xyXG5cdGJvcmRlci1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkdCAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci10b3Atd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkYiAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6QHc7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkciAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAdztcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZGwgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItbGVmdC13aWR0aDpAdztcclxuXHRib3JkZXItbGVmdC1zdHlsZTpAdDtcclxufVxyXG5cclxuLmNvbG9yX3doaXRlX29wYWNpdHkgKEBvcDouNSkge1xyXG5cdGNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgQG9wKTtcclxufVxyXG5cclxuLmJnX3doaXRlX29wYWNpdHkgKEBvcDouNSkge1xyXG5cdGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCBAb3ApO1xyXG59XHJcblxyXG4uZnVsbHdpZHRoX2luX2Jsb2NrICgpIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdHRvcDowO1xyXG5cdGxlZnQ6MDtcclxufVxyXG5cclxuLm9wIChAb3A6LjUpIHtcclxuXHRvcGFjaXR5OkBvcDtcclxufVxyXG5cclxuLmRpc3BsYXlfZmxleCAoKSB7XHJcblx0ZGlzcGxheTotd2Via2l0LWZsZXg7XHJcblx0ZGlzcGxheTotbW96LWZsZXg7XHJcblx0ZGlzcGxheTotbXMtZmxleDtcclxuXHRkaXNwbGF5OmZsZXg7XHJcbn1cclxuXHJcbi5kaXNwbGF5X2lubGluZV9mbGV4ICgpIHtcclxuXHRkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7XHJcblx0ZGlzcGxheTotbW96LWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6LW1zLWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6aW5saW5lLWZsZXg7XHJcbn1cclxuXHJcbi5mbGV4X2RpcmVjdGlvbiAoQGQ6cm93KSB7XHJcblx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHQtbW96LWZsZXgtZGlyZWN0aW9uOkBkO1xyXG5cdC1tcy1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHRmbGV4LWRpcmVjdGlvbjpAZDtcclxufVxyXG5cclxuLmZsZXhfd3JhcCAoQGQ6bm93cmFwKSB7XHJcblx0LXdlYmtpdC1mbGV4LXdyYXA6QGQ7XHJcblx0LW1vei1mbGV4LXdyYXA6QGQ7XHJcblx0LW1zLWZsZXgtd3JhcDpAZDtcclxuXHRmbGV4LXdyYXA6QGQ7XHJcbn1cclxuXHJcbi5qdXN0aWZ5X2NvbnRlbnQgKEBkOmZsZXgtc3RhcnQpIHtcclxuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDpAZDtcclxuXHQtbW96LWp1c3RpZnktY29udGVudDpAZDtcclxuXHQtbXMtanVzdGlmeS1jb250ZW50OkBkO1xyXG5cdGp1c3RpZnktY29udGVudDpAZDtcclxufVxyXG5cclxuLmFsaWduX2l0ZW1zIChAZDpzdHJldGNoKSB7XHJcblx0LXdlYmtpdC1hbGlnbi1pdGVtczpAZDtcclxuXHQtbW96LWFsaWduLWl0ZW1zOkBkO1xyXG5cdC1tcy1hbGlnbi1pdGVtczpAZDtcclxuXHRhbGlnbi1pdGVtczpAZDtcclxufVxyXG5cclxuLmFsaWduX2NvbnRlbnQgKEBkOnN0cmV0Y2gpIHtcclxuXHQtd2Via2l0LWFsaWduLWNvbnRlbnQ6QGQ7XHJcblx0LW1vei1hbGlnbi1jb250ZW50OkBkO1xyXG5cdC1tcy1hbGlnbi1jb250ZW50OkBkO1xyXG5cdGFsaWduLWNvbnRlbnQ6QGQ7XHJcbn1cclxuXHJcbi5jbF9hZnRlciAoKSB7XHJcblx0Y29udGVudDonLic7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRjbGVhcjpib3RoO1xyXG5cdGhlaWdodDowO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG5cclxuLnZhbGlnbl9hZnRlciAoKSB7XHJcblx0Y29udGVudDonJztcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0aGVpZ2h0OjEwMCU7XHJcbn1cclxuXHJcbi5wb3NfYWJzIChAdzoxZW07IEBoOjFlbTsgQGw6MDsgQHI6MDsgQHQ6MDsgQGI6MCkge1xyXG5cdHdpZHRoOkB3O1xyXG5cdGhlaWdodDpAaDtcclxuXHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdGxlZnQ6QGw7XHJcblx0cmlnaHQ6QHI7XHJcblx0dG9wOkB0O1xyXG5cdGJvdHRvbTpAYjtcclxufVxyXG5cclxuLmJkYnggKCkge1xyXG5cdC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O1xyXG5cdC1tb3otYm94LXNpemluZzpib3JkZXItYm94O1xyXG5cdGJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxufVxyXG5cclxuLmN0YnggKCkge1xyXG5cdC13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtcclxuXHQtbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcblx0Ym94LXNpemluZzpjb250ZW50LWJveDtcclxufVxyXG5cclxuLmJkcnMgKEByYWRpdXM6QGJkcnNfd2lkdGgpIHtcclxuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6QHJhZGl1cztcclxuXHRib3JkZXItcmFkaXVzOkByYWRpdXM7XHJcbn1cclxuXHJcbi5ieHNoIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaF93aGl0ZSAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hpIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaGlfd2hpdGUgKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoX25vbmUgKCkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpub25lO1xyXG5cdGJveC1zaGFkb3c6bm9uZTtcclxufVxyXG5cclxuLnRyYW5zKEB0cmFuczowKSB3aGVuIG5vdCAoQHRyYW5zID0gMCkge1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIC1tb3otdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICAtbXMtdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICAtby10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIHRyYW5zaXRpb246QHRyYW5zO1xyXG59XHJcblxyXG4uYXJyb3dfdG9wIChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci10b3A6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDpAaDtcclxuXHRib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfYm90dG9tIChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1ib3R0b206MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcC13aWR0aDpAaDtcclxuXHRib3JkZXItdG9wLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfbGVmdCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQtd2lkdGg6QGg7XHJcblx0Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfcmlnaHQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXJpZ2h0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0LXdpZHRoOkBoO1xyXG5cdGJvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfdG9wX2xlZnQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXJpZ2h0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3Atd2lkdGg6QGg7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X3RvcF9yaWdodCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItYm90dG9tOkBoIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAdztcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19ib3R0b21fbGVmdCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItdG9wOkBoIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdC13aWR0aDpAdztcclxuXHRib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2JvdHRvbV9yaWdodCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItbGVmdDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDpAaDtcclxuXHRib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uZGVmYXVsdF9saXN0IChAdzo0cHg7IEBoOjRweDsgQG06MCAxMHB4IDAgMDsgQGJkcnM6NTAlKSB7XHJcblx0bGlzdC1zdHlsZS10eXBlOm5vbmU7XHJcblx0XHJcblx0PiBsaSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0d2lkdGg6QHc7XHJcblx0XHRcdGhlaWdodDpAaDtcclxuXHRcdFx0bWFyZ2luOkBtO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQuYmRycyhAYmRycyk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF9ibG9ja3F1b3RlICgpIHtcclxuXHRwYWRkaW5nOjA7XHJcblx0bWFyZ2luOjAgMCAyMHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHF1b3Rlczpub25lO1xyXG5cdC5iZCgwKTtcclxuXHQudGFjO1xyXG5cdFxyXG5cdCY6YmVmb3JlLFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDpub25lO1xyXG5cdH1cclxuXHRcclxuXHRwOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHR9XHJcblx0XHJcblx0Y2l0ZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luLXRvcDoxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmRlZmF1bHRfdGFibGUgKCkge1xyXG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcclxuXHRib3JkZXItc3BhY2luZzowO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRwYWRkaW5nOjIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdHRoLFxyXG5cdHRkIHtcclxuXHRcdC5iZCgwKTsgLyogZm9yIGd1dGVuYmVyZyAqL1xyXG5cdFx0LmJkYjtcclxuXHR9XHJcblx0XHJcblx0LyogZm9yIGd1dGVuYmVyZyBzdGFydCAqL1xyXG5cdCYuaXMtc3R5bGUtc3RyaXBlcyB7XHJcblx0XHQuYmQoMCk7XHJcblx0XHRcclxuXHRcdHRyOm50aC1jaGlsZChvZGQpIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiBmb3IgZ3V0ZW5iZXJnIGVuZCAqL1xyXG5cdFxyXG5cdHRoZWFkIHtcclxuXHRcdHRyIHtcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0dGgge1xyXG5cdFx0XHRcdFx0LmJkdDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHRoLFxyXG5cdFx0XHR0ZCB7XHJcblx0XHRcdFx0cGFkZGluZzoxN3B4IDI1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0KyB0Ym9keSB7XHJcblx0XHRcdHRyIHtcclxuXHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdHRoLFxyXG5cdFx0XHRcdFx0dGQge1xyXG5cdFx0XHRcdFx0XHQuYmR0KDApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR0Ym9keSB7XHJcblx0XHR0ciB7XHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdHRoLFxyXG5cdFx0XHRcdHRkIHtcclxuXHRcdFx0XHRcdC5iZHQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHR0aCxcclxuXHRcdFx0dGQge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTNweCAyNXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHRmb290IHtcclxuXHRcdHRyIHtcclxuXHRcdFx0dGgsXHJcblx0XHRcdHRkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjE2cHggMjVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR0aCxcclxuXHR0ZCB7XHJcblx0XHQuYmRiO1xyXG5cdH1cclxuXHRcclxuXHR0ciB7XHJcblx0XHR0aCxcclxuXHRcdHRkIHtcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0LmJkbDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmRyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRwYWRkaW5nOjIwcHg7XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF9idXR0b24gKCkge1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHBhZGRpbmc6MCAzNXB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHdoaXRlLXNwYWNlOm5vd3JhcDtcclxuXHQudGFjO1xyXG5cdC5iZChAYnV0X2JkX3dpZHRoKTtcclxuXHQuYmRycyhAYnV0X2JkcnNfd2lkdGgpO1xyXG59XHJcblxyXG4uZGVmYXVsdF9zZWxlY3QgKEBwbHVnaW46MCkge1xyXG5cdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHR0ZXh0LWluZGVudDowLjAxcHg7XHJcblx0dGV4dC1vdmVyZmxvdzonJztcclxuXHRtaW4td2lkdGg6MTAwcHg7XHJcblx0bWF4LXdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OkBpbnB1dF9oZWlnaHQ7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkIDQwcHggQGlucHV0X3BhZCAyNXB4O1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246MTAwJSBjZW50ZXI7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdC13ZWJraXQtYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tb3otYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tcy1hcHBlYXJhbmNlOm5vbmU7XHJcblx0YXBwZWFyYW5jZTpub25lICFpbXBvcnRhbnQ7XHJcblx0LmJkO1xyXG5cdC5iZHJzKEBiZHJzX3dpZHRoKTtcclxuXHRcclxuXHQmIHdoZW4gKEBwbHVnaW4gPiAwKSB7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vLi4vLi4vLi4vaW1nL3NlbGVjdC5wbmcnKTtcclxuXHR9XHJcblx0XHJcblx0JiB3aGVuIChAcGx1Z2luID0gMCkge1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uLy4uLy4uL2ltZy9zZWxlY3QucG5nJyk7XHJcblx0fVxyXG59Il0sImZpbGUiOiJzdHlsZS5jc3MifQ== */
